區域和可用區
什么是區域、可用區?
我們用區域和可(ke)(ke)用區來(lai)描述(shu)數據中心的位置(zhi),您可(ke)(ke)以在特定(ding)的區域、可(ke)(ke)用區創建資源。
區域(yu)(Region)指(zhi)物理的數據(ju)中(zhong)心(xin)。每個區域(yu)完全(quan)獨立,這樣可以實現(xian)最大程度的容(rong)錯(cuo)能力和穩(wen)定性。資源創(chuang)建成功后不能更換(huan)區域(yu)。
可(ke)(ke)用(yong)(yong)區(qu)(qu)(AZ,Availability Zone)是(shi)同(tong)一(yi)區(qu)(qu)域內(nei),電力和(he)網(wang)絡互相隔離(li)的(de)物(wu)理區(qu)(qu)域,一(yi)個(ge)可(ke)(ke)用(yong)(yong)區(qu)(qu)不受其他可(ke)(ke)用(yong)(yong)區(qu)(qu)故障的(de)影響。一(yi)個(ge)區(qu)(qu)域內(nei)可(ke)(ke)以有多個(ge)可(ke)(ke)用(yong)(yong)區(qu)(qu),不同(tong)可(ke)(ke)用(yong)(yong)區(qu)(qu)之間物(wu)理隔離(li),但內(nei)網(wang)互通,既(ji)保障了(le)可(ke)(ke)用(yong)(yong)區(qu)(qu)的(de)獨立性(xing),又提供了(le)低價(jia)、低時延的(de)網(wang)絡連接。
圖闡明了(le)區(qu)域和(he)可用區(qu)之間的關系。
區域和可用區

