3:添加一个slave到已有的复制环境(基于二进制日志文件位置)
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (old slave) 服务器 192.168.1.4 (new slave)您可以将另一个slave添加到现有复制
千家信息网最后更新 2025年02月02日3:添加一个slave到已有的复制环境(基于二进制日志文件位置)
- 服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (old slave) 服务器 192.168.1.4 (new slave)
- 您可以将另一个slave添加到现有复制配置,而无需停止master。为此,您可以通过复制现有slave的数据目录并为新slave提供不同的server ID (由用户指定)和服务器UUID(在启动时生成)来设置新slave。
- 在old slave
- #停止复制
- mysql> stop slave;
- Query OK, 0 rows affected (0.00 sec)
- #查看主二进制日志文件和中继日志文件位置
- mysql> show slave status\G
- #关闭old slave的mysql服务
- [root@iZ2zee8t2icu340bpmaw23Z ~]# service mysqld stop
- Redirecting to /bin/systemctl stop mysqld.service
- [root@iZ2zee8t2icu340bpmaw23Z ~]# ps -ef |grep mysql
- root 14618 14474 0 21:33 pts/0 00:00:00 grep --color=auto mysql
- #将old slave的数据目录打包
- [root@iZ2zee8t2icu340bpmaw23Z ~]# cat /etc/my.cnf | grep datadir
- datadir=/var/lib/mysql
- [root@iZ2zee8t2icu340bpmaw23Z ~]# cd /var/lib/mysql
- [root@iZ2zee8t2icu340bpmaw23Z mysql]# tar -zcvf /tmp/file.tar.gz *
- #启动mysql
- [root@iZ2zee8t2icu340bpmaw23Z mysql]# service mysqld start
- #开始复制
- mysql> start slave;
- Query OK, 0 rows affected, 1 warning (0.00 sec)
- 在new slave上
- #先关闭mysql
- [root@iZ2ze7skefrz53o5o1at5hZ ~]# service mysqld stop
- Redirecting to /bin/systemctl stop mysqld.service
- #复制old slave的数据目录,进入本机的mysql数据目录
- [root@iZ2ze7skefrz53o5o1at5hZ ~]# cat /etc/my.cnf | grep datadir
- datadir=/var/lib/mysql
- [root@iZ2ze7skefrz53o5o1at5hZ ~]# cd /var/lib/mysql
- #利用scp把数据给拿过来
- [root@iZ2ze7skefrz53o5o1at5hZ mysql]# scp root@192.168.1.3:/tmp/file.tar.gz /tmp
- #这时候我们需要先把本机的数据给备份一下
- [root@iZ2ze7skefrz53o5o1at5hZ mysql]# tar -zcvf /tmp/mysql_back.tar.gz *
- #然后将old slave的数据给压缩
- [root@iZ2ze7skefrz53o5o1at5hZ mysql]# tar -zxvf /tmp/file.tar.gz
- #从当前机器上的数据目录副本中删除auto.cnf文件,以便使用不同的生成server UUID启动新slave服务器。 server UUID必须是唯一的。
- [root@iZ2ze7skefrz53o5o1at5hZ mysql]# rm auto.cnf
- rm: remove regular file 'auto.cnf'? y
- #为服务器配置server_id和--skip-slave-start选项,指定了--skip-slave-start的话,那么mysql启动的时候复制就不会启动
- #启动mysql服务器并登陆,查看有关信息(这里要注意,因为你直接复制的old slave的数据目录,所以登录mysql的时候要输入old slave对应的用户密码,最后需要修改过来)
- mysql> show slave status\G
- #如果跟step4可以对应的上,那就没有啥问题,然后启动复制
- mysql> start slave;
- ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
- #1872 错误 这个时候我们查看一下错误日志
- [root@iZ2ze7skefrz53o5o1at5hZ ~]# tail -f /var/log/mysqld.log
- 意思是从./iZ2ze7skefrz53o5o1at5hZ-relay-bin.index找不到./iZ2zee8t2icu340bpmaw23Z-relay-bin.000004 relay log 文件,原因是由于我使用的是冷备份文件恢复的实例,在mysql库中的slave_relay_log_info表中依然保留之前relay_log的信息,所以导致启动slave报错。解决方法如下
- mysql> reset slave;
- Query OK, 0 rows affected (0.02 sec)
- mysql> start slave;
- Query OK, 0 rows affected (0.02 sec)
- mysql> show slave status\G
* - 那么就说明成功了
- 添加一下测试数据,看下数据是否同步
注意事项:
- 在新的slave上,一定要查看错误日志以及对比新slave和现有slave的show slave status内容,查看Master_Log_File和Read_Master_Log_Pos是否有差异
- 因为你直接复制的old slave的数据目录,所以登录new salve的mysql的时候要输入old slave对应的用户密码,最后需要修改过来
reset slave讲解:
- 参考链接: https://dev.mysql.com/doc/refman/5.7/en/reset-slave.html
- RESET SLAVE makes the slave forget its replication position in the master's binary log. This statement is meant to be used for a clean start: It clears the master info and relay log info repositories, deletes all the relay log files, and starts a new relay log file. It also resets to 0 the replication delay specified with the MASTER_DELAY option to CHANGE MASTER TO. RESET SLAVE does not change the values of gtid_executed or gtid_purged.
- RESET SLAVE会让slave忘记master的二进制文件的复制位置。主要用于干净的启动一个复制,它会清除主信息和中继日志信息库(就是清除mysql.slave_master_info和slave_relay_log_info这两个表),删除所有的中继日志文件,并且启动一个新的中继日志文件。会将CHANGE MASTER TO的 MASTER_DELAY选项指定的值重置为0,RESET SLAVE 不会更改gtid_executed或gtid_purged的值。
参考链接:https://dev.mysql.com/doc/refman/5.7/en/binlog-replication-configuration-overview.html
PREV: 2:基于二进制日志文件位置的复制 https://blog.51cto.com/itzhoujun/2351367
NEXT: 4:GTID简单介绍 https://blog.51cto.com/itzhoujun/2352688
数据
文件
日志
服务
服务器
目录
信息
时候
中继
二进制
位置
用户
错误
不同
备份
密码
链接
本机
参考
生成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2018国家网络安全手抄报
山东的网络安全教育平台
政府数据基础薄弱 数据库 问题
郑州计算机软件开发哪家便宜
数据库与用户的主要接口
抵制网络安全标题
河南数据库空投箱商家
网络安全志愿服务鸦鸿桥
Oracle数据库安装参考文献
保定多地开展网络安全大检查
杭州极致互联网科技有限公司
服务器2012管理员密码
互联网 高科技新闻
没有文凭如何能看懂电商数据库
在服务器怎么批处理
mvc怎么调用底层数据库
运行数据库
2015年网络安全大事件
大学生网络安全受侵害
ifix数据库导入错误
elog服务器
万智牌 服务器
软件开发部kpi考核表
时逆游戏选择服务器
数据库笛卡尔积怎么办
中国俄罗斯网络安全
邯郸网络安全培训
网易服务器怎么升级版本
服务器cpu更新到几代
微软官方数据库怎么买