基于oracle expdp命令的使用詳解
更新時間:2013年05月30日 09:59:11 作者:
本篇文章是對oracle expdp命令的使用進行了詳細的分析介紹,需要的朋友參考下
1. DIRECTORY
指定轉(zhuǎn)儲文件和日志文件所在的目錄
DIRECTORY=directory_object
Directory_object用于指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS目錄
Expdp scott/tiger DIRECTORY= DMP DUMPFILE=a.dump
create or replace directory dmp
as 'd:/dmp'
expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=metadata_only
2. CONTENT
該選項用于指定要導出的內(nèi)容.默認值為ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設置CONTENT為ALL時,將導出對象定義及其所有數(shù)據(jù).為DATA_ONLY時,只導出對象數(shù)據(jù),為METADATA_ONLY時,只導出對象定義
expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=metadata_only
----------只導出對象定義
expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=data_only
----------導出出所有數(shù)據(jù)
3. DUMPFILE
用于指定轉(zhuǎn)儲文件的名稱,默認名稱為expdat.dmp
DUMPFILE=[directory_object:]file_name [,….]
Directory_object用于指定目錄對象名,file_name用于指定轉(zhuǎn)儲文件名.需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象
expdp zftang/zftang@zftang directory=dmp dumpfile=test1.dmp
數(shù)據(jù)泵工具導出的步驟:
1、創(chuàng)建DIRECTORY
create directory dir_dp as 'D:/oracle/dir_dp';
2、授權
Grant read,write on directory dir_dp to zftang;
--查看目錄及權限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3、執(zhí)行導出
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1
With the Partitioning, OLAP and Data Mining options
啟動 "ZFTANG"."SYS_EXPORT_SCHEMA_01": zftang/********@fgisdb sch
ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */
備注:
1、directory=dir_dp必須放在前面,如果將其放置最后,會提示 ORA-39002: 操作無效
ORA-39070: 無法打開日志文件。
ORA-39087: 目錄名 DATA_PUMP_DIR; 無效
2、在導出過程中,DATA DUMP 創(chuàng)建并使用了一個名為SYS_EXPORT_SCHEMA_01的對象,此對象就是DATA DUMP導出過程中所用的JOB名字,如果在執(zhí)行這個命令時如果沒有指定導出的JOB名字那么就會產(chǎn)生一個默認的JOB名字,如果在導出過程中指定JOB名字就為以指定名字出現(xiàn)
如下改成:
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;
3、導出語句后面不要有分號,否則如上的導出語句中的job表名為‘my_job1;',而不是my_job1。因此導致expdp zftang/zftang attach=zftang.my_job1執(zhí)行該命令時一直提示找不到job表
數(shù)據(jù)泵導出的各種模式:
1、 按表模式導出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info,zftang.b$i_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job
2、按查詢條件導出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'
3、按表空間導出:
Expdp zftang/zftang@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job
4、導出方案
Expdp zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,gwm
5、導出整個數(shù)據(jù)庫:
expdp zftang/zftang@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
impdp導入模式:
1、按表導入
p_street_area.dmp文件中的表,此文件是以gwm用戶按schemas=gwm導出的:
impdp gwm/gwm@fgisdb dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job
2、按用戶導入(可以將用戶信息直接導入,即如果用戶信息不存在的情況下也可以直接導入)
impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job
3、不通過expdp的步驟生成dmp文件而直接導入的方法:
--從源數(shù)據(jù)庫中向目標數(shù)據(jù)庫導入表p_street_area
impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log job_name=my_job
igisdb是目的數(shù)據(jù)庫與源數(shù)據(jù)的鏈接名,dir_dp是目的數(shù)據(jù)庫上的目錄
4、更換表空間
采用remap_tablespace參數(shù)
--導出gwm用戶下的所有數(shù)據(jù)
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用sys用戶導出的用戶數(shù)據(jù),包括用戶創(chuàng)建、授權部分,用自身用戶導出則不含這些內(nèi)容
--以下是將gwm用戶下的數(shù)據(jù)全部導入到表空間gcomm(原來為gmapdata表空間下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm
指定轉(zhuǎn)儲文件和日志文件所在的目錄
DIRECTORY=directory_object
Directory_object用于指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS目錄
Expdp scott/tiger DIRECTORY= DMP DUMPFILE=a.dump
create or replace directory dmp
as 'd:/dmp'
expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=metadata_only
2. CONTENT
該選項用于指定要導出的內(nèi)容.默認值為ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設置CONTENT為ALL時,將導出對象定義及其所有數(shù)據(jù).為DATA_ONLY時,只導出對象數(shù)據(jù),為METADATA_ONLY時,只導出對象定義
expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=metadata_only
----------只導出對象定義
expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=data_only
----------導出出所有數(shù)據(jù)
3. DUMPFILE
用于指定轉(zhuǎn)儲文件的名稱,默認名稱為expdat.dmp
DUMPFILE=[directory_object:]file_name [,….]
Directory_object用于指定目錄對象名,file_name用于指定轉(zhuǎn)儲文件名.需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象
expdp zftang/zftang@zftang directory=dmp dumpfile=test1.dmp
數(shù)據(jù)泵工具導出的步驟:
1、創(chuàng)建DIRECTORY
create directory dir_dp as 'D:/oracle/dir_dp';
2、授權
Grant read,write on directory dir_dp to zftang;
--查看目錄及權限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3、執(zhí)行導出
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1
With the Partitioning, OLAP and Data Mining options
啟動 "ZFTANG"."SYS_EXPORT_SCHEMA_01": zftang/********@fgisdb sch
ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */
備注:
1、directory=dir_dp必須放在前面,如果將其放置最后,會提示 ORA-39002: 操作無效
ORA-39070: 無法打開日志文件。
ORA-39087: 目錄名 DATA_PUMP_DIR; 無效
2、在導出過程中,DATA DUMP 創(chuàng)建并使用了一個名為SYS_EXPORT_SCHEMA_01的對象,此對象就是DATA DUMP導出過程中所用的JOB名字,如果在執(zhí)行這個命令時如果沒有指定導出的JOB名字那么就會產(chǎn)生一個默認的JOB名字,如果在導出過程中指定JOB名字就為以指定名字出現(xiàn)
如下改成:
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;
3、導出語句后面不要有分號,否則如上的導出語句中的job表名為‘my_job1;',而不是my_job1。因此導致expdp zftang/zftang attach=zftang.my_job1執(zhí)行該命令時一直提示找不到job表
數(shù)據(jù)泵導出的各種模式:
1、 按表模式導出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info,zftang.b$i_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job
2、按查詢條件導出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'
3、按表空間導出:
Expdp zftang/zftang@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job
4、導出方案
Expdp zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,gwm
5、導出整個數(shù)據(jù)庫:
expdp zftang/zftang@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
impdp導入模式:
1、按表導入
p_street_area.dmp文件中的表,此文件是以gwm用戶按schemas=gwm導出的:
impdp gwm/gwm@fgisdb dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job
2、按用戶導入(可以將用戶信息直接導入,即如果用戶信息不存在的情況下也可以直接導入)
impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job
3、不通過expdp的步驟生成dmp文件而直接導入的方法:
--從源數(shù)據(jù)庫中向目標數(shù)據(jù)庫導入表p_street_area
impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log job_name=my_job
igisdb是目的數(shù)據(jù)庫與源數(shù)據(jù)的鏈接名,dir_dp是目的數(shù)據(jù)庫上的目錄
4、更換表空間
采用remap_tablespace參數(shù)
--導出gwm用戶下的所有數(shù)據(jù)
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用sys用戶導出的用戶數(shù)據(jù),包括用戶創(chuàng)建、授權部分,用自身用戶導出則不含這些內(nèi)容
--以下是將gwm用戶下的數(shù)據(jù)全部導入到表空間gcomm(原來為gmapdata表空間下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm
相關文章
Oracle Connect to Idle Instance解決方法
本文將介紹Oracle如何解決Connect to Idle Instance問題,需要了解的朋友可以參考下2012-11-11關于使用PLSQL Developer時出現(xiàn)報錯ora-12514的問題
這篇文章主要介紹了關于使用PLSQL Developer時出現(xiàn)報錯ora-12514的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Oracle管道函數(shù)pipelined?function的用法小結
這篇文章主要介紹了Oracle管道函數(shù)pipelined?function的用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07oracle中函數(shù) trunc(),round(),ceil(),floor的使用詳解
這篇文章主要介紹了oracle中函數(shù) trunc(),round(),ceil(),floor的使用詳解的相關資料,需要的朋友可以參考下2017-03-03