利用mysqlbinlog进行集群备份的设想
实现MySQL热备份的最好方法,我一直都认为是Replication,xtrabackup等各种热备脚本,都没有Replication安全方便。
面对一个大规模集群的备份,由于实例太对,没办法创建这么多实例去Replication。之前我的想法一直是通过修改MySQL的源码,扩展MySQL Replication可以创建多个M-S复制,这对MySQL本身有入侵,没办法保证我的代码能有非常高的可靠性,更严重的是要改变MySQL的语法,来支持多Master的Change语句,对.yy文件的修改风险就更大了。
在这条路不断的碰壁之时,突然想到,mysqlbinlog不是一个很好的工具吗,为什么还要靠修改源码,一个利用mysqlbinlog进行大规模备份的想法就诞生了,但是是否可靠还要去验证下。
怎么做呢,首先了解下MySQL Replication怎么做的,首先一个Slave IO线程从Master读取binlog,然后解析到Relay-log,另一个Slave SQL线程异步的从Relay-log中读取SQL应用到本地。
mysqlbinlog有一个参数read-from-remote-server,可以从远程读取binlog,只要创建一个有Replication Client权限的用户即可,这就模拟了Slave IO线程的作用。
mysqlbinglog –read-from-remote-server -u repl -p -h target_node –start-datetime=’2010-09-01 00:00:00′ –stop-datetime=’2010-09-01 23:59:59′
通过这条命令就可以获取到2010-09-01这一天的全部SQL,这些SQL可以直接导入到数据库,也可以写到Relaylog,让SLave SQL线程去执行。
假设我们原来是每5分钟备份一次新产生的binlog,每天一次全备,所有备份都在一个备份机上,利用上述方法,就可以如下操作:
1. 在备份机启动一个实例,指向任意一个没有操作的Master,使Relay-log文件生成。
2. 每个要备份的实例从备份机每5分钟发起一次mysqlbinlog请求,获取上5分钟的binlog,写入到一个临时文件,然后等临时文件写完了,去touch一个锁,写Relaylog。
3. 每天Slave Start一次,Slave Start之前touch一个锁,让Relay-log的写阻塞,等待Slave start执行完毕,删除Relay-log的写锁。
4. 删除前一天产生的临时文件。
这样操作就可以保证,每五分钟产生的SQL都被分开记录,方便查找,每天的Slave start则消化掉这些SQL。
如果想方便一点,不写Relay-log也是可以的,直接每天把SQL丢给MySQL执行一次就好,效果也一样。
具体这种方法靠谱不靠谱,我会去实践一下看看。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

谷歌瀏覽器擴充功能如何備份?對於大多數Google瀏覽器用戶來說,日常使用時會安裝或多或少的插件,插件的存在可以提升我們的使用體驗。當我們重裝系統或瀏覽器時,這些插件卻無法保留,重新下載安裝又比較麻煩,那麼有沒有辦法備份目前已安裝的插件呢?下面就為大家帶來操作方法。備份chrome插件的教學方法先打開Google瀏覽器,點擊右上角的選單,選擇更多工具-擴充功能。點擊擴充功能頁面上方的打包擴充功能。在C:UsersAdministratorAppDataLocalGoogleChromeUserDataDe

如果您希望在Windows11的檔案總管中隱藏「開始備份」選項,以下是您可以採取的方法。有多種途徑可用於在檔案總管中停用或隱藏啟動備份選項,我們將簡要列出一些方法,以幫助您快速完成此任務。在開始之前,您需要了解這個選項與OneDrive密切相關。一旦您開啟某個庫資料夾(例如Document、Pictures、Music等),它會立即顯示在檔案總管的路徑中。如何在Windows11的檔案總管中刪除啟動備份要在Windows11的檔案總管中刪除啟動備份,請依照下列方法操

在PHP中備份和還原MySQL資料庫可透過以下步驟實現:備份資料庫:使用mysqldump指令轉儲資料庫為SQL檔。還原資料庫:使用mysql指令從SQL檔案還原資料庫。

標題:hosts檔案刪除後如何恢復摘要:hosts檔案是作業系統中非常重要的一個文件,用於將網域名稱對應到IP位址。如果不小心將hosts檔案刪除了,可能會導致上網無法存取特定網站或其他網路問題。本文將介紹如何在Windows和Mac作業系統中復原被誤刪的hosts檔案。內文:一、Windows作業系統中恢復hosts檔案Windows作業系統中的hosts文

近期有很多小夥伴諮詢小編ghost怎麼備份系統,接下來就讓我們一起學習ghost備份系統的方法教程,希望可以幫助大家。 1、運行Ghost後,點選“OK”,如圖所示。 2.依序點選「Local」→「Partition」→「ToImage」(意為:本地→分割區→到鏡像檔),如圖所示。 3.出現選擇本機硬碟窗口,點選要備份的分割區所在硬碟,再點選“OK”,如圖所示。 4.出現選擇來源分割區視窗(來源分割區就是你要備份的那個分割區),點選系統所在的分割區(通常為1區,一定要弄準),再點選“OK”,如圖所示。 5.此時彈

如何利用GitLab進行專案文件管理一、背景介紹在軟體開發過程中,專案文件是非常重要的資料,不僅能夠幫助開發團隊了解專案的需求和設計,還能提供給測試團隊和客戶參考。為了方便專案文件的版本控制和團隊協作,我們可以利用GitLab來進行專案文件管理。 GitLab是一個基於Git的版本控制系統,除了支援程式碼管理,還可以管理專案文件。二、GitLab環境建置首先,我

WindowsServerBackup是WindowsServer作業系統自帶的功能,旨在協助使用者保護重要資料和系統配置,並為中小型和企業級企業提供完整的備份和復原解決方案。只有執行Server2022及更高版本的使用者才能使用此功能。在本文中,我們將介紹如何安裝、解除安裝或重設WindowsServerBackup。如何重置Windows伺服器備份如果您的伺服器備份遇到問題,備份所需時間過長,或無法存取已儲存的文件,那麼您可以考慮重新設定WindowsServer備份設定。要重設Windows

如何在麒麟作業系統上進行系統備份與還原?麒麟作業系統是中國自主研發的開源作業系統,廣泛應用於各種場景。在使用麒麟作業系統時,系統備份和復原是非常重要的任務。備份系統可防止因故障或誤操作而導致資料遺失,而係統復原則可在系統崩潰時快速還原正常功能。本文將詳細介紹如何在麒麟作業系統上進行系統備份和恢復,並附上相關程式碼範例。備份系統為了備份整個系統,我們可以
