oracle10G新特性之資料泵匯出/匯入

antcorps發表於2008-09-23
oracle10G新特性之資料泵匯出/匯入[@more@]

oracle10G新特性之資料泵匯出/匯入
資料泵使用步驟:
1、建立目錄並對賦許可權,如:
create directory wang as '/home/oracle/wang';
grant read on directory wang to username,system;
grant write on directory wang to username,system;
2、資料泵的export選項:
引數 說明
attach 將一個客戶會話連線到一個當前執行的data pump export作業上
content 篩選匯出的內容:data_only、metadata_only、all
directory 指定用於日誌檔案和轉儲檔案集的目的目錄
dumpfile 為轉儲檔案指定名字和目錄
estimate 確定用於估計轉儲檔案大小的方法(blocks或statistics)
estimate_only 一個Y/N標記,用於向data pump指示是否應該匯出資料或只是進行估計
exclude 規定用於排除匯出物件和資料的標準
filesize 規定每個匯出轉儲檔案的最大檔案尺寸
flashback_scn 用於資料庫在匯出過程中閃回的系統更改號(SCN)
flashback_time 用於資料庫在匯出過程中閃回的時間戳
full 在一個full模式匯出下通知data pump下匯出所有的資料和後設資料
help 顯示一個可用的命令和選項的清單
include 規定用於匯出物件和資料的標準
job_name 為作業指定一個名字,預設情況下是系統生成的名字
logfile 匯出日誌的名字和可選的目錄名
network_link 為一個匯出遠端資料庫的data pump作業指定源資料庫連結
nologfile 一個用於禁止建立日誌檔案的Y/N標記
parallel 為data pump export作業設定工作程式數量
parfile 如果有的話,命名要使用的引數檔案
query 在匯出過程中從表中篩選行
schemas 在一個schema模式匯出中命名將匯出的模式
status 顯示data pump 作業的詳細狀態
tables 列出將用於一個table模式匯出而匯出的表和分割槽
tablespaces 列出將匯出的表空間
transport_full_check 指定是否首先應該驗證正在到處的表空間是一個自包含集
tracsport_tablespces 指定一個transportable tablespace模式匯出
version 規定將建立的資料庫物件的版本,以便轉儲檔案可以和早期版本的oracle相容。選項包括compatible、latest和資料庫版本號(不低於10.0.0)

互動式data pump export的引數說明
引數 說明
add_file 新增轉儲檔案
continue_client 退出互動式並進入日誌模式
exit_client 退出客戶會話,但是允許伺服器data pump export作業繼續執行
help 顯示用於匯入的聯機幫助
kill_job 取消當前的作業並釋放相關的客戶會話
parallel 改變用於data pump export作業的工作程式數量
start_job 重新啟動附屬的作業
status 顯示data pump作業的詳細狀態
stop_job 停止作業以便隨後重啟

3、啟動data pump export 作業
可以透過一引數檔案來儲存作業引數,然後透過expdp的parfile引數引用該引數檔案,如:
生成一個db1.par的檔案,內容為:
directory=wang
dumpfile=wang.dmp
content=metadata_only
然後啟動data pump export作業:
expdp wang/wang parfile=db1.par
它將會執行一個schema型別的data pump export(預設的型別),並將輸出(後設資料清單,而不是資料)寫入到以前定義的wang目錄內的
一個檔案中。

(注:後設資料是對資料資源的描述,英文名稱是“Metadata”,通常被解釋為data about data,即關於資料的資料。後設資料是資訊共享和交換的基礎
和前提,用於描述資料集的內容、質量、表示方式、空間參考、管理方式以及資料集的其他特徵。 隨著資訊科技不斷髮展,以及人們對資訊
共享的迫切需求,後設資料技術被應用於更多的領域,如:在圖書館與資訊界,後設資料被定為提供關於資訊資源或資料的一種結構化的資料,
是對資訊資源的結構化的描述;在資料倉儲領域中,後設資料被 被定義為描述資料及其環境的資料;在軟體構造領域,後設資料被定義為在程式
中不是被加工的物件,而是透過其值的改變來改變程式的行為的資料。

MetaData意思是後設資料,也稱之為資料的資料。
資料的資料?
一個資料儲存在共享卷裡時,我們可以直接看到它是一個文件、或圖片、或影片、或資料庫檔案,這些都是資料本身。然而在儲存該資料時,
檔案系統還會產生很多無法直接看到的,與該資料有關的資料,如檔案系統中檔案檢索表,路徑資訊、地址資訊等,而這些資料就稱之為
文件、圖片、影片等在共享卷中的後設資料。
SAN網路儲存共享軟體管理的主要內容就是後設資料,控制後設資料在多主機之間的傳輸。
我們可以在很多地方看到後設資料的儲存,網上DOWN下來的電影本身一個影片檔案資料,而點選右鍵查到看的影片檔案屬性,如儲存路徑、
位元速率、檔案大小、及導演、演員、製作單位等就是影片檔案的後設資料。)


