标签:MySQL主从复制
MySQL复制对于临时表的处理
在跟网友讨论 inception 这个工具的回滚功能设计时,知道了它会根据 binlog 中的 query event 带的 thread id 来定位此次会话所执行的 SQL 语句有哪些,这是一个事务,当然定位回滚数据还需要 binlog position。而在 MySQL 中对于,如果你的 binlog 模式为 statement 格式,那么所有的 ev……
MySQL主从复制线程状态转变
一、主库线程状态(State)值 以下列表显示了主从复制中主服务器的Binlog Dump线程的State列中可能看到的最常见状态(SHOW PROCESSLIST)。如果Binlog Dump线程在主服务器上看不到,这意味着复制没有运行,也就是说,目前没有连接任何Slave主机。 Sending binlog event to slave 二进制日志由各种……
MySQL主库 crash-safe 与 binlog 关系?
一、什么是CrashSafe? CrashSafe指MySQL服务器宕机重启后,能够保证: – 所有已经提交的事务的数据仍然存在。 – 所有没有提交的事务的数据自动回滚。 Innodb通过Redo Log和Undo Log可以保证以上两点。为了保证严格的CrashSafe,必须要在每个事务提交的时候,将Redo Log写入硬件存储。这……
MySQL基于SSL复制的配置过程
MySQL的主从复制默认是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证,为了解决这一问题,我们需要一种安全的方式进行传送,即基于SSL加密进行数据传输。在进行SSL加密传输时可能需要先了解CA、证书及SSL相关知识才能更好地明白为何基于SSL的传输就会更加安全。CA、证书及SSL相关知识在本章节不会多加一说明,详情可以看本博客提供的“信……
MySQL 5.7:多源复制实践
一、前言 MySQL 5.7的发布,在复制方面有了很大的改进,比如开始支持多源复制(multi-source)了。以及真正的支持多线程复制了。需要说明一点的是,多源复制可以使用基于二进制日志的复制或者基于事务的复制。下面开始配置基于二进制日志的多源复制。 什么是多源复制? 首先,我们需要清楚几种常见的复制模式: 1)一主一从 2)一主多从 3)级联复制 4)……
MySQL 5.7:在线开启和关闭基于GTID的复制
一、前言 MySQL在5.6版本之前复制一直是基于二进制日志的复制,到了MySQL5.6时开始支持基于事务(GTIDs)的复制,并且开始支持多线程复制;但MySQL5.6版本的多线程只能基于多库。这就牵扯到了一个应用场景,就是从基于日志的复制在线变更到基于事务的复制,在MySQL5.6版本时这一动作只能重启主服务器才可以做到。但是到了MySQL 5.7版本时……
MySQL设置gtid_purged破坏AUTO_POSITION复制协议
BUG描述 MySQL 5.6.22中有这样一个关于GTID的bugfix,在主备场景下,如果我们在主库上 SET GLOBAL GTID_PURGED = “some_gtid_set”,并且 some_gtid_set 中包含了备库还没复制的事务,这个时候如果备库接上主库的话,预期结果是主库返回错误,IO线程挂掉的,但是实际上,在……
MySQL主从复制过滤规则应用
一、MySQL主从复制过滤 库级过滤 在评估复制选项时,从服务器首先检查是否存在可应用的复制选项replicate-do-db或 replicate-ignore-db。当使用binlog-do-db或 binlog-ignore-db过程相似,但它们属于在主库上检查选项。 主库支持的过滤选项 # 仅将指定库的相关修改操作记……
MySQL复制需要注意的问题
总结一下mysql主从复制需要注意的地方。有人说主从复制很简单嘛,就是master,slave的server_id不一样就搞定。确实,简单的来说就是这么简单。但是真正在生产环境我们需要注意的太多了。首先说说主库宕机或者从库宕机后复制中断的问题。虽然很多知识点或许我博客其他文章中都有提到过,或者重复了,但是我还是想总结一下。 一、主库意外宕机 如果没有设置主库……
MySQL主从复制错误修复
一、修复已中断数据复制的方法 在MySQL复制中,如果Slave节点上遇到错误,比如数据不存在或者主键冲突等错误时,想要忽略这些错误(你要明确清楚你忽略的数据造成主从不一致性,且你能够接受这个不一致性所带来的问题)。有一种情况需要注意,如果明确是主键冲突,应先采取主从数据对比,如果数据一致则忽略跳过这些错误,如果数据不一致则要先删除Slave上的数据,然后重……
MySQL主从复制配置
一、基于日志点的主从复制 在MySQL 5.5中,复制的方法使用的是基于日志点的复制,什么意思呢?当从服务器要从主服务器复制数据时,需要指定从主服务器的哪个二进制日志文件和二进制日志文件的位置来进行数据的复制操作。由于这种依赖日志点进行数据复制的特性,所有复制是单线程的(如果有多线程复制会出现数据不一致情况)。而主库是多线程写入,所有主从复制延迟就变成了很长……
SHOW SLAVE STATUS参数详解
下面再来说下show slave status命令显示的参数具体含义。 1)基于二进制日志复制的显示格式 mysql> show slave status\G *************************** 1. row *************************** Sl……
- 1
- 2