2016年3月8日 星期二

[Lesson and learned] Sql Server restore database

 Microsoft Sql Server    Database Deploy





Background


這次在系統過版時,因為Database Table schema改變的相當多,在正式環境的資料並無重大隱私資料和個人資料(如密碼)已經加密的情況下; 決定將ProductionDatabase先停止服務後,以備份Production→還原至測試環境更新資料庫還原至Production
的方式進行。

先說明各DB Server的環境
Production : Sql Server 20008 R2 Enterprise
Test : Sql Server 2012 SP1 Enterprise

備份Production→還原至測試環境 這一段是沒有問題的, 可是在還原至Production就失敗了。
原因是因為新版本的DB備份檔(.bak)是無法還原至舊版本的Sql Server

所以在建立Solution時,也需要透過Secondary research了解一下限制,避免踩雷 L


Solve the problem


有兩種方式可以取代 backup & restore的方式。
另外節錄自StackFlow-Ohad Schneider 提供的觀念:

·         Backup / Restore - will not work when the target is an earlier MS SQL version.
·         Copy Database - will not work when the target is SQL Server Express: "The destination server cannot be a SQL Server 2005 or later Express instance."



Copy Database Wizard 複製資料庫精靈




 使用複製資料庫時,需要開啟一個UNC資料夾讓來源及目的端做資料傳輸。


Generate Scripts 產生指令碼

 

產生指令碼可以直接輸出Schema 但是複製資料還是要透過「匯出資料」。

 


Reference



沒有留言:

張貼留言