簡單談?wù)揤B.NET傳輸表空間
VB.NET還是比較常用的,于是我研究了一下VB.NET傳輸表空間,在這里拿出來和大家分享一下,希望對大家有用。2個(gè)數(shù)據(jù)庫(ltdb和epras),從ltdb導(dǎo)出tsts表空間(用戶ts,包含2個(gè)數(shù)據(jù)文件)到epras
執(zhí)行步驟
1.ltdb導(dǎo)出可傳輸表空間(以sysdba執(zhí)行導(dǎo)出)到dmp文件
2.將ltdb的tsts表空間改為只讀
3.用操作系統(tǒng)命令復(fù)制數(shù)據(jù)文件和dmp文件到另一個(gè)位置給另一個(gè)數(shù)據(jù)庫epras使用。如果在一臺(tái)服務(wù)器上,dmp文件可以不必復(fù)制,復(fù)制完成后,將ltdb的tsts表空間改為可讀寫
4.在epras數(shù)據(jù)庫創(chuàng)建ts用戶(此時(shí)不必授權(quán))
5.導(dǎo)入可VB.NET傳輸表空間(以sysdba執(zhí)行導(dǎo)入)到dmp文件到epras數(shù)據(jù)庫
6.將epras的tsts表空間改為可讀寫,給ts用戶授權(quán)
好處:和數(shù)據(jù)exp/imp相比,速度很快,dmp文件只包含表空間元數(shù)據(jù)10g支持不同平臺(tái)的表空間傳輸,支持大頭/小頭操作系統(tǒng)之間的傳輸在oracle以前的版本中,可傳輸?shù)谋砜臻g的特性可以讓表空間在相同的體系結(jié)構(gòu)和操作系統(tǒng)之間遷移.
在 Oracle 數(shù)據(jù)庫 10g 中,這個(gè)局限消失了:只要操作系統(tǒng)字節(jié)順序相同,您就可以在平臺(tái)之間VB.NET傳輸表空間。一些操作系統(tǒng)(包括 Windows)在低位內(nèi)存地址中用***有效字節(jié)存儲(chǔ)多字節(jié)二進(jìn)制數(shù)據(jù);因此這種系統(tǒng)被稱為低地址低字節(jié)序。相反,其它的操作系統(tǒng)(包括 Solaris)將***有效字節(jié)存儲(chǔ)在低位內(nèi)存地址中,因此這種系統(tǒng)被稱為低地址高字節(jié)序。當(dāng)一個(gè)低地址高字節(jié)序的系統(tǒng)試圖從一個(gè)低地址低字節(jié)序的系統(tǒng)中讀取數(shù)據(jù)時(shí),需要一個(gè)轉(zhuǎn)換過程— 否則,字節(jié)順序?qū)?dǎo)致不能正確解釋讀取的數(shù)據(jù)。
不過,當(dāng)在相同字節(jié)順序的平臺(tái)之間VB.NET傳輸表空間時(shí),不需要任何轉(zhuǎn)換。10g的表空間跨平臺(tái)遷移,較9i就是增加了一個(gè)使用Rman進(jìn)行的文件格式轉(zhuǎn)換的過程.
檢查待轉(zhuǎn)換表空間
- EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('tswin1,tswin2', TRUE);
- PL/SQL procedure successfully completed.
- '是否有沖突
- SELECT * FROM TRANSPORT_SET_VIOLATIONS;
- no rows selected
- '運(yùn)行rman
- rman TARGET /
- CONVERT TABLESPACE tswin1,tswin2
- TO PLATFORM 'Microsoft Windows IA (32-bit)'
- FORMAT '/tmp/rman/%U';
- '在上述例子中,轉(zhuǎn)換后的文件名難于辨認(rèn)并很難與原始文件關(guān)聯(lián)
- '還可以使用其它格式來為數(shù)據(jù)文件命名
- CONVERT TABLESPACE tswin1,tswin2
- TO PLATFORM 'Microsoft Windows IA (32-bit)'
- db_file_name_convert '/tmp/LTDB','/tmp/rman'
- '這將在轉(zhuǎn)換后保留文件名。
- */
【編輯推薦】