Page Top

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"
posted @ 2024-07-09 10:07  抹茶大虾球丶  阅读(5)  评论(0编辑  收藏  举报