Linux系统Oracle&Mysql数据库导入导出 | 您所在的位置:网站首页 › oracle导出表结构命令linux › Linux系统Oracle&Mysql数据库导入导出 |
目录 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.logexclude=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注意:如果没有或不用现有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; 将导出的数据库文件传输到目标服务器指定目录,需切换到root用户 scp /home/app/oracle/admin/数据库实例/dpdump/tbs_2021042314.dmp root@目标服务器IP:/home/app/oracle/admin/数据库实例/dpdump/ Root用户登陆服务器,查看传输进来的数据库文件 cd /home/app/oracle/admin/数据库实例/dpdump/ 切换到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的导入导出是以实例进行操作的,所以在进行导入导出操作前,需要保证目标数据库的数据库实例与源数据库导出数据库实例一致。 一. 脚本说明 导出脚本: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文件具体路径 二. 导出实例 从来源数据库导出脚本SQLmysqldump -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/ |
CopyRight 2018-2019 实验室设备网 版权所有 |