【評論有獎】數據高可用備份教程開放,無效「全額退款」
7 人贊了文章
看完本帖,你將收穫華為雲技術專家教你的數據備份永不出錯的訣竅和萌寵加濕器一個最初我們做RDS for MySQL 備份也是基於這樣的模型,但不同的是,我們引入了對象存儲系統(Object Storage)。因為實例較多,發生切換時不能靠人工處理,因此引入了高可用系統(High Available)。針對備份,我們也抽象出一個獨立系統,用來處理複雜的備份和還原過程,稱之為備份恢復系統(Backup and Restore)。最終的框架圖如下:
敲黑板劃重點:
基於備機備份第1個帶來的問題我們要正視,那就是可能的延遲,整體上延遲時間為:OBS上的數據時間 晚於 備機的數據時間 晚於 主機的數據時間即:OBS上的數據可能 晚於 備機的數據,而後者又 晚於 主機的數據。這個延遲會帶來其它問題,我們在做高可用和可靠性混合測試時碰到過。假設A的uuid為A,B的uuid為B,具體操作步驟和數據如下:操作主機A主機BOBS--replicate-same-server-id
Command-Line Format--replicate-same-server-idPermitted ValuesTypebooleanDefaultFALSETo be used on slave servers. Usually you should use the default setting of 0, to prevent infinite loops caused by circular replication. If set to 1, the slave does not skip events having its own server ID. Normally, this is useful only in rare configurations. The option cannot be set to 1 when is enabled, which is the default.By default, the slave I/O thread does not write binary log events to the relay log if they have the slaves server ID (this optimization helps save disk usage). If you want to use , be sure to start the slave with this option before you make the slave read its own events that you want the slave SQL thread to execute.
--log-slave-updates enables replication servers to be chained. For example, you might want to set up replication servers using this arrangement:A -> B -> CHere, A serves as the master for the slave B, and B serves as the master for the slave C. For this to work, B must be both a master and a slave. With binary logging and the --log-slave-updates option enabled, which are the default settings, updates received from A are logged by B to its binary log, and can therefore be passed on to C.大意是說:為防止循環複製引起的無限循環,備機默認設置通常為0。一旦設置為1,備機會忽略那些同自己具有相同server ID的事件,所以會出現上面我們遇到的問題。測試了一遍,是它!又測試一遍,是它!再測試一遍,還真是它!本以為找到了救命的靈丹妙藥,但接下來的問題還是讓我們面面相覷。
官方文檔寫明replicate-same-server-id 與 log-slave-updates 互斥關係,而log-slave-updates則是我們在備機做備份必須開啟的參數,所以該參數我們不能設置為on,這就相當尷尬了……目前這個問題只能規避,例如在每次恢復的時候,重新設置server ID 為一個不重複的值。而且 MySQL不推薦使用重複的 ID 值,也是為了防止出現無限循環複製。此外,補充一個注意事項,就是在備機做運維動作時,對於修改數據、flush等這類會寫bin-log 的操作時,一定要先執行 set sql_log_bin=0,否則你的每一筆操作,都會造成備機少同步一條數據。文章到此結束,該問題的發現、重現、定位及解決,在追求數據的最大可靠性上,我們從不懈怠。評論有獎:各位小可愛們需要回答的問題分別是:1、 數據備份技能有沒有get到呢?若沒有,原因是?2、 使用過華為雲資料庫的備份恢復功能嗎?
3、 你們是怎麼判斷主備不一致的?4、 主備機數據不一致的時候,你們有哪些運維動作?評獎規則:在本帖留言區回復上述四個問題,對話題互動的優質用戶進行評獎,其次是沒有了解本教程,並給出改進意見的走心用戶進行評獎。活動時間:2018年7月20日-7月27日活動結束後,我們會抽取優質評論獎3名送出搭配小夜燈、小風扇三合一的萌寵加濕器文章轉載自華為雲社區
【評論有獎】數據高可用備份教程開放,無效「全額退款」_社區活動_雲論壇_雲社區-華為雲
推薦閱讀:
※對WannaCry勒索病毒的反思:我們為什麼不養成備份的習慣?
※金蝶KIS系列產品的賬套備份功能應用
※災備行業最全常用術語 僅此一份
※使用mysqlbackup 備份