ORACLE導入導出操作篇


1. DIRECTORY

指定轉儲文件和日志文件所在的目錄
DIRECTORY=directory_object
Directory_object用於指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS目錄

create or replace directory DUMPDIR as '/home/oracle/hpdata';
Grant read,write on directory DUMPDIR to ics;

2. CONTENT

該選項用於指定要導出的內容.默認值為ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設置CONTENT為ALL時,將導出對象定義及其所有數據.為DATA_ONLY時,只導出對象數據,為METADATA_ONLY時,只導出對象定義

expdp ics/ics directory=DUMPDIR dumpfile=ics.dmp content=metadata_only
----------只導出對象定義
expdp ics/ics directory=DUMPDIR dumpfile=ics.dmp content=data_only
----------導出出所有數據

3. DUMPFILE

用於指定轉儲文件的名稱,默認名稱為expdat.dmp
DUMPFILE=[directory_object:]file_name [,….]
Directory_object用於指定目錄對象名,file_name用於指定轉儲文件名.需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象
show parameter dump;--查看變量

expdp ics/ics directory=DUMPDIR dumpfile=ics.dmp

impdp oracle/oracle DIRECTORY=DUMPDIR DUMPFILE=ics_141124_1.dmp remap_schema=ics:ics TABLE_EXISTS_ACTION=REPLACE

4、數據泵導出的各種模式:

(1)、 按表模式導出:
expdp ics/ics tables=fntaccinfo,fntaccbalhis,fntaccjrnl dumpfile =ics_tables.dmp logfile=ics_tables.log directory=DUMPDIR job_name=my_job

(2)、按查詢條件導出:
expdp ics/ics tables=ics.membaseinfo dumpfile =ics_membaseinfo.dmp logfile=ics_membaseinfo.log directory=DUMPDIR job_name=my_job query='"where ci_typ='0'"'

(3)、按表空間導出:
Expdp ics/ics dumpfile=expdp_tablespace.dmp tablespaces=USER logfile=expdp_tablespace.log directory=DUMPDIR job_name=my_job

(4)、導出方案
Expdp ics/ics DIRECTORY=DUMPDIR DUMPFILE=schema.dmp SCHEMAS=ICS,HPDM

(5)、導出整個數據庫:
expdp ics/icsics dumpfile =ics_141124_1.dmp full=n logfile=full.log directory=DUMPDIR job_name=my_job --加一個 compression=ALL 可以壓縮備份 但是還原的時候會更耗時

----------------------------------------------------------------------------------------------------------------------

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文件而直接導入的方法:
--從源數據庫中向目標數據庫導入表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是目的數據庫與源數據的鏈接名,dir_dp是目的數據庫上的目錄

4、更換SCHEMA

--導出gwm用戶下的所有數據
expdp ics/ics directory=DUMPDIR dumpfile=ics.dmp SCHEMAS=ics
注:如果是用sys用戶導出的用戶數據,包括用戶創建、授權部分,用自身用戶導出則不含這些內容
--以下是將ics用戶下的數據全部導入到用戶hpdm(原來為gmapdata表空間下)下
impdp hpdm/hpdm directory=DUMPDIR dumpfile=ics.dmp remap_schema=ICS:HPDM

5、更換TABLESPACE
采用remap_tablespace參數

-----------------------------------
create user test identified by test default tablespace users;
grant resource to test;
grant connect to test;
grant dba to test;


sqlplus "/as sysdba"

create directory DUMPDIR as '/home/oracle/hpdata';
Grant read,write on directory DUMPDIR to test;

------------------------------------------------
不同schema數據整庫備份恢復(需要先刪除目標庫)
impdp test/test DIRECTORY=DUMPDIR DUMPFILE=hp66_20140704.dmp remap_schema=HPDM:TEST FULL=Y IGNORE=Y
整庫導出備份
expdp ics/ics schemas=ICS dumpfile=ics20140704.dmp DIRECTORY=DUMPDIR

---如果表存在則更新數據,適用於數據結構不發生變化,僅僅將數據恢復到某個備份,但存儲過程、視圖、函數、sequence更新會失敗
impdp test/test DIRECTORY=DUMPDIR DUMPFILE=ics20140704.dmp remap_schema=ICS:TEST table_exists_action=replace;
---基本同上,但不會執行存儲過程、視圖、函數、sequence的更新
impdp test/test DIRECTORY=DUMPDIR DUMPFILE=hp66_20140704.dmp remap_schema=HPDM:TEST table_exists_action=replace EXCLUDE=SEQUENCE,VIEW,FUNCTION,PROCEDURE;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM