程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> SqlServer2008 >> SQL Server 2012降級至2008R2的方法

SQL Server 2012降級至2008R2的方法

編輯:SqlServer2008

一.背景

前段時間某醫院由於群集服務器的兼容性問題需要將數據庫由2012降至2008R2,所以決定把數據庫暫時切換至鏡像服務器,同時開啟應用層面的DML緩存以便實現不停機降級。

由於2012備份無法直接還原至2008R2(MSSQL數據庫還原 高>>低 不兼容),類似復制的其他功能也無法使用,OGG也不適合全庫遷移,因此決定使用導入導出降級。

二.步驟

1.導出數據庫對象架構(右鍵數據庫--任務--生成腳本)


需要注意的是在高級腳本編寫選項中需要選擇好為2008R2版本生成的全庫腳本,將索引觸發器等選項一並選擇true.

2.在目標2008R2庫上執行上述腳本,觀察報錯,其中很多報錯屬於正常報錯,原因是還沒有數據。

3.需要選擇生成所有登錄名的選項,但是新創建的登錄名和密碼是隨機的,因此需要提前拿到各個登錄名的密碼。同時由於
生成的腳本自動禁用登錄名,因此需要為每個登錄名解鎖。

4.導出數據:

導出數據時不要選擇視圖,因為視圖已經在步驟一中的腳本中建好,同時由於已經建好了表結構,導入工具會默認選擇向已有表中插入數據。

導入數據用時較長,並且由於服務器資源瓶頸,因此設置每次導入50個表為好,具體個數取決於各個表的大小。分批次還有一個好處是可以看到每個表的導入進度,同時防止每次出錯都重新導入,浪費大量時間。

三.總結

1.含identity自增列的表需要啟動標識插入

如果相關的表較少可以在第一步的架構腳本中查詢identity關鍵字,找出需要開啟標識插入的表,如果很多則需要一個個勾選。

2.SqlServer排序規則錯誤,導致的數據無法導入,因此在建數據庫時注意選擇一致的排序規則。

排序規則分為:

實例級別的排序規則,影響新建數據庫的默認排序規則,更改實例級別的排序規則需要刪除所有數據庫,停止實例後更改,之後再導回數據

數據庫級別的排序規則,繼承於實例的排序規則,可以個性化使用alter database <db_name> collate Chinese_PRC_CI_AS

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved