數(shù)據(jù)復(fù)制服務(wù) (Data Replication Service,簡稱DRS)支持將ECS自建 數(shù)據(jù)庫 的數(shù)據(jù)同步到華為 云數(shù)據(jù)庫 PostgreSQL 實(shí)例。通過DRS提供的實(shí)時(shí)同步任務(wù),實(shí)現(xiàn)在數(shù)據(jù)庫同步過程中業(yè)務(wù)和數(shù)據(jù)庫不停機(jī),業(yè)務(wù)中斷時(shí)間最小化。
本章節(jié)主要介紹了通過DRS將ECS自建數(shù)據(jù)庫實(shí)時(shí)同步至華為云數(shù)據(jù)庫PostgreSQL的任務(wù)配置流程。支持以下網(wǎng)絡(luò)場景:
· 源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫屬于同一個(gè)VPC網(wǎng)絡(luò)內(nèi)
· 源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫屬于不同VPC網(wǎng)絡(luò)內(nèi)
網(wǎng)絡(luò)示意圖


同步流程

同步建議(重要)
· 數(shù)據(jù)庫同步與環(huán)境多樣性和人為操作均有密切關(guān)系,為了確保同步的平順,建議您在進(jìn)行正式的數(shù)據(jù)庫同步之前進(jìn)行一次演練,可以幫助您提前發(fā)現(xiàn)問題并解決問題,如何最小化對數(shù)據(jù)庫的影響請參考如下建議。
· 強(qiáng)烈建議您在啟動任務(wù)時(shí)選擇“稍后啟動”功能,將啟動時(shí)間設(shè)置在業(yè)務(wù)低峰期,相對靜止的數(shù)據(jù)可以有效提升一次性同步成功率,避免同步對業(yè)務(wù)造成性能影響。
同步須知(重要)
須知:在創(chuàng)建實(shí)時(shí)同步任務(wù)之前,請您務(wù)必仔細(xì)閱讀同步使用須知。參考《 數(shù)據(jù)復(fù)制 服務(wù)快速入門》中的“使用須知”章節(jié)。
同步準(zhǔn)備
1、權(quán)限準(zhǔn)備:
當(dāng)使用DRS將ECS自建數(shù)據(jù)庫PostgreSQL的數(shù)據(jù)同步到華為云數(shù)據(jù)庫PostgreSQ L實(shí)例 時(shí),在不同同步類型情況下,對源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的帳號權(quán)限要求如表1所示:
|
同步類型 |
全量同步 |
全量+增量同步 |
|---|---|---|
|
源數(shù)據(jù)庫 |
· 數(shù)據(jù)庫:CONNENT · 模式:USAGE · 有主鍵表:SELECT · 無主鍵表:SELECT、UPDATE、DELETE、TRUNCATE · 序列:SELECT |
· 賬戶:REPLICATION · 數(shù)據(jù)庫:CONNENT · 模式:USAGE · 有主鍵表:SELECT · 無主鍵表:SELECT、UPDATE、DELETE、TRUNCATE · 序列:SELECT |
|
目標(biāo)數(shù)據(jù)庫 |
CREATEDB |
CREATEDB、CREATEROLE |
· 源數(shù)據(jù)庫的權(quán)限設(shè)置:
需要確保源數(shù)據(jù)庫PostgreSQL的帳號具備表1的權(quán)限,若權(quán)限不足,需要在源數(shù)據(jù)庫端創(chuàng)建高權(quán)限的帳號。
· 目標(biāo)數(shù)據(jù)庫的權(quán)限設(shè)置:
華為云數(shù)據(jù)庫PostgreSQL使用初始帳號即可。
1、網(wǎng)絡(luò)準(zhǔn)備:
· 源數(shù)據(jù)庫所在的region要和目標(biāo)端華為云數(shù)據(jù)庫PostgreSQL實(shí)例所在的region保持一致。
· 源數(shù)據(jù)庫可以與目標(biāo)端華為云數(shù)據(jù)庫PostgreSQL實(shí)例在同一個(gè)VPC,也可以不在同一個(gè)VPC。
△ 當(dāng)不在同一個(gè)VPC的時(shí)候,要求源數(shù)據(jù)庫實(shí)例和目標(biāo)端華為云數(shù)據(jù)庫PostgreSQL實(shí)例所處的子網(wǎng)處于不同網(wǎng)段,此時(shí)需要通過建立對等連接實(shí)現(xiàn)網(wǎng)絡(luò)互通,具體操作請參見《 虛擬私有云 用戶指南》中“VPC對等連接”章節(jié)。
△ 當(dāng)在同一VPC的時(shí)候,網(wǎng)絡(luò)默認(rèn)是互通的。
2、安全規(guī)則準(zhǔn)備:
· 同一VPC場景下,默認(rèn)網(wǎng)絡(luò)是連通的,不需要單獨(dú)設(shè)置安全組。
· 不同VPC場景下,通過建立對等連接就可以實(shí)現(xiàn)網(wǎng)絡(luò)互通,不需要單獨(dú)設(shè)置安全組。
3、其他事項(xiàng)準(zhǔn)備:
DRS僅支持同步PostgreSQL部分類型的DDL語句,具體支持范圍請參考相關(guān)指導(dǎo)。請合理規(guī)劃源數(shù)據(jù)庫業(yè)務(wù),不要在同步期間產(chǎn)生支持范圍外的DDL操作。
同步步驟
1、創(chuàng)建同步任務(wù)。
a)登錄管理控制臺,在服務(wù)列表中選擇,進(jìn)入數(shù)據(jù)復(fù)制服務(wù)信息頁面。
b)在“實(shí)時(shí)同步管理”頁面,單擊右上角“創(chuàng)建同步任務(wù)”,進(jìn)入同步任務(wù)信息頁面。
c)在“同步實(shí)例”頁面,填選任務(wù)名稱、任務(wù)異常通知信息、描述和同步實(shí)例信息。

|
參數(shù) |
描述 |
|---|---|
|
區(qū)域 |
當(dāng)前所在區(qū)域,可進(jìn)行切換。 |
|
任務(wù)名稱 |
任務(wù)名稱在4-50位之間,必須以字母開頭,不區(qū)分大小寫,可以包含字母、數(shù)字、中劃線或下劃線,不能包含其他的特殊字符。 |
|
描述 |
描述不能超過256位,且不能包含! = < > & ' " \ 特殊字符。 |
|
任務(wù)異常通知設(shè)置 |
該項(xiàng)為可選參數(shù),開啟之后,選擇對應(yīng)的 SMN 主題,。當(dāng)同步任務(wù)狀態(tài)異常時(shí),系統(tǒng)將發(fā)送通知。 |
|
SMN主題 |
“任務(wù)異常通知設(shè)置”項(xiàng)開啟后可見,需提前在SMN上申請主題并添加訂閱。 |
|
時(shí)延閾值 |
在增量同步階段,源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫之間的同步有時(shí)會存在一個(gè)時(shí)間差,稱為時(shí)延,單位為秒。 時(shí)延閾值設(shè)置是指時(shí)延超過一定的值后(時(shí)延閾值范圍為1—3600s),DRS可以發(fā)送告警通知給指定收件人。告警通知將在時(shí)延穩(wěn)定超過設(shè)定的閾值6min后發(fā)送,避免出現(xiàn)由于時(shí)延波動反復(fù)發(fā)送告警通知的情況。 說明:
· 首次進(jìn)入增量同步階段,會有較多數(shù)據(jù)等待同步,存在較大的時(shí)延,屬于正常情況,不在此功能的監(jiān)控范圍之內(nèi)。 · 設(shè)置時(shí)延閾值之前,需要設(shè)置任務(wù)異常通知。 |
|
任務(wù)異常自動結(jié)束時(shí)間(天) |
設(shè)置任務(wù)異常自動結(jié)束天數(shù),輸入值必須在14-100之間。 說明:
異常狀態(tài)下的任務(wù)仍然會計(jì)費(fèi),而長時(shí)間異常的任務(wù)無法續(xù)傳和恢復(fù)。設(shè)置任務(wù)異常自動結(jié)束天數(shù)后,異常且超時(shí)的任務(wù)將會自動結(jié)束,以免產(chǎn)生不必要的費(fèi)用。 |
|
參數(shù) |
描述 |
|---|---|
|
數(shù)據(jù)流動方向 |
選擇“入云”。 |
|
源數(shù)據(jù)庫引擎 |
選擇“PostgreSQL”。 |
|
目標(biāo)數(shù)據(jù)庫引擎 |
選擇“PostgreSQL” 。 |
|
網(wǎng)絡(luò)類型 |
選擇“VPC網(wǎng)絡(luò)”。建議您開啟SSL安全連接,SSL約降低20-30%的同步性能,但保證了數(shù)據(jù)的安全性。 |
|
目標(biāo)數(shù)據(jù)庫實(shí)例 |
選擇您所創(chuàng)建的目標(biāo)PostgreSQL實(shí)例 |
|
同步類型 |
全量+增量: 該模式為數(shù)據(jù)持續(xù)性實(shí)時(shí)同步,通過全量過程完成目標(biāo)端數(shù)據(jù)庫的初始化后,增量同步階段通過解析日志等技術(shù),將源端和目標(biāo)端數(shù)據(jù)保持?jǐn)?shù)據(jù)持續(xù)一致。 說明:
選擇“全量+增量”同步模式,增量同步可以在全量同步完成的基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)的持續(xù)同步,無需中斷業(yè)務(wù),實(shí)現(xiàn)同步過程中源業(yè)務(wù)和數(shù)據(jù)庫繼續(xù)對外提供訪問。 |
d)在“源庫及目標(biāo)庫”頁面,同步實(shí)例創(chuàng)建成功后,填選源庫信息和目標(biāo)庫信息,建議您單擊“源庫和目標(biāo)庫”處的“測試連接”,分別測試并確定與源庫和目標(biāo)庫連通后,勾選協(xié)議,單擊“下一步”。
說明:此處源庫類型分為ECS自建庫和RDS實(shí)例,需要根據(jù)源數(shù)據(jù)庫的實(shí)際來源選擇相應(yīng)的分類。兩種場景下的參數(shù)配置不一樣,需要根據(jù)具體場景進(jìn)行配置。
· 場景一:ECS自建庫源庫信息配置
圖5 ECS自建庫場景源庫信息
|
參數(shù) |
描述 |
|---|---|
|
源庫類型 |
選擇“ECS自建庫”。 |
|
VPC |
源數(shù)據(jù)庫實(shí)例所在的 虛擬專用網(wǎng)絡(luò) ,可以對不同業(yè)務(wù)進(jìn)行網(wǎng)絡(luò)隔離。您需要創(chuàng)建或選擇所需的虛擬 私有云 。如何創(chuàng)建虛擬私有云,請參見《虛擬私有云用戶指南》中的“創(chuàng)建虛擬私有云基本信息及默認(rèn)子網(wǎng)”。 |
|
子網(wǎng) |
通過子網(wǎng)提供與其他網(wǎng)絡(luò)隔離的、可以獨(dú)享的網(wǎng)絡(luò)資源,以提高網(wǎng)絡(luò)安全。子網(wǎng)在可用分區(qū)內(nèi)才會有效,創(chuàng)建源數(shù)據(jù)庫實(shí)例的子網(wǎng)需要開啟DHCP功能,在創(chuàng)建過程中也不能關(guān)閉已選子網(wǎng)的DHCP功能。 |
|
IP地址或域名 |
配置源數(shù)據(jù)庫PostgreSQL實(shí)例的訪問地址或域名。 |
|
端口 |
配置源數(shù)據(jù)庫PostgreSQL實(shí)例的服務(wù)端口,可輸入范圍為1~65535間的整數(shù)。 |
|
數(shù)據(jù)庫用戶名 |
訪問源數(shù)據(jù)庫PostgreSQL的用戶名。 |
|
數(shù)據(jù)庫密碼 |
訪問源數(shù)據(jù)庫PostgreSQL的用戶名所對應(yīng)的密碼。 |
|
SSL安全連接 |
在選擇公網(wǎng)網(wǎng)絡(luò)進(jìn)行同步任務(wù)時(shí),為了提升數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的安全性,建議您開啟SSL安全連接,對同步鏈路進(jìn)行加密,如果開啟,需要您上傳CA證書。 |
· 場景二:RDS實(shí)例源庫信息配置
圖6 RDS實(shí)例場景源庫信息
|
參數(shù) |
描述 |
|---|---|
|
源庫類型 |
選擇“RDS實(shí)例”。 |
|
數(shù)據(jù)庫實(shí)例名稱 |
選擇待同步的關(guān)系型PostgreSQL數(shù)據(jù)庫實(shí)例作為源數(shù)據(jù)庫實(shí)例。 |
|
數(shù)據(jù)庫用戶名 |
訪問源數(shù)據(jù)庫PostgreSQL的用戶名。 |
|
數(shù)據(jù)庫密碼 |
訪問源數(shù)據(jù)庫PostgreSQL的用戶名所對應(yīng)的密碼。 |
圖7 目標(biāo)庫信息
|
參數(shù) |
描述 |
|---|---|
|
數(shù)據(jù)庫實(shí)例名稱 |
默認(rèn)為創(chuàng)建同步任務(wù)時(shí)選擇的已創(chuàng)建的PostgreSQL實(shí)例,不可進(jìn)行修改。 |
|
數(shù)據(jù)庫用戶名 |
訪問目標(biāo)端PostgreSQL實(shí)例的用戶名。 |
|
數(shù)據(jù)庫密碼 |
訪問目標(biāo)端PostgreSQL實(shí)例的用戶名所對應(yīng)的密碼。 |
e)在“同步設(shè)置”頁面,選擇同步對象和同步用戶。
圖8 同步模式
f)在“預(yù)檢查”頁面,進(jìn)行同步任務(wù)預(yù)校驗(yàn),校驗(yàn)是否可進(jìn)行實(shí)時(shí)同步。
· 查看檢查結(jié)果,如有不通過的檢查項(xiàng),需要修復(fù)不通過項(xiàng)后,單擊“重新校驗(yàn)”按鈕重新進(jìn)行任務(wù)預(yù)校驗(yàn)。
預(yù)檢查不通過項(xiàng)處理建議請參見《數(shù)據(jù)復(fù)制服務(wù)用戶指南》中的“預(yù)檢查不通過項(xiàng)修復(fù)方法”。
· 預(yù)檢查完成后,且所有檢查項(xiàng)結(jié)果均通過時(shí),單擊“下一步”。
圖9 預(yù)檢查
說明:所有檢查項(xiàng)結(jié)果均通過時(shí),若存在請確認(rèn)項(xiàng),需要閱讀并確認(rèn)詳情后才可以繼續(xù)執(zhí)行下一步操作。
g)在“任務(wù)確認(rèn)”頁面,選擇同步任務(wù)的啟動時(shí)間,勾選協(xié)議,單擊“啟動任務(wù)”,提交同步任務(wù)。
說明:
· 同步任務(wù)的啟動時(shí)間可以根據(jù)業(yè)務(wù)需求,設(shè)置為“立即啟動”或“稍后啟動”。
· 預(yù)計(jì)同步任務(wù)啟動后,會對源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的性能產(chǎn)生影響,建議選擇業(yè)務(wù)低峰期,合理設(shè)置同步任務(wù)的啟動時(shí)間。
h)同步任務(wù)提交后,開始啟動同步任務(wù),您可以返回“實(shí)時(shí)同步管理”頁面,查看同步任務(wù)狀態(tài)。
2、任務(wù)管理。
同步任務(wù)啟動后,會經(jīng)歷全量同步和增量同步兩個(gè)階段,對于不同階段的同步任務(wù),您可以進(jìn)行任務(wù)管理。
· 全量同步
查看同步進(jìn)度:全量同步中的任務(wù),您可單擊任務(wù)名稱,在“同步進(jìn)度”頁簽下,查看全量同步進(jìn)度,您可以查看結(jié)構(gòu)、數(shù)據(jù)、索引同步的進(jìn)度,也查看具體同步對象的同步進(jìn)度。當(dāng)全量同步進(jìn)度顯示為100%,表示全量同步已經(jīng)完成。
· 增量同步
【查看時(shí)延監(jiān)控】全量同步完成后,開始進(jìn)行增量同步。對于增量同步中的任務(wù),您可單擊任務(wù)名稱,在“同步進(jìn)度”頁簽下,查看增量同步同步時(shí)延,當(dāng)時(shí)延為0s時(shí),說明源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)是實(shí)時(shí)同步的。您也可以使用“同步對比”頁簽進(jìn)行一致性對比。
圖10 查看時(shí)延監(jiān)控
【查看同步對比】為了盡可能減少業(yè)務(wù)的影響和業(yè)務(wù)中斷時(shí)間,增量同步中的任務(wù),您可單擊任務(wù)名稱,在“同步對比”頁簽下創(chuàng)建對比任務(wù)。
具體的同步對比操作及注意事項(xiàng)請參考《數(shù)據(jù)復(fù)制服務(wù)用戶指南》中“對比同步項(xiàng)”章節(jié)。
3、割接建議。
建議您選擇一個(gè)業(yè)務(wù)低峰期,開始正式系統(tǒng)割接流程。割接前,請您確認(rèn)至少在業(yè)務(wù)低峰期有過一次完整的數(shù)據(jù)對比??梢越Y(jié)合數(shù)據(jù)對比的“稍后啟動”功能,選擇業(yè)務(wù)低峰期進(jìn)行數(shù)據(jù)對比,以便得到更為具有參考性的對比結(jié)果。由于同步具有輕微的時(shí)差,在數(shù)據(jù)持續(xù)操作過程中進(jìn)行對比任務(wù),可能會出現(xiàn)少量數(shù)據(jù)不一致對比結(jié)果,從而失去參考意義。
a)先中斷業(yè)務(wù)(如果業(yè)務(wù)負(fù)載非常輕,也可以嘗試不中斷業(yè)務(wù))。
b)在源數(shù)據(jù)庫端執(zhí)行如下語句,并觀察在1-5分鐘內(nèi)若無任何新會話執(zhí)行SQL ,則可認(rèn)為業(yè)務(wù)已經(jīng)完全停止。
select * from pg_stat_activity;
說明:上述語句查詢到的進(jìn)程列表中,包括DRS同步實(shí)例的連接,您需要確認(rèn)除DRS同步實(shí)例的連接外無任何新會話執(zhí)行SQL,即可認(rèn)為業(yè)務(wù)已經(jīng)完全停止。
c)通過DRS同步任務(wù)監(jiān)控頁面進(jìn)行觀察同步時(shí)延,保持實(shí)時(shí)同步時(shí)延為0,并穩(wěn)定保持一段時(shí)間;同時(shí),您可以使用數(shù)據(jù)級對比功能,進(jìn)行割接前的最后一次數(shù)據(jù)級對比,耗時(shí)可參考之前的對比記錄。
· 如果時(shí)間允許,則選擇全部對比。
· 如果時(shí)間不允許,則推薦對比活躍表,關(guān)鍵業(yè)務(wù)表,第二步對比多次存在差異的表等。
d)確定系統(tǒng)割接時(shí)機(jī),業(yè)務(wù)系統(tǒng)指向華為云數(shù)據(jù)庫,業(yè)務(wù)對外恢復(fù)使用,同步完成。
4、同步結(jié)束。
a)結(jié)束同步任務(wù):業(yè)務(wù)系統(tǒng)和數(shù)據(jù)庫切換至華為云后,為了防止源數(shù)據(jù)庫的操作繼續(xù)同步到目標(biāo)數(shù)據(jù)庫,造成數(shù)據(jù)覆蓋問題,此時(shí)您可選擇結(jié)束同步任務(wù),該操作僅刪除了同步實(shí)例,同步任務(wù)仍顯示在任務(wù)列表中,您可以進(jìn)行查看或刪除。結(jié)束同步任務(wù)后,DRS將不再計(jì)費(fèi)。
b)刪除同步任務(wù):對于已結(jié)束的同步任務(wù),您可選擇刪除任務(wù)。該操作將一并刪除同步任務(wù),刪除同步任務(wù)后,該任務(wù)將不會出現(xiàn)在任務(wù)列表中。
- 數(shù)據(jù)庫有哪些_開源數(shù)據(jù)庫_數(shù)據(jù)庫應(yīng)用系統(tǒng)_數(shù)據(jù)庫的應(yīng)用
- 數(shù)據(jù)安全-數(shù)據(jù)庫安全-數(shù)據(jù)庫審計(jì)工具
- 免費(fèi)的云數(shù)據(jù)庫_云原生數(shù)據(jù)庫_云數(shù)據(jù)庫和本地?cái)?shù)據(jù)庫的區(qū)別
- 免費(fèi)mysql云數(shù)據(jù)庫_免費(fèi)的數(shù)據(jù)庫_大數(shù)據(jù)數(shù)據(jù)庫
- 常見的數(shù)據(jù)庫_什么是數(shù)據(jù)庫_數(shù)據(jù)庫有哪些
最新文章
- mysql數(shù)據(jù)庫的特點(diǎn)_mysql數(shù)據(jù)庫同步_安裝mysql數(shù)據(jù)庫
- 數(shù)據(jù)庫如何遷移上云
- 自建數(shù)據(jù)庫遷移上云_IDC數(shù)據(jù)庫上云_ECS自建數(shù)據(jù)庫
- GaussDB自建數(shù)據(jù)庫_GaussDB數(shù)據(jù)庫_華為高斯自建數(shù)據(jù)庫
- PostgreSQL_云數(shù)據(jù)庫RDS for PostgreSQL_華為云
- 云數(shù)據(jù)庫 RDS for PostgreSQL數(shù)據(jù)庫權(quán)限_PG數(shù)據(jù)庫管理_華為云