oracle資料泵
- 注意事項
expdp可以在客戶端或伺服器端執行,但檔案最終儲存在伺服器端
exp命令在哪裡執行,就匯出到哪裡
dbms_datapump --- pl/sql中呼叫
- 前期準備
建立轉存目錄
create directory backup_dir as 'c:\backup_dir'
賦予使用者訪問許可權
grant read,write on directory backup_dir to scott
查詢建立了哪些目錄
select * from dba_directories
匯入匯出命令
- 如果採用sysdba使用者
expdp 'sys/admin as sysdba'
- 表 --- tables=go.emp,scott.dept
匯出匯入指定表,表相關物件(索引,約束等,這些物件需要於表在相同表空間或匯出使用者具有匯出許可權)
向其他使用者匯入需要imp_full_database許可權
表可以指定 *
tables=scott.emp:p1 --- 表分割槽
tables=scott.e%
- 案(預設模式) --- schemas=scott,hr
有exp_full_database許可權則可以到處其他schema的表
預設不會匯出在本schema的物件的在其他schema中的關聯物件(如emp表的index在其他schema中時)
除非那個schema也在列表中出現,匯入也同樣
- 匯出表空間 --- tablespaces=users01,users02
到處指定表空間中,屬於本使用者的物件
匯出指定表空間中所有物件,需要exp_full_database許可權
- 匯出資料庫 --- full=y
需要exp_full_database許可權
grant exp_full_database to go
- 傳輸表空間 --- transport_tablespaces
需要exp/imp_full_database
匯出的是原資料,需要複製dmp和資料檔案到目標庫
- 過濾物件或資料
過濾資料
如果沒有指定表名則針對所有被匯出的表
建議放在parfile中
query=emp:"where id>5",dept:"where id<2"
sample=emp:50,dept:10 --- 匯出資料的百分比
過濾物件
指定任何物件型別和物件名字(支援*)
建議放在parfile中
include,exclude不能同時出現
exclude=index:"like 'IDX_EMP%'",constraint:"like 'CHK_EMP%'",grant
---------------------------------------------------------------------------------
多種情況對應
- 指定過濾條件 --- tables,include,exclude,query
注意tables和include條件中的大小寫,和跳脫字元
expdp go/go tables=\(go.e%\) directory=dump_file_dir query=\"where mgr=7698\" dumpfile=emp.dmp;
expdp go/go include=table:\"like \'E%\'\" directory=dump_file_dir query=emp:\"where mgr=7698\" dumpfile=expdp.dmp;
- 跨資料庫鏈方式匯出 --- network_link
間接實現匯出遠端資料庫物件到本地 ???
- 並行方式 --- parallel + filesize
小資料量不一定能提高效率,設定不合理可能會影響效率
expdp go/go directory=dump_file_dir dumpfile=expdp.dmp parallel=2 filesize=30m;
- 僅匯入物件定義 --- content=all,data_only,metadata_only
- 匯入時清楚物件儲存的原資料 --- table_exists_action=skip,append,truncate,replace
- 匯入時重定義schema和表空間
remap_schema=scott:go,go:scott --- 同一impdp不能指定scott:go,scott:hr
remap_tablespace=users01:users02,users03:users04
- 退出輸出模式,進入互動管理模式 --- CTL+C
- 連線到輸出模式 --- expdp go/go attach=job_name
不指定attach則自動連線到當前任務
-- 執行管理操作
Export> add_file=exp_1_%U.dmp,exp_2_%U.dmp --- 新增輸出檔案,僅用於expdp
Export> continue_client --- 回到輸出模式
Export> exit_client --- 退出,回到OS命令列,expdp轉為後臺執行
Export> filesize=1G --- 指定最大檔案大小(G,M,K,B)
Export> help --- 顯示幫助
- 引數檔案
建立expdp.par
userid=go/go
schemas=scott,hr
dumpfile=scott%U.dmp
directory=backup_dir
logfile=scott.log
job_name=export_job
執行匯出
expdp go/go parfile=c:\backup\expdp.par
expdp可以在客戶端或伺服器端執行,但檔案最終儲存在伺服器端
exp命令在哪裡執行,就匯出到哪裡
dbms_datapump --- pl/sql中呼叫
- 前期準備
建立轉存目錄
create directory backup_dir as 'c:\backup_dir'
賦予使用者訪問許可權
grant read,write on directory backup_dir to scott
查詢建立了哪些目錄
select * from dba_directories
匯入匯出命令
- 如果採用sysdba使用者
expdp 'sys/admin as sysdba'
- 表 --- tables=go.emp,scott.dept
匯出匯入指定表,表相關物件(索引,約束等,這些物件需要於表在相同表空間或匯出使用者具有匯出許可權)
向其他使用者匯入需要imp_full_database許可權
表可以指定 *
tables=scott.emp:p1 --- 表分割槽
tables=scott.e%
- 案(預設模式) --- schemas=scott,hr
有exp_full_database許可權則可以到處其他schema的表
預設不會匯出在本schema的物件的在其他schema中的關聯物件(如emp表的index在其他schema中時)
除非那個schema也在列表中出現,匯入也同樣
- 匯出表空間 --- tablespaces=users01,users02
到處指定表空間中,屬於本使用者的物件
匯出指定表空間中所有物件,需要exp_full_database許可權
- 匯出資料庫 --- full=y
需要exp_full_database許可權
grant exp_full_database to go
- 傳輸表空間 --- transport_tablespaces
需要exp/imp_full_database
匯出的是原資料,需要複製dmp和資料檔案到目標庫
- 過濾物件或資料
過濾資料
如果沒有指定表名則針對所有被匯出的表
建議放在parfile中
query=emp:"where id>5",dept:"where id<2"
sample=emp:50,dept:10 --- 匯出資料的百分比
過濾物件
指定任何物件型別和物件名字(支援*)
建議放在parfile中
include,exclude不能同時出現
exclude=index:"like 'IDX_EMP%'",constraint:"like 'CHK_EMP%'",grant
---------------------------------------------------------------------------------
多種情況對應
- 指定過濾條件 --- tables,include,exclude,query
注意tables和include條件中的大小寫,和跳脫字元
expdp go/go tables=\(go.e%\) directory=dump_file_dir query=\"where mgr=7698\" dumpfile=emp.dmp;
expdp go/go include=table:\"like \'E%\'\" directory=dump_file_dir query=emp:\"where mgr=7698\" dumpfile=expdp.dmp;
- 跨資料庫鏈方式匯出 --- network_link
間接實現匯出遠端資料庫物件到本地 ???
- 並行方式 --- parallel + filesize
小資料量不一定能提高效率,設定不合理可能會影響效率
expdp go/go directory=dump_file_dir dumpfile=expdp.dmp parallel=2 filesize=30m;
- 僅匯入物件定義 --- content=all,data_only,metadata_only
- 匯入時清楚物件儲存的原資料 --- table_exists_action=skip,append,truncate,replace
- 匯入時重定義schema和表空間
remap_schema=scott:go,go:scott --- 同一impdp不能指定scott:go,scott:hr
remap_tablespace=users01:users02,users03:users04
- 退出輸出模式,進入互動管理模式 --- CTL+C
- 連線到輸出模式 --- expdp go/go attach=job_name
不指定attach則自動連線到當前任務
-- 執行管理操作
Export> add_file=exp_1_%U.dmp,exp_2_%U.dmp --- 新增輸出檔案,僅用於expdp
Export> continue_client --- 回到輸出模式
Export> exit_client --- 退出,回到OS命令列,expdp轉為後臺執行
Export> filesize=1G --- 指定最大檔案大小(G,M,K,B)
Export> help --- 顯示幫助
- 引數檔案
建立expdp.par
userid=go/go
schemas=scott,hr
dumpfile=scott%U.dmp
directory=backup_dir
logfile=scott.log
job_name=export_job
執行匯出
expdp go/go parfile=c:\backup\expdp.par
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22558114/viewspace-2150083/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 資料泵Oracle
- oracle 資料泵解析Oracle
- oracle之資料泵Oracle
- Oracle 資料泵的使用Oracle
- oracle 資料泵引數Oracle
- oracle資料泵備份(Expdp命令)Oracle
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- Oracle資料泵(Oracle Data Pump) 19cOracle
- 資料泵
- Oracle expdp資料泵遠端匯出Oracle
- oracle邏輯備份之--資料泵Oracle
- 使用Oracle資料泵問題總結Oracle
- Oracle資料泵-schema匯入匯出Oracle
- Oracle備份恢復五(資料泵)Oracle
- oracle11g資料泵詳解Oracle
- 詳說Oracle Vault——使用資料泵工具Oracle
- oracle 資料泵 content=data_onlyOracle
- 轉oracle資料泵匯出時報錯Oracle
- 【ASK_ORACLE】重灌Oracle資料泵(Datapump)工具的方法Oracle
- 史上最全Oracle資料泵常用命令Oracle
- Oracle Data Pump 11G 資料泵元件Oracle元件
- Oracle資料泵的匯入和匯出Oracle
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- ORACLE 資料泵之NETWORK_LINKOracle
- Oracle資料泵的備份與恢復Oracle
- Oracle使用資料泵匯出匯入表Oracle
- ORACLE 10g資料泵使用說明Oracle 10g
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- 使用oracle外部表進行資料泵解除安裝資料Oracle
- oracle資料泵方式更換資料預設表空間.Oracle
- Oracle使用資料泵 (expdp/impdp)實施遷移Oracle
- python實現oracle資料泵匯出功能PythonOracle
- oracle 資料泵匯出簡單使用版Oracle
- Oracle 12C 資料泵新特性測試Oracle
- Oracle11gr2資料泵新特性(五)Oracle
- Oracle11gr2資料泵新特性(四)Oracle
- Oracle11gr2資料泵新特性(三)Oracle