一.背景
前段時(shí)間某醫(yī)院由于群集服務(wù)器的兼容性問(wèn)題需要將數(shù)據(jù)庫(kù)由2012降至2008R2,所以決定把數(shù)據(jù)庫(kù)暫時(shí)切換至鏡像服務(wù)器,同時(shí)開(kāi)啟應(yīng)用層面的DML緩存以便實(shí)現(xiàn)不停機(jī)降級(jí)。
由于2012備份無(wú)法直接還原至2008R2(MSSQL數(shù)據(jù)庫(kù)還原 高>>低 不兼容),類(lèi)似復(fù)制的其他功能也無(wú)法使用,OGG也不適合全庫(kù)遷移,因此決定使用導(dǎo)入導(dǎo)出降級(jí)。
二.步驟
1.導(dǎo)出數(shù)據(jù)庫(kù)對(duì)象架構(gòu)(右鍵數(shù)據(jù)庫(kù)--任務(wù)--生成腳本)
需要注意的是在高級(jí)腳本編寫(xiě)選項(xiàng)中需要選擇好為2008R2版本生成的全庫(kù)腳本,將索引觸發(fā)器等選項(xiàng)一并選擇true.
2.在目標(biāo)2008R2庫(kù)上執(zhí)行上述腳本,觀(guān)察報(bào)錯(cuò),其中很多報(bào)錯(cuò)屬于正常報(bào)錯(cuò),原因是還沒(méi)有數(shù)據(jù)。
3.需要選擇生成所有登錄名的選項(xiàng),但是新創(chuàng)建的登錄名和密碼是隨機(jī)的,因此需要提前拿到各個(gè)登錄名的密碼。同時(shí)由于
生成的腳本自動(dòng)禁用登錄名,因此需要為每個(gè)登錄名解鎖。
4.導(dǎo)出數(shù)據(jù):
導(dǎo)出數(shù)據(jù)時(shí)不要選擇視圖,因?yàn)橐晥D已經(jīng)在步驟一中的腳本中建好,同時(shí)由于已經(jīng)建好了表結(jié)構(gòu),導(dǎo)入工具會(huì)默認(rèn)選擇向已有表中插入數(shù)據(jù)。
導(dǎo)入數(shù)據(jù)用時(shí)較長(zhǎng),并且由于服務(wù)器資源瓶頸,因此設(shè)置每次導(dǎo)入50個(gè)表為好,具體個(gè)數(shù)取決于各個(gè)表的大小。分批次還有一個(gè)好處是可以看到每個(gè)表的導(dǎo)入進(jìn)度,同時(shí)防止每次出錯(cuò)都重新導(dǎo)入,浪費(fèi)大量時(shí)間。
三.總結(jié)
1.含identity自增列的表需要啟動(dòng)標(biāo)識(shí)插入
如果相關(guān)的表較少可以在第一步的架構(gòu)腳本中查詢(xún)identity關(guān)鍵字,找出需要開(kāi)啟標(biāo)識(shí)插入的表,如果很多則需要一個(gè)個(gè)勾選。
2.SqlServer排序規(guī)則錯(cuò)誤,導(dǎo)致的數(shù)據(jù)無(wú)法導(dǎo)入,因此在建數(shù)據(jù)庫(kù)時(shí)注意選擇一致的排序規(guī)則。
排序規(guī)則分為:
實(shí)例級(jí)別的排序規(guī)則,影響新建數(shù)據(jù)庫(kù)的默認(rèn)排序規(guī)則,更改實(shí)例級(jí)別的排序規(guī)則需要?jiǎng)h除所有數(shù)據(jù)庫(kù),停止實(shí)例后更改,之后再導(dǎo)回?cái)?shù)據(jù)
數(shù)據(jù)庫(kù)級(jí)別的排序規(guī)則,繼承于實(shí)例的排序規(guī)則,可以個(gè)性化使用alter database db_name> collate Chinese_PRC_CI_AS
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Windows Server 2008 R2和2012中PHP連接MySQL過(guò)慢的解決方法
- windows server 2008/2012安裝php iis7 mysql環(huán)境搭建教程
- 圖文詳解Windows Server2012 R2中安裝SQL Server2008
- 基于Win2008 R2的WSFC實(shí)現(xiàn) SQL Server 2012高可用性組(AlwaysOn Group)
- Sql Server 2008R2升級(jí)Sql Server 2012圖文教程