生产环境:
MySQL 5.7.18 [RPM]
Linux:CentOS 6.9
主库:node111
从库:node130
新增加从库:node131
原理:利用slave_relay_log_info信息通过复制从库物理文件做一台新的从库
实现的功能:
在不停应用的情况, 快速 新增加一台从库
vim /etc/my.cnf # 配置slave从库的配置信息以表的形式存储
relay_log_info_repository = TABLE
master_info_repository = TABLE
relay_log_recovery = on
skip-slave-start #数据库启动后不启动主从复制
1. 首先查看从库的slave_relay_log_info
(root@host130_slave) [(none)]> select * frommysql.slave_relay_log_info\G;
*************************** 1. row***************************
Number_of_lines: 7
Relay_log_name: ./relay-bin.005421
Relay_log_pos: 1056548303
Master_log_name: mysql-bin.002269
Master_log_pos: 1056548090
Sql_delay: 0
Number_of_workers: 16
Id: 1
Channel_name:
1 row in set (0.00 sec)
ERROR:
No query specified
查看同步连接参数:
(root@host130_slave) [(none)]> select * from mysql.slave_master_info\G;
*************************** 1. row***************************
Number_of_lines: 25
Master_log_name:mysql-bin.002270
Master_log_pos: 21428102
Host: 192.168.66.111
User_name: slave
User_password: slave123
Port: 3306
Connect_retry: 60
Enabled_ssl: 0
2. 将从库的主从复制停止:
mysql>slave stop
查看停止后的slave_relay_log_info,查看从库应用的POS位置点
(root@host130_slave) [(none)]> select * frommysql.slave_relay_log_info\G;
*************************** 1. row***************************
Number_of_lines: 7
Relay_log_name: ./relay-bin.005421
Relay_log_pos: 1056548307
Master_log_name: mysql-bin.002270
Master_log_pos: 1056548132
Sql_delay: 0
Number_of_workers: 16
Id: 1
Channel_name:
1 row in set (0.00 sec)
查看主从同步连接主库的参数:
(root@host130_slave) [(none)]> select * from mysql.slave_master_info\G;
*************************** 1. row***************************
Number_of_lines: 25
Master_log_name:mysql-bin.002270
Master_log_pos: 21428102
Host: 192.168.66.111
User_name: slave
User_password: slave123
Port: 3306
Connect_retry: 60
Enabled_ssl: 0
3. 将从库停机
service mysqld stop
4. 将/var/lib/mysql下面所有的文件复制到node131另一台配置一样的空数据库的对应目录下面(新从库的数据库版本一样)
scp -r /var/lib/mysql/* root@192.168.66.131:/var/lib/mysql/
# 关闭selinux 关闭防火墙
#setenforce 0
#service iptables stop
#chkconfig iptables off
5. 修改192.168.66.131新从库数据文件的权限:
node131#chown mysql.mysql /var/lib/mysql/* -R
6. 将从库node130的配置文件复制到node131数据库下:
node130# scp /etc/my.cnf root@node131:/etc/
修改server-uuid:在同一个主从环境中,这个值需要唯一
[root@node7 mysql]# vim auto.cnf
[auto]
server-uuid=f8db3a0a-306f-11e9-acc6-000c297446e9
修改/etc/my.cnf
server_id=7 # 这个值在主从环境中也要唯一
7. 启动数据库:
node131#service mysqld start
8: 在node131上重新配置主从
通过 mysql.slave_relay_log_info 的参数修改对应配置
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> reset slave; #做这个之前要记录下slave同步的参数
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host=192.168.66.111,master_user=slave,master_password=;slave123;,master_port=3306,master_log_file=mysql-bin.002270,master_log_pos=1056548090;
mysql> start slave;
mysql> show slave status\G;
新从库node131配置完成
以上所述就是小编给大家介绍的《利用slave_relay_log_info信息通过复制从库物理文件做主从》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Tornado
Michael Dory、Adam Parrish、Brendan Berg / O'Reilly Media / 2012-3-28 / USD 23.99
Tornado is a scalable, non-blocking web server and web application framework written in Python. It is also light-weight to deploy, fun to write for, and incredibly powerful. Tornado was written with p......一起来看看 《Introduction to Tornado》 这本书的介绍吧!