輕松實現快速數據遷移
數據遷移又被稱為分級存儲管理,快速的數據遷移能夠在很大程度上提高數據庫工作中的效率,為大家的工作帶來很大的便利,那么下文中就開始為大家介紹輕松實現快速數據遷移的方法。
如果只需將特定的表或表集合進行轉移,那么Lora可以在expdp命令中使用TABLES=<tablelist>子句來只下載特定的表或表集合。
拖出表空間
作為第三種選擇,Lora建議使用Oracle數據庫10g中的新工具,它簡化了可移動表空間的移動方法,因此只涉及執行一個打包過程。在這種方法中,用戶利用所提供的DBMS_STREAMS_TABLESPACE_ADM包從源系統中"拖?quot;表空間。這個包使用數據泵轉移表空間并將數據文件轉換成目標系統的格式。 它還自動執行任何所需的字節順序變換。
下面給出在最簡單的情況下使用這種方法的過程--涉及單個簡單表空間(更復雜的情況在下一節介紹)。 如果一個表空間只有一個數據文件,則這個表空間稱為簡單表空間。Lora演示了DBMS_STREAMS_TABLESPACE_ADM包中PULL_SIMPLE_TABLESPACE過程的使用方法:
1.在存放數據文件的目錄所在的(遠程)數據倉庫數據庫中創建一個目錄對象。
CREATE DIRECTORY dbf_dir AS '/u01/oradata/dw';
2.設置遠程數據庫中的表空間TS1為只讀。
ALTER TABLESPACE TS1 READ ONLY
剩下的一些步驟在本地(數據集市)數據庫中完成。
3.創建一個連接到遠程(數據倉庫)數據庫(在Lora的例子中是dwdb)的數據庫鏈接。
4.創建一個數據文件將被轉移到其中的目錄對象。
CREATE DIRECTORY dbf_dir AS '/u01/oradata/mart';
5.從遠程數據庫中拖出表空間。
BEGIN
DBMS_STREAMS_TABLESPACE_ADM6 b;
.PULL_SIMPLE_TABLESPACE
tablespace_name => 'TS1',
database_link => 'dwdb'
directory_object => 'DBF_DIR',
conversion_extension => 'linux'
);
END;
該操作在后臺完成了許多步驟:設置源表空間為只讀;用數據泵導出工具進行一次表空間的元數據轉儲;用DBMS_FILE_TRANSFER包移動數據文件和轉儲的文件;把源表空間恢復到其最初的讀寫狀態;使用數據泵導入工具將表空間插入到本地數據庫中。由于源數據庫運行在Linux上,而目標數據庫運行在Solaris上,因此這一操作首先復制原始數據文件(Linux的文件格式),然后將它轉換到目標平臺上(Solaris)的文件格式。復制過程保持最初被轉移的文件,而創建一個新文件用于轉換。新文件與最初的文件同名,但具有CONVERSION_EXTENSION參數指定的linux擴展名。在目標數據庫中創建的表空間為只讀表空間。
關于實現快速數據遷移的內容就為大家介紹到這里, 相信上文中的內容會讓大家覺得受益匪淺,希望大家都能夠從中有所收獲。
【編輯推薦】