全量+增量備份遷移為數據持續性遷移,需要在完成全量備份恢復的基礎上,通過多次增量備份文件恢復,實現遷移過程中業務中斷的最小化。一次典型的增量恢復過程,會涉及多次恢復增量備份。每個增量備份恢復均會使目標數據庫保持還原中狀態,此時數據庫不可讀寫,直至最后一個增量備份恢復完成后,數據庫才能變成可用狀態。
本小節將以一次完整的全量+增量遷移為示例,詳細介紹如何實現最小化業務中斷的數據庫遷移。
遷移示意圖
圖 全量+增量遷移
遷移流程圖
圖 流程圖
首次進行全量遷移
1.導出全量備份文件,具體操作請參見導出數據庫備份文件。
2.將導出的全量備份文件上傳至OBS桶內,請參見上傳備份文件。
3.登錄數據庫復制服務控制臺。
4.單擊管理控制臺左上角的,選擇區域和項目。
5.在“所有服務”或“服務列表”中,選擇“數據庫>數據庫復制服務”,進入數據庫復制服務信息頁面。
6.在頁面左側導航欄,選擇“備份遷移管理”,單擊“創建遷移任務”,進入“選定備份”頁面。
7.填寫遷移任務信息和備份文件信息,單擊“下一步”。
圖 遷移任務信息
表 遷移任務信息
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4-64位之間,必須以字母開頭,不區分大小寫,可以包含字母、數字、中劃線或下劃線,不能包含其他特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含!=<>&'"特殊字符。 |
| 數據庫類型 | 選擇Microsoft SQL Server數據庫引擎。 |
| 備份文件來源 | 選擇自建OBS桶。 |
| 桶名 | 選擇備份文件所在的桶名,以及該桶目錄下上傳好的全量備份文件。說明:o Microsoft SQL Server的備份文件需要選擇OBS桶目錄下“.bak”格式的文件名,且可以同時選擇多個備份文件。該桶的桶名、備份文件名或者路徑中不能包含中文。 |
在“選定目標”頁面,填選數據庫信息后,單擊“下一步”。
圖 全量遷移數據庫信息
表 Microsoft SQL Server數據庫信息
| 參數 | 描述 |
|---|---|
| 目標RDS實例名稱 | 選擇目標RDS實例。若沒有合適的目標RDS數據庫實例,請先創建所需的目標數據庫實例,可參見《關系型數據庫快速入門》中“SQL Server快速入門”下的“購買實例”章節。 |
| 待恢復備份類型 | 選擇全量備份。全量備份指備份文件是完整備份類型的備份。 |
| 最后一個備份 | 一次典型的增量恢復過程,會涉及多次恢復增量備份。每個增量備份恢復均會使目標數據庫保持還原中狀態,此時數據庫不可讀寫,直至最后一個增量備份恢復完成后,數據庫才能變成可用狀態。此后數據庫將無法繼續進行增量恢復,所以確定為最后一個備份場景有:o 一次性全量遷移,后續將不再進行增量恢復,選擇“是”。o 增量恢復流程中,最后割接階段的最后一個增量備份選擇“是”。當前進行的是全量+增量備份遷移,全量備份恢復后,需要繼續進行增量備份恢復,該參數選擇“否”。此時目標數據庫將會處于恢復中的狀態,不可讀寫。 |
| 覆蓋還原 | 覆蓋還原是指目標端數據庫實例已經存在同名的數據庫,備份還原中是否要覆蓋已存在的數據庫。您可以根據業務需求,選擇是否進行覆蓋還原。說明:若選擇此項,目標數據庫實例中與待還原數據庫同名的數據庫將會被覆蓋,請謹慎操作。 |
| 執行預校驗 | 備份遷移任務是否執行預校驗,默認為是。o 是:為保證遷移成功,提前識別潛在問題,在恢復前對備份文件的合法性、完整性、連續性、版本兼容性等進行校驗。否:不執行預校驗,遷移速度更快,但需要用戶判斷備份文件的合法性、完整性、連續性、版本兼容性等問題。 |
| 指定需要恢復的數據庫 | 您可以選擇將全部數據庫或部分數據庫進行恢復。o 全部數據庫:恢復備份文件中所有的數據庫,不需要輸入待還原數據庫名稱,默認還原備份文件里的所有數據庫o 部分數據庫:恢復備份文件中的部分數據庫,需要輸入待還原數據庫名稱。全量備份需要保證指定恢復的數據庫始終一致。 |
9.在“確認信息”頁面核對配置詳情后,勾選協議,單擊“下一步”。
10.在“備份遷移管理”頁面任務列表中,觀察對應的恢復任務的狀態為“恢復中”,恢復成功后,任務狀態顯示“成功”。
進行第一次增量遷移
1.導出第一次增量備份文件,具體操作請參見導出數據庫備份文件。
2.將導出的備份文件上傳至OBS桶內,請參見上傳備份文件。
3.返回數據庫復制服務控制臺。
4.在頁面左側導航欄,選擇“備份遷移管理”,單擊“創建遷移任務”,進入“選定備份”頁面,繼續創建增量備份遷移任務。
5.填寫遷移任務信息和備份文件信息,單擊“下一步”。
圖 增量備份
表 遷移任務信息
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4-64位之間,必須以字母開頭,不區分大小寫,可以包含字母、數字、中劃線或下劃線,不能包含其他特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含!=<>&'"特殊字符。 |
| 數據庫類型 | 選擇Microsoft SQL Server數據庫引擎。 |
| 備份文件來源 | 選擇自建OBS桶。 |
| 桶名 | 選擇備份文件所在的桶名,以及該桶目錄下上傳好的第一次增量備份文件。說明:Microsoft SQL Server的備份文件需要選擇OBS桶目錄下“.bak”格式的文件名,且可以同時選擇多個備份文件。 |
在“選定目標”頁面,填選數據庫信息后,單擊“下一步”。
圖 增量遷移數據庫信息
表 Microsoft SQL Server數據庫信息
| 參數 | 描述 |
|---|---|
| 目標RDS實例名稱 | 選擇目標RDS實例。該目標RDS實例應該與進行全量備份恢復時選擇的目標實例一致。 |
| 待恢復備份類型 | 選擇增量備份。增量備份指備份文件是日志類型的備份。 |
| 最后一個備份 | 一次典型的增量恢復過程,會涉及多次恢復增量備份。每個增量備份恢復均會使目標數據庫保持還原中狀態,此時數據庫不可讀寫,直至最后一個增量備份恢復完成后,數據庫才能變成可用狀態。此后數據庫將無法繼續進行增量恢復,所以確定為最后一個備份場景有:o 一次性全量遷移,后續將不再進行增量恢復,選擇“是”。o 增量恢復流程中,最后割接階段的最后一個增量備份選擇“是”。當前進行的是第一次增量備份遷移,該參數選擇“否”。此時目標數據庫將會處于恢復中的狀態,不可讀寫。 |
| 執行預校驗 | 備份遷移任務是否執行預校驗,默認為是。o 是:為保證遷移成功,提前識別潛在問題,在恢復前對備份文件的合法性、完整性、連續性、版本兼容性等進行校驗。否:不執行預校驗,遷移速度更快,但需要用戶判斷備份文件的合法性、完整性、連續性、版本兼容性等問題。 |
| 指定需要恢復的數據庫 | 您可以選擇將全部數據庫或部分數據庫進行恢復。o 全部數據庫:恢復備份文件中所有的數據庫,不需要輸入待還原數據庫名稱,默認還原備份文件里的所有數據庫部分數據庫:恢復備份文件中的部分數據庫,需要輸入待還原數據庫名稱。 |
7.在“確認信息”頁面核對配置詳情后,勾選協議,單擊“下一步”。
8.在“備份遷移管理”頁面任務列表中,觀察對應的恢復任務的狀態為“恢復中”,恢復成功后,任務狀態顯示“成功”。
進行第二次增量遷移
為了實現遷移導致的業務中斷時間最小化,需要在業務割接前,進行一次事務日志備份上傳與恢復,該操作會將割接前所有的歷史數據恢復至目標數據庫,很大程度上減少了割接時最后一個事務日志備份的上傳與恢復的時間。
1.在業務割接前,導出新的增量備份文件,請參見導出數據庫備份文件。
2.繼續執行2到4。
3.填寫遷移任務信息和備份文件信息,單擊“下一步”。
圖 增量備份
表 遷移任務信息
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4-64位之間,必須以字母開頭,不區分大小寫,可以包含字母、數字、中劃線或下劃線,不能包含其他特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含!<>&'"特殊字符。 |
| 數據庫類型 | 選擇Microsoft SQL Server數據庫引擎。 |
| 備份文件來源 | 選擇自建OBS桶。 |
| 桶名 | 選擇備份文件所在的桶名,以及該桶目錄下上傳好的新的增量備份文件。說明:Microsoft SQL Server的備份文件需要選擇OBS桶目錄下“.bak”格式的文件名,且可以同時選擇多個備份文件。 |
4.在選定目標頁面,填選數據庫信息后,單擊“下一步”。
圖 增量遷移數據庫信息
表 Microsoft SQL Server數據庫信息
| 參數 | 描述 |
|---|---|
| 目標RDS實例名稱 | 選擇目標RDS實例。該目標RDS實例應該與進行全量備份恢復時選擇的目標實例一致。 |
| 待恢復備份類型 | 選擇增量備份。增量備份指備份文件是日志類型的備份。 |
| 最后一個備份 | 一次典型的增量恢復過程,會涉及多次恢復增量備份。每個增量備份恢復均會使目標數據庫保持還原中狀態,此時數據庫不可讀寫,直至最后一個增量備份恢復完成后,數據庫才能變成可用狀態。此后數據庫將無法繼續進行增量恢復,所以確定為最后一個備份的場景有:o 一次性全量遷移,后續將不再進行增量恢復,選擇“是”。o 增量恢復流程中,最后割接階段的最后一個增量備份選擇“是”。當前進行的是割接業務前的增量備份遷移,該參數選擇“否”。此時目標數據庫將會處于恢復中的狀態,不可讀寫。 |
| 執行預校驗 | 備份遷移任務是否執行預校驗,默認為是。o 是:為保證遷移成功,提前識別潛在問題,在恢復前對備份文件的合法性、完整性、連續性、版本兼容性等進行校驗。否:不執行預校驗,遷移速度更快,但需要用戶判斷備份文件的合法性、完整性、連續性、版本兼容性等問題。 |
| 指定需要恢復的數據庫 | 您可以選擇將全部數據庫或部分數據庫進行恢復。o 全部數據庫:恢復備份文件中所有的數據庫,不需要輸入待還原數據庫名稱,默認還原備份文件里的所有數據庫部分數據庫:恢復備份文件中的部分數據庫,需要輸入待還原數據庫名稱。 |
5.在“確認信息”頁面核對配置詳情后,勾選協議,單擊“下一步”。
6.在“備份遷移管理”頁面任務列表中,觀察對應的恢復任務的狀態為“恢復中”,恢復成功后,任務狀態顯示“成功”。
檢查數據庫事務
在進行業務割接之前,需要停止業務,然后確認數據庫內無未完成的事務,避免因數據庫中存在未完成的事務導致數據丟失問題。
1.執行如下語句,判斷業務系統IP是否已經斷開連接。
select * from sys.dm_exec_connections;
是,表示所有業務系統ip都已經斷開連接,可以進行最后一個增量備份遷移。
否,執行2。
2.如果查詢到存在未斷開的業務系統ip,繼續通過如下語句查詢未關閉的會話 。
select * from sys.dm_exec_sessions;
同時,根據如下語句查看正在執行的事務。
select * from sys.dm_tran_session_transactions;
若上述查詢結果中存在未關閉的會話和正在執行的事務,請繼續執行3。
3.需要等到事務執行完成,關閉會話,斷開業務系統連接后,才可以進行最后一個增量備份遷移。
進行最后一次增量遷移
經過上面多次增量備份的遷移與恢復,數據庫數據已經接近一致了,同時在上一階段檢查數據庫事務的過程中已經將源業務停止,不會再產生新數據,此時為了確保遷移與恢復數據的完整性和一致性,需要進行最后一次增量備份的遷移與恢復。
1.導出新的增量備份文件,具體操作請參見導出數據庫備份文件。
2.繼續執行2到4。
3.填寫遷移任務信息和備份文件信息,單擊“下一步”。
圖 增量備份
表 備份任務信息
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4-64位之間,必須以字母開頭,不區分大小寫,可以包含字母、數字、中劃線或下劃線,不能包含其他特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含!=<>&'"特殊字符。 |
| 數據庫類型 | 選擇Microsoft SQL Server數據庫引擎。 |
| 備份文件來源 | 選擇自建OBS桶。 |
| 桶名 | 選擇備份文件所在的桶名,以及該桶目錄下上傳好的新的增量備份文件。說明:Microsoft SQL Server的備份文件需要選擇OBS桶目錄下“.bak”格式的文件名,且可以同時選擇多個備份文件。 |
4.在選定目標頁面,填選數據庫信息后,單擊“下一步”。
圖10 增量遷移數據庫信息
表 Microsoft SQL Server數據庫信息
| 參數 | 描述 |
|---|---|
| 目標RDS實例名稱 | 選擇目標RDS實例。該目標RDS實例應該與進行全量備份恢復時選擇的目標實例一致。 |
| 待恢復備份類型 | 選擇增量備份。增量備份指備份文件是日志類型的備份。 |
| 最后一個備份 | 該階段為停止業務后進行的最后一次增量遷移,該參數選擇“是”。 |
| 執行預校驗 | 備份遷移任務是否執行預校驗,默認為是。o 是:為保證遷移成功,提前識別潛在問題,在恢復前對備份文件的合法性、完整性、連續性、版本兼容性等進行校驗。否:不執行預校驗,遷移速度更快,但需要用戶判斷備份文件的合法性、完整性、連續性、版本兼容性等問題。 |
| 指定需要恢復的數據庫 | 您可以選擇將全部數據庫或部分數據庫進行恢復。o 全部數據庫:恢復備份文件中所有的數據庫,不需要輸入待還原數據庫名稱,默認還原備份文件里的所有數據庫部分數據庫:恢復備份文件中的部分數據庫,需要輸入待還原數據庫名稱。 |
5.在“確認信息”頁面核對配置詳情后,勾選協議,單擊“下一步”。
6.在“備份遷移管理”頁面任務列表中,觀察對應的恢復任務的狀態為“恢復中”,恢復成功后,任務狀態顯示“成功”。