Data pump學習筆記

litterbaby發表於2007-04-01
Data pump學習筆記[@more@]

學習筆記

綜述

n 是一個基於伺服器的工具,用於高速的資料地移動

n 底層結構是基於dbms_datapump

n 提供了新一代的匯入和到處工具:expdpimpdp,基於網路的介面

n 是傳統匯入匯出工具的超集

體系結構

n 直接路徑APIDPAPI

n 外部表服務

n dbms_metadata

n dbms_datapump

n Expdpimpdp

Data dump的匯入匯出綜述

資料泵的匯入匯出是Oracle10的一個新的工具,雖然和傳統的匯入匯出命令相似,但是兩個是獨立的產品。

資料泵的匯出是一個工具,是將資料匯出到一個作業系統檔案中,這個作業系統檔案被成為匯出檔案集。匯入則是相反的過程

這些工具能夠被用於從遠端資料庫直接匯出到一個匯出檔案集中,或者直接從一個源資料庫匯入到目標資料庫,而不需要任何的其他檔案的輔助。這就是所說的網路模式,這個模式在從一個只讀源資料庫中匯出資料非常有用。

在每一個資料泵操作的核心是一個主表(MT),這個表示在使用者允許資料泵job的時候在使用者的模式下新增的,MT用來維護這個job的所有方面。這個MT在一個基於檔案的匯出job中被建立,被作為最後一步寫入到匯出檔案集中。可逆而言,在基於檔案的匯入操作中的第一步就是匯入這個MT到當前的使用者模式中,然後用於匯入時,新增所有物件的順序。

當資料泵正常結束的時候,這個MT被刪除。

資料泵匯入匯出的好處

資料訪問模式

直接路徑

外部表

Detachment from and reattachment to long-running jobs

資料泵job的重啟

Fine-grained物件和資料的選擇

外在資料庫版本的規範

並行執行(只能用於企業版)

匯出job空間消耗估計

分散式環境的網路模式

在匯入時重新定位能力

資料舉例和資料壓縮

資料泵能夠自動決定所使用的資料訪問模式:直接路徑或者外部表模式

資料泵能夠detach或者reattach一個長時間執行的job,而不影響job自身,允許在執行的時候從不同的位置監視job。所有被停止的資料泵job能夠不丟失資料的情況下重新啟動,

引數exclude,include,connect是被用於精細物件或者資料的選擇。

能夠透過引數version為所移動的物件指定資料庫版本。新增一個匯出檔案集,這個檔案集支援資料泵的前一版本的oracle資料庫。這個版本僅被未來的版本保留。

使用引數parallel指定在匯出job上操作的活動的執行伺服器上的最大執行緒數目

使用estimate_only引數指定估計匯出job消耗的空間

網路模式能夠將遠端資料庫直接匯出到一個匯出檔案集中,這種需要使用資料庫鏈連線到源系統上

在匯入中,能夠改變目標資料檔案的名,schema和表空間

使用引數sample值得在用於Oracle 10g中,從源資料庫中匯出資料能夠指定一定比例的資料作為取樣

使用引數compression描述是否在匯出檔案中資料是否被壓縮,這樣會佔有更少的磁碟,如果壓縮了。在匯入的時候會自動解壓。

一般的用處

客戶端程式是呼叫資料泵API,一個客戶端不需要在job執行之後,多客戶端可以從一個jobattachdetach,來實現監控的目的

當一個客戶端登陸到oracle資料庫上的時候,一個影子程式將被新增,這個程式服務需要資料泵的API。在收到dbms_datapump.open的請求的時候,影子程式新增job,主要是新增主表,新增AQ佇列用和其他不同的程式於通訊,新增主控制程式。等job執行時候,影子程式的主要任務服務於從客戶端的get_status請求。如果客戶端detach,影子程式也會dies

主控程式MCP,控制資料泵job的執行和順序。維護job的狀態,job的描述,在主表中重啟和匯出檔案資訊。一個MCP被命名為DMnn

在受到start_job請求的時候,MCP根據引數parallel新增幾個工作程式。這幾個工作程式執行的是主MCP請求的任務,被命名為DWnn

如果外部表路徑被選擇作為匯入匯出訪問的模式,工作程式和一定數目的並行執行服務來配合。

直接路徑資料泵:需要考慮的問題

有精細訪問控制的表能夠在插入和選擇模式

Domain index exists for a LOB column

簇表引進

友活動觸發器的表被定義

Global index on partitioned tables

with a single-partition load

BFILE or opaque type columns

Referential integrity constraint

VARRAY columns with an embedded opaque type

資料泵檔案位置

資料泵檔案的三種型別:

匯出檔案,日誌檔案,sql檔案

絕對路徑不被支援

Oracle目錄物件必須被用

檔案位置的優先順序

n Per-file目錄

n Directory引數

n Data_pump_dir環境變數

n Data_pump_dir預設目錄物件

資料泵檔案命名和大小

一個匯出檔案集可以包含多個檔案

Dumpfile定義dump檔案的列表

檔案被逗號分開列表

U模板

Dump檔案的初始數目依賴於:

Parallel引數

Dumpfile引數

Filesize引數決定每一個dump檔案的大小

先前存在地同樣名字的檔案不會被覆蓋

Dumpfile引數指定名字和基於磁碟地dump檔案的目錄。如果是多檔案要是被指定的話,使用逗號隔開,或者使用分開的引數dumpfile指定。如果沒有指定則是使用預設的檔名expdat.dmp。預設,新增的檔案事自動擴充套件的。

