2013年11月22日 星期五

同質資料庫跨版本升級或異質資料庫移轉

為什麼沒事會想來寫這樣一篇文章呢?主要是因為我在IT邦幫忙應發文者的要求貼了兩張圖,就是,結果居然被選為最佳解答,但事實上對發問的人來說,這個作法他若真的去作就會發現是不可行的,我心中有愧,後來就在討論告訴對他來說最適合的方法,並將我個人移轉資料庫的經驗提供大家。想說我也很久沒更新部落格了,就將我的資料庫移轉經驗分享給大家。

如果是我自己要作同質資料庫跨多個版本升級或甚至是異質資料庫移轉,我會這樣作:

1. 先用MS SQL的SSIS工具移轉所有的Table資料

2. 與原資料庫對照重新建立所有Table上的Index(包含PK)

(以下步驟3~5如果是同質資料庫升級應該Loading不大,就是在就資料庫產生Create指令再到新資料庫執行就好,但如果是異質資料庫移轉最好作好心理準備,除了Create View語法應該算標準ANSI SQL指令可能只要小改,其他的SP、Function應該都是要有重寫的打算)

3. 請程式設計師重建所有的Function


4. 請程式設計師重建所有的View


5. 請程式設計師重建所有的SP(stored procedure 預存程序)


(以上步驟3~5在執行時,有可能會有相依性的關係,Ex.在某個Function中可能會用到某個View或某個SP,遇到這種情形就要先建那個View或SP,這個順序是我的個人經驗,這樣作的相依性的問題應該會最少,但這取決於您應用系統程式設計師的習慣,反正這部份算他的工作可以由他決定)


6. 請程式設計師測試所有程式碼中和資料庫相關的地方(Connection建立/關閉、資料新增/修改/刪除/查詢、資料庫效能壓力測試[就是找之前系統慢的地方來測])


7. 以上步驟都OK了,請先選黃道吉日,公告周知系統維護將進行維護暫不開放,重作以上步驟1~6(先前的只是測試,請記得保留先前步驟3~6所有修改的成果)