mysql5.7 GTIDマスターコピーモード-新しいslave 1を追加
6926 ワード
実験シーンの説明と目的:
GTIDの主従モードは、現在は一主一従で、もう一つのslaveを加えて一主二従のモードにしたいと思っています.テストのデータベースが大きくないためmysqldumpでデータをバックアップし、データベースが大きい場合は、他のslaveのバックアップで新しいslaveを構築する方法を考えることができます.
1.マスターのバックアップ
現在のgtidを記録する:
XtrabackupならXtrabackup_binlog_infoファイルにはglobalが含まれています.gtid_purged='XXXXXXX:XXXXX'の情報です.
2.新しいslaveでデータベースを作成し、Masterのバックアップを復元
2.1.ライブラリ作成方法:https://blog.csdn.net/jolly10/article/details/79566640
2.2.完全なバックアップを復元するには、次の手順に従います.
2.3新しいslaveでの修正/etc/my.cnf,gtidを開く
データベースの再起動:
3.新しいslaveレプリケーションの正確性を検証するために、masterで操作して、slaveが正しく同期できるかどうかを見ます.
4.新しいslaveでレプリケーションを開始します.
まず、現在のgtidを確認します.
新しいslaveライブラリはmasterから復元されましたgtid_purgedは自動的に1-11の値を持ち、手動でreset masterを実行する必要はありません.set global gtid_purged='xxxx',mysql 5.7この方面はまた強化しました!(@@global.gtid_executedが空の場合のみ、@@global.gtid_purgedを動的に設定できます.したがって、@global.gtid_executedはRESET MASTERでクリアできます.)
コピーを直接オンにすればいいです.
完全に準備した後、masterで変更したデータが同期されているかどうかを確認します.
問題なく、データは新しいslaveに同期しました.
参照先:
https://www.cnblogs.com/zejin2008/p/7705473.html
http://www.cnblogs.com/luckcs/articles/6295992.html
GTIDの主従モードは、現在は一主一従で、もう一つのslaveを加えて一主二従のモードにしたいと思っています.テストのデータベースが大きくないためmysqldumpでデータをバックアップし、データベースが大きい場合は、他のslaveのバックアップで新しいslaveを構築する方法を考えることができます.
1.マスターのバックアップ
mysql> FLUSH TABLE WITH READ LOCK;
Query OK, 0 rows affected (0.01 sec)
[root@qht131 backup]# mysqldump -u root -p --lock-all-tables --master-data=2 --flush-logs --all-databases --triggers --routines --events > full.sql
[root@qht131 backup]# scp full.sql 172.17.61.133:/u01/backup
現在のgtidを記録する:
mysql> show global variables like 'gtid_%';
+----------------------------------+-------------------------------------------+
| Variable_name | Value |
+----------------------------------+-------------------------------------------+
| gtid_executed | 8d8746fb-2cc6-11e8-b1b6-000c295c63e0:1-11 |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_owned | |
| gtid_purged | |
+----------------------------------+-------------------------------------------+
5 rows in set (0.09 sec)
XtrabackupならXtrabackup_binlog_infoファイルにはglobalが含まれています.gtid_purged='XXXXXXX:XXXXX'の情報です.
2.新しいslaveでデータベースを作成し、Masterのバックアップを復元
2.1.ライブラリ作成方法:https://blog.csdn.net/jolly10/article/details/79566640
2.2.完全なバックアップを復元するには、次の手順に従います.
[root@qht133 backup]# mysql -uroot -p < full.sql
2.3新しいslaveでの修正/etc/my.cnf,gtidを開く
[root@qht133 backup]# cat /etc/my.cnf
[mysqld]
socket = /usr/local/mysql/mysql.sock
character_set_server= utf8
init_connect= 'SET NAMES utf8'
basedir= /usr/local/mysql
datadir= /u01/mysql
socket = /u01/mysql/mysql.sock
log-error= /u01/log/mysql/mysql_3306.err
pid-file= /u01/mysql/mysqld.pid
lower_case_table_names = 1
sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
secure-file-priv = /u01/backup
gtid_mode=on # gtid
enforce_gtid_consistency=on # gtid
server-id=10003 #server id
skip_slave_start=1 #
#log_bin = /u01/mysql/mysql_bin
#skip-grant-tables
#innodb_flush_log_at_trx_commit=1
#sync_binlog=1
relay-log=/u01/mysql/slave_relay_bin
expire_logs_days=10
relay_log_recovery=on
relay_log_info_repository=TABLE
データベースの再起動:
[root@qht133 backup]# service mysql restart
Shutting down MySQL.. [ OK ]
Starting MySQL.. [ OK ]
3.新しいslaveレプリケーションの正確性を検証するために、masterで操作して、slaveが正しく同期できるかどうかを見ます.
mysql> use l5m
Database changed
mysql> select count(*) from test_emp;
+----------+
| count(*) |
+----------+
| 1099000 |
+----------+
1 row in set (0.67 sec)
mysql> delete from test_emp limit 1000;
Query OK, 1000 rows affected (0.08 sec)
mysql> select count(*) from test_emp;
+----------+
| count(*) |
+----------+
| 1098000 |
+----------+
1 row in set (0.18 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'gtid_%';
+----------------------------------+-------------------------------------------+
| Variable_name | Value |
+----------------------------------+-------------------------------------------+
| gtid_executed | 8d8746fb-2cc6-11e8-b1b6-000c295c63e0:1-12 |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_owned | |
| gtid_purged | |
+----------------------------------+-------------------------------------------+
5 rows in set (0.01 sec)
4.新しいslaveでレプリケーションを開始します.
まず、現在のgtidを確認します.
mysql> show global variables like 'gtid_%';
+----------------------------------+-------------------------------------------+
| Variable_name | Value |
+----------------------------------+-------------------------------------------+
| gtid_executed | 8d8746fb-2cc6-11e8-b1b6-000c295c63e0:1-11 |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_owned | |
| gtid_purged | 8d8746fb-2cc6-11e8-b1b6-000c295c63e0:1-11 |
+----------------------------------+-------------------------------------------+
5 rows in set (0.00 sec)
新しいslaveライブラリはmasterから復元されましたgtid_purgedは自動的に1-11の値を持ち、手動でreset masterを実行する必要はありません.set global gtid_purged='xxxx',mysql 5.7この方面はまた強化しました!(@@global.gtid_executedが空の場合のみ、@@global.gtid_purgedを動的に設定できます.したがって、@global.gtid_executedはRESET MASTERでクリアできます.)
コピーを直接オンにすればいいです.
mysql> change master to
-> master_host='172.17.61.131',
-> master_port=3306,
-> master_user='repl',
-> master_password='repl',
-> master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.07 sec)
mysql> start slave;
mysql> show global variables like 'gtid_%';
+----------------------------------+-------------------------------------------+
| Variable_name | Value |
+----------------------------------+-------------------------------------------+
| gtid_executed | 8d8746fb-2cc6-11e8-b1b6-000c295c63e0:1-12 |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_owned | |
| gtid_purged | 8d8746fb-2cc6-11e8-b1b6-000c295c63e0:1-12 |
+----------------------------------+-------------------------------------------+
5 rows in set (0.01 sec)
完全に準備した後、masterで変更したデータが同期されているかどうかを確認します.
mysql> use l5m;
Database changed
mysql> select count(*) from test_emp;
+----------+
| count(*) |
+----------+
| 1098000 |
+----------+
1 row in set (0.40 sec)
問題なく、データは新しいslaveに同期しました.
参照先:
https://www.cnblogs.com/zejin2008/p/7705473.html
http://www.cnblogs.com/luckcs/articles/6295992.html