mysql - binlog主从复制
2019独角兽企业重金招聘Python工程师标准>>>
mysql - GTID主从复制
Mysql replication
从主服务器(master)将数据复制到另外slave服务器的过程。将主数据库DDL和DML操作通过二进制日志传输到从服务器上,从服务器按顺序执行这些日志记录的操作达到主从数据同步的目的。
复制操作是异步的。slave不需要持续保持连接接收master的数据。
原理
- 每个事务更新数据完成之前,master将数据的改变记录到二进制日志(Binary Log)中;写入完成后,master服务器通知存储引擎提交事务。
- slave上的I/O进程连接master,发出日志请求;Master接收后通过负责复制的I/O进程根据请求读取指定日志指定位置之后的信息返回给slave。除日志信息外,还包括本次返回日志信息已经到Master端的bin-log文件的名称和bin-log的位置。
- slave_I/O进程收到信息后,按顺序将 master的binary log events 复制到自己的中继日志(Relay Log)中; 并读取Master端的bin-log文件名和位置记录到master-info文件中。
- Slave_Sql进程检测到relay-log中新增了内容,解析并执行。
过滤复制
可根据实际情况Slave服务器配置‘replicate*’来指定(不)需要复制的db、table。
不推荐使用binlog-do-db, binlog-ignore-db, replicate-do-db 和 replicate-ignore-db 来设置需要过滤的数据库:通过默认的数据库为“mysql" 的连接, 过滤二进制的(SQL)语句日志的. 换句话说, 过滤不是基于查询的字符串的, 而实际于你使用的数据库。
推荐: 在 slave上配置过滤, 使用基于查询中真正涉及到的表的选项
replicate-wild-do-table=db_name.%
replicate-wild-ignore-table=mysql.%
操作
- master服务器增加用于复制的用户msql_rep,授权replication,密码Rep@!123
mysql> grant replication slave on *.* to 'msql_rep'@'172.30.1.52' identified by 'Rep@!123';
- 修改Master的配置
vi /etc/my.cnf; 开启BINGLOG: 增加行: log-bin = /usr/local/var/mysql/mysql-bin 设置server-id值: 增加行: server-id = 51
- 在master服务器设置度锁定有效,确保没有新数据库操作,便于获得一致性快照.
mysql> fulsh tables with read lock;
- 查看master信息
mysql> show master status \G;
- 恢复写操作
mysql> unlock tables;
- 修改slave数据库配置文件my.cnf,增加server-id参数;servier-id的值唯一,不能与master和其他slaver配置相同。
- 重启slave数据库,关闭slave;指定master的复制用户、密码、主ip、复制日志文件、位置等。
service mysqld restart mysql -uroot -proot mysql> stop slave; mysql> change master to -> master_host ='172.30.1.51', // Master IP-> master_user='msql_rep', -> master_password='Rep@!123', -> master_log_file='mysql-bin.000010', //Master实现复制的binlog文件-> master_log_pos=2000; //Master实现复制的binlog文件的偏移量 mysql> start slave; mysql> show slave status \G;
指定截止位置:
start slave until master_log_file='mysql-bin.000008',master_log_pos=310; - 可以在master\slaver服务器上查看服务器进程状态
mysql> show processlist \G;
- 检测主从设置的正确性
当主库数据发生变化时,日志偏移量改变
master: 新增datebase和table
slave: 异步延时完成同步。
问题
- Slave_SQL_Running: No
成因:
1、slave上这个表中出现了其他的写操作。
2、slave进程重启,事务回滚造成。
解决方法:
mysql> slave stop; mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER= 1; //客户端运行,用来跳过指定N个数的事件,只有当同步进程出现错误而停止的时候才可以执行。 mysql> slave start;
- Slave_SQL_Running :No
成因:
1、网络连接不上
2、配置不对, replication slave和file没权限
3、master_log_file、master_log_pos 同步错误。
解决方法:
从master中找到最新的logfile及logpos; 修改slave同步日志文件及位置。change master to master_log_file='mysql-bin.000013', master_log_pos=8654;
转载于:https://my.oschina.net/u/3434392/blog/1162812
mysql - binlog主从复制相关推荐
- mysql - GTID主从复制
2019独角兽企业重金招聘Python工程师标准>>> mysql - binlog主从复制 GTID (Global Transaction ID) InnoDB:事务性引擎. M ...
- Mysql binlog日志及binlog恢复数据库操作
初识MySQL 日志binlog MySQL重要log,二进制日志文件,记录所有DDL和DML语句(除select),事件形式记录,包含语句所执行的消耗时间,事务安全型. DDL(数据库定义语言),主 ...
- MySQL Binlog解析
概述 MySQL的安装可以参考:Linux(CentOS)中常用软件安装,使用及异常--MySQL, VmTools MySQL关于Binlog的官方文档:The Binary Log 基于Binlo ...
- mysql的主从复制是如何实现的
前言 MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为 ...
- Mysql binlog应用场景与原理深度剖析
1 基于binlog的主从复制 Mysql 5.0以后,支持通过binary log(二进制日志)以支持主从复制.复制允许将来自一个MySQL数据库服务器(master) 的数据复制到一个或多个其他M ...
- mysql的主从复制原理与实现
关于mysql的主从复制,之前一直在听说这个话题,一直没有实现,昨天学习了下,原来是这么回事: 既然是主从复制,那么肯定有主有从,也就说一个主数据库(一般为写库),一个从数据库(读库).主数据库更新了 ...
- php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制
Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...
- 使用 Xtrabackup 在线对MySQL做主从复制
说明1.1 xtrabackupmysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷.但一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力 ...
- MySQL bin-log 日志清理方式
MySQL bin-log 作用 1.数据恢复:如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失. 2.主从服务器之间同步数据:主服务 ...
最新文章
- 李飞飞等提出新的迭代视觉推理框架,在ADE上实现8.4 %的绝对提升
- R语言编写自定义函数使用Wilcoxon符号秩检验(Wilcoxon signed rank)实现多分组非参数成对检验(pairwise)、并使用p.adjust函数调整概率值
- xshell登录VMware虚拟机的初始设置
- ssh 连接服务器_使用 SSH Key 访问服务器
- 一站式导航 -- 奋斗の博客
- 初学者linux和ubuntu,linux初学者也必须知道的几个ubuntu最基础命令
- shell循环,判断介绍,以及实例
- 推荐几篇近期必看的视觉综述,含GAN、Transformer、人脸超分辨、遥感等
- 【Spring】Spring boot 可以通过集成jolokia来使用HTTP形式访问mbean
- 解决精简版的XP下,无法使用运程桌面
- Android:RGB颜色对照表
- MCU芯片通信接口设计
- Enrico Da Vincent
- leecode第一百七十四题(地下城游戏)
- Jsp实现注册登录以及忘记找回密码等操作(上)
- 修改html会影响seo,网站修改css影响seo吗?
- 使用 Swift 语言编程的优缺点
- 微软必应成功预测法国队夺冠
- 使用jquery的bind来检测textarea,input等的文本变化
- Linxu下RocketMq及可视化界面的搭建