oracle data pump
在Oracle 10g中, exp 和 imp 被重新設計為Oracle Data
Pump(雖然Oracle 仍然裝載了exp 和imp,並完全地支援它們)。如果你以前使用過exp 和 imp,那麼Data Pump
的命令列程式的語法對你來說就不陌生了。
Data Pump 是執行在資料庫內部的, 而不是像一個獨立的客戶端應用程式一樣存在。這就意味著這部分的工作在一定程度上獨立於發起執行匯入或者匯出任務的程式 。 在一臺機器上 (例如一個定期任務) 可以開始執行匯出的任務,而另一臺機器上 (例如 DBA 的 手提電腦) 可以對任務的執行狀態進行監控。 也正因為任務是執行在資料庫內部的,所以如果你要將資料匯出到一個檔案中,那麼你首先要做的事情就是為輸出路徑建立一個資料庫的DIRECTORY 物件,然後給將要進行資料匯入和匯出的使用者授權訪問,命令如下:
create or replace directory dumpdir as 'c:';
grant read,write on directory dumpdir to scott;
一旦該路經被授權後,就可以透過以下的命令引數匯出使用者的物件,這些命令與 exp 和 imp 中的命令非常相似:
expdp scott/tiger directory=dumpdir dumpfile=scott.dmp
當匯出工作開始執行以後,可以透過按下[Ctrl]C (或者是客戶端中具有相同功能的按鍵) 來“中止”匯出任務。這樣就不會再有資料傳送到你的客戶端了,但是該任務在資料庫中仍然還在執行。你的客戶端會進入互動模式(出現Export>提 示符)。 在提示符後輸入status就可以檢視到當前有哪些任務正在執行。如果在客戶端輸入expdp attach=,你就可以連線到一個正在執行的任務上。
Data Pump 並不是一定要寫入到檔案中。現在可以透過選項設定就可以將資料庫物件透過SQL*Net直接導到一個遠端資料庫中。你所要做的就僅僅是指定remote 選項,然後加上與遠端資料庫連線的連線字串。 這就有點類似於對資料庫的一次性複製過程。
Data Pump 執行起來要比原來的exp 和 imp 客戶端命令快得多。Data Pump 執行得更快是因為它有一個新特性——“parallel”選項。選定這個選項後,Data Pump 將會以四個不同的執行緒同時壓送資料。下面舉個例子,我先執行下面的任務,然後按 [Ctrl]C,接著察看後臺任務的狀態:
expdp scott/tiger directory=dumpdir dumpfile=scott2.dmp parallel=4
job_name=scott2
Export: Release 10.1.0.2.0 - Production on Friday, 31 December, 2004 14:54
Copyright (c) 2003, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
Production
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting "SCOTT"."SCOTT2": scott/******** directory=dumpdir
dumpfile=scott2.dmp parallel=4 job_name=scott2
Estimate in progress using BLOCKS method...
Export> status
Job: SCOTT2
Operation: EXPORT
Mode: SCHEMA
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 4
Job Error Count: 0
Dump File: C:SCOTT2.DMP
bytes written: 4,096
Worker 1 Status:
State: EXECUTING
Worker 2 Status:
State: WORK WAITING
Worker 3 Status:
State: WORK WAITING
Worker 4 Status:
State: WORK WAITING
其實不僅僅只有Data Pump 是在資料庫內部執行的,事實上大部分的命令列性質的命令都是在資料庫內部執行的,只不過是透過一個PL/SQL API—— DBMS_DATAPUMP顯示出來。例如,可以透過以下的PL/SQL程式碼來實現透過PL/SQL 包啟動匯出任務:
declare
handle number;
begin
handle := dbms_datapump.open('EXPORT','SCHEMA');
dbms_datapump.add_file(handle,'SCOTT3.DMP','DUMPDIR');
dbms_datapump.metadata_filter(handle,'SCHEMA_EXPR','= ''SCOTT''');
dbms_datapump.set_parallel(handle,4);
dbms_datapump.start_job(handle);
dbms_datapump.detach(handle);
end; /
仔細研究 Data Pump ,你可以瞭解到 Data Pump 其他更多的新特性。例如,Data Pump 可以對資料檔案重新命名,可以將物件移動到不同的表空間中,還可以透過使用萬用字元結構或者是語句來查詢圖表物件或是圖表。Data Pump 還可以用作外部表的介面 (例如,可以將一個表與儲存在一個資料泵匯出檔案中的資料關聯起來,這就像Oracle 9i 以及更高版本中的Oracle Loader 介面一樣)。[@more@]
Data Pump 是執行在資料庫內部的, 而不是像一個獨立的客戶端應用程式一樣存在。這就意味著這部分的工作在一定程度上獨立於發起執行匯入或者匯出任務的程式 。 在一臺機器上 (例如一個定期任務) 可以開始執行匯出的任務,而另一臺機器上 (例如 DBA 的 手提電腦) 可以對任務的執行狀態進行監控。 也正因為任務是執行在資料庫內部的,所以如果你要將資料匯出到一個檔案中,那麼你首先要做的事情就是為輸出路徑建立一個資料庫的DIRECTORY 物件,然後給將要進行資料匯入和匯出的使用者授權訪問,命令如下:
create or replace directory dumpdir as 'c:';
grant read,write on directory dumpdir to scott;
一旦該路經被授權後,就可以透過以下的命令引數匯出使用者的物件,這些命令與 exp 和 imp 中的命令非常相似:
expdp scott/tiger directory=dumpdir dumpfile=scott.dmp
當匯出工作開始執行以後,可以透過按下[Ctrl]C (或者是客戶端中具有相同功能的按鍵) 來“中止”匯出任務。這樣就不會再有資料傳送到你的客戶端了,但是該任務在資料庫中仍然還在執行。你的客戶端會進入互動模式(出現Export>提 示符)。 在提示符後輸入status就可以檢視到當前有哪些任務正在執行。如果在客戶端輸入expdp attach=,你就可以連線到一個正在執行的任務上。
Data Pump 並不是一定要寫入到檔案中。現在可以透過選項設定就可以將資料庫物件透過SQL*Net直接導到一個遠端資料庫中。你所要做的就僅僅是指定remote 選項,然後加上與遠端資料庫連線的連線字串。 這就有點類似於對資料庫的一次性複製過程。
Data Pump 執行起來要比原來的exp 和 imp 客戶端命令快得多。Data Pump 執行得更快是因為它有一個新特性——“parallel”選項。選定這個選項後,Data Pump 將會以四個不同的執行緒同時壓送資料。下面舉個例子,我先執行下面的任務,然後按 [Ctrl]C,接著察看後臺任務的狀態:
expdp scott/tiger directory=dumpdir dumpfile=scott2.dmp parallel=4
job_name=scott2
Export: Release 10.1.0.2.0 - Production on Friday, 31 December, 2004 14:54
Copyright (c) 2003, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
Production
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting "SCOTT"."SCOTT2": scott/******** directory=dumpdir
dumpfile=scott2.dmp parallel=4 job_name=scott2
Estimate in progress using BLOCKS method...
Export> status
Job: SCOTT2
Operation: EXPORT
Mode: SCHEMA
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 4
Job Error Count: 0
Dump File: C:SCOTT2.DMP
bytes written: 4,096
Worker 1 Status:
State: EXECUTING
Worker 2 Status:
State: WORK WAITING
Worker 3 Status:
State: WORK WAITING
Worker 4 Status:
State: WORK WAITING
其實不僅僅只有Data Pump 是在資料庫內部執行的,事實上大部分的命令列性質的命令都是在資料庫內部執行的,只不過是透過一個PL/SQL API—— DBMS_DATAPUMP顯示出來。例如,可以透過以下的PL/SQL程式碼來實現透過PL/SQL 包啟動匯出任務:
declare
handle number;
begin
handle := dbms_datapump.open('EXPORT','SCHEMA');
dbms_datapump.add_file(handle,'SCOTT3.DMP','DUMPDIR');
dbms_datapump.metadata_filter(handle,'SCHEMA_EXPR','= ''SCOTT''');
dbms_datapump.set_parallel(handle,4);
dbms_datapump.start_job(handle);
dbms_datapump.detach(handle);
end; /
仔細研究 Data Pump ,你可以瞭解到 Data Pump 其他更多的新特性。例如,Data Pump 可以對資料檔案重新命名,可以將物件移動到不同的表空間中,還可以透過使用萬用字元結構或者是語句來查詢圖表物件或是圖表。Data Pump 還可以用作外部表的介面 (例如,可以將一個表與儲存在一個資料泵匯出檔案中的資料關聯起來,這就像Oracle 9i 以及更高版本中的Oracle Loader 介面一樣)。[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017654/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料泵(Oracle Data Pump) 19cOracle
- 【Data Pump】Data Pump的並行引數原理並行
- Oracle Data Pump 11G 資料泵元件Oracle元件
- 【Data Pump】expdp/impdp Job基本管理
- 【Data Pump】理解expdp中的ESTIMATE和ESTIMATE_ONLY引數
- Oracle data link建立Oracle
- 4.1.6 Oracle Restart 與 Oracle Data Guard 整合OracleREST
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- 1 關於 Oracle Data GuardOracle
- 2 Oracle Data Guard 安裝Oracle
- 1 Oracle Data Guard Broker 概念Oracle
- Oracle Data Guard和Broker概述Oracle
- 【ASK_ORACLE】Oracle Data Guard(一)DG架構Oracle架構
- ORACLE SELECT INTO NO_DATA_FOUND問題Oracle
- Step by Step Data Replication Using Oracle GoldenGateOracleGo
- 8 Oracle Data Guard Broker 屬性Oracle
- 9 Oracle Data Guard 故障診斷Oracle
- oracle data Format Models---二(轉)OracleORM
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive
- Oracle 19c Concepts(05):Data IntegrityOracle
- use azure data studio to create external table for oracleOracle
- oracle 11g data guard維護Oracle
- 【DATAGUARD】Oracle19c Data Guard BrokerOracle
- 2 開始實用 Oracle Data GuardOracle
- 19 Oracle Data Guard 相關檢視Oracle
- Oracle 19c Concepts(09):Data Concurrency and ConsistencyOracle
- 6 Oracle Data Guard Protection Modes 保護模式Oracle模式
- 15 Oracle Data Guard Scenarios 保護場景OracleiOS
- A Oracle Data Guard Broker 升級和降級Oracle
- Oracle RAC日常運維-DATA磁碟組故障Oracle運維
- G008-ORACLE-DG ORACLE 19C Active Data Guard DML RedirectionOracle
- 使用Data Guard Broker進行Data Guard物理備用庫配置(Oracle 19c)Oracle
- [20181018]Oracle Database 12c: Data Redaction.txtOracleDatabase
- Oracle 12.2 How to Generate AWRs in Active Data Guard Standby DatabasesOracleDatabase
- Oracle Data Guard Feature 12cR2系列(二)Oracle
- Oracle Data Guard Feature 12cR2系列(一)Oracle
- oracle ORA-01157: cannot identify/lock data file 64OracleIDE
- 【ASK_ORACLE】Oracle Data Guard(二)物理備庫的概念和優勢Oracle