MySQL マルチマスターと 1 スレーブのデータバックアップ方法のチュートリアル

MySQL マルチマスターと 1 スレーブのデータバックアップ方法のチュートリアル

概要

いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデータの一貫性が常に保たれます。

これには次の利点があります。

  • 災害復旧にも使用でき、いずれか 1 つに障害が発生した場合は別のものに切り替えることができます。
  • 負荷分散を実行し、リクエストを任意のマシンに分散して、Web サイトのスループットを向上させることができます。 オフサイトのホットバックアップでは、特に災害復旧に適しています。

MySQL マスタースレーブレプリケーション方式

1 マスターデータベースがデータベースを操作すると、操作記録がbiglogログファイルに書き込まれます。

2 スレーブデータベースは、ネットワークを介してマスターデータベースのログファイルを取得し、それをローカルログシステムに書き込み、データベース内のデータベースイベントを1つずつ完了します。

3 スレーブはリレー ログ内のイベントをやり直し、マスターの変更を自身のデータベースに反映するため、両端のデータはまったく同じになります。

環境

オペレーティングシステム: CentOS

MySQL バージョン: mysql-5.6.26 (マスターとスレーブのデータベース バージョンは一致している必要があります)

マスター1の構成

1 バイナリログを有効にする

vim /etc/my.cnf

サーバーID=6
ログ bin = mysql bin

2 MySQLを再起動し、ログインして認証する

mysql -uroot -p123456

'123456' で識別される 'repl'@'10.211.55.7' に、*.* 上のレプリケーション スレーブ、レプリケーション クライアントを許可します。

IPアドレスはスレーブサーバーのIPアドレスです

3 ログステータスの表示

マスターステータスを表示します。

マスター2の構成

1 バイナリログを有効にする

vim /etc/my.cnf

サーバーID=8
ログ bin = mysql bin

2 MySQLを再起動し、ログインして認証する

mysql -uroot -p123456

'123456' で識別される 'repl'@'10.211.55.7' に、*.* 上のレプリケーション スレーブ、レプリケーション クライアントを許可します。

IPアドレスはスレーブサーバーのIPアドレスです

3 ログステータスの表示

マスターステータスを表示します。

スレーブ構成

1 設定ファイルを変更します(スレーブのデフォルトデータベースが起動されるポートは閉じられている必要があることに注意してください service mysql stop)

vim /etc/my.cnf

[mysqld]
 binlog-ignore-db=mysql
 binlog_format=混合
 有効期限=7
 スレーブスキップエラー=1062
 リレーログ=mysqlリレービン
 ログスレーブ更新=1

[mysqld_マルチ]
 mysqld = /usr/bin/mysqld_safe です。
 mysqladmin = /usr/bin/mysqladmin
 ユーザー=root
 パスワード=123456
[mysqld6]
 ポート=3306
 データディレクトリ=/home/mysql/data6
 pidファイル=/home/mysql/data6/mysql.pid
 ソケット=/home/mysql/data6/mysql.sock
 ユーザー=mysql
 サーバーID=7
[mysqld8]
 ポート=3307
 データディレクトリ=/home/mysql/data8
 pidファイル=/home/mysql/data8/mysql.pid
 ソケット=/home/mysql/data8/mysql.sock
 ユーザー=mysql
 サーバーID=7

2 ビルドディレクトリを初期化する

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data6 &
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data8 &

3 ディレクトリの権限を変更する

chown -R mysql /home/mysql/data6

chown -R mysql /home/mysql/data8

4 サービスを開始する

mysqld_multi --defaults-file=/etc/my.cnf 開始 6

mysqld_multi --defaults-file=/etc/my.cnf 開始 8

5 ログインテスト(別途認証)

mysql -P 3306 -S /home/mysql/data6/mysql.sock

mysql> マスターを、master_host='10.211.55.6'、master_user='repl'、master_password='123456'、master_port=3306、master_log_file='mysql-bin.000001'、master_log_pos=120 に変更します。
mysql> スレーブを起動します。

mysql -P 3307 -S /home/mysql/data8/mysql.sock

mysql> マスターを、master_host='10.211.55.8'、master_user='repl'、master_password='123456'、master_port=3306、master_log_file='mysql-bin.000001'、master_log_pos=120 に変更します。
mysql> スレーブを起動します。

はい、以上です。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL マスタースレーブ構築(複数のマスターと 1 つのスレーブ)の実装アイデアと手順
  • Centos7 Mysql 5.6 マルチマスターと 1 スレーブのソリューションと詳細な構成
  • MySQL8.0.18 複数マスターと 1 スレーブの構成

<<:  Linuxカーネルがプロセスアドレス空間に侵入し、プロセスメモリを変更する方法

>>:  Vue.js の計算プロパティ、監視プロパティ、ライフサイクルの詳細な説明

推薦する

MySQL の行レベルロックの詳細な例

序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...

Docker Composeを使用してDOCleverをインストールする詳細なプロセスを説明します

目次1. Docker Composeとは何か、インストールして使用する方法2. DOCleverと...

WiFi 開発 | WiFi ワイヤレス テクノロジーの紹介

目次WiFiワイヤレステクノロジーの紹介1. WiFiテクノロジーの概要2. ESP8266の紹介W...

Dockerコマンドの自動補完の実装

序文この友人がどれくらいDockerを使っていなかったのかは分かりませんが、突然Dockerコマンド...

Helloダイアログボックスのデザイン体験の共有

「どうしたの?」特定の種類のダイアログ ボックスに慣れていない限り、ダイアログ ボックスが表示された...

Chrome Dev Tools を使用してページのパフォーマンスを分析する方法 (フロントエンドのパフォーマンス最適化)

背景開発やデバッグには Chrome Dev Tools がよく使用されますが、ページのパフォーマン...

一般的な HTTP ステータス コード 10 個の詳細な説明

HTTP ステータス コードは、Web サーバーの HTTP 応答ステータスを示すために使用される ...

MySQL、Oracle、SQL Server のページングクエリ例の分析

最近、Oracle、MySQL、SQL Server 2005 のデータ ページング クエリについて...

JavaScript の知識: コンストラクタも関数である

目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...

一般的なブラウザのユーザーエージェントの概要

1. 基礎知識: HTTP ヘッダー ユーザーエージェントユーザー エージェントは、ユーザー エージ...

UbuntuにMySQLデータベースをインストールする方法

Ubuntu は、Linux をベースにした無料のオープンソース デスクトップ PC オペレーティン...

MySQL でコミットされていないトランザクションを見つけるための SQL の例の簡単な分析

以前、「MySQL でコミットされていないトランザクション情報を検索する方法」というタイトルのブログ...

フロントエンド HTML+CSS+JS を使用してシンプルな TODOLIST 関数を開発する (メモ帳)

目次1. 簡単な紹介2. スクリーンショットを実行する3. コードの紹介4. まとめ1. 簡単な紹介...