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