Oracle数据库使用expdp/impdp导出导入数据
背景:正式环境数据同步到测试环境,数据库名:MYDB,正式、用户:MYUSER(必须拥有SYS权限)。
1、正式环境备份数据库
(1)正式服务器上,cmd输入sqlplus,使用MYUSER账户登录
(2)创建一个自定义的目录,用于存放导出的数据
create directory DATA_OUT_FILE as 'E:\app\Administrator\admin\MYDB\my_dir\';
或者直接使用系统中已存在的目录,通过sql查询,获取DIRECTORY_NAME:
select * from dba_directories;
(3)创建expdp参数文件,另存为exp.par
# 目录名(DIRECTORY_NAME)
DIRECTORY=DATA_OUT_FILE
# 导出数据文件名(可自定义)
DUMPFILE=expdp_used_tables.dmp
# 生成的日志文件名(可自定义)
LOGFILE=expdp_used_tables.log
# 可以指定导出哪些表
TABLES=table1,table2
# TABLES和SCHEMAS参数只能选择其一,若使用SCHEMAS表示导出该用户下的所有对象
# SCHEMAS=MYUSER
(4)在cmd中执行以下语句,并等待数据导出完成
expdp MYUSER/password@MYDB PARFILE="E:\app\Administrator\admin\MYDB\my_dir\exp.par"
(5)拷贝expdp_used_tables.dmp到测试环境
2、测试环境导入数据
(1)测试服务器上,cmd输入sqlplus,使用MYUSER账户登录
(2)创建一个自定义的目录,用于存放expdp_used_tables.dmp
create directory DATA_OUT_FILE as 'E:\app\Administrator\admin\MYDB\my_dir\';
或者直接使用系统中已存在的目录,通过sql查询,获取DIRECTORY_NAME:
select * from dba_directories;
(3)创建expdp参数文件,另存为imp.par
DIRECTORY=DATA_OUT_FILE
DUMPFILE=expdp_used_tables.dmp
LOGFILE=expdp_used_tables.log
# 数据源用户与目标数据库用户的映射,必须
remap_schema=MYUSER:MYUSER
#导入时目标表存在时的操作
TABLE_EXISTS_ACTION=replace
TABLE_EXISTS_ACTION
1、skip:默认操作
2、replace:先drop表,然后创建表,最后插入数据
3、append:在原来数据的基础上增加数据
4、truncate:先truncate,然后再插入数据
(4)在cmd中执行以下语句,并等待数据导入完成
impdp MYUSER/password@MYDB PARFILE="C:\app\Administrator\admin\MYDB\my_dir\imp.par"