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