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が間違ったインデックスを選択する理由と解決策

MySQL では、テーブルに複数のインデックスを指定できますが、ステートメントの実行時に、使用するイ...

モバイル適応型ウェブページ効果は、小さな表示ページの問題を解決します

仕事上、携帯電話に適応した Web ページ効果を作成する必要があります。ようやく完成しました。まずは...

CSSページ下部固定を実現する8つの方法の詳細な説明

ページを書いているときに、ページの内容が小さくてフッターがページの真ん中に留まってしまうといった状況...

DockerがMySQL構成実装プロセスを開始

目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...

CSS を使用して物流の進行状況のスタイルを実装するためのサンプルコード

効果: CSS スタイル: <スタイル タイプ="text/css">...

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...

MySQL 5.7 のキーワードと予約語の詳細な説明

序文MySQL と Oracle のキーワードはまったく同じではありません。Oracle データベー...

line-height=height要素の高さだがテキストが垂直方向に中央揃えされない問題を解決する

まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...

JavaScriptエンジンV8の実行プロセスの詳細な説明

目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...

要素に丸い境界線を追加する border-radius メソッド

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

Tomcat9 Windows サービスのインストールに関する詳細なチュートリアル

1. 準備1.1 service.bat を含む tomcat 圧縮パッケージをダウンロードします。...

Vue が scss (mixin) をグローバルに導入

目次1. ミックスイン.scss 2. 単一ファイルの使用3. グローバルマウント3.1 依存関係の...

Element UI をインストールして vue3.0 でベクター グラフィックスを使用する方法

ここでは、v3 のインストールと使用にのみ焦点を当てます。v2 について学びたい場合は、公式 Web...

さまざまなターミナルで Mac が SSH 経由でリモート サーバーに接続する方法の説明

Macはシェル(ターミナル)SSHを使用してリモートサーバーに接続します前提条件: 接続する必要があ...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...