Linux系统Oracle&Mysql数据库导入导出 您所在的位置:网站首页 oracle导出表结构命令linux Linux系统Oracle&Mysql数据库导入导出

Linux系统Oracle&Mysql数据库导入导出

2023-11-17 10:54| 来源: 网络整理| 查看: 265

目录

Oracle数据库导入导出

一. expdp/impdp 使用

二. 导出实例

1. 检查导出目录

2. 导出数据库文件

3. 传输数据库文件

三. 导入实例

1. 数据库文件处理

2. 数据库文件导入

Mysql数据库导入导出

一. 脚本说明

二. 导出实例

三. 导入实例

在Linux服务器上做数据库的导入导出,Oracle与Mysql两种数据库对比而言,Mysql的数据导入导出会简单很多。

Oracle数据库导入导出 一. expdp/impdp 使用

expdp/impdp导入导出的运行命令基础相似,这里就以对比形式进行对常用属性做部分说明:

expdpimpdpexpdp 用户名/密码@IP/数据库实例  [导出属性]impdp 用户名/密码@IP/数据库实例  [导入属性]用户/密码为数据库用户密码,IP不写默认本地地址,数据库实例为数据库TNS中的SERVICE_NAMEdirectory=DATA_PUMP_DIR;导入导出的逻辑目录,可默认使用Oracle现有的,也可在oracle中自定义创建,但需给目录授权用户读写权限dumpfile=xx.dmp;导入导出的数据文件的名称schemas=user_name;指定用户,如果有dblink,则不是本数据库用户network_link=db_l;dblink参数,对于导入时,这个参数会限制导入的部分参数配置expdp的常用参数impdp常用参数tablespaces=users;使用tablespaces参数导出users表空间内所有的对象tablespaces=users;导入对应表空间users内所有对象logfile=expdp.log;导出日志文件,默认为expdp.loglogfile=impdp.log;导入日志文件,默认为impdp.log

exclude=view;排除视图

exclude=index:"like '%TEMP%';排除含TEMP索引

exclude=table:\" IN \(\'TABLE1\',\'TABLE2\'\)\";排除多张表

include=sequence;导序列

include = object_type[:"name_expr"];object_type用于指定要排除/包含的对象类型,name_expr用于指定要排除/包含的具体对象.exclude和include不能同时使

TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | REPLACE };该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIPquery=user.temp :"where col1 = 1 and col2 > 0";query导出查询得到的结果集REUSE_DATAFIELS={Y | N};该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N 二. 导出实例 1. 检查导出目录 Xshell连接数据库服务器后,登录进入oracle用户:su - oracle

登入sqlplus,查看是否存在导出文件目录(DATA_PUMP_DIR):select * from dba_directories;

注意:如果没有或不用现有dpdump目录,需要进入sqlplus创建对应的导出目录,并给目录授权,如下:

a. 创建expdp备份目录:create directory home as '/home/oracle/backup';

b. 对备份目录赋予读写权限:grant read,write on directory home to user;

2. 导出数据库文件 退出sqlplus,按表空间(tbs_perm_hap)导出数据库文件

expdp user/passwork@数据库实例 tablespaces=tbs_xx dumpfile=tbs_2021042314.dmp directory=DATA_PUMP_DIR;

导出成功

3. 传输数据库文件

将导出的数据库文件传输到目标服务器指定目录,需切换到root用户

scp /home/app/oracle/admin/数据库实例/dpdump/tbs_2021042314.dmp root@目标服务器IP:/home/app/oracle/admin/数据库实例/dpdump/

三. 导入实例 1. 数据库文件处理

Root用户登陆服务器,查看传输进来的数据库文件

cd /home/app/oracle/admin/数据库实例/dpdump/

给文件赋予777权限:chmod 777 tbs_2021042314.dmp

2. 数据库文件导入 切换用户

切换到Oracle用户:su – oracle

删除表空间

因为是数据库文件导入,有些存在结构(表、索引)无法执行,会被跳过,所以需要先删掉表空间。

1.    将表空间置为offline

alter tablespace tbs_xx offline;

2.    将磁盘上的表空间数据文件一同删除

drop tablespace tbs_xx including contents and datafiles;

创建表空间

1.    查看数据位置

  select * from dba_data_files;

2.    创建命令

create tablespace tbs_xx datafile '/home/app/oracle/oradata/数据库实例/tbsxx.dbf' SIZE 8G autoextend on extent management local segment space management auto;

注意:

创建表空间后,可以同时查看下数据库的密码过期校验,一般密码会默认180天后过期,要到期时会出现次报错:ORA-28002: the password will expire within 7 days

SELECT * FROM dba_profiles s WHERE s.profile = 'DEFAULT' AND s.resource_name = 'PASSMORD_LIFE_TINE';

这时可以通过以下命令,去掉密码有效期校验,命令:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

数据文件导入

1.    退出sqlplus:exit;

2.    执行导入命令

impdp user/passwork@数据库实例 tablespaces=tbs_xx dumpfile=tbs_2021042314.dmp directory=DATA_PUMP_DIR;

3.    出现以下图则导入成功

Mysql数据库导入导出

Mysql的导入导出是以实例进行操作的,所以在进行导入导出操作前,需要保证目标数据库的数据库实例与源数据库导出数据库实例一致。

一. 脚本说明 导出脚本:mysqldump -h 172.0.0.1 -u root -p h_db > /u01/20210423.sql

参数说明:-h 后面跟的是来源数据库服务器IP

                  -u 后面跟的是数据库账号

                  -p 后面跟的是数据库密码(未写,将在回车后输入)

                  h_db:指的是数据库实例

                  > :后面跟的是文件导出文件路径

导入脚本:source execute.sql;

execute.sql为sql文件具体路径

二. 导出实例 从来源数据库导出脚本SQL

mysqldump -h 172.0.0.1 -u root -p h_db > /u01/backup/20200701.sql

将脚本移动到目标服务器

scp /u01/backup/20200701.sql [email protected]:/u01/uat_cover_dev_v/

三. 导入实例 mysql -uroot -p(登录数据库)use h_db;(选择数据库实例)source /u01/uat_cover_dev_v/20200701.sql;(执行脚本,mysql的执行命令要以;结尾)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有