三步10分鐘搞定數(shù)據(jù)庫(kù)版本的降遷(將后臺(tái)數(shù)據(jù)庫(kù)SQLServer2008R2降為SQL2005版本)
當(dāng)前位置:點(diǎn)晴教程→點(diǎn)晴OA辦公管理信息系統(tǒng)
→『 安裝指引&開(kāi)發(fā)建議 』
本文三步搞定數(shù)據(jù)庫(kù)從MSSQL2008R2 高版本降遷至SQL2005低版本。 整個(gè)過(guò)程如果思路清晰,數(shù)據(jù)量小,不過(guò)就是10分鐘的事,效率提高很多。 這里需要利用一個(gè)免費(fèi)的數(shù)據(jù)庫(kù)對(duì)象同步工具,實(shí)際上整個(gè)操作過(guò)程中,這一步是最耗時(shí)低效,檢查發(fā)現(xiàn)用OpenDBDiff和SQL-DBDiff可以高效解決這個(gè)問(wèn)題。 首先,MSSQL2008R2有源數(shù)據(jù)庫(kù)dnt2_db ,需要轉(zhuǎn)到MSSQL2005目標(biāo)數(shù)據(jù)庫(kù)dnt2_dbNew中。 第一步 在低版本數(shù)據(jù)庫(kù)中新建目標(biāo)庫(kù)。 案例中SQL2005新建數(shù)據(jù)庫(kù)T-SQL: [Python] view plain copy
第二步 將高版本的表數(shù)據(jù)全部導(dǎo)入低版本數(shù)據(jù)庫(kù)中。 案例中SQL2008R2的表數(shù)據(jù),這里重新說(shuō)明操作步驟,如下圖所示:
圖1 連接SQL2005目標(biāo)數(shù)據(jù)庫(kù),并操作導(dǎo)入數(shù)據(jù)選項(xiàng)
圖2 選擇數(shù)據(jù)源
圖3 選擇目標(biāo)服務(wù)器
圖4 復(fù)制選項(xiàng)設(shè)定
圖5 選擇源表。這里全選,而不做對(duì)目標(biāo)表的設(shè)定。原因在上一篇文章的{注1}部分已說(shuō)明。
圖6 數(shù)據(jù)導(dǎo)入完畢 第三步 將高版本的數(shù)據(jù)庫(kù)對(duì)象同步到低版本數(shù)據(jù)庫(kù)中。 打開(kāi)OpenDBDiff或SQL-DBDiff,這里使用OpendbDiff,如下圖
圖7 打開(kāi)OpenDBDiff,并選擇源和目標(biāo)庫(kù)
圖8 比較不同數(shù)據(jù)庫(kù)的對(duì)象,并生成Alter的T-SQL語(yǔ)句。相比上一篇文章里需要手動(dòng)修改Create為Alter語(yǔ)句,效率明顯提高。 {注:有時(shí)當(dāng)數(shù)據(jù)庫(kù)中已存在部分對(duì)象時(shí),我們需要注意Open DBDiff在給出Alter針對(duì)約束或者Create針對(duì)存儲(chǔ)過(guò)程語(yǔ)句時(shí),會(huì)有點(diǎn)問(wèn)題,可能會(huì)需要手動(dòng)的微調(diào)} 此時(shí),我們點(diǎn)擊右側(cè)的剪貼板來(lái)copy語(yǔ)句,不建議用另存為的方式,否則可能會(huì)出現(xiàn)圖9中的因字符集問(wèn)題,當(dāng)然目前我還不確定是OpenDBDiff本身造成的還是我OS的問(wèn)題。 將貼出的T-SQL語(yǔ)句在SQL2005的目標(biāo)庫(kù)dnt2_dbNew中執(zhí)行。
圖9 中文另存為時(shí)發(fā)生字符集亂碼的問(wèn)題 到此,三大步搞定數(shù)據(jù)庫(kù)降遷!呵呵,說(shuō)我騙人,這怎么可能就三步呢。-_-! 執(zhí)行完畢后,再用OpenDBDiff檢查兩庫(kù)的對(duì)象差異,最后如圖10所示,都OK。
圖10 最后檢查OK ——>總結(jié):優(yōu)秀的DBA一定要有第三方工具,這句話不是我說(shuō)的。不過(guò)OpenDBDiff只能同步對(duì)象是個(gè)缺憾! 該文章在 2017/4/5 10:09:48 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |