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 の計算プロパティ、監視プロパティ、ライフサイクルの詳細な説明

推薦する

dockerでsshd操作を有効にする

まず、docker に openssh-server をインストールします。インストールが完了したら...

Day.js をベースにした JavaScript での日付処理のよりエレガントな方法

目次day.js を使用する理由モーメントデイ.js day.js がなければどうなるでしょうか? ...

Centos 7 sshd の変更 | ルートログインの禁止と sshd ポートスクリプトの定義

1. 新しいユーザーwwweee000を作成します [root@localhost ~]# user...

MySql マスタースレーブレプリケーションの実装原理と構成

データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...

mysql ダーティ ページとは何ですか?

目次ダーティページ(メモリページ)ダーティページが表示されるのはなぜですか?メモリ管理メカニズムの簡...

TypeScript名前空間の説明

目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

W3C チュートリアル (10): W3C XQuery アクティビティ

XQuery は、XML ドキュメントからデータを抽出するための言語です。 XQuery は、XML...

MYSQL開発パフォーマンス調査:バッチデータ挿入の最適化方法

1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...

Linux で MySQL パスワードを忘れた場合の解決策

問題は次のとおりです。mysql -uroot -p コマンドを入力しましたが、パスワードを忘れてし...

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)

ステップ1: サードパーティの信頼できるSSL証明書に署名するAlibaba Cloud で直接、無...

Vue+echarts でプログレスバーのヒストグラムを実現

この記事では、プログレスバーヒストグラムを実現するためのvue+echartsの具体的なコードを参考...

Vue ルーティング遅延読み込みの詳細

目次1. ルートの遅延読み込みとは何ですか? 2. ルートの遅延読み込みの使用1. ルートの遅延読み...

ウェブ標準学習リソースの素晴らしいコレクション

これらの仕様は、下位互換性のあるドキュメントを Web 上で公開し、できるだけ幅広いユーザーがアクセ...