Mysql 主从复制
文章平均质量分 76
Mysql 主从复制
雅冰石
DBA
展开
-
MGR同步复制验证
/在①delete过程中,多次执行该sql,前几次很快(2秒钟)执行完毕,t1数据量是删除前的数据量,但发现有时会阻塞,阻塞了74秒,进程状态是Executing hook on transaction begin,不阻塞后,显示查询结果为0,读到的是① delete后的数据量。//在①delete过程中,多次执行该sql,t1数据量一直是删除前的数据量,直到① delete完毕,这里变成0条数据,说明是同步复制,节点2删除完,节点1才执行成功。//①执行期间,在节点2上查询同一个表,出现阻塞。原创 2024-05-10 18:54:12 · 678 阅读 · 0 评论 -
mysql使用xtrabackup方式复制过滤某一个数据库
需求:搭建一个新的从库,只复制过滤源端数据库里的其中一个数据库workflow到新实例上。原创 2023-05-15 23:11:28 · 554 阅读 · 0 评论 -
使用checksum table比对mysql主从表数据
但这种方法看不出来具体是哪里不一致,要想看具体哪里不一致,可使用percona tool kit的pt-table-checksum比对,使用pt-table-sync来发现及同步不一致的数据。可以使用checksum table比对mysql主从表数据是否一致。确认主从上输出的值是否完全一致,若一致,则说明主从数据一致。checksum table 表名;原创 2023-05-13 23:41:57 · 368 阅读 · 0 评论 -
mysql复制过滤之只同步某个数据库--mysqldump方式导出数据
这里想为现有的一个数据库新建一个从库,但只复制其中一个库。' identified by '密码';#重启从实例,使参数生效。原创 2023-05-08 19:20:49 · 718 阅读 · 0 评论 -
percona-toolkit检查主从一致性
pt-table-checksum使用实践在工作中接触最多的就是mysql replication,由于现在公司也还在使用mysql 5.1.x版本,在复制方面还是比较多的问题,比如主库宕机或者从库宕机都会导致复制中断,通常我们需要进行人为修复(mysql 5.5版本解决大部分问题),或者很多时候需要把一个从库提升为主库,但对从库和主库的数据一致性不能保证一样,所以就利用 pt-table-c...转载 2016-03-07 21:04:59 · 2920 阅读 · 1 评论 -
show slave status
show slave statusSlave_IO_State: Waiting for master to send event Master_Host: 10.1.1.1 Master_User: rep_user Master_Port: 3306原创 2016-03-21 09:58:18 · 628 阅读 · 0 评论 -
Mysql怎样将传统主从复制改为GTID复制(5.7.6版本后)
(1) 在每台服务器上设置set global ENFORCE_GTID_CONSISTENCY=WARN;,使得所有事务都允许GTID违反一致性。检查错误日志确保无任何警告。(2) 在每台服务器上设置set global ENFORCE_GTID_CONSISTENCY=ON;使得所有事务都不能违反GTID一致性。(3) 在每台服务器上set global gtid_mode=off_PERMISSIVE;表明新的事务是匿名的,同时允许复制的事务是匿名的或GTID。(4) 在每台服务器上set原创 2020-09-08 14:05:53 · 305 阅读 · 0 评论 -
利用xtrabackup恢复mysql从库数据
当从库出现故障,与主库有差异数据,或者要新搭建一个新的从库时,可以利用xtrabackup备份主库,恢复从库数据。一 试验环境 角色 IP Xtrabackup 版本 Mysql版本 主库 192.168.1.202 2.4.4 5....原创 2020-03-17 20:19:06 · 661 阅读 · 0 评论 -
mysql主从复制报错:the master has purged binary logs containing GTIDs that the slave requires
方法一具体案例:拓扑架构为A->B->C,假如从库C的复制报错了,原因:需要的binlog在B上被purge掉了,而A上的binlog完整无损。解决办法:将C指向A进行复制。在C上执行:stop slave;change master to master_host='A的IP',master_port=A的端口号,MASTER_USER='RepUser',MASTE......原创 2020-03-13 14:57:41 · 6918 阅读 · 1 评论 -
mysql半同步复制安装配置
一 半同步复制介绍1.半同步复制产生的起源默认情况下,MySQL复制是异步的。主服务器将事件写入其二进制日志,但不知道从服务器是否或何时检索并处理它们。对于异步复制,如果主服务器崩溃,它提交的事务可能不会传输到任何从服务器。因此,在这种情况下,从主服务器到从服务器的故障转移可能会有些数据不一致问题。半同步复制可用作异步复制的替代。2.半同步复制介绍如果在主库端...原创 2019-12-26 15:46:38 · 880 阅读 · 0 评论 -
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
【问题描述】备库数据库重启后,发现从库复制未启动,手动启动复制,报错:mysql> start slave;ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository【故障原因】MTS(并行复制)产生了gap事务,但还未恢复详细可以参考这篇...转载 2019-12-20 15:36:42 · 2345 阅读 · 0 评论 -
Mysql Router 8.0 + MGR(单主模式)安装配置
一 简单介绍MGR只支持数据库集群本身的高可用,但在服务器崩溃时,不能将连接到该服务的客户端重定向或故障转移到其他服务器。因此,这里结合mysql router代理中间件来实现真正的高可用(主节点故障时程序能够自动连接到新的主节点),同时实现读写分离及负载均衡。如果从MySql Router到MySQL服务器的连接中断,应用程序将遇到连接失败。应该编写应用程序来测试连接错误,如果遇到错误,...原创 2019-12-13 16:49:35 · 5015 阅读 · 1 评论 -
MGR安装部署
一 MGR介绍mysql组复制简称MGR,是MySQLServer5.7.17及更高版本提供的一个内置MySQL插件(Replication)。mysql组复制提供了一个高可用、高弹性、高可靠性的mysql服务。当主节点故障后,集群自动选举新的主节点,只要不是全部或大多数,系统仍然可用。有一致性,以及不依赖外部组件实现的自动切换、可多点并发写入等特点。它们由一个组成员服务跟踪,该服务依赖于...原创 2019-11-27 16:33:03 · 2643 阅读 · 0 评论 -
Last_SQL_Error: Could not execute Update_rows event on table eip_fileservice.T_FILE_LOCATION; Can‘t
一:问题描述在从上查看状态,发现报错:mysql> show slave status \G;Last_SQL_Error: Could not executeUpdate_rows event on table eip_fileservice.T_FILE_LOCATION; Can't find recordin 'T_FILE_LOCATION', Error_code原创 2016-04-12 10:50:04 · 17729 阅读 · 3 评论 -
升级mysql 5.5.19至5.6.33(架构:mysql双主复制+keepalive)
一:实验环境操作系统:CentOS release 6.5 (Final)mysql双主复制+keepalive实现了高可用:master1:10.192.203.201master2:10.192.203.202vip 10.192.203.203虚拟ip当前在master1上。程序写入的是vip。 二:实验步骤2.1 升级master22.1.1 备份m原创 2016-11-25 16:37:37 · 1366 阅读 · 0 评论 -
keepalive配置mysql自动故障转移
本文先配置了一个双master环境,互为主从,然后通过Keepalive配置了一个虚拟IP,客户端通过虚拟IP连接master1,当master1宕机,自动切换到master2。一次只能连接其中一个master进行读写,所以是active-passive模式。一 Mysql主主复制搭建1.1 实验环境两台机器事先都已经装好了mysql单实例。二者的端...原创 2016-02-29 02:16:52 · 11186 阅读 · 1 评论 -
MHA+keepalive高可用环境搭建
MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数...原创 2017-02-17 14:05:57 · 6751 阅读 · 4 评论 -
Client requested master to start replication from impossible position; the last event was read from
一:问题描述由于10.0.3.96此虚拟机所在的物理机存储不够了,所以上面的数据库也无法访问了。后来10.0.3.96可以正常访问后,其从库10.0.3.97却发生了异常:mysql> show slave status \G;*************************** 1. row ***************************原创 2017-02-24 15:09:45 · 2451 阅读 · 0 评论 -
heartbeat+mysql双主复制实现高可用
一:搭建主主复制环境1.1实验环境两台机器事先都已经装好了MySQL单实例。 IP: 10.192.203.201 10.192.203.202 端口都是3307.二者的端口号需要保持一致,否则在最后用vip连接的时候,不能使用相同端口号连接。 1.2 实验步骤 1.2.1 修改配置文件修改master1:在[mysqld]下面添加:server-原创 2016-05-23 17:23:17 · 14619 阅读 · 4 评论 -
在GTID环境中根据主库备份恢复从库
试验环境:主库 192.168.3.202备库 192.168.3.203开启了GTID模式。假如从库和主库差异较大,想要根据主库的备份恢复从库。需要做如下步骤。一 备份主库mysqldump -u root -p --single-transaction --all-databases --master-data=2 > AllDB.bak ...原创 2019-09-28 18:07:11 · 1820 阅读 · 0 评论 -
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave can not h
一:问题描述在做mysql版本升级实验时,将5.5.19的从库指向5.6.33的主库,slave slave后,查看slave状态,发现报错:mysql> show slave status \G;*************************** 1. row *************************** Slave_IO_State:原创 2016-11-24 14:40:19 · 4278 阅读 · 4 评论 -
关于Relay Log无法自动删除的问题
本文介绍了一次运维实践中relay-log长期无法自动删除的原因和解决过程背景: 今天在运维一个mysql实例时,发现其数据目录下的relay-log 长期没有删除,已经堆积了几十个relay-log。 然而其他作为Slave服务器实例却没有这种情况。现象分析通过收集到的信息,综合分析后发现relay-log无法自动删除和以下原因有关。该实例原先是一个Sla转载 2016-08-24 09:17:42 · 2983 阅读 · 0 评论 -
MYSQL 5.7 并行复制实现原理与调优
Contents [hide]1 MySQL 5.7并行复制时代2 MySQL 5.6并行复制架构3 MySQL 5.7并行复制原理3.1 MySQL 5.7基于组提交的并行复制3.2 支持并行复制的GTID3.3 LOGICAL_CLOCK4 并行复制测试5 并行复制配置与调优5.1 master_info_repository转载 2016-04-20 16:46:04 · 3382 阅读 · 0 评论 -
mysql主宕机,主从故障切换(一主多从)
一:环境192.168.1.100 master192.168.1.101 slave1192.168.1.102 slave2 slave1,slave2都是连在master上。 二:模拟主故障关闭master实例service mysql stop此时,slave1,slave2上show slave status\G都会发现错误:Last_IO_E原创 2016-04-30 12:22:37 · 20576 阅读 · 0 评论 -
MySQL部分表复制配置下存在的运维风险、原因及一种方案
大家都知道 replicate-wild-do-table可以配置只同步部分表,由于其支持通佩符,带来便利。但也存在一些风险。 问题描述: 假设M、S两个MySQL Server, S设置为M的从库,且设置replicate-wild-do-table=test.a%. 此时在M库按照如下顺序操作:1) create table a1(f int)转载 2016-05-24 16:15:18 · 619 阅读 · 0 评论 -
Incorrect key file for table '/tmp/....'错误的解决--记录
本文主要描述 Incorrect key file for table '/tmp/....' 错误的发现和简单的解决方法,作此记录。欢迎转载,请注明作者、出处。作者:张正blog:http://space.itpub.net/26355921 QQ:176036317如有疑问,欢迎联系。 突然接到开发打来电话说MySQL数据库转载 2016-04-06 15:28:44 · 11750 阅读 · 0 评论 -
MySQL半同步复制
MySQL Semisynchronous ReplicationMySQL5.5 除了支持内置的异步复制机制,还提供了接口支持半同步复制的机制。异步复制的缺点:MySQL复制默认是异步复制,Master将事件写入binlog,但并不知道Slave是否或何时已经接收且已处理。在异步复制的机制的情况下,如果Master宕机,事务在Master上已提交,但很可能这些事务没有传到原创 2016-02-28 16:20:18 · 635 阅读 · 0 评论 -
MySQL Replication的基本架构
摘自High Performance MySQL复制过程的核心是binlog拓扑方面:1. 一主一备最常见,可满足典型的读写分离需求2. 一主多备也可以,但要注意备机太多可能导致主机负担过大。有个办法是主机只挂一个特殊的备机,其他备机再从这个特殊备机中同步数据(即把特殊备机当作主机),把主机的同步负担转移到特殊备机上。这个策略叫distribution ma转载 2016-02-29 12:27:07 · 727 阅读 · 0 评论 -
不停止MySQL服务增加从库的两种方式
现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库。前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作。 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长。另一种是通过xtrabackup工具转载 2016-03-20 16:26:43 · 1727 阅读 · 0 评论 -
监控mysql主从一致性shell脚本
#监测主从一致性 #该脚本只检查io进程和sql进程是否都为yes,sql进程是否出现延迟,当延迟时间大于1分钟,会发邮件报警。并没有检查slave上io读取的主二进制日志文件与位置是否和主的完全一致(因为如果io进程为yes的话,很少会不一致),且position位置变化很快,#远程连接主库和从库进行比较的功夫,说不定position已经变化了。port='3306'us原创 2016-04-13 13:55:35 · 2798 阅读 · 0 评论 -
mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
下午在排查MySQL主从同步问题时,想从主库的binlog中找一些线索,裸的binlog文件是无法直视的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysqlbinlog将binlog文件转换成人类可读的内容时却报错:12[xxx@dbhost log]$转载 2016-04-23 08:20:48 · 1272 阅读 · 0 评论 -
ERROR 1201 (HY000):Could not initialize master info structure,ERROR 29 (HY000): File'./web_appdb_的问题
今天在做MySQL主从复制时遇到个ERROR 1201 (HY000): Could not initialize master info structure .出现这个问题的原因是之前曾做过主从复制! www.2cto.com 解决方案是:运行命令 stop slave;成功执行后继续运行 reset slave;然后进行运行GRANT命令重新设置主从转载 2016-05-03 16:10:55 · 1277 阅读 · 0 评论 -
mysql通过物理备份主库方式恢复从库
1 场景描述有一套主从环境,从库和主库差异量比较大。其中一个库大小800G左右,127个表,平均每个表差异100万条数据。试过用pt-table-checksum,pt-table-sync进行同步,但是太慢了,平均同步一个表需要5个小时。因此,打算通过拷贝主库表空间文件,表结构定义文件,日志文件等到从库的方式,使得从库和主库保持一致。2 变更步骤2.1 停止从库原创 2016-07-18 11:06:12 · 4917 阅读 · 0 评论 -
InnoDB: The log sequence number in ibdatafiles does not match the log sequence number in the ib_log
今天做将主库的物理备份恢复到从库的实验时,报错:[root@slave2 mysql]# service mysql restart ERROR! MySQL server PID file could not befound!Starting MySQL.. ERROR! The server quitwithout updating PID file (/mysql_data1/m原创 2016-07-06 11:27:03 · 5109 阅读 · 0 评论 -
mysql从库启动时怎样不自动启动复制
mysql默认启动时(service mysql start),slave也会自动启动复制。IO进程和SQL进程状态都为Yes.怎样让从不自动启动复制呢?在配置文件的mysqld下添加一行:skip-slave-start重启从库生效。原创 2016-07-06 08:51:28 · 5610 阅读 · 1 评论 -
mysql主从复制跳过错误
mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续跳过错误有两种方式:1.跳过指定数量的事务:mysql>slave stop;mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务mysql>slave start2.修改mysql的配置文件,通过sl转载 2016-04-30 11:10:54 · 2911 阅读 · 0 评论 -
Failed to prepare TableSyncChunk plugin: Cannot chunk table `ccda`.`pending_0` using the character c
当我用pt-table-sync命令--print或者--execute时,报如下错误:[root@PC ~]# pt-table-sync --replicate=ccda.checksums --tables=pending_0 --charset=utf8 h=127.0.0.1,u=root,p=system@123 h=192.168.1.202 u=root,p=system@12原创 2016-07-04 09:00:05 · 1004 阅读 · 0 评论 -
从库crash一直自动重启(mysqld got signal 11)问题解决
一:问题描述今天收到邮件报警,遂进数据库查看slave状态,发现io进程和sql进程都为NO.mysql> show slave status \G;*************************** 1. row*************************** Slave_IO_State: ...原创 2016-05-06 15:54:34 · 9229 阅读 · 0 评论 -
Last_SQL_Error: Could not executeUpdate_rows event on table eip_fileservice.T_FILE_LOCATION; Can't f
一:问题描述在从上查看状态,发现报错:mysql> show slave status \G;Last_SQL_Error: Could not executeUpdate_rows event on table eip_fileservice.T_FILE_LOCATION; Can't find recordin 'T_FILE_LOCATION', Error_cod...原创 2016-03-29 14:48:52 · 5627 阅读 · 2 评论