1. 程式人生 > >SqlServer資料庫附加、備份、與生成sql指令碼的應用解析

SqlServer資料庫附加、備份、與生成sql指令碼的應用解析

前段時間做好一套生產系統,在本地部署測試都搞定了以後。興奮滴跑去深圳客戶現場部署,發現:客戶沒有按照先前溝通好的執行,他們沒有選擇安裝我們推薦的軟硬體環境。他們的版本比我們本地測試環境的版本更高。雖然在理論上是不會出什麼問題,但是,我還是決定,在他們的系統上,先搭建一個測試環境。

1:把本地的資料庫指令碼,在客戶測試環境中執行,檢查一下,全部執行成功!

2:網站部署一切正常。

於是,開始驗證功能。這時候發現,之前整合的一個開源OA模組的建立流程模組,不能用了。原先建立好的流程都無法顯示了。通過分析,這是資料庫的問題。於是,用VS的資料對比功能,將本地資料庫和實際環境中的資料庫進行對比。發現:果然是少了兩個表。最後,通過將本地資料庫分離出來,附加到客戶環境中。問題解決了。那麼問題又來了,附加分離可以搞定,那麼備份還原是否也可以搞定呢?通過驗證備份還原,一樣可以。

這次的經歷,我想對這幾種遷移的方式做一個總結。在學校的時候,遇到資料庫遷移,一般都是用 附加分離,或者用備份還原。但是工作以後,經常有資料庫版本差異,經常碰到要將高版本的資料庫,遷移到低版本的資料庫環境中。所以就習慣使用生成指令碼的方式。實際上,生成指令碼的方式是有風險的。因為你無法確定資料庫指令碼生成是否完整,你也無法確定指令碼是否全部執行成功。因為這跟資料庫使用者的許可權有關係,如果你想用生成指令碼的方式,建議儘量使用sa帳戶。

資料庫分離附加一般是在資料庫不需要使用的情況下使用。因為分離後,資料庫就不能使用了,如果要重新使用,就需要附加資料庫了。分離附加方式的好處是:速度快。簡單方便。

資料庫備份還原,這個應該是最經常使用的。我一般是遠端備份,然後下載到本地。備份的同時,資料庫也可以使用。建議在資料庫連線數比較少的時候,進行備份。

生成指令碼的方式,一般用在高版本的資料庫,要遷移到低版本的資料庫中。這時也要記得選擇資料庫相容性。

這是關於sqlserver資料庫遷移的一些想法,希望對大家有幫助!