oracle 資料泵解析
一、知曉IMPDP命令
C:\>impdp -help
Import: Release 11.1.0.7.0 - Production on 星期六, 28 9月, 2013 15:37:03
Copyright (c) 2003, 2007, Oracle. All rights reserved.
資料泵匯入實用程式提供了一種用於在 Oracle 資料庫之間傳輸
資料物件的機制。該實用程式可以使用以下命令進行呼叫:
示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
您可以控制匯入的執行方式。具體方法是: 在 'impdp' 命令後輸入各種引數。要指定各引數, 請使用關鍵字:
格式: impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
USERID 必須是命令列中的第一個引數。
關鍵字 說明 (預設)
------------------------------------------------------------------------------
ATTACH 連線到現有作業, 例如 ATTACH [=作業名]。
CONTENT 指定要載入的資料, 其中有效關鍵字為:(ALL),DATA_ONLY和METADATA_ONLY。
DATA_OPTIONS 資料層標記,其中唯一有效的值為:SKIP_CONSTRAINT_ERRORS-約束條件錯誤不嚴重。
DIRECTORY 供轉儲檔案,日誌檔案和sql檔案使用的目錄物件。
DUMPFILE 要從(expdat.dmp)中匯入的轉儲檔案的列表,例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD 用於訪問加密列資料的口令關鍵字。此引數對網路匯入作業無效。
ESTIMATE 計算作業估計值, 其中有效關鍵字為:(BLOCKS)和STATISTICS。
EXCLUDE 排除特定的物件型別, 例如 EXCLUDE=TABLE:EMP。
FLASHBACK_SCN 用於將會話快照設定回以前狀態的 SCN。
FLASHBACK_TIME 用於獲取最接近指定時間的 SCN 的時間。
FULL 從源匯入全部物件(Y)。
HELP 顯示幫助訊息(N)。
INCLUDE 包括特定的物件型別, 例如 INCLUDE=TABLE_DATA。
JOB_NAME 要建立的匯入作業的名稱。
LOGFILE 日誌檔名(import.log)。
NETWORK_LINK 連結到源系統的遠端資料庫的名稱。
NOLOGFILE 不寫入日誌檔案。
PARALLEL 更改當前作業的活動worker的數目。
PARFILE 指定引數檔案。
PARTITION_OPTIONS 指定應如何轉換分割槽,其中有效關鍵字為:DEPARTITION,MERGE和(NONE)
QUERY 用於匯入表的子集的謂詞子句。
REMAP_DATA 指定資料轉換函式,例如REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO
REMAP_DATAFILE 在所有DDL語句中重新定義資料檔案引用。
REMAP_SCHEMA 將一個方案中的物件載入到另一個方案。
REMAP_TABLE 表名重新對映到另一個表,例如 REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。
REMAP_TABLESPACE 將表空間物件重新對映到另一個表空間。
REUSE_DATAFILES 如果表空間已存在, 則將其初始化 (N)。
SCHEMAS 要匯入的方案的列表。
SKIP_UNUSABLE_INDEXES 跳過設定為無用索引狀態的索引。
SQLFILE 將所有的 SQL DDL 寫入指定的檔案。
STATUS 在預設值(0)將顯示可用時的新狀態的情況下,要監視的頻率(以秒計)作業狀態。
STREAMS_CONFIGURATION 啟用流後設資料的載入
TABLE_EXISTS_ACTION 匯入物件已存在時執行的操作。有效關鍵字:(SKIP),APPEND,REPLACE和TRUNCATE。
TABLES 標識要匯入的表的列表。
TABLESPACES 標識要匯入的表空間的列表。
TRANSFORM 要應用於適用物件的後設資料轉換。有效轉換關鍵字為:SEGMENT_ATTRIBUTES,STORAGE,OID和PCTSPACE。
TRANSPORTABLE 用於選擇可傳輸資料移動的選項。有效關鍵字為: ALWAYS 和 (NEVER)。僅在 NETWORK_LINK 模式匯入操作中有效。
TRANSPORT_DATAFILES 按可傳輸模式匯入的資料檔案的列表。
TRANSPORT_FULL_CHECK 驗證所有表的儲存段 (N)。
TRANSPORT_TABLESPACES 要從中載入後設資料的表空間的列表。僅在 NETWORK_LINK 模式匯入操作中有效。
VERSION 要匯出的物件的版本, 其中有效關鍵字為:(COMPATIBLE), LATEST 或任何有效的資料庫版本。僅對 NETWORK_LINK 和 SQLFILE 有效。
下列命令在互動模式下有效。
注: 允許使用縮寫
命令 說明 (預設)
------------------------------------------------------------------------------
CONTINUE_CLIENT 返回到記錄模式。如果處於空閒狀態, 將重新啟動作業。
EXIT_CLIENT 退出客戶機會話並使作業處於執行狀態。
HELP 總結互動命令。
KILL_JOB 分離和刪除作業。
PARALLEL 更改當前作業的活動 worker 的數目。PARALLEL=
START_JOB 啟動/恢復當前作業。START_JOB=SKIP_CURRENT 在開始作業之前將跳過作業停止時執行的任意操作。
STATUS 在預設值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。STATUS[=interval]
STOP_JOB 順序關閉執行的作業並退出客戶機。STOP_JOB=IMMEDIATE 將立即關閉資料泵作業。
備註:紅色標記的選項是比較常用的,需知曉其用法。 |
二、操作例項
1、全庫模式匯入[full]
impdp orcldev/oracle directory=backup_path dumpfile=orcldev_schema.dmp full=Y table_exists_action=replace --如果表已經存在則進行替換操作。
一般來說,在還原資料庫操作的時候,首先要刪除這個使用者,然後在進行impdp還原操作。
eg:
(1)SQL>DROP USER orcldev CASCADE;
(2)impdp orcldev/oracle directory=backup_path dumpfile=orcldev_2013.dmp full=Y
2、Schema模式匯入[schema]
--還原orcldev這個方案(使用者)
impdp orcldev/oracle directory=backup_path dumpfile=orcldev_schema.dmp schemas=orcldev table_exists_action=replace
3、表模式匯入[table]
--還原某個使用者下的具體的表
(1)windows版本:
impdp orcldev/oracle directory=backup_path dumpfile=orcldev_table.dmp tables='TAB_TEST' table_exists_action=replace
(2)unix版本:需要將'單引號進行轉義操作
impdp orcldev/oracle directory=backup_path dumpfile=orcldev_table.dmp tables=\'ius_tran\' table_exists_action=replace
4、表空間模式匯入[tablespace]
impdp orcldev/oracle directory=backup_path dumpfile=orcldev_tablespace.dmp tablespace=user,orcldev
5、傳輸表空間模式匯入[Transportable Tablespace]
(1)Oracle_Online
You cannot export transportable tablespaces and then import them into a database at a lower release level. The target database must be at the same or higher release level as the source database.
The TRANSPORT_TABLESPACES is valid only when the NETWORK_LINK parameter is also specified.
意思就說,目標庫的版本要等於或者高於源資料庫的版本,TRANSPORT_TABLESPACES引數選項有效前提條件是NETWORK_LINK引數需被指定。
查詢資料庫版本號SQL語句:SELECT * FROM v$version;
EG:impdp orcldev/oracle DIRECTORY=dackup_path NETWORK_LINK=db_link_test01 TRANSPORT_TABLESPACES=test0001 TRANSPORT_FULL_CHECK=n TRANSPORT_DATAFILES='app/oradata/test0001.dbf'
(2)建立資料庫dbLink方法:
語法:
CREATE [PUBLIC] DATABASE LINK LINK_NAME
CONNECT TO Username IDENTIFIED BY Password
USING 'ConnectString';
註釋:
1)建立dblink需要有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系統許可權以及用來登入到遠端資料庫的帳號必須有CREATE SESSION許可權。
2)ConnectString指的是在tnsnames.ora檔案中配置的監聽名稱。
3)當GLOBAL_NAME=TRUE時,dblink名必須與遠端資料庫的全域性資料庫名GLOBAL_NAME相同;否則,可以任意命名。
(3)檢視GLOBAL_NAME引數方法:
SQL> show parameters global_name;
NAME TYPE VALUE
----------------------------------- ----------- ------------------------------
global_names boolean FALSE
6、REMAP_SCHEMA引數
眾所周知:IMP工具的FROMUSER和TOUSER引數可以實現將一個使用者的的資料遷移到另外一個使用者。
(1)impdp資料泵使用REMAP_SCHEMA引數來實現不同使用者之間的資料遷移;
語法:
REMAP_SCHEMA=source_schema:target_schema
eg:impdp orcldev/oracle DIRECTORY=backup_path DUMPFILE=oracldev.dmp REMAP_SCHEMA=orcldev:orcltwo
與REMAP_SCHEMA類似的引數選項,如REMAP_TABLESPACE將源表空間的所有物件匯入目標表空間。
7、REMAP_TABLE引數
將源表資料對映到不同的目標表中
eg:impdp orcldev/oracle DIRECTORY=backup_path dumpfile=oracldev.dmp remap_table=TAB_TEST:TEST_TB
資料匯入到TEST_TB表中,但是該表的索引等資訊並沒有相應的建立,需要手工初始化。
8、REMAP_DATAFILE引數
語法:REMAP_DATAFILE=source_datafile:target_datafile
Oracle_Online:
Remapping datafiles is useful when you move databases between platforms that have different file naming conventions. The source_datafile and target_datafile names should be exactly as you want them to appear in the SQL statements where they are referenced. Oracle recommends that you enclose datafile names in quotation marks to eliminate ambiguity on platforms for which a colon is a valid file specification character.
9、PARALLEL引數
使用PARALLEL引數可以提高資料泵還原的效率,前提是必須有多個expdp的檔案,如expdp01.dmp,expdp02.dmp,expdp03dmp等等,不然會有問題。執行impdp命令時,會先啟動一個WOrKER程式將METADATA匯入,然後再啟動多個WORKER程式將資料以及其他物件匯入,所以在前期只會看到一個WOrKER在匯入METADATA,而且IMPDP也需要DUMP檔案是多個,也可以使用%U來進行匯入。
eg: impdp orcldev/oracle directory=backup_path dumpfile=orcldev_schema_%U.dmp schemas=orcldev parallel=4
備註:
而在11GR2後EXPDP和IMDP的WORKER程式會在多個INSTANCE啟動,所以DIRECTORY必須在共享磁碟上,如果沒有設定共享磁碟還是指定cluster=no來防止報錯。
10、CONTENT引數
CONTENT引數選項有ALL,DATA_ONLY和METADATA_ONLY,預設情況是ALL。可以選擇只匯入後設資料或者是隻匯入資料。
EG:impdp orcldev/oracle directory=backup_path dumpfile=orcldev_schema.dmp schemas=orcldev CONTENT=DATA_ONLY
11、include、exclude、parfile、query和version引數選項與EXPDP命令的引數選項一致。
三、資料泵備份(EXPDP命令)
(1)http://www.cnblogs.com/oracle-dba/p/3344230.html
(2)
四、參考資料
ORACLE官網
(1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1457025/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 資料泵Oracle
- oracle資料泵Oracle
- oracle之資料泵Oracle
- Oracle 資料泵的使用Oracle
- oracle 資料泵引數Oracle
- expdp impdp Data Pump(資料泵)使用解析
- 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