ホームページ  >  記事  >  データベース  >  mysql学習におけるマスタースレーブレプリケーションについて詳しく解説

mysql学習におけるマスタースレーブレプリケーションについて詳しく解説

迷茫
迷茫オリジナル
2017-03-26 13:29:001190ブラウズ

この記事ではmysql5.5 centos6.5 64-bitを使用しています

1. マスター/スレーブレプリケーションの役割

1. マスターサーバーに問題が発生した場合、すぐにスレーブサーバーに切り替えることができます。 。

2. リアルタイム要件が高くないアプリケーション、または更新頻度が低いアプリケーションは、マスター サーバーへのアクセス負荷を軽減するために、スレーブ サーバー上でクエリ操作を実行できます。負荷効果を実現するには、データの読み取りと書き込みを分離します。

3. バックアップ期間中のマスターサーバーへの影響を避けるために、データバックアップ操作をスレーブサーバーで実行できます。

マスター/スレーブ レプリケーションの原則:

原理分析: マスター サーバーは binlog ログをオンにし、スレーブ サーバーは、マスター サーバーによって付与されたユーザーを通じてマスター サーバーによってローカルに生成された binlog ログを読み取り、それをリレーログログに変換し、リレーログログを実行します。

2. マスター/スレーブレプリケーション環境をセットアップします

マスター: 192.168.6.224

スレーブ: 192.168.6.222

1. マスターサーバーでスレーブサーバーの許可ユーザーを設定します。マスターサーバー、スレーブサーバー 192.168.6.222 を設定します。ユーザー名 user2 でパスワードは 123 のユーザーを作成します

mysql>「123」で識別される user2@192.168.6.222 に *.* をすべて許可します。

パラメータの説明:

grant: mysql 認可キーワード

*.*: すべてのライブラリとすべてのテーブル

ユーザー認可が成功したかどうかを確認します:

mysql> show grants for user2@192.168.6.222;

user2 がスレーブサーバーの user2 を使用してマスターサーバーの mysql にログインできるかどうかをテストします

[ root@localhost tmp]# mysql -uuser2 -p123 test -h192.168.6.224;

2. メインサーバーの bin-log を開き、server-id の値を設定します。

マスターサーバーの my.cnf 設定ファイルを変更します:

[mysqld]
#开启mysql的bin-log日志
log-bin=mysql-bin
#主服务器该值设置为1
server-id    = 1

3. bin-log ログをリセットします: mysql>

最新の bin-log ログのステータスを確認します。開始位置: mysql> ; show master status;

mysql> show master status;
+------------------+----------+--------------+------------------+
| 
File
             | 
Position
 | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000
001
 |      107 |              |                  |
+------------------+----------+--------------+------------------+

4. マスターデータベースデータをバックアップします

b. ここでは、mysqldump メソッドを使用します。データをバックアップし、-l -F パラメータを直接使用します。データをバックアップするときは、読み取りロックを設定し、bin-log ログを更新します mysqldump -uroot -p111111 test -l -F > test.sql';

5. メインサーバーでバックアップしたデータをスレーブサーバーへ送信します

[root@localhost tmp]# scp mysql_back/test.sql 192.168.6.222:/tmp/mysql_back/

6. スレーブサーバーの bin-log ログをリセットし、スレーブサーバーのデータのバックアップを使用します

rester master;

[root@localhost tmp]# mysql -uroot -p111111 test -v -f< /tmp/mysql_back/test.sql;

7. スレーブ サーバーで cnf パラメータを設定します

a. #スレーブ サーバーのサーバー ID を設定します (複数のスレーブ サーバーがある場合、それぞれに固有のserver-id)

server-id = 2

b. #bin-log ログを開きます

log-bin=mysql-bin c. #必要なホスト、ユーザー名、パスワード、ポート番号を設定します。 synchronized


#配置需要同步的主机
 master-host     =   192.168.6.224
# The username the slave will use for authentication when connecting
# to the master - required
 master-user     =   user2
#
# The password the slave will authenticate with when connecting to
# the master - required
 master-password =   123
#
# The port the master is listening on.
# optional - defaults to 3306
 master-port     =  3306

d. mysqlを再起動して設定ファイルを有効にします

[root@localhost tmp]# service mysqld restart

方法を変更した後にmysqlサーバーを再起動できない場合は、次の方法を使用できます。

mysql> change master to master_host="192.168.6.224",
master_user="user2",
master_password="123",
master_port=3306,
master_log_file="mysql-bin.000002",master_log_pos=107;
mysql> slave start;

8. スレーブのステータスを確認します

mysql . row  master .bin.relaybin.bin.

Master_Log_File: ホスト上のマスターとスレーブの同期に使用されるログ ファイルの名前を表します。

Read_Master_Log_Pos: 正常に完了したログ ファイル内の場所を表します。に同期されます。

この2つの項目がメインサーバーで以前に確認されたFileとPositionの値と一致しない場合、同期は正しく実行できません。

3. テスト

1. マスターサーバーにデータを追加し、bin-log ログのステータスを確認します

mysql> insert into t1 values(13);
Query OK, 1 row affected (0.02 sec)

mysql> insert into t1 values(14);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t1 values(15);
Query OK, 1 row affected (0.01 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      656 |              |                  |
+------------------+----------+--------------+------------------+

ここで、位置とスレーブが確認できます。マスターサーバーの Read_Master_Log_Pos 値は等しく、Slave_IO_Running 値と Slave_SQL_Running 値は両方とも Yes です。このようにして、mysql のマスター/スレーブ構成が成功します。

4. マスター/スレーブレプリケーションの一般的なコマンド

1. スレーブの開始 # レプリケーションスレッドを開始します

2. スレーブの停止 # レプリケーションスレッドを停止します 3. スレーブのステータスを表示 # スレーブデータベースのステータスを表示します

4. show master logs ;#マスター データベースの bin-log ログを確認します

5. マスターを #マスター サーバーの構成を動的に変更します6. show processlist;#スレーブ データベースの実行プロセスを表示します

以上がmysql学習におけるマスタースレーブレプリケーションについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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