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