- 相關(guān)推薦
關(guān)于數(shù)據(jù)庫中跨平臺(tái)遷移方法介紹
數(shù)據(jù)庫中跨平臺(tái)遷移方法介紹
一、遷移方法介紹:
exp/imp:
這也算是最常用最簡(jiǎn)單的方法了,一般是基于應(yīng)用的owner級(jí)做導(dǎo)出導(dǎo)入。
操作方法為:在新庫建立好owner和表空間,停老庫的應(yīng)用,在老庫做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,傳dmp文件到新庫,在新庫做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.
優(yōu)缺點(diǎn):優(yōu)點(diǎn)是可以跨平臺(tái)使用;缺點(diǎn)是停機(jī)時(shí)間長(zhǎng),停機(jī)時(shí)間為從exp到網(wǎng)絡(luò)傳輸?shù)叫聨欤偌由蟟mp的時(shí)間。
存儲(chǔ)遷移:
這種情況下,數(shù)據(jù)文件、控制文件、日志文件、spfile都在存儲(chǔ)上(一般情況下是裸設(shè)備),我們可以直接把存儲(chǔ)掛到新機(jī)器上,然后在新機(jī)器上啟動(dòng)數(shù)據(jù)庫。
操作方法:將老庫的pfile(因?yàn)槔锩嬗兄赶蚵阍O(shè)備的spfile鏈接),tnsnames.ora,listener.ora,密碼文件傳到新庫的對(duì)應(yīng)位置。將存儲(chǔ)切至新機(jī),或者用文件拷貝或dd的方式復(fù)制數(shù)據(jù)文件,啟動(dòng)數(shù)據(jù)庫。
優(yōu)缺點(diǎn):優(yōu)點(diǎn)是該遷移方式非常簡(jiǎn)單,主要的工作是主機(jī)工程師的工作,dba只需配合即可,停機(jī)時(shí)間為當(dāng)庫、切存儲(chǔ)、起庫的時(shí)間。缺點(diǎn)是要求新老庫都是同一平臺(tái),是相同的數(shù)據(jù)庫版本。
利用data guard遷移:
用dg我們不僅可以用來做容災(zāi),物理的dg我們還可以作為遷移的方式。
操作方法:可見http://www.oracleblog.cn/study-note/dg-created-by-rman/或者h(yuǎn)ttp://www.oracleblog.cn/study-note/create-dg-by-rman-one-datafile-by-one-datafile/或者其他相關(guān)網(wǎng)文。注意switch over之后,可以將dg拆掉,去掉log_archive_dest_2、FAL_SERVER、FAL_CLIENT、standby_file_management參數(shù)。另外還要注意如果用rman做dg,注意手工添加tempfile。
優(yōu)缺點(diǎn):優(yōu)點(diǎn)是停機(jī)時(shí)間短,停機(jī)時(shí)間為switch over的時(shí)間。缺點(diǎn):主機(jī)必須雙份、存儲(chǔ)必須雙份。
用rman做遷移:
rman比較適合于跨文件系統(tǒng)的遷移,如同平臺(tái)下的不同文件系統(tǒng)。
1.傳歸檔日志,并且對(duì)歸檔進(jìn)行做recover:recover database until sequence = 歸檔的序號(hào) thread = 1;
2.對(duì)數(shù)據(jù)庫open resetlogs:RMAN>sql 'alter database open resetlogs';
3.alter tablespace temp add tempfile 'XXXXXX' size XXM reuse;
優(yōu)缺點(diǎn):優(yōu)點(diǎn)是可以跨文件系統(tǒng),停機(jī)時(shí)間少。缺點(diǎn)是要時(shí)刻關(guān)注這歸檔日志,做recover的時(shí)候一個(gè)都不能少!
二、遷移樣式介紹:
1、直接映射,原來是什么就是什么,原封不動(dòng)照搬過來,對(duì)這樣的規(guī)則,如果數(shù)據(jù)源字段和目標(biāo)字段長(zhǎng)度或精度不符,需要特別注意看是否真的可以直接映射還是需要做一些簡(jiǎn)單運(yùn)算。
2、字段運(yùn)算,數(shù)據(jù)源的一個(gè)或多個(gè)字段進(jìn)行數(shù)學(xué)運(yùn)算得到的目標(biāo)字段,這種規(guī)則一般對(duì)數(shù)值型字段而言。
3、參照轉(zhuǎn)換,在轉(zhuǎn)換中通常要用數(shù)據(jù)源的一個(gè)或多個(gè)字段作為Key,去一個(gè)關(guān)聯(lián)數(shù)組中去搜索特定值,而且應(yīng)該只能得到唯一值。這個(gè)關(guān)聯(lián)數(shù)組使用Hash算法實(shí)現(xiàn)是比較合適也是最常見的,在整個(gè)ETL開始之前,它就裝入內(nèi)存,對(duì)性能提高的幫助非常大。
4、字符串處理,從數(shù)據(jù)源某個(gè)字符串字段中經(jīng)?梢垣@取特定信息,例如身份證號(hào)。而且,經(jīng)常會(huì)有數(shù)值型值以字符串形式體現(xiàn)。對(duì)字符串的操作通常有類型轉(zhuǎn)換、字符串截取等。但是由于字符類型字段的隨意性也造成了臟數(shù)據(jù)的隱患,所以在處理這種規(guī)則的時(shí)候,一定要加上異常處理。
5、空值判斷,對(duì)于空值的處理是數(shù)據(jù)倉(cāng)庫中一個(gè)常見問題,是將它作為臟數(shù)據(jù)還是作為特定一種維成員?這恐怕還要看應(yīng)用的情況,也是需要進(jìn)一步探求的。但是無論怎樣,對(duì)于可能有NULL值的字段,不要采用“直接映射”的規(guī)則類型,必須對(duì)空值進(jìn)行判斷,目前我們的建議是將它轉(zhuǎn)換成特定的值。
6、日期轉(zhuǎn)換,在數(shù)據(jù)倉(cāng)庫中日期值一般都會(huì)有特定的,不同于日期類型值的表示方法,例如使用8位整型20040801表示日期。而在數(shù)據(jù)源中,這種字段基本都是日期類型的,所以對(duì)于這樣的規(guī)則,需要一些共通函數(shù)來處理將日期轉(zhuǎn)換為8位日期值、6位月份值等。
7、日期運(yùn)算,基于日期,我們通常會(huì)計(jì)算日差、月差、時(shí)長(zhǎng)等。一般數(shù)據(jù)庫提供的日期運(yùn)算函數(shù)都是基于日期型的,而在數(shù)據(jù)倉(cāng)庫中采用特定類型來表示日期的話,必須有一套自己的日期運(yùn)算函數(shù)集。
8、聚集運(yùn)算,對(duì)于事實(shí)表中的度量字段,他們通常是通過數(shù)據(jù)源一個(gè)或多個(gè)字段運(yùn)用聚集函數(shù)得來的,這些聚集函數(shù)為SQL標(biāo)準(zhǔn)中,包括sum,count,avg,min,max。
9、既定取值,這種規(guī)則和以上各種類型規(guī)則的差別就在于它不依賴于數(shù)據(jù)源字段,對(duì)目標(biāo)字段取一個(gè)固定的或是依賴系統(tǒng)的值。
【數(shù)據(jù)庫中跨平臺(tái)遷移方法介紹】相關(guān)文章:
面試中自我介紹的方法07-01
戶口遷移介紹信04-27
使用Java程序連接各種數(shù)據(jù)庫的方法07-01
職場(chǎng)中的進(jìn)步方法07-03
面試中改錯(cuò)的方法07-03
面試中化險(xiǎn)為夷的方法07-03
在面試中化險(xiǎn)為夷方法07-03
戶口遷移單位介紹信07-07
村戶口遷移的介紹信10-29