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"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署