在資料庫之間移動表空間

edwardking888發表於2010-07-08

使用者可以利用可移動表空間(transportable tablespace)將Oracle資料庫的一部
分移動到另一個資料庫中,這種操作 還可以跨平臺。使用者可以在資料庫間復
製表空間(tablespace),即首先克隆一個表空間再加入到另一個資料庫;用
戶也可以在資料庫間移動表空間,即從一個Oracle資料庫移出一個表空間,
並放入另一 個資料庫。

通過可移動表空間(transportable tablespace)遷移資料與使用export/import相
比,速度可提高几個數量級。因為使用可移動表空間技術只需複製資料檔案
(datafile), 並整合表空間後設資料(tablespace metadata)即可。使用者在使用
可移動表空間時還可以同時遷移索引資料,因此資料被移動後無需重建索
引。

使用者可以跨平臺移動表空間(tablespace)(跨平臺移動表空間並不支援所有
平臺,但支援大多數平臺)。跨平臺移動表空間的用途有:
● 使內容提供者(content provider)向其在不同平臺上使用Oracle的客戶
釋出結構化資料(structured data)變得更簡單,更高效。
● 簡化了從資料倉儲環境(data warehouse environment)向資料集市環境
(data mart environment)釋出資料的工作。資料集市通常執行在更小
的平臺上。
● 在異構的叢集(heterogeneous cluster)中共享只讀表空間(read only
tablespace)
● 在不同平臺間遷移資料庫

表空間資料庫

表空間資料庫(tablespace repository)是一個表空間的集合。表空間資料庫基
於檔案組資料庫(file group repository),但其中只包含在資料庫間複製或移
動表空間(tablespace)所需的檔案。多個表空間集(tablespace set)可以儲存
在同一個表空間資料庫中,同一個表空間集的不同版本也可以儲存在同一個
表空間資料庫中。在一個表空間資料庫中,同一版本的表空間集由以下檔案
組成:
● 由 Data Pump 為表空間集匯出的檔案
● Data Pump 的匯出日誌檔案
● 組成表空間集的資料檔案(datafile)

如何在資料庫間移動或複製表空間

在複製或移動表空間前,使用者首先將表空間置於只讀狀態,再複製表空間的
資料檔案(datafile),最後使用export/import工具遷移位於資料字典(data
dictionary)中的資料庫後設資料資訊(database metadata information)。
資料檔案以及後設資料匯出檔案必須全部複製到目標資料庫上。移動這些檔案時可以
使用任何用於檔案複製的工具,例如作業系統的複製功能,FTP,或者釋出
到CD中。

複製資料檔案(datafile)並匯入後設資料(metadata)之後,使用者可以選擇是否將表空間(tablespace)置為可讀寫狀態。

在一個將 COMPATIBLE 初始化引數(initialization parameter)設定為10或更
高的Oracle資料庫中首次開啟一個表空間(tablespace)的各個資料檔案
(datafile)時,每個檔案將識別她所處的平臺,之後將識別出的磁碟格式
(disk format)記錄在檔案頭區域(file header block),用於以後的檔案格式
識別(identification)與驗證(verification)。只讀(read only)的檔案在被置
為可讀寫,或離線(offline)檔案被聯機(online)後,Oracle都會將其相容
性提升到與當前資料庫相同。這意味著 Oracle 10g 之前版本的只讀表空間如
果想使用跨平臺移動特性(cross platform. transportable feature),至少要在10g
資料庫中置為可讀寫狀態一次。

提示:
如果一個資料庫的 SYSTEM 表空間為本地管理的(locally
managed),那麼在此資料庫中不能建立資料字典管理的
(dictionary managed)表空間。但是使用者可以使用可移動表空
間(transportable tablespace)功能向此資料庫中加入一個資料字
典管理的表空間,此表空間只能置為只讀狀態。

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

相關文章