Migration

您規劃數據遷移的工作流程是什麼?

  • February 28, 2011

很多次我在軟體開發工作結束時被帶入並被告知*“好吧,我們已經有了所有這些新程式碼,它需要更改表和遷移數據”。*

似乎每次都是一次性的,從臀部射擊,最好的猜測場景。我覺得這是我作為 DBA 最薄弱的技能。

我想了解一些用於處理、管理和測試數據遷移的模式。

請提示我一些最佳實踐和/或我可以從哪裡獲得學習材料以幫助我在這方面做得更好。

每次我完成它,我們已經走了兩次…

  1. 拍攝快照,並在不同的伺服器上工作,使用它來確定必須為遷移做什麼,並編寫腳本。
  2. 一旦他們掌握了腳本,snapshop 就會在測試系統上恢復,並且會定時查看它是否會在要求的時間內執行,或者它會被調整和修改直到它可以執行。
  3. 讓利益相關者簽字確認測試系統上的數據沒有任何問題。

然後,在一個週末,你有一個預定的中斷:

  1. 星期五晚上,使用數據庫的系統被關閉,進行完整的冷備份,並執行腳本以遷移/修改/對數據進行任何操作
  2. 系統在某個私人地址下恢復或以某種方式設置,因此除了利益相關者之外,它不對任何人開放以進行驗收測試
  3. 如果利益相關者同意,系統將上線並公開;如果沒有,則從周五晚上的備份中恢復數據庫,然後重新開始該過程。

根據我們的日程安排,數據庫人員通常從周五下午 6 點到週六上午 10 點執行備份和遷移腳本,所以我們的目標是他們在 8 小時內執行(其中約 6 小時是備份),所以我們在將其發布給利益相關者之前,我們有一些時間進行測試和更正。

利益相關者提前獲得了他們的時間視窗,因此他們知道在視窗開始時讓他們的周末開放以進行測試。他們還會被告知他們的視窗結束,通常是周日下午,如果每個人都沒有簽字,我們將不得不開始回滾。

哦,當然……如果有人在任何一個驗收測試期間發生了更改,而我們做出了更改,這意味著所有利益相關者的簽字都無效,他們必須重新測試……所以我們會嘗試給他們一段時間來查找問題並作為批處理執行任何更正,而不是一次應用它們。

幸運的是,我唯一遇到過一種情況是我們不能有大量停機時間,我正在遷移的系統是從腳本提供的,而不是使用者輸入,所以我可以讓兩個並行系統執行,然後將它們換掉當事情得到簽署時。(只有一次有問題,當我的老闆堅持要我們進行完整備份時,不明白整個事情仍然會在不同的 IP 上線上……所以應該是一個 5 分鐘的中斷糟糕的一天變成了 5 小時的停電。)

引用自:https://dba.stackexchange.com/questions/1457