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