萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> 用Oracle 10g Data Pump重組表空間

用Oracle 10g Data Pump重組表空間

Oracle 10g版本對數據輸入與輸出的操作功能進行重新設計,在輸入或輸出工作中增加斷開和連接的功能。對這些功能做微小改動,就可利於DBA表空間的操作。

作為整體單元輸出表空間

過去的輸出和輸入功能有3種模式:依賴於對象輸出,如索引的單個表格;輸出某個用戶所有的對象;輸出整個數據庫。但是表空間是一個難於處理的問題。不同用戶的對象存儲在給定的表空間中,但是某些對象可能存儲在其它表空間。

因此,唯一的解決方法則是使用查詢數據字典查找列表及其從屬主,然後使用“table-mode export”輸出單個整體單元。

Oracle 10g版本中,由於包含輸出“Data Pump”(expdp),可以直接從表空間輸出所有對象。TABLESPACES參數允許指定需要輸出的表空間。

TABLESPACES=name [,...]

如果數據庫繼承很多基於字典的表空間,以上方法顯得更加非常有用。並且,可在本地重新創建表空間而減少碎片,然後再重新導入內容。

在輸入時重命名數據文件名

如果將數據庫從一平台轉移到另一平台,在數據文件導入之前,DBA需要預先創建表空間。為什麼呢?因為在轉儲文件中包含原始數據庫操作系統格式的數據文件路徑,將轉儲文件輸入到其他操作系統時,則有可能產生錯誤。

在Oracle 10g版本的輸入(impdp)功能,其REMAP_DATAFILE參數可重命名數據文件,以消除以上問題。其格式如下:

REMAP_DATAFILE=source_datafile:target_datafile

這一選項只作用於FULL輸入,並且指定的userID必須為IMP_FULL_DATABASE。

輸入時更改表空間名稱

Impdp功能允許向不同的表空間加載對象。在10g版本出現以前,這一操作非常復雜。首先,因為沒有寫操作權限,必須移除原始表空間的限額,然後再設置表空間。

再輸入過程中,原始表空間中的對象可以存儲在設置後的表空間中。當任務完成後,必須進行將表空間恢復到原來狀態。

在10g輸入中,REMAP_TABLESPACE參數設置使得這一工作大大簡化。只需要對目標表空間進行限額,而不需要其他條件。設置參數的格式如下:

REMAP_TABLESPACE=source_tablespace:target_tablespace

copyright © 萬盛學電腦網 all rights reserved