-------配置Master-Slave(基于位点)
环境介绍:
服务器:RHEL 6.8
Master_Port:3306
Slave_Port:3307
Mysql:5.7.19-log
Xtrabackup:xtrabackup version 2.4.15
Master部分:
1.Master设置复制用户,授权
mysql>grant replication slave on *.* to 'repl'@'%' identified by '111111' ;
Query OK, 0 rows affected, 1 warning (0.37 sec)
2.Master设置参数,开启binlog
log-bin=/u01/mysql/log/mysql-bin
server-id=10241
log_slave_updates=1
#binlog-do-db=test
#binlog-do-db=testrecovery
(binlog-do-db可以指定哪些库启用binlog日志记录,本次实验我没用这个)
3.使用Xtrabackup备份
[root@rhel6 data]# xtrabackup --defaults-file=/etc/my.cnf --backup -uroot -pxxx --target-dir=/u01/mysqlbackup/all-20190731bak
4.prepare备份集
(prepare只需要指定备份集路径即可,网上很多例子中的账号、密码、参数文件等参数理论上都无需指定)
[root@rhel6 data]#xtrabackup --prepare --target-dir=/u01/mysqlbackup/all-20190731bak/
Slave部分:
1.停服务、备份data、还原备份集
[root@rhel6 data]#mysqladmin -uroot -xxx --socket=/tmp/mysql3307.sock shutdown
[root@rhel6 data]#mv data data_bak
[root@rhel6 data]#cp -R /u01/mysqlbackup/all-20190731bak data
[root@rhel6 data]#chown -R mysql:mysql data/
2.修改参数文件,起服务
server-id=10242
log-bin=/u01/mysql3307/log/mysql3307-bin
#replicate-do-db=test
#replicate-do-db=testrecovery
log_slave_updates=1
(replicate-do-db可以指定哪些库启用binlog复制,本次实验我也没用这个)
[root@rhel6 data]#mysqld_safe --defaults-file=/etc/my3307.cnf &
3.从xtrabackup_binlog_info中获取master_log_file和master_pos
[root@rhel6 all-20190732bak]# cat xtrabackup_binlog_info
mysql-bin.000007 1372 5f95521a-b073-11e9-9591-000c296ee978:1-7,
7842c967-0958-11e9-9f6c-000c296ee978:1-36,
eb495b42-b06a-11e9-af85-000c296ee978:1-3,
fad44c35-affe-11e9-b2fc-000c296ee978:1-2
4. 配置复制相关信息
[root@rhel6 ~]# mysql -uroot -pxxx --host=127.0.0.1 --port=3307
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19-log MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select @@port;
+--------+
| @@port |
+--------+
| 3307 |
+--------+
1 row in set (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.18 sec)
mysql> show warnings;
+-------+------+-----------------------------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------------------------+
| Note | 3084 | Replication thread(s) for channel '' are already stopped. |
+-------+------+-----------------------------------------------------------+
1 row in set (0.02 sec)
mysql> change master to master_host='192.169.10.241', master_user='repl', master_password='111111',master_port=3306,master_log_file='mysql-bin.000007',master_log_pos=314;
Query OK, 0 rows affected, 2 warnings (0.26 sec)
mysql> show warnings;
+-------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+-------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Note | 1759 | Sending passwords in plain text without SSL/TLS is extremely insecure. |
| Note | 1760 | Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. |
+-------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
5.起slave进程,查看同步状态
mysql> start slave;
Query OK, 0 rows affected (0.40 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.169.10.241
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 579
Relay_Log_File: rhel6-relay-bin.000002
Relay_Log_Pos: 585
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 579
Relay_Log_Space: 792
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 10241
Master_UUID: 5f95521a-b073-11e9-9591-000c296ee978
Master_Info_File: /u01/mysql3307/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 5f95521a-b073-11e9-9591-000c296ee978:4
Executed_Gtid_Set: 5f95521a-b073-11e9-9591-000c296ee978:1-4,
7842c967-0958-11e9-9f6c-000c296ee978:1-36,
eb495b42-b06a-11e9-af85-000c296ee978:1-3,
fad44c35-affe-11e9-b2fc-000c296ee978:1-2,
fdf1c8db-9abf-11e9-bd3c-000c296ee978:1-16
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
6.测试同步
略
-------配置Master-Slave(基于GTID)
环境介绍:
服务器:RHEL 6.8
Master_Port:3306
Slave_Port:3307
Mysql:5.7.19-log
Xtrabackup:xtrabackup version 2.4.15
Master部分:
1.Master设置复制用户,授权
2.Master设置参数,开启binlog
log-bin=/u01/mysql/log/mysql-bin
server-id=10241
gtid_mode=on
enforce-gtid-consistency=on
3.使用Xtrabackup备份
4.prepare备份集
Slave部分:
1.停服务、备份data、还原备份集
2.修改参数文件,起服务
server-id=10242
log-bin=/u01/mysql3307/log/mysql3307-bin
gtid_mode=on
enforce-gtid-consistency=on
log_slave_updates=1
3.从xtrabackup_binlog_info中获取Executed_Gtid_Set
[root@rhel6 mysql3307]# cat ./data/xtrabackup_binlog_info
mysql-bin.000007 314 5f95521a-b073-11e9-9591-000c296ee978:1-3,
7842c967-0958-11e9-9f6c-000c296ee978:1-36,
eb495b42-b06a-11e9-af85-000c296ee978:1-3,
fad44c35-affe-11e9-b2fc-000c296ee978:1-2
4.配置复制相关信息
1)查看slave的Executed_Gtid_Set,如果不为空的话,需要执行reset master进行清理
mysql> show master status\G
*************************** 1. row ***************************
File: mysql3307-bin.000002
Position: 154
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 5f95521a-b073-11e9-9591-000c296ee978:1-3,
7842c967-0958-11e9-9f6c-000c296ee978:1-36,
eb495b42-b06a-11e9-af85-000c296ee978:1-3,
fad44c35-affe-11e9-b2fc-000c296ee978:1-2
1 row in set (0.00 sec)
mysql> reset master;
Query OK, 0 rows affected (0.02 sec)
2) 执行GTID_PURGED
mysql> set session sql_log_bin=0;
Query OK, 0 rows affected (0.01 sec)
mysql> set global gtid_purged='5f95521a-b073-11e9-9591-000c296ee978:1-3,7842c967-0958-11e9-9f6c-000c296ee978:1-36,eb495b42-b06a-11e9-af85-000c296ee978:1-3,fad44c35-affe-11e9-b2fc-000c296ee978:1-2';
Query OK, 0 rows affected (0.01 sec)
mysql> show global variables like '%gtid_purged%';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| gtid_purged | 5f95521a-b073-11e9-9591-000c296ee978:1-3,
7842c967-0958-11e9-9f6c-000c296ee978:1-36,
eb495b42-b06a-11e9-af85-000c296ee978:1-3,
fad44c35-affe-11e9-b2fc-000c296ee978:1-2 |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> set session sql_log_bin=1;
Query OK, 0 rows affected (0.00 sec)
3) 配置复制信息
mysql> change master to master_host='192.169.10.241',master_port=3306,master_user='repl',master_password='111111',master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
5.起slave进程,查看同步状态
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.169.10.241
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 2432
Relay_Log_File: rhel6-relay-bin.000002
Relay_Log_Pos: 2485
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 2432
Relay_Log_Space: 2692
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 10241
Master_UUID: 5f95521a-b073-11e9-9591-000c296ee978
Master_Info_File: /u01/mysql3307/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 5f95521a-b073-11e9-9591-000c296ee978:4-11
Executed_Gtid_Set: 5f95521a-b073-11e9-9591-000c296ee978:1-11,
7842c967-0958-11e9-9f6c-000c296ee978:1-36,
eb495b42-b06a-11e9-af85-000c296ee978:1-3,
fad44c35-affe-11e9-b2fc-000c296ee978:1-2
Auto_Position: 1
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
6.测试同步
略