ホームページ データベース mysql チュートリアル 利用mysqlbinlog进行集群备份的设想

利用mysqlbinlog进行集群备份的设想

Mar 13, 2017 pm 02:05 PM
利用 バックアップ 行為 集まる

实现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执行一次就好,效果也一样。

具体这种方法靠谱不靠谱,我会去实践一下看看。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Chrome拡張機能をバックアップする方法 Google Chrome拡張機能をバックアップする方法 Jan 30, 2024 pm 12:36 PM

Google Chrome拡張機能をバックアップするにはどうすればよいですか?ほとんどの Google Chrome ユーザーは、日々の使用中に多かれ少なかれプラグインをインストールします。プラグインの存在により、使用エクスペリエンスが向上します。システムやブラウザを再インストールすると、これらのプラグインは保持できず、再度ダウンロードしてインストールするのが面倒なので、現在インストールされているプラ​​グインをバックアップする方法はありますか?その方法は次のとおりです。 Chrome プラグインをバックアップするチュートリアルの方法では、まず Google Chrome を開き、右上隅のメニューをクリックして、[その他のツール] - [拡張機能] を選択します。拡張機能ページの上にある「パッケージ拡張機能」をクリックします。 C:UsersAdministratorAppDataLocalGoogleChromeUserDataDe

Windows 11のファイルエクスプローラーで起動バックアップを削除する方法 Windows 11のファイルエクスプローラーで起動バックアップを削除する方法 Feb 18, 2024 pm 05:40 PM

Windows 11 のファイル エクスプローラーで [バックアップの開始] オプションを非表示にしたい場合は、次の方法を実行できます。ファイル エクスプローラーで起動バックアップ オプションを無効または非表示にする方法はいくつかあります。このタスクを迅速に実行するのに役立ついくつかの方法を簡単にリストします。始める前に、このオプションが OneDrive と密接に関係していることを理解する必要があります。ライブラリ フォルダー (ドキュメント、画像、音楽など) を開くと、ファイル エクスプローラーのパスにすぐに表示されます。 Windows 11 のファイル エクスプローラーで起動バックアップを削除する方法 Windows 11 のファイル エクスプローラーで起動バックアップを削除するには、次の手順に従います。

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

削除されたホストファイルを復元する方法 削除されたホストファイルを復元する方法 Feb 22, 2024 pm 10:48 PM

タイトル: 削除後に hosts ファイルを復元する方法 概要: hosts ファイルはオペレーティング システムの非常に重要なファイルであり、ドメイン名を IP アドレスにマップするために使用されます。誤って hosts ファイルを削除すると、特定の Web サイトにアクセスできなくなったり、その他のネットワークの問題が発生したりする可能性があります。この記事では、Windows および Mac オペレーティング システムで誤って削除したホスト ファイルを復元する方法を紹介します。テキスト: 1. Windows オペレーティング システムでホスト ファイルを復元する Windows オペレーティング システムでのホスト ファイル

ゴースト-ゴーストバックアップを使用してシステムをバックアップする方法のチュートリアル ゴースト-ゴーストバックアップを使用してシステムをバックアップする方法のチュートリアル Mar 06, 2024 pm 04:30 PM

最近、多くの友人が編集者に Ghost でシステムをバックアップする方法を尋ねてきました。次に、Ghost でシステムをバックアップする方法のチュートリアルを学びましょう。皆さんのお役に立てれば幸いです。 1. Ghost を実行した後、図に示すように [OK] をクリックします。 2. 図に示すように、「ローカル」→「パーティション」→「ToImage」(ローカル→パーティション→イメージファイルへの意味)をクリックします。 3. 図に示すように、[ローカル ハードディスクの選択] ウィンドウが表示され、バックアップするパーティションが存在するハードディスクをクリックし、[OK] をクリックします。 4. [ソース パーティションの選択] ウィンドウが表示されます (ソース パーティションはバックアップするパーティションです)。システムが配置されているパーティション (通常はゾーン 1、必ず正しく指定してください) をクリックし、[OK] をクリックします。図に示すように。 5. この時点でプレイする

プロジェクトドキュメント管理に GitLab を使用する方法 プロジェクトドキュメント管理に GitLab を使用する方法 Oct 20, 2023 am 10:40 AM

プロジェクトドキュメント管理に GitLab を使用する方法 1. 背景の紹介 ソフトウェア開発プロセスにおいて、プロジェクトドキュメントは非常に重要な情報であり、開発チームがプロジェクトのニーズと設計を理解するのに役立つだけでなく、テストチームの参考にもなります。そして顧客。プロジェクト ドキュメントのバージョン管理とチーム コラボレーションを容易にするために、プロジェクト ドキュメント管理に GitLab を使用できます。 GitLab は Git をベースとしたバージョン管理システムであり、コード管理をサポートするだけでなく、プロジェクト ドキュメントの管理も行うことができます。 2. GitLabの環境設定 まず、

Windows サーバーのバックアップをインストール、アンインストール、リセットする方法 Windows サーバーのバックアップをインストール、アンインストール、リセットする方法 Mar 06, 2024 am 10:37 AM

WindowsServerBackup は、WindowsServer オペレーティング システムに付属する機能で、ユーザーが重要なデータとシステム構成を保護し、中小企業、エンタープライズ レベルの企業に完全なバックアップおよび回復ソリューションを提供できるように設計されています。この機能を使用できるのは、Server2022 以降を実行しているユーザーのみです。この記事では、WindowsServerBackup のインストール、アンインストール、またはリセットの方法を説明します。 Windows Server バックアップをリセットする方法 サーバー バックアップで問題が発生したり、バックアップに時間がかかりすぎたり、保存されているファイルにアクセスできない場合は、Windows Server バックアップ設定をリセットすることを検討してください。 Windowsをリセットするには

Kirin OS でシステムのバックアップと復元を実行するにはどうすればよいですか? Kirin OS でシステムのバックアップと復元を実行するにはどうすればよいですか? Aug 07, 2023 pm 02:22 PM

Kirin OS でシステムのバックアップと復元を実行するにはどうすればよいですか? Kirin オペレーティング システムは、中国で独自に開発されたオープンソース オペレーティング システムであり、さまざまなシナリオで広く使用されています。 Kirin オペレーティング システムを使用する場合、システムのバックアップと復元は非常に重要なタスクです。バックアップ システムは誤動作や誤操作によるデータ損失を防ぐことができ、システム リカバリはシステム クラッシュが発生した場合に通常の機能を迅速に復元できます。この記事では、Kirin オペレーティング システムでシステムのバックアップとリカバリを実行する方法を詳しく紹介し、関連するコード例を添付します。システムのバックアップ システム全体をバックアップするには、次のことができます。

See all articles