天天看點

RDS for SQL Serve使用OSS備份檔案增量上雲過程

今天主要分享基于OSS的增量上雲到RDS SQL Server的功能。适用以下三個場景:

一、基于備份檔案實體遷移上雲RDS SQL Server,而不是邏輯遷移。實體遷移是指基于檔案的遷移;邏輯遷移是指将資料生成DML語句映射到RDS SQL Server上。

二、遷移上雲RDS SQL Server後資料庫和線下的資料庫100%的保持一緻。這句話可以這樣了解,如果使用者使用的是邏輯遷移,那麼是無法做到100%保持一緻的。比如使用者生成的DML語句插入到RDS SQL Server上來以後,可能會導緻索引碎片率和統計資訊等和使用者的線下資料庫不同,這樣一來上雲以後的應用可能會有一些性能問題。

三、業務對停機時間非常敏感,遷移到RDS SQL Server的過程,需要控制在分鐘級别。

以上就是三個比較典型的使用增量上雲的場景。

下面看一下增量上雲的具體流程。

RDS for SQL Serve使用OSS備份檔案增量上雲過程

上圖是使用者把線下資料庫增量上雲到RDS SQL Server的流程圖。從這個圖中可以看到它實際上包含了四個方面:第一個方面是使用者的線下資料庫,這個是使用者要參與進來;第二個方面是OSS Bucket;第三個方面是RDS控制台;第四個就是RDS SQL Server做的事情。

點我領取阿裡雲2000元代金券

,(阿裡雲優惠券的作用:購買阿裡雲産品,最後支付結算的時候,阿裡雲優惠券可抵扣一部分費用。

首先看這個流程圖最開始的部分,使用者需要做一些準備工作。比如,使用者需要先做一個DBCC Check DB來保證使用者的資料庫沒有資料一緻性的問題;第二個準備工作是,使用者需要把自己的本地備份系統關閉。如果本地備份系統沒有關閉,備份系統可能會自動做一些備份操作,可能會導緻使用者導入到RDS的這些備份檔案不全,進而導緻上雲失敗;第三個準備工作是,使用者需要把資料庫修改為FULL模式,這個非常重要。

這些準備工作完成以後,使用者需要對自己的線下資料庫做一個完全備份,就是一個Full Backup。完全備份做完之後就上傳到OSS。上傳完之後,通過RDS控制台生成一個基于這個完全備份檔案的任務流。任務流生成之後,RDS SQL Server就會在背後做一些還原操作。這個動作做完成以後,RDS SQL Server會繼續等待後續的備份檔案,例如差異備份或者是日志備份,如果有就可以繼續上傳,上傳最後一個差異檔案前一定要停止本地資料的寫入,這樣才能保證本地資料庫的資料和RDS上的資料是一緻的,完成以後使用者就可以打開資料庫通路了;如果沒有差異備份或者是日志備份,使用者就可以直接通過RDS控制台打開資料庫了。打開以後,使用者就可以通路了。到這裡,整個流程就結束了。

從分析這個流程圖可以看出,隻有在上傳最後一個差異檔案之前停止了資料寫入。也就是說在整個使用者上雲的過程中,隻會在停止資料寫入以後到最後一個日志或是差異備份檔案上傳完成之前的這段時間,應用是不可用的。那麼就可以通過控制最後一個差異或者日志備份檔案的大小來控制停機時間。比如如果這個檔案大小在500M左右的話,那麼整個上雲的流程中,應用的停機時間就會非常短,可以控制到分鐘級别。

更多參閱

雲資料庫 RDS 版