Filesize指定的話,每一個檔案是有這個引數來限制,不能擴充套件。

資料泵工具:介面和模式

資料泵匯出匯入介面

命令列

引數檔案

互動命令列

資料庫控制

資料泵匯入匯出模式

n

n 模式

n

n 表空間

n 可轉移表空間

資料泵和過濾

精細物件選擇

-include = object_type[:”name_expr”]

-exclude = object_type[:”name_expr”]

EXCLUDE = VIEW

EXCLUDE = PACKAGE

EXCLUDE = INDEX:”like ‘EMP%’”

資料選擇

-CONTENT = ALL|METADATA_ONLY|DATA_ONLY

-QUERY =[schema.][table_name:]”query_clause”

QUERY=hr.employees:"WHERE department_id in (10,20)

and salary < 1600 ORDER BY department_id"

資料泵匯入的轉換

Remap

使用REMAP_DATAFILE資料檔案

使用REMAP_DATAFILE的表空間

使用REMAP_SCHEMA的模式

資料泵匯入傳送

使用transform,能夠不包含下面的表和索引

Storage tablespace子句

Storage子句

重新新增抽象資料型別的物件標識

改變擴充套件分配和檔案大小

TRANSFORM =

SEGMENT_ATTRIBUTES|STORAGE|OID|PCTSPACE:{y|n|v}[:object type

資料泵job監視檢視

V$session_longops

Dba_datapump_jobs

Dba_datapump_sessions

Export: Release 10.2.0.1.0 - Production on 星期五, 23 6, 2006 14:32:17

Copyright (c) 2003, 2005, Oracle. All rights reserved.

資料泵匯出實用程式提供了一種用於在 Oracle 資料庫之間傳輸

資料物件的機制。該實用程式可以使用以下命令進行呼叫:

示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制匯出的執行方式。具體方法是: 'expdp' 命令後輸入

各種引數。要指定各引數, 請使用關鍵字:

格式: expdp KEYWORD=value KEYWORD=(value1,value2,...,valueN)

示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott

TABLES=(T1:P1,T1:P2), 如果 T1 是分割槽表

USERID 必須是命令列中的第一個引數。

關鍵字 說明 (預設)

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

ATTACH 連線到現有作業, 例如 ATTACH [=作業名]

COMPRESSION 減小有效的轉儲檔案內容的大小

關鍵字值為: (METADATA_ONLY) NONE

CONTENT 指定要解除安裝的資料, 其中有效關鍵字為:

(ALL), DATA_ONLY METADATA_ONLY

DIRECTORY 供轉儲檔案和日誌檔案使用的目錄物件。

DUMPFILE 目標轉儲檔案 (expdat.dmp) 的列表,

例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp

ENCRYPTION_PASSWORD 用於建立加密列資料的口令關鍵字。

ESTIMATE 計算作業估計值, 其中有效關鍵字為:

(BLOCKS) STATISTICS

ESTIMATE_ONLY 在不執行匯出的情況下計算作業估計值。

EXCLUDE 排除特定的物件型別, 例如 EXCLUDE=TABLE:EMP

FILESIZE 以位元組為單位指定每個轉儲檔案的大小。

FLASHBACK_SCN 用於將會話快照設定回以前狀態的 SCN

FLASHBACK_TIME 用於獲取最接近指定時間的 SCN 的時間。

FULL 匯出整個資料庫 (N)

HELP 顯示幫助訊息 (N)

INCLUDE 包括特定的物件型別, 例如 INCLUDE=TABLE_DATA

JOB_NAME 要建立的匯出作業的名稱。

LOGFILE 日誌檔名 (export.log)

NETWORK_LINK 連結到源系統的遠端資料庫的名稱。

NOLOGFILE 不寫入日誌檔案 (N)

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

PARFILE 指定引數檔案。

QUERY 用於匯出表的子集的謂詞子句。

SAMPLE 要匯出的資料的百分比;

SCHEMAS 要匯出的方案的列表 (登入方案)

STATUS 在預設值 (0) 將顯示可用時的新狀態的情況下,

要監視的頻率 (以秒計) 作業狀態。

TABLES 標識要匯出的表的列表 - 只有一個方案。

TABLESPACES 標識要匯出的表空間的列表。

TRANSPORT_FULL_CHECK 驗證所有表的儲存段 (N)

TRANSPORT_TABLESPACES 要從中解除安裝後設資料的表空間的列表。

VERSION 要匯出的物件的版本, 其中有效關鍵字為:

(COMPATIBLE), LATEST 或任何有效的資料庫版本。

下列命令在互動模式下有效。

: 允許使用縮寫

命令 說明

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

ADD_FILE 向轉儲檔案集中新增轉儲檔案。

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

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

FILESIZE 後續 ADD_FILE 命令的預設檔案大小 (位元組)

HELP 總結互動命令。

KILL_JOB 分離和刪除作業。

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

PARALLEL=的數目>

START_JOB 啟動/恢復當前作業。

STATUS 在預設值 (0) 將顯示可用時的新狀態的情況下,

要監視的頻率 (以秒計) 作業狀態。

STATUS[=interval]

STOP_JOB 順序關閉執行的作業並退出客戶機。

STOP_JOB=IMMEDIATE 將立即關閉

資料泵作業。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-908019/,如需轉載,請註明出處,否則將追究法律責任。

相關文章