目录一、Mysql主从复制实现细节二、增加一个slave一、mysql主从复制 常见的主从架构: 一主一从:一个 Master,一个 Slave一主多从:一个 Master,多个 S
常见的主从架构:
具体,参考下图:
Mysql 在主从同步时,其底层实现细节又是什么?为此后分析主从延迟原因以及优化方案,做好理论准备。
总结来说,MySQL 的主从复制:异步单线程。
Master
上 1 个io线程
,负责向Slave传输 binary log
(binlog
)IO 线程
和执行SQL的线程
,其中:IO线程
:将获取的日志信息,追加到relay log上;执行SQL的线程
:检测到relay log中内容有更新,则在Slave上执行sql;完整的 Master & Slave 之间主从复制过程:
需求:目前我的master上有一个数据库ucenter,需要为其增加一台slave(目前有一台slave)
分析:
操作:
1、在slave机器上配置slave信息,修改mysql.cfg配置并重启slave数据库
在[mysqld]中添加
replicate-do-db = ucenter #同步的数据库名字
slave-skip-errors=all #同步是忽略错误
server-id = 1112 #和master与其他slave保持不通
2、查找数据库前一天的备份,将其copy到新增的slave机器上,并导库
[root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G ucenter_20171102.sql
3、定位binlog时间戳(重点)
在master上查找binlog
[root@Ucenter /data/mysqldata]# ll -t *bin*
-rw-rw---- 1 mysql mysql 30709744 Nov 2 21:32 mysql-bin.000268
-rw-rw---- 1 mysql mysql 171 Nov 2 19:41 mysql-bin.index
-rw-rw---- 1 mysql mysql 1021101094 Nov 2 19:41 mysql-bin.000267
-rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266
-rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265
-rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264
-rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263
-rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262
-rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261
-rw-rw---- 1 mysql mysql 1073742184 Oct 7 09:49 mysql-bin.000260
我的备份时间是2号4点开始,所以应该在mysql-bin.000267里查找2号4点前的pos,开始定位
[root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep '3:59:' |grep -v '13:59:'
#171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824386335 Query thread_id=3023086386 exec_time=0 error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar
#171102 3:59:58 server id 21323 end_log_pos 824386698 Query thread_id=3023086386 exec_time=0 error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824387706 Query thread_id=3023086388 exec_time=0 error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar
#171102 3:59:58 server id 21323 end_log_pos 824388209 Query thread_id=3023086388 exec_time=0 error_code=0
#171102 3:59:58 server id 21323 end_log_pos 824388534 Query thread_id=3023086398 exec_time=0 error_code=0
所以定位到最后 end_log_pos 824388534
4、在另外一台slave上查看master.info
[root@LeduPass02/data/mysqldata]# cat master.info
15
mysql-bin.000268
11367810
192.168.100.70
omsync
om@123
3306
60
0
0
0
5、在slave 配置slave,进行同步
在Slave上配置相关设置,以便告诉Slave如何去连接Master,这包括主机地址,登陆凭证等等
[root@ucenter_slave /data]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.51-CommUnity-Server-log Source
Copyright (c) 2000, 2010, oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and Redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql (none)>change master to master_host='192.168.100.70',master_port=3306,master_user='omsync',master_passWord='om@123',master_log_file='mysql-bin.000267',master_log_pos=824388534;
开启slave
mysql (none)>start slave;
查看slave状态:
完成。
到此这篇关于MYSQL 增加从库方式介绍的文章就介绍到这了,更多相关MYSQL增加从库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: MYSQL 增加从库方式介绍
本文链接: https://lsjlt.com/news/165946.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0