如何選擇區域?
建(jian)議就近(jin)選擇(ze)靠(kao)近(jin)您或者您的(de)目標(biao)用戶的(de)區域,這(zhe)樣(yang)可以減少網絡時(shi)延,提高訪(fang)問速度。
如何選擇可用區?
是否將(jiang)資源放在同一可(ke)用區內,主要取(qu)決于您(nin)對容災能力和網絡時延的要求。
如果您的應用(yong)需要較高的容災能力(li),建議您將資源(yuan)部(bu)署在同一(yi)區域的不同可(ke)用(yong)區內。
如(ru)果您的(de)應用要求實例之(zhi)間的(de)網絡延時較低(di),則建議您將(jiang)資源創(chuang)建在(zai)同一可(ke)用區內。
什么是數據庫復制
數(shu)(shu)據(ju)復(fu)制服(fu)務(Data Replication Service,簡稱DRS)是一種易用(yong)、穩定、高效、用(yong)于(yu)數(shu)(shu)據(ju)庫實時遷(qian)移和數(shu)(shu)據(ju)庫實時同步的云(yun)服(fu)務。
數據(ju)復制(zhi)服務圍繞(rao)云數據(ju)庫,降低了數據(ju)庫之間數據(ju)流通的(de)復雜性(xing),有效地(di)幫助您(nin)減(jian)少數據(ju)傳輸的(de)成本。
您可通過(guo)數據(ju)復制服務快速(su)解決多場景下,數據(ju)庫之間的數據(ju)流通問題(ti),以滿(man)足數據(ju)傳(chuan)輸業務需求。
實時遷移
實時(shi)遷移是指(zhi)在數(shu)(shu)據(ju)復制服務器能夠同(tong)時(shi)連通源(yuan)數(shu)(shu)據(ju)庫和目標(biao)數(shu)(shu)據(ju)庫的(de)(de)情況下,只需要配置遷移的(de)(de)源(yuan)、目標(biao)數(shu)(shu)據(ju)庫實例及(ji)遷移對(dui)象(xiang)即(ji)可(ke)完成整個數(shu)(shu)據(ju)遷移過程,再通過多項指(zhi)標(biao)和數(shu)(shu)據(ju)的(de)(de)對(dui)比分析(xi),幫助確定合(he)適的(de)(de)業務割接時(shi)機(ji),實現(xian)最小化業務中斷的(de)(de)數(shu)(shu)據(ju)庫遷移。
實時遷(qian)移(yi)(yi)支持多種網(wang)絡遷(qian)移(yi)(yi)方(fang)式,如:公網(wang)網(wang)絡、VPC網(wang)絡、VPN網(wang)絡和專線網(wang)絡。通過多種網(wang)絡鏈路,可快速實現跨(kua)云(yun)平(ping)臺數據庫遷(qian)移(yi)(yi)、云(yun)下數據庫遷(qian)移(yi)(yi)上云(yun)或云(yun)上跨(kua)區域的數據庫遷(qian)移(yi)(yi)等多種業務場(chang)景遷(qian)移(yi)(yi)。
特(te)點:通(tong)過增(zeng)量(liang)遷(qian)(qian)移技術,能(neng)夠最大(da)限度允許遷(qian)(qian)移過程中業(ye)務(wu)(wu)繼續對外提供(gong)使用,有效的將業(ye)務(wu)(wu)系(xi)統(tong)中斷時(shi)間(jian)和業(ye)務(wu)(wu)影(ying)響最小(xiao)化,實現數據庫平滑遷(qian)(qian)移上(shang)云,支持全部數據庫對象的遷(qian)(qian)移。
備份遷移
由于安全原(yuan)因,數(shu)據(ju)(ju)庫(ku)的IP地(di)址(zhi)有時不能暴(bao)露(lu)在(zai)公網上(shang),但(dan)是(shi)選(xuan)(xuan)擇(ze)專(zhuan)線網絡進行(xing)數(shu)據(ju)(ju)庫(ku)遷(qian)移(yi)(yi),成本又高(gao)。這種情況(kuang)(kuang)下,您可以(yi)選(xuan)(xuan)用(yong)數(shu)據(ju)(ju)復制服(fu)務提供的備份遷(qian)移(yi)(yi),通(tong)過將源(yuan)(yuan)數(shu)據(ju)(ju)庫(ku)的數(shu)據(ju)(ju)導出成備份文(wen)件,并(bing)上(shang)傳(chuan)至對象存儲服(fu)務,然(ran)后恢復到(dao)目標數(shu)據(ju)(ju)庫(ku)。備份遷(qian)移(yi)(yi)可以(yi)幫助您在(zai)云(yun)服(fu)務不觸碰源(yuan)(yuan)數(shu)據(ju)(ju)庫(ku)的情況(kuang)(kuang)下,實(shi)現數(shu)據(ju)(ju)遷(qian)移(yi)(yi)。
常(chang)用場(chang)景:云下數據庫遷移上云。
特點:云服(fu)務無需碰觸源數(shu)據庫(ku),實現數(shu)據遷(qian)移。
實時災備
為(wei)(wei)了解(jie)決(jue)地區故障導致(zhi)的業務(wu)不(bu)可用,數據復制(zhi)服務(wu)推(tui)出(chu)災(zai)備場景,為(wei)(wei)用戶(hu)業務(wu)連續性提供數據庫(ku)的同步(bu)保(bao)障。您可以輕松地實現(xian)云下(xia)數據庫(ku)到云上的災(zai)備、跨云平(ping)臺的數據庫(ku)災(zai)備,無需預先投入(ru)巨額基礎設(she)施(shi)。
數據災備(bei)支持兩地(di)三中心、兩地(di)四中心災備(bei)架構。
數據庫復制服務是否支持關系型數據庫的HA實例遷移
數據(ju)復制服務的(de)高(gao)可用性保(bao)障(zhang)機制,可以(yi)支持(chi)關(guan)系型數據(ju)庫的(de)單實(shi)(shi)例(li)和(he)HA實(shi)(shi)例(li)的(de)遷移。針對HA實(shi)(shi)例(li)的(de)遷移,DRS的(de)自動重連技術(shu)在連接短(duan)暫中斷后連接可以(yi)得到修復,斷點續(xu)(xu)傳技術(shu),根據(ju)數據(ju)庫內(nei)部(bu)連續(xu)(xu)性標(biao)志可以(yi)確保(bao)實(shi)(shi)時同(tong)步的(de)連續(xu)(xu)性和(he)一致(zhi)性。
源(yuan)數(shu)據庫(ku)的HA設計(ji),滿足浮(fu)動IP連(lian)接效(xiao)果,且倒換時RPO=0,則DRS完全支持數(shu)據庫(ku)的HA實例遷移,無需人工(gong)介入。
源數據庫的HA設計,不能滿足浮動IP連接且倒換(huan)時(shi)(shi)RPO=0時(shi)(shi),存(cun)在以下幾種(zhong)情況:
使用浮(fu)動IP,但不能保證倒換時RPO=0時,可以連接,但DRS會識別出(chu)數據(ju)斷層(如果有主備倒換出(chu)現數據(ju)丟失(shi)的話(hua))并提(ti)示(shi)任務(wu)失(shi)敗,此時只能根(gen)據(ju)新(xin)的數據(ju)情況,使用重置功能重新(xin)遷移。
使用固(gu)定(ding)IP,且倒(dao)換時(shi)RPO=0時(shi),支持遷移(只有在實(shi)例正常運行的情況下支持遷移,否則不支持)。
使用固定IP,且(qie)不能(neng)保(bao)證切換(huan)時RPO=0時, 可(ke)以(yi)連接,但DRS會識別(bie)出數據斷層并提示任(ren)務失(shi)敗,此(ci)時只(zhi)能(neng)根據新(xin)的數據情況(kuang),使用重置(zhi)功能(neng)重新(xin)遷移(yi)。
出云(yun)遷移且目(mu)標(biao)端(duan)數(shu)(shu)據(ju)庫為HA實例時,DRS可以(yi)保(bao)證(zheng)源的數(shu)(shu)據(ju)完整的遷移到目(mu)標(biao)數(shu)(shu)據(ju)庫,但由(you)于(yu)目(mu)標(biao)數(shu)(shu)據(ju)庫本身的倒換不能保(bao)證(zheng)RPO=0,則目(mu)標(biao)數(shu)(shu)據(ju)庫可能會(hui)出現(xian)數(shu)(shu)據(ju)斷層的情況(kuang)。
DRS支持斷點續傳嗎?
針對(dui)數據(ju)庫(ku)的(de)(de)遷移(yi)(yi)場景,在遷移(yi)(yi)過程中由于不可(ke)抗拒因素(例如(ru)網絡波動)導致的(de)(de)任務失敗(bai),DRS通過記錄當前解析(xi)和回放(fang)的(de)(de)位點(該位點同時(shi)也(ye)是數據(ju)庫(ku)內部一致性的(de)(de)依(yi)據(ju)),下(xia)次從(cong)該位點開始回放(fang)的(de)(de)方式來實(shi)現斷點續傳(chuan),以確保(bao)數據(ju)的(de)(de)完整性。
增量(liang)階(jie)段(duan)的(de)遷移,DRS會(hui)自(zi)(zi)動進行多(duo)次斷點續(xu)(xu)傳的(de)重試,全(quan)量(liang)階(jie)段(duan)的(de)MySQL遷移,系(xi)統默認進行三次自(zi)(zi)動續(xu)(xu)傳,無(wu)需(xu)人工(gong)干預。當(dang)自(zi)(zi)動重試失敗累計一定次數后,任務會(hui)顯示異(yi)常,需(xu)要人為(wei)根據(ju)日志(zhi)來分析無(wu)法(fa)繼續(xu)(xu)的(de)原因,并嘗試解決阻(zu)塞點(例如數據(ju)庫修改了密碼),如果(guo)環境無(wu)法(fa)修復,如所需(xu)日志(zhi)已經淘(tao)汰,則使(shi)用重置功能可以完全(quan)重新(xin)開始任務。
實時遷移和同步有什么區別
| 對比項 | 實時遷移 | 實時同步 |
|---|---|---|
| 適用場景 | 跨云平臺數據庫遷移、云下數據庫遷移上云或云上跨區域的數據庫遷移等多種業務場景遷移。 | 實時分析,報表系統,數倉環境等。 |
| 特點 | 以整體數據庫搬遷為目的,通過增量遷移技術,最大限度允許遷移過程中業務繼續對外提供使用,有效的將業務系統中斷時間和業務影響最小化,實現數據庫平滑遷移上云,支持全部數據庫對象的遷移。 | 維持不同業務之間的數據持續性流動,聚焦于表和數據,并滿足多種靈活性的需求,例如多對一、一對多,動態增減同步表,不同表名之間同步數據等。 |
| 功能特性 | 詳情請參見 實時遷移。 | 詳情請參見實時同步。 |
DRS出現數據膨脹怎么辦
DRS在(zai)全量遷(qian)移(yi)階段,為了保證(zheng)遷(qian)移(yi)性(xing)能和傳輸的穩定性(xing),采用了行級(ji)并(bing)行的遷(qian)移(yi)方式。當源(yuan)端(duan)數(shu)據緊湊情況下,通過DRS遷(qian)移(yi)到云上RDS for MySQL后,可能會(hui)出現(xian)數(shu)據膨脹現(xian)象,使(shi)得磁盤(pan)空間(jian)使(shi)用遠大于源(yuan)端(duan)。針對這(zhe)種情況,客戶可選擇在(zai)目(mu)標庫中執行以(yi)下命令(ling),進行優化整理從而縮小(xiao)空間(jian)。
optimize table table_name
由(you)于命令optimize會進(jin)行鎖表操作(zuo)(zuo),所(suo)以進(jin)行優化時要避開表數(shu)據(ju)操作(zuo)(zuo)時間,避免(mian)影(ying)響正常業(ye)務的進(jin)行。
DRS為什么不能選擇RDS只讀實例
DRS不(bu)支持在界面直接選擇(ze)RDS只(zhi)讀(du)實(shi)(shi)例,用戶(hu)可(ke)通過選擇(ze)自建(jian)后輸入只(zhi)讀(du)實(shi)(shi)例IP和端口的方式進行連接。
DRS對數據庫和目標數據庫有什么影響
DRS對(dui)源數據(ju)庫(ku)的壓力及影(ying)響(xiang)
全量(liang)(初始化(hua))階段,DRS需(xu)要(yao)從(cong)源(yuan)(yuan)庫(ku)(ku)將所(suo)有存(cun)量(liang)數(shu)據(ju)(ju)查(cha)(cha)詢(xun)(xun)一次。DRS查(cha)(cha)詢(xun)(xun)使(shi)用簡單SQL語句,對源(yuan)(yuan)庫(ku)(ku)影響主(zhu)要(yao)體現(xian)在IO上(shang),查(cha)(cha)詢(xun)(xun)速度(du)也受限于源(yuan)(yuan)數(shu)據(ju)(ju)庫(ku)(ku)IO相(xiang)關(guan)的性能以及網絡帶寬。一般在網絡無瓶頸的情況下(xia),會對源(yuan)(yuan)數(shu)據(ju)(ju)庫(ku)(ku)增加約(yue)50MB/s的查(cha)(cha)詢(xun)(xun)壓力(li),以及占用2~4個(ge)CPU,在并發(fa)讀取源(yuan)(yuan)數(shu)據(ju)(ju)庫(ku)(ku)時,會占用大(da)約(yue)6-10個(ge)session連(lian)接(jie)數(shu),其中:
- 有小于8個連接查詢源數據庫的一些系統表(如information_schema庫下的表信息tables,視圖信息views、列信息columns等);
- 有小于4個連接查詢源數據庫數據分片的SQL,類似如下語句,其中select和where后的條件只會有主鍵或者唯一鍵。
select id from xxx where id>12345544 and limit 10000,1;
- 有小于4個連接查詢數據的SQL,類似如下語句,其中select后為表所有的列名,where后的條件只會有主鍵或者唯一鍵。
select id,name,msg from xxx where id>12345544 and id<=12445544;
- 無主鍵表的鎖表操作SQL,類似如下語句,鎖表只是為了獲取無主鍵表的一致性位點,鎖表后獲取一個連接就會解鎖。
flush table xxx with read lock
lock table xxx read
增量階(jie)段對(dui)源數(shu)據庫基本無壓力,只有一個dump連接實時監(jian)聽binlog增量。
DRS對目標數據(ju)庫(ku)的壓力(li)及影響
全(quan)量(初始化)階(jie)段,DRS需要將源數(shu)據庫結構、索引以(yi)及存量數(shu)據全(quan)部寫入到目標數(shu)據庫,順序為先遷移結構,再遷移數(shu)據,最后加索引,一般總連接數(shu)小于16個session,其中(zhong):
- 有小于8個連接在批量創建結構。
- 有小于8個連接在批量寫數據,類似如下語句:insert into xxx (id,name,msg) valus (xxx);
- 有小于8個連接在批量創建索引,類似如下語句:
alter table xxx add index xxx;
增(zeng)量階段,DRS會(hui)把源數(shu)據庫binlog中(zhong)的增(zeng)量數(shu)據解析成SQL在目標數(shu)據庫中(zhong)執行,一般總連接(jie)數(shu)小于64個session,其中(zhong):
- DDL會串行執行,執行DDL時,不會有其他DML執行。
- DML最多會有64個連接(短連接,超時時間30秒),其中DML只是簡單的insert、update、delete、replace語句。
如果需(xu)要評估對源數據庫(ku)的影響,可選擇(ze)創建測試任務,再通過限速功(gong)能或業(ye)務低峰期動等來調整遷移策略。