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