適用場景
RDS數據庫遷移上云是指將用戶線下數據庫搬遷到阿里云RDS上并完成應用切換到RDS上的工作過程。數據庫遷移上云的重點和難點在于:如何保證用戶數據庫的完整性的同時,還要保證用戶應用停機切換時間足夠短(起碼要達到分鐘級)。通常使用的方法有邏輯遷移和物理遷移兩種。
上海聚搜信息技術有限公司是阿里云的代理商網址:http://www.4526.cn/可以直接在網站上聯系阿里云代理商客服進行咨詢服務器架構和配置以及優惠價格!(聚搜營銷介紹鏈接:http://m.zqzyfl.com.cn/meiyou/)是一家致力于搜索引聚搜營銷及全網營銷,致力于為客戶提供搜索營銷領域的服務,幫助廣告客戶在搜索引聚搜獲取的投資回報,包括搜索引聚搜競價服務(SEM),搜索引聚搜優化服務(seo)和搜索營銷代運營服務,能夠有效為廣告主帶來高效的投放回報,我們的理念一直是:讓搜索營銷營銷具有價值。
邏輯遷移
邏輯遷移,是指將用戶線下數據庫對象和數據轉化為DDL和DML語句,然后在RDS上執行的遷移上云方式。這些數據庫的對象包含但不僅限于:
表:數據庫的表對象,是數據庫存儲數據的單元。如果表與表之間有建立主、外鍵關系,在表對象創建之前,必須找出多表之間的主、外鍵關系,先建立主表,再建立外表。
約束:表與表之間的主、外鍵約束;默認約束;唯一約束;Check約束等。
視圖:視圖之間很可能存在引用關系,必須先建立被引用的視圖,然后再建立引用視圖。
函數:函數之間也可能存在相互引用關系。
存儲過程:創建存儲過程不需要嚴格按照引用關系來創建,但很有可能存在跨庫訪問的情況。
同義詞:同義詞類似于對象別名,這個是很多人容易忽略的地方。
邏輯遷移這種方式的好處是:應用切換時間很短,可以控制在秒級別。但是缺點也是顯而易見的。
對象創建過程十分復雜,需要首先找出對象間相互依賴關系,才能成功創建所有對象。
表與表主外鍵約束,從而導致了數據插入操作必須先主表,再外表的順序;數據刪除則相反。
將數據轉化為DML語句,然后在RDS上執行的方式,效率低下,尤其是大表的情況。
頻繁的DML操作語句,非常容易導致RDS上Blockig發生,甚至嚴重時會產生死鎖。
頻繁的DML操作,會導致數據日志文件在短時間內暴漲,消耗IOPS資源。
最為嚴重的缺點是,頻繁的DML操作,會導致表索引碎片率在短時間內大幅增加和統計信息的過時,從而導致執行計劃評估不準確,進行影響RDS數據庫的性能。
物理遷移
為了消除邏輯遷移的種種痛點,物理遷移是指,RDS SQL基于用戶的物理備份文件,直接遷移上云還原到RDS SQL上。既然RDS SQL上的數據是基于用戶線下數據庫備份文件(既可以是完全備份文件,也可以是完全備份文件 + 差異備份或者日志備份文件)直接遷移上云還原到RDS SQL上,那么,我們就可以100%的保證RDS SQL上的數據庫和用戶線下數據庫是100%一致的。就不會存在以上邏輯遷移的種種痛點,而最大的有點體現在解決了索引碎片和統計信息的不一致,導致用戶數據庫性能的問題,保證了用戶線下數據庫和RDS SQL數據庫行為時一致性。
兩者對比
邏輯遷移和物理遷移兩者的優缺點對比如下所示:
從對比的結果來看,物理遷移唯一的弱勢在于應用切換的時間稍長,控制在分鐘級別,但是我相信對于起碼95%以上的企業來講分鐘級別的遷移上云應用停止的時間還是可以接受的。
方案解析
在前一個章節,我們詳細分析了線下SQL Server數據庫遷移上云阿里云RDS SQL的兩種方式:邏輯遷移和物理遷移,從對比結果來看,物理遷移具有更多的優點并且復雜度可控,是實現自動化遷移上云的最佳方案。以下兩個小節是基于物理遷移上云方案的分析和流程圖設計。

kf@jusoucn.com
4008-020-360


4008-020-360
