MySQL 双方向バックアップはマスター-マスター バックアップとも呼ばれ、両方の MySQL サービスがマスターであり、いずれかのサービスが他のサービスのスレーブです。 準備する サーバ
注意: 異なるバージョンではバイナリ ログ形式に互換性がない可能性があるため、バックアップされた MySQL サーバーのバージョンは一貫性を保つ必要があります。 特定の操作 知らせ 操作中は両側のデータの一貫性に注意してください。 ! ! マスターA構成 マイ.cnf [mysqld] # サーバーの一意の識別子 server-id=1 # バイナリログファイル名 log-bin=mysql-bin # バックアップが必要なデータベース。複数のデータベースは binlog-do-db=piumnl で区切られます。 # 複製が必要なデータベース。複数のデータベースは、replicate-do-db=piumnl で区切られます。 # リレーログファイル名 relay_log=mysqld-relay-bin # 突然のダウンタイムによるデータログの非同期化を回避するために、同期サービスを手動で開始します skip-slave-start=ON # 相互マスタースレーブの場合は、この行を追加する必要があります log-slave-updates=ON # セキュリティリスクを防ぐためにシンボリックリンクを無効にします。symbolic-links=0 を追加する必要はありません。 # オプション# 解決 - [警告] スレーブ SQL: クラッシュが発生した場合、この構成ではリレー ログ情報の一貫性が保証されません。Error_code: 0 マスター情報リポジトリ = テーブル リレーログ情報リポジトリ=テーブル リレーログリカバリ=1 #オプション# DNS解決を無効にすると、認証時に使用されたドメイン名が無効になります skip-host-cache 名前解決をスキップ sql_mode=NO_ENGINE_SUBSTITUTION、STRICT_TRANS_TABLES マスターB構成 マイ.cnf # 各設定項目の説明は不要になりました [mysqld] サーバーID=2 ログ bin = mysql bin binlog-do-db=piumnl 複製するDB=piumnl リレーログ=mysqlリレービン スレーブ開始をスキップ=ON ログスレーブ更新=ON シンボリックリンク=0 # 解決 - [警告] スレーブ SQL: クラッシュが発生した場合、この構成ではリレー ログ情報の一貫性が保証されません。Error_code: 0 マスター情報リポジトリ = テーブル リレーログ情報リポジトリ=テーブル リレーログリカバリ=1 ホストキャッシュをスキップする 名前解決をスキップ sql_mode=NO_ENGINE_SUBSTITUTION、STRICT_TRANS_TABLES バックアップユーザーを作成する masterA と masterB の両方でバックアップ ユーザーを作成する必要があります。 create user 'rep'@'%' identified by 'rep'; # アカウントを作成します grant replication slave on *.* to 'rep'@'%'; # アカウントに任意のデータベースの任意のテーブルに対するマスタースレーブバックアップ権限を付与します 述べる:
サーバーを再起動します サーバーを再起動します バックアップを有効にする マスターA マスターBのステータスを確認する マスターステータスを表示\G; # ここではファイルと位置の値に注意する必要があります バックアップを有効にする 奴隷を停止します。 # master_log_file は、最初のステップ操作の File 値です。 # master_log_pos は、最初のステップ操作の位置値です。master を、master_host=<master_hostname>、master_user=<rep_username>、master_port=<master_port>、master_password=<rep_password>、master_log_file='mysql-log.000003'、master_log_pos=154 に変更します。 スレーブを起動します。 結果を見る スレーブステータスを表示\G; # 最も重要な 2 つの項目をチェックします。両方とも Yes である必要があります。1 つが No の場合は、エラー ログ ファイルをチェックして問題がどこにあるかを確認します。# Slave_IO_Running: Yes # スレーブSQL実行中: はい マスターB マスターAの操作を逆に繰り返す テスト データをそれぞれ masterA と masterB に挿入し、他のサーバーに期待どおりのデータが時間内に存在するかどうかを確認します。 質問 MySQL スレーブがリレー ログを開けませんでした これはリレーログの問題であるはずです。次の操作を試してください。 奴隷を停止します。 ログをフラッシュする。 スレーブを起動します。 バイナリ ログからデータを読み取っているときにマスターから致命的なエラー 1236 が発生しました メイン データベースからログを取得したときに、メイン データベースの mysql_bin.index ファイルの最初のファイルが存在しないことが判明しました。 # リセットするには次の操作を実行します # バイナリ ログまたはリレー ログに他の機能がある場合は、次の操作を実行しないでください マスターをリセットします。 スレーブをリセットします。 ログをフラッシュする。 <データベース>.<テーブル> 挿入、更新、削除操作に <database>.<table> を使用すると、バックアップされません (これは大きな落とし穴です)。 ! ! 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: ネイティブ JavaScript でシンプルな Gobang ゲームを実装する
>>: docker-composeの詳細なインストールと使用方法
シナリオ1. ID番号のフィールドを備えた市民システムを維持する2. ビジネス コードでは、重複する...
1. スクロールスナップはフロントエンド開発者にとって必須のスキルですCSS スクロール スナップは...
目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...
この記事の例では、カレンダーウィジェットを実装するためのjsの具体的なコードを参考までに共有していま...
1. MySQLをダウンロードするMySQL 公式 Web サイトにログインし、MSI インストー...
MySQLのスイッチングデータ保存ディレクトリの実装方法今日、仕事中に、mysql が保存されている...
Linux col コマンドLinux の col コマンドは制御文字をフィルタリングするために使用...
Linux シェル環境で直接呼び出すことができます。公式 Web サイトによると、Zabbix のデ...
序文この記事は、最も人気のある言語で最も退屈な基礎知識を説明することを目的としていますこのトピックは...
Nginx におけるいわゆる接続制限は、実際には TCP 接続、つまり 3 ウェイ ハンドシェイク後...
負荷分散とは負荷分散は主に、専用のハードウェア デバイスまたはソフトウェア アルゴリズムによって実現...
1. MYSQLのインストール1. ダウンロードしたMySQLインストールファイルmysql-5.5...
1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...
ここでは、v3 のインストールと使用にのみ焦点を当てます。v2 について学びたい場合は、公式 Web...
背景Docker の人気は、コンテナの共有と移植が容易であることと密接に関係しています。ユーザーは、...