使用exclude、include和query引數
exclude選項的格式如下:
exclude =object_type[:name_clause][,....] 如果規定用content=data_only,則不能指定exclude選項。
如:exclude =schema:"='wang'"
exclude = table:"like 'TEMP%'"
expdp wang/wang exclude=index
object_type可以從dba_objects中找到。
如果是命令,則要跳脫字元,如:
expdp wang/wang exclude=table:"like 'TEMP'"
如果不指定name_clause的值,則排除所有的指定型別的物件。

include選項格式如下:
include =object_type[:name_clause][,....] 如果規定用content=data_only,則不能指定include選項。
如:include=table:"in ('wang','wang1')"
include=procedure

query選項格式如下:
query =[schema.][table_name:]query_clause
如:query=wang.book:'"where rating>2"'

4、data pump import選項
跟data pump export一樣都是基於伺服器的作業執行,可以透過命令列介面、引數檔案、互動式介面來完成。
在此只列出與data pump export選項不一樣的選項:
引數 說明
remap_datafile 在匯入過程中的create library、create tablespace和create directory命令中將源資料檔案的名字改為目標資料檔案
remap_schema 將從源模式匯出的資料匯入到目標模式
remap_tablespace 將從源表空間匯出的資料匯入到目標表空間
reuse_datafiles 指定在full模式匯入過程中create tablespace命令是否重用現有的資料檔案
skip_unusable_indexes 一個Y/N標記,如果為Y,匯入不將資料載入到索引設定為index unusable(索引不可用)狀態的表中
sqlfile 為匯入時將DDL寫入其中的檔案命名,將不會把資料和後設資料載入到目標資料庫中
streams_configuration 一個Y/N標記,用於指定是否應匯入streams配置資訊
table_exists_action 如果正匯入的表已經存在,指示匯入如何進行,可取值skip、append、truncate和replace.如果content=data_only,
預設的值是append;否則預設值是skip
transform 在匯入過程中指示改變段屬性或儲存
transport_datafiles 在一個tracsport_tablespces模式匯入過程中列出要匯入的資料檔案

5、啟動data pump import作業
透過引數檔案啟動data pump import作業,如:
引數檔名為:dp1.par ,內容為:
directory=wang
dumpfile=wang.dmp
comtent=metadata_only
可以使用remap_schema選項來匯入到一個不同於用於匯出的模式中。
remap_schema的格式為:remap_schema=source_schema:target_schema
接下來新建一個使用者
create user passion identified by wang;
grant create session to passion;
grant create table to passion;
grant create index to passion;
grant resource to passion;
修改dp1.par,新增如下內容:
remap_schema=wang:passion
impdp system/passwd parfile=dp1.par

6、轉換匯入的物件:
可以使用transform選項來改變段屬性和儲存要求。transform的格式為:
transform=transform_name:value[:object_type]
transform_name可以取值segment_attributes或storage。可以使用value變數來包含或排除段屬性(物理屬性、儲存屬性、表空間和日誌)。
object_type變數是可選的,並且如果指定該變數,它必須是table或index.
為了從匯入的表中排除匯出的儲存子句,可以向引數檔案中新增如下的語句:
transform=storage:n:table
為了從所有的表和索引中排除匯出的表空間和儲存子句,可以使用如下語句:
transform=segment_attributes:n
當匯入物件時,將為它們分配使用者預設的表空間,並使用分配表空間的預設儲存引數,不再使用匯出的儲存子句。

7、生成SQL
可以為物件(而不是資料)生成SQL並將它儲存在作業系統上的一個檔案中,而不是匯入資料和物件。該檔案將寫到由sqlfile選項指定的目錄
和檔名上,sqlfile選項的格式如下:
sqlfile=[directory_object:]file_name 如提供的引數檔案dp1.par為:
directory=wang
dumpfile=wang.dmp
sqlfile=sql.txt
然後可以執行匯入來填充sql.txt檔案:
impdp wang/wang parfile=dp1.par
sqlfile輸出的是一個純文字檔案。

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

相關文章