? 最近參與一個(gè)項(xiàng)目,將某幾個(gè)數(shù)據(jù)庫(kù)遷移到另一臺(tái)服務(wù)器上杠纵,因?yàn)橛龅搅瞬簧賳栴}邢享,為了備忘,在這就寫一下淡诗。。伊履。韩容。
? 剛開始的時(shí)候,數(shù)據(jù)庫(kù)還沒開始導(dǎo)唐瀑,這時(shí)候庫(kù)里有很大一部分都是沒有數(shù)據(jù)的空表群凶,而且源庫(kù)是sql server類型,目標(biāo)庫(kù)是Oracle類型的哄辣,因此我用的是sqlserver里的導(dǎo)入導(dǎo)出工具请梢,它的優(yōu)點(diǎn)就是能夠大批量導(dǎo)入,以及具有異構(gòu)數(shù)據(jù)庫(kù)導(dǎo)入功能力穗,還有毅弧,他不需要手動(dòng)建表,在導(dǎo)入過程中會(huì)自動(dòng)建表当窗,這點(diǎn)減少了很多工作量够坐。他的缺點(diǎn)就是,在導(dǎo)入過程中崖面,如果源表出現(xiàn)錯(cuò)誤元咙,他就會(huì)停頓在錯(cuò)誤點(diǎn),并且巫员,如果一張表內(nèi)有多個(gè)錯(cuò)誤庶香,他也不會(huì)一次性報(bào)出,而是一次次報(bào)出简识,這就增加了很多工作量赶掖。
? 在導(dǎo)入過程中感猛,有時(shí)候會(huì)遇到一些數(shù)據(jù)量很大的表,如果放在server工具上倘零,會(huì)花費(fèi)很多時(shí)間唱遭,降低工作效率,這時(shí)候呈驶,我們會(huì)用kettle來進(jìn)行這些大表的導(dǎo)入拷泽,由于kettle并不是專門用來做這個(gè)工作的,因此袖瞻,他的優(yōu)點(diǎn)目前我只發(fā)現(xiàn)速度比較快司致,但是這一點(diǎn)也依賴于網(wǎng)速等很多原因,而缺點(diǎn)就是只能一張一張表進(jìn)行導(dǎo)入
? 后來聋迎,我遇到有幾個(gè)源庫(kù)是Oracle類型的脂矫,這屬于同構(gòu)類型導(dǎo)入,因此用的是expdp數(shù)據(jù)泵的方法霉晕,導(dǎo)出一個(gè)dmp文件庭再,再用impdp的方法導(dǎo)入目標(biāo)庫(kù),這個(gè)方法的優(yōu)點(diǎn)就是方便牺堰,不需要單個(gè)表操作拄轻,直接將整個(gè)庫(kù)打包,不過需要將dmp文件(如果只有一個(gè)dmp文件伟葫,要先確定導(dǎo)出時(shí)用的是exp還是expdp恨搓,因?yàn)閷?dǎo)入時(shí)要與導(dǎo)出的方式對(duì)應(yīng))傳輸?shù)侥繕?biāo)服務(wù)器上(沒有這一步可能會(huì)報(bào)錯(cuò)),當(dāng)時(shí)我用的是putty進(jìn)行文件傳輸筏养,缺點(diǎn)是斧抱,如果數(shù)據(jù)庫(kù)版本不同,也有可能會(huì)發(fā)生報(bào)錯(cuò)渐溶,因此這個(gè)方法的局限性很大辉浦。
總結(jié)一下,目前沒遇到一個(gè)很好的軟件來進(jìn)行這項(xiàng)工作掌猛,因此我在遷移過程中盏浙,鬼知道我經(jīng)歷了什么。荔茬。废膘。。