天天看點

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

title: sqlserver · 最佳實踐 · 如何将sql server 2012降級到2008 r2

使用sqlserver 2012的特性在sql 2008 r2不支援,比如新的分頁方式

此遷移操作手冊适用于mssql2012到mssql2008r2的遷移

遷移使用微軟提供的腳本生成和導入導出工具

需要在本地将mssql2012遷移完成,并且應用改造完成測試通過方可上rds

遷移到mssql2008r2 rds通過備份還原的方式進行

安裝2008 r2的資料庫執行個體

這個很簡單,安裝資料庫執行個體應該很橫輕松

在建立的2008 r2上建立資料庫

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

為資料庫建立使用者并配置設定角色等權限資訊

主要是将原來的login和使用者建立到新的執行個體,例如:需要注意的是2012的hash密碼和2008 r2的hash密碼已經不太一樣了。需要原先的密碼或者重置密碼

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

2012 上檢視資料庫使用者的及角色:

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

将這些角色和權限複制到2008 r2上,可以通過ssms ui或者腳本執行

在2012上禁止更新任何對象的結構

不能在表,視圖,使用者函數,存儲過程上進行任何修改動作

在2012上生成架構,表,視圖,使用者函數,存儲過程,作業等腳本

選擇資料庫

右鍵點選“任務”,再點選“生成腳本”

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

設定腳本編寫選項

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

進階屬性選擇腳本的屬性

方框内的需要特别注意,這裡外鍵一定不要選true

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

選擇對象

根據自己的資料庫情況選擇哪些需要導入過去

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

生成腳本到檔案或者到查詢視窗

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

生成job腳本

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

在2008 r2執行生成的腳本

将剛才生成的腳本在2008 r2上執行并且保證完全成功。如果有錯誤,需要查明原因并且手動建立上去,可能出現的錯誤有:

表依賴某些對象不存在

函數,存儲過程引用對象不存在,找出不存在的對象建立上

如果對象不全需要查明原因

比較對象是否一緻

主要檢查表、視圖、使用者自定義函數、存儲過程,如果有其他類型,請調整type參數

使用者停止業務,包括由job産生的業務

讓使用者停止所有業務,同時停止sql agent

disable使用者的登入,進一步保證業務不再使用

disable登入,禁止使用者登入資料庫

通過資料庫導入導出工具将2012所有資料導入到2008 r2中

開始 ->所有程式 ->microsoft sql server 2012 ->導入和導出資料

操作請按照下列圖所示:

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

這裡請不要選擇視圖,隻選擇表就好

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

驗證資料庫正确性

請count一下資料量的大小,并進行對比。同時可以驗證資料的準确性

為資料庫的表建立外鍵關系

生成外鍵的方法: 設定腳本編寫選項進階:紅色框内為true,其他都為false

SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2
SQLServer · 最佳實踐 · 如何将SQL Server 2012降級到2008 R2

生成腳本,去掉表結構,隻剩下外鍵關系的腳本,然後在mssql 2008 r2上運作就好了。

使用者更改連接配接字元串後進行業務測試

開啟原來的執行個體的login

啟動原來的執行個體的sql agent

使用者連接配接字元串修改到原來的通路位址

如果遷移失敗将進行復原

如果表有主外鍵關系需要先解除外鍵關系,最後再建立,按照上述步驟就好了

資料庫的排序規則要保持一緻

如果有表有時間戳列,表需要單獨拿出來處理,時間戳列是不需要導入的