熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle10G數據泵學習紀要(expdp/impdp)

2022-06-13   來源: Oracle 

  實例

  通過DBLINK的方式表空間不一樣

   impdp logfile=DUP_MCMDBLOG network_link=to_crm_ schemas=MCMDB  REMAP_TABLESPACE=table_space:table_spacetable_space:table_space

  通過DBLINK的方式方案(schemas)不一樣

   impdp logfile=DUP_MCMDBLOG network_link=to_crm_ schemas=MCMDB  remap_schema=MCMDB:MCMDB

  前言

  Oracle Database g引入了最新的數據泵(Data Dump)技術使DBA或開發人員可以將數據庫元數據(對象定義)和數據快速移動到另一個oracle數據庫中

  數據泵導出導入(EXPDP和IMPDP)的作用

  實現邏輯備份和邏輯恢復

  在數據庫用戶之間移動對象

  在數據庫之間移動對象

  實現表空間搬移

  數據泵導出導入與傳統導出導入的區別g之前傳統的導出和導入分別使用EXP工具和IMP工具g開始不僅保留了原有的EXP和IMP工具還提供了數據泵導出導入工具EXPDP和IMPDP使用EXPDP和IMPDP時應該注意的事項EXP和IMP是客戶段工具程序它們既可以在可以客戶端使用也可以在服務端使用

  EXPDP和IMPDP是服務端的工具程序他們只能在ORACLE服務端使用不能在客戶端使用IMP只適用於EXP導出文件不適用於EXPDP導出文件IMPDP只適用於EXPDP導出文件而不適用於EXP導出文件

  數據泵導出包括導出表導出方案導出表空間導出數據庫種方式

  建目錄與賦權

  SQL>create directory dump_dir as /u/dmdir

  SQL>grant readwrite on directory to test

  SQL>select * from dba_directories ——查看目錄

  EXPDP命令行選項

   ATTACH

  該選項用於在客戶會話與已存在導出作用之間建立關聯語法如下

  ATTACH=[schema_name]job_name

  Schema_name用於指定方案名job_name用於指定導出作業名注意如果使用ATTACH選項在命令行除了連接字符串和ATTACH選項外不能指定任何其他選項示例如下Expdp scott/tiger ATTACH=scottexport_job

   CONTENT

  該選項用於指定要導出的內容默認值為ALL

  CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

  當設置CONTENT為ALL 時將導出對象定義及其所有數據為DATA_ONLY時只導出對象數據為METADATA_ONLY時只導出對象定義

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=adump

  CONTENT=METADATA_ONLY

   DIRECTORY

  指定轉儲文件和日志文件所在的目錄

  DIRECTORY=directory_object

  Directory_object用於指定目錄對象名稱需要注意目錄對象是使用CREATE DIRECTORY語句建立的對象而不是OS 目錄

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=adump

  建立目錄CREATE DIRECTORY dump as ddump

  查詢創建了那些子目錄SELECT * FROM dba_directories

   DUMPFILE

  用於指定轉儲文件的名稱默認名稱為expdatdmp

  DUMPFILE=[directory_object]file_name []

  Directory_object用於指定目錄對象名file_name用於指定轉儲文件名需要注意如果不指定directory_object導出工具會自動使用DIRECTORY選項指定的目錄對象

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=dumpadmp

   ESTIMATE

  指定估算被導出表所占用磁盤空間分方法默認值是BLOCKS

  EXTIMATE={BLOCKS | STATISTICS}

  設置為BLOCKS時oracle會按照目標對象所占用的數據塊個數乘以數據塊尺寸估算對象占用的空間設置為STATISTICS時根據最近統計值估算對象占用空間

  Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS

  DIRECTORY=dump DUMPFILE=adump

   EXTIMATE_ONLY

  指定是否只估算導出作業所占用的磁盤空間默認值為N

  EXTIMATE_ONLY={Y | N}

  設置為Y時導出作用只估算對象所占用的磁盤空間而不會執行導出作業為N時不僅估算對象所占用的磁盤空間還會執行導出操作

  Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

   EXCLUDE

  該選項用於指定執行操作時釋放要排除對象類型或相關對象EXCLUDE=object_type[name_clause] [] Object_type用於指定要排除的對象類型name_clause用於指定要排除的具體對象EXCLUDE和INCLUDE不能同時使用

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=adup EXCLUDE=VIEW

   FILESIZE

  指定導出文件的最大尺寸默認為(表示文件尺寸沒有限制)

   FLASHBACK_SCN

  指定導出特定SCN時刻的表數據

  FLASHBACK_SCN=scn_value

  Scn_value用於標識SCN值FLASHBACK_SCN和FLASHBACK_TIME不能同時使用

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=admp

  FLASHBACK_SCN=

   FLASHBACK_TIME

  指定導出特定時間點的表數據

  FLASHBACK_TIME=TO_TIMESTAMP(time_value)

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=admp FLASHBACK_TIME=

  TO_TIMESTAMP( DDMMYYYY HHMISS

   FULL

  指定數據庫模式導出默認為N

  FULL={Y | N}

  為Y時標識執行數據庫導出

   HELP

  指定是否顯示EXPDP命令行選項的幫助信息默認為N當設置為Y時會顯示導出選項的幫助信息

  Expdp help=y

   INCLUDE

  指定導出時要包含的對象類型及相關對象

  INCLUDE = object_type[name_clause] [… ]

   JOB_NAME

  指定要導出作用的名稱默認為SYS_XXX

  JOB_NAME=jobname_string

   LOGFILE

  指定導出日志文件文件的名稱默認名稱為exportlog

  LOGFILE=[directory_object]file_name

  Directory_object用於指定目錄對象名稱file_name用於指定導出日志文件名如果不指定directory_object導出作用會自動使用DIRECTORY的相應選項值

  Expdp scott/tiger DIRECTORY=dump DUMPFILE=admp logfile=alog

   NETWORK_LINK

  指定數據庫鏈名如果要將遠程數據庫對象導出到本地例程的轉儲文件中必須設置該選項

   NOLOGFILE

  該選項用於指定禁止生成導出日志文件默認值為N

   PARALLEL

  指定執行導出操作的並行進程個數默認值為

   PARFILE

  指定導出參數文件的名稱

  PARFILE=[directory_path] file_name

   QUERY

  用於指定過濾導出數據的where條件

  QUERY=[schema] [table_name] query_clause

  Schema用於指定方案名table_name用於指定表名query_clause用於指定條件限制子句QUERY選項不能與CONNECT= METADATA_ONLYEXTIMATE_ONLYTRANSPORT_TABLESPACES等選項同時使用

  Expdp scott/tiger directory=dump dumpfiel=admp

  Tables=emp query=WHERE deptno=

   SCHEMAS

  該方案用於指定執行方案模式導出默認為當前用戶方案

   STATUS

  指定顯示導出作用進程的詳細狀態默認值為

   TABLES

  指定表模式導出

  TABLES=[schema_name]table_name[partition_name][…]

  Schema_name用於指定方案名table_name用於指定導出的表名partition_name用於指定要導出的分區名

   TABLESPACES

  指定要導出表空間列表

   TRANSPORT_FULL_CHECK

  該選項用於指定被搬移表空間和未搬移表空間關聯關系的檢查方式默認為N

  當設置為Y時導出作用會檢查表空間直接的完整關聯關系如果表空間所在表空間或其索引所在的表空間只有一個表空間被搬移將顯示錯誤信息當設置為N 時導出作用只檢查單端依賴如果搬移索引所在表空間但未搬移表所在表空間將顯示出錯信息如果搬移表所在表空間未搬移索引所在表空間則不會顯示 錯誤信息

   TRANSPORT_TABLESPACES

  指定執行表空間模式導出

   VERSION指定被導出對象的數據庫版本默認值為COMPATIBLE

  VERSION={COMPATIBLE | LATEST | version_string}

  為COMPATIBLE時會根據初始化參數COMPATIBLE生成對象元數據為LATEST時會根據數據庫的實際版本生成對象元數據version_string用於指定數據庫版本字符串

  調用EXPDP

  使用EXPDP工具時其轉儲文件只能被存放在DIRECTORY對象對應的OS目錄中而不能直接指定轉儲文件所在的OS目錄因此使用EXPDP工具時必須首先建立DIRECTORY對象並且需要為數據庫用戶授予使用DIRECTORY對象權限

  CREATE DIRECTORY dump_dir AS DDUMPGRANT READ WIRTE ON DIRECTORY dump_dir TO scott

  導出表

  Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tabdmp TABLES=deptemp

  導出方案

  Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schemadmp SCHEMAS=systemscott

  導出表空間

  Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespacedmp TABLESPACES=useruser

  導出數據庫

  Expdp system/manager DIRECTORY=dump_dir DUMPFILE=fulldmp FULL=Y

  使用IMPDP

  IMPDP命令行選項與EXPDP有很多相同的不同的有

  REMAP_DATAFILE

  該選項用於將源數據文件名轉變為目標數據文件名在不同平台之間搬移表空間時可能需要該選項

  REMAP_DATAFIEL=source_datafietarget_datafile

  REMAP_SCHEMA

  該選項用於將源方案的所有對象裝載到目標方案中

  REMAP_SCHEMA=source_schematarget_schema

  REMAP_TABLESPACE

  將源表空間的所有對象導入到目標表空間中

  REMAP_TABLESPACE=source_tablespacetargettablespace

  REUSE_DATAFILES

  該選項指定建立表空間時是否覆蓋已存在的數據文件默認為N

  REUSE_DATAFIELS={Y | N}

  SKIP_UNUSABLE_INDEXES

  指定導入是是否跳過不可使用的索引默認為N

  SQLFILE

  指定將導入要指定的索引DDL操作寫入到SQL腳本中

  SQLFILE=[directory_object]file_name

  Impdp scott/tiger DIRECTORY=dump DUMPFILE=tabdmp SQLFILE=asql

  STREAMS_CONFIGURATION

  指定是否導入流元數據(Stream Matadata)默認值為Y

  TABLE_EXISTS_ACTION

  該選項用於指定當表已經存在時導入作業要執行的操作默認為SKIP TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }當設置該選項為SKIP時導入作業會跳過已存在表處理下一個對象當設置為APPEND時會追加數據為TRUNCATE時導入作業會截斷表然後 為其追加新數據當設置為REPLACE時導入作業會刪除已存在表重建表病追加數據注意TRUNCATE選項不適用與簇表和 NETWORK_LINK選項

  TRANSFORM

  該選項用於指定是否修改建立對象的DDL語句

  TRANSFORM=transform_namevalue[object_type]

  Transform_name用於指定轉換名其中SEGMENT_ATTRIBUTES用於標識段屬性(物理屬性存儲屬性表空間日志等信息) STORAGE用於標識段存儲屬性VALUE用於指定是否包含段屬性或段存儲屬性object_type用於指定對象類型

  Impdp scott/tiger directory=dump dumpfile=tabdmp

  Transform=segment_attributesntable

  TRANSPORT_DATAFILES

  該選項用於指定搬移空間時要被導入到目標數據庫的數據文件

  TRANSPORT_DATAFILE=datafile_name

  Datafile_name用於指定被復制到目標數據庫的數據文件

  Impdp system/manager DIRECTORY=dump DUMPFILE=ttsdmp

  TRANSPORT_DATAFILES=/user/data/tbsf

  調用IMPDP

   導入表

   Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tabdmp
TABLES=deptemp
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tabdmp
TABLES=scottdeptscottemp REMAP_SCHEMA=SCOTT:SYSTEM

  第一種方法表示將DEPT和EMP表導入到SCOTT方案中第二種方法表示將DEPT和EMP表導入的SYSTEM方案中

  注意如果要將表導入到其他方案中必須指定REMAP SCHEMA選項

  導入方案

   Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schemadmp
SCHEMAS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schemadmp
SCHEMAS=scott REMAP_SCHEMA=scott:system

  導入表空間

   Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespacedmp
TABLESPACES=user

  導入數據庫

   Impdp system/manager DIRECTORY=dump_dir DUMPFILE=fulldmp FULL=y

  EXPDP/IMPDP的停止與重啟動

  EXPDP和IMPDP的本質在於通過API調用把傳統的EXP/IMP類交付式模式的操作轉變成數據庫內部的job任務從而實現了任務的可終止與重啟動

  c\expdp test/test@acf directory=dpdata dumpfile=fulldmp full=y job_name=expfull在執行過程中可以拿下Ctrl+C組合鍵退出當前交互模式退出之後導出操作不會停止這不同於Oracle以前的EXP以前的EXP如果退出交互式模式就會出錯終止導出任務

  在Oracle 由於EXPDP是數據庫內部定義的任務已經與客戶端無關退出交互之後會進入export的命令行模式此時支持status等查看命令

  Export> status

  如果想停止改任務可以發出stop_job命令

  Export> stop_job

  如果有命令行提示

  是否確實要停止此作業([Y]/N)

  或Are you sure you wish to stop this job ([yes]/no)

  回答應是yes或者no

  接下來可以通過命令行再次連接到這個任務

  c\expdp test/test@acf attach=expfull

  通過start_job命令重新啟動導出

  Export> start_job

  在plsql下查看任務名

  SQL>select * from DBA_DATAPUMP_JOBS ——查看job

  在plsq下查看對應session

   SQL>select sid serial#
   from v$session s dba_datapump_sessions d
   where ssaddr = dsaddr;

  下列命令在交互模式下有效

  注 允許使用縮寫命令 說明 (默認)

  

  CONTINUE_CLIENT 返回到記錄模式如果處於空閒狀態 將重新啟動作業

  EXIT_CLIENT 退出客戶機會話並使作業處於運行狀態

  HELP 總結交互命令

  KILL_JOB 分離和刪除作業

  PARALLEL 更改當前作業的活動 worker 的數目

  PARALLEL=<worker 的數目> START_JOB 啟動/恢復當前作業

  START_JOB=SKIP_CURRENT 在開始作業之前將跳過作業停止時執行的任意操作

  STATUS 在默認值 () 將顯示可用時的新狀態的情況下要監視的頻率 (以秒計) 作業狀態

  STATUS[=interval] STOP_JOB 順序關閉執行的作業並退出客戶機

  STOP_JOB=IMMEDIATE 將立即關閉數據泵作業


From:http://tw.wingwit.com/Article/program/Oracle/201311/18823.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.