数据迁移方法之expdp
expdp較exp的一個優勢就是可以導出空表,再11g中exp不可以直接導出空表。
expdp只能在服務端執行,exp沒有限制。
一、創建邏輯目錄,該命令不會在操作系統創建真正的目錄。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理員目錄(同時查看操作系統是否存在,因為Oracle并不關心該目錄是否存在,如果不存在,則出錯)
select * from dba_directories;
三、給用戶賦予在指定目錄的操作權限,最好以system等管理員賦予。
grant read,write on directory XXXXXto YYYYY;
四、導出數據
1)按用戶導
expdp?scott/tiger@orcl?schemas=scott dumpfile=XXXXXX.dmp LOGFILE=LOG.LOG?DIRECTORY=XXXXXX
2)按表名導
expdp?scott/tiger@orcl?TABLES=emp,dept??dumpfile=XXXXXX.dmp DIRECTORY=XXXXXX?LOGFILE=LOG.LOG
3)按查詢條件導
expdp?scott/tiger@orcl?directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20'
4)按表空間導
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example
五、還原數據
1)導到指定用戶下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp ? ?SCHEMAS=scott
2)改變表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system
如果不加scott,會報錯:ora-39002 ora-39166
3)更換表空間
?remap_tablespace=gmapdata:gcomm
例句:
impdp zhjha/zhjha@wgh DIRECTORY=DATA_PUMP_DIR DUMPFILE=0811-2.dmp TABLES=源用戶.td_report REMAP_SCHEMA=源用戶:目標用戶 remap_tablespace=源表空間:目標表空間,源表空間2:目標表空間
單獨導表的時候,源用戶必須加上。
?
?
單表的遷移舉例:
?
expdp xxzzzlsgl/xxzzzlsgl@orcl TABLES=bd_person_YS dumpfile=bd_person_YS-1.dmp DIRECTORY=DATA_PUMP_DIR LOGFILE=bd_person_YS-1.LOG
expdp xxzzzlsgl/xxzzzlsgl@orcl TABLES=T_FW_BJ,T_ld_BJ,T_rk_BJ dumpfile=bj-1.dmp DIRECTORY=DATA_PUMP_DIR LOGFILE=bj-1.LOG
?
impdp xxzzzlsgl/xxzzzlsglmm@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=bd_person_YS_YS-1.dmp TABLES=xxzzzlsgl.bd_person_YS REMAP_SCHEMA=xxzzzlsgl:xxzzzlsgl
impdp xxzzzlsgl/xxzzzlsglmm@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=bj-1.dmp TABLES=xxzzzlsgl.T_FW_BJ,xxzzzlsgl.T_ld_BJ,xxzzzlsgl.T_rk_BJ REMAP_SCHEMA=xxzzzlsgl:xxzzzlsgl
?
轉載于:https://www.cnblogs.com/zhjx0521/p/5105221.html
總結
以上是生活随笔為你收集整理的数据迁移方法之expdp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【项目总结】之——导出Excel
- 下一篇: iOS获取UIView上某点的颜色值