oracle expdp impdp 数据泵方式
一、不管导入还有导出都要先创建目录
1、登录plsql
sqlplus/nolog
conn sys/password@orcl as sysdba
2、创建目录
create directory myDir as 'd:\yth';--生成目录(必须在指定位置先创建文件夹,名称最好与用户名一致)
yth:是目录名。必须手工创建。
2、增加权限
赋予目录读写权限 Grant read,write on directory myDir to yth;
yth:导入、导出的用户名
二、导出:
exit,退出plsql。然后操作如下
1、单用户导出
expdp yth/dcjet@orcl schemas=yth dumpfile=yth.dmp DIRECTORY=myDir logfile=expdp.log
2、多用户导出 (用sys用户)
expdp 'sys/syspwd@MyOrcl AS SYSDBA' directory=myDir schemas=(bshrp,portal,bsemr,bslis,pflis) dumpfile=hisdb.dmp logfile = hisdb.log;
三、导入:
1、
impdp zjgl/dcjet@orcl directory=myDir dumpfile=zjgl.dmp schemas=zjgl logfile=zjgl.log;
2、
impdp yth/dcjet@orcl directory=myDir dumpfile=yth.dmp logfile=a.log remap_schema=jzfw_data:yth remap_tablespace=jzfw_data:yth,users:yth,jcfz:yth
---remap_schema:旧用户:目标用户
---remap_tablespace:旧表空间:新表空间(多个的情况用逗号分隔)
3、多用户导入 (用sys用户)
impdp "sys/sys@MyOrcl AS SYSDBA" directory=myDir dumpfile=HISDB.DMP schemas=(bslis,bshrp,portal,bsemr,pflis) table_exists_action=replace logfile=impdp_hisdb.log
其中:table_exists_action:参数值有四种,解释如下:
1) skip:默认操作
2) replace:先drop表,然后创建表,最后插入数据
3) append:在原来数据的基础上增加数据
4) truncate:先truncate,然后再插入数据
下面是成功的例子(myDir),有时本地只有一个用例不用给@orcl:
impdp zjgl/dcjet@orcl directory=myDir dumpfile=zjgl.dmp schemas=zjgl logfile=zjgl.log;
impdp yth/dcjet directory=myDir dumpfile=ENTRY.DMP tables=data_ct.entry_head remap_schema=data_ct:yth remap_tablespace=data_center:yth
remap_schema 修改原数据dmp的用户,格式 【old :new】 如【XXX:LVAMS】
---tables 指定表名:原表用户.用表名
四、更多导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log
2)并行进程parallel
expdp scott/tiger@orcl directory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dir;
4)按查询条件导
expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dir DUMPFILE=full.dmp FULL=y;
五、更多导入数据
1)导到指定用户下
impdp scott/tiger@orcl DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=scott logfile=impdp.log
2)改变表的owner
impdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构