首页
学习
活动
专区
圈层
工具
发布

mysql主从环境: 主库磁盘坏了(os error 5), 从库更是先一步不同步了(my-01595)

导读某mysql双主(其实是mariadb 10.5)环境,但实际上只有一个节点写,我们记录主库为db-A,从库为db-B故我们当作主从来分析要简单点.问题: 发现数据库切换了, 还丢了部分数据(部分变更的数据找不到了...登录从库, 查看主从状态, 发现主从在时间点A就已经断开了, 报错可参考: MySQL error code 1595 (ER_SLAVE_RELAY_LOG_WRITE_FAILURE): Relay...log write failure: could not queue event from master我们查询mysql源码(我手里就mysql源码, 这种报错都差不多的),发现报错逻辑为:我们根据主库的日志记录时间...如果主库能修复,那么我们只需要将从库的数据同步完主库即可切换过来.如果主库修复失败, 就只能忍受丢一部分数据了(没得备份.)重启OS后(环境特殊,未验证不重启是否可行),使用xfs_repaire -L...顺利"修复了"xfs文件系统, 再次重启后,主库正常, 待主库数据同步完之后, 即可切换到主库, 并重建从库.总结本次案例为: 主库磁盘问题导致切换, 但切换之前主从就已经不同步了,故切换后的库数据实际上是不完整的

18720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    案例:DG主库未设置force logging导致备库坏块

    DG搭建时,官方文档手册有明确提到要设置数据库为force_logging,防止有nologging操作日志记录不全导致备库应用时出现问题。...虽然是老生常谈的安装规范,但现实中总会遇到不遵守规范的场景,最近就在某客户现场遇到一则这样的案例,因为DG主库设置force_logging晚于DG搭建,导致备库出现坏块,使用dbv检查就表现为DBV-...2.构造故障场景 主库用户表空间xxx,创建一张表插入数据,nologging创建索引;切换日志,备库检查坏块情况。...Encrypted : 0 Highest block SCN : 2168379 (0.2168379) [ora11204@OEL-ASM arch]$ 此时再通过主库设置...force logging挽救,为时过晚,只能对之后的操作起作用,但对已造成的坏块无法修复: ALTER DATABASE FORCE LOGGING; 3.解决故障 在主库确认已设置force logging

    1K20

    Percona Toolkit解决MySQL主从不同步问题

    一、简单介绍 percona-toolkit工具中最主要的三个组件分别是: 1)pt-table-checksum 负责监测mysql主从数据一致性 2)pt-table-sync 负责当主从数据不一致时修复数据...,让它们保存数据的一致性 3)pt-heartbeat 负责监控mysql主从同步延迟 二、主机关系 主库:192.168.1.158:3306 从库:192.168.1.159:3306 主从关系 root...REPLICATION SLAVE,CREATE,DELETE,INSERT,UPDATE ON *.* TO 'ptcheck'@'%' identified by '123456'; 四、创建测试数据 1、主库创建表...+----+------+--------+ 4 rows inset (0.00 sec) 3、pt-table-checksum主从一致性检查,在从库上执行pt-table-checksum检查(主库主机...--replicate-check-only :只显示不同步的信息。 --replicate= :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。

    1.6K30

    mysql主库更新后,从库都读到最新值了,主库还有可能读到旧值吗?

    我们知道,mysql数据库,为了得到更高性能,一般会读写分离,主库用于写操作,比如用于执行insert,update操作,从库用于读,也就是最常见的select操作。像下面这个图这样。...mysql读写分离 虽然主库一般用于写操作,但也是能读的。那么今天的问题来了。 主库更新后,主库都读到最新值了,从库还有可能读到旧值吗? 主库更新后,从库都读到最新值了,主库还有可能读到旧值吗?.../mysql-slave-bin | | log_bin_index | /var/lib/mysql/mysql-slave-bin.index | |...如果两个mysql配置好了主从的关系,那么他们之间会建立一个tcp长连接,主要用于传输同步数据。 除此之外,主库还会再起一个binlog dump线程将binlog文件的变更发给从库。...mysql主从同步 到这里,我们可以开始回答文章开头的第一个问题。 主库更新后,主库都读到最新值了,从库还有可能读到旧值吗?

    98320

    MySQL主从不一致情形与解决方法

    一、MySQL主从不同步情况 1.1 网络的延迟 由于mysql主从复制是基于binlog的一种异步复制 通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大...1.5 同步参数设置问题 mysql异常宕机情况下,如果未设置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出现binlog或者relaylog文件出现损坏...1.6 自身bug mysql本身的bug引起的主从不同步 1.7 版本不一致 特别是高版本是主,低版本为从的情况下,主数据库上面支持的功能,从数据库上面不支持该功能。...4.0 同时在从上面推荐加入下面两个参数 skip_slave_start read_only 二、解决主从不同步的方法 2.1 主从不同步场景描述 今天发现Mysql的主从数据库没有同步 先上Master...mysql> source /tmp/mysql.bak.sql 7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项 change

    3.5K31

    MySQL 中主库跑太快,从库追不上怎么整?

    但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致性,主库又是通过什么样的方式将数据实时同步到从库的?...基本原理 Mysql 中主从复制时有两个很重要的日志文件: binlog(二进制日志文件) relay log(中继日志文件) ?...随机重放 Mysql 主库中写 binlog 的操作是顺序写的,之前我们提到过,磁盘的顺序读写速度是很快的。同样的,从库中的 I/O 线程操作日志的速度效率也是很高的。...MySQL 5.6 版本后,提供了一种并行复制的方式,通过将 SQL 线程转换为多个 work 线程来进行重放,这样就解决了主从延迟的问题。 ?...主从延迟处理 MySQL 5.6版本以后通过并行复制的方式来解决 SQL 单线程产生的主从延迟问题。对于低版本来说,可以通过降低主库的并发来解决。

    1.8K20

    MySQL 中主库跑太快,从库追不上怎么整?

    但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致性,主库又是通过什么样的方式将数据实时同步到从库的?...基本原理 Mysql 中主从复制时有两个很重要的日志文件: binlog(二进制日志文件) relay log(中继日志文件) ?...随机重放 Mysql 主库中写 binlog 的操作是顺序写的,之前我们提到过,磁盘的顺序读写速度是很快的。同样的,从库中的 I/O 线程操作日志的速度效率也是很高的。...MySQL 5.6 版本后,提供了一种并行复制的方式,通过将 SQL 线程转换为多个 work 线程来进行重放,这样就解决了主从延迟的问题。 ?...主从延迟处理 MySQL 5.6版本以后通过并行复制的方式来解决 SQL 单线程产生的主从延迟问题。对于低版本来说,可以通过降低主库的并发来解决。

    1.8K31

    Mysql 中主库跑太快,从库追不上怎么整?

    但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致性,主库又是通过什么样的方式将数据实时同步到从库的?...基本原理 Mysql 中主从复制时有两个很重要的日志文件: binlog(二进制日志文件) relay log(中继日志文件) 在主从同步的过程中,主库会将所有的操作事件记录在 binlog 中,从库通过开启一个...随机重放 Mysql 主库中写 binlog 的操作是顺序写的,之前我们提到过,磁盘的顺序读写速度是很快的。同样的,从库中的 I/O 线程操作日志的速度效率也是很高的。...MySQL 5.6 版本后,提供了一种并行复制的方式,通过将 SQL 线程转换为多个 work 线程来进行重放,这样就解决了主从延迟的问题。...主从延迟处理 MySQL 5.6版本以后通过并行复制的方式来解决 SQL 单线程产生的主从延迟问题。对于低版本来说,可以通过降低主库的并发来解决。

    1.6K30

    Mysql主库跑太快,从库追不上怎么做?

    但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致性,主库又是通过什么样的方式将数据实时同步到从库的?...基本原理 Mysql主从复制时有两个很重要的日志文件 binlog (二进制日志文件) relay log (中继日志文件) ?...随机重放 Mysql 主库中写 binlog 的操作是顺序写的,之前我们提到过,磁盘的顺序读写速度是很快的。同样的,从库中的 I/O 线程操作日志的速度效率也是很高的。...MySQL 5.6 版本后,提供了一种并行复制的方式,通过将 SQL 线程转换为多个 work 线程来进行重放,这样就解决了主从延迟的问题。 ?...主从延迟处理 MySQL 5.6版本以后通过并行复制的方式来解决 SQL 单线程产生的主从延迟问题。对于低版本来说,可以通过降低主库的并发来解决。

    1.4K50

    案例:推进GTID解决MySQL主主不同步问题

    之前文章介绍过MySQL修改lower_case_table_names参数,如果之前大写存储的表将无法识别,需要特殊处理。...最近遇到一例应用开发人员在修改这个参数之后,为了清除之前大写存储的表,做了误操作,导致主主不同步。...y 而且后续根据故障现象推测:操作人员最初只在一个主节点做了这样的操作,随后在这个主节点执行了删除数据库的动作,最后又建立了新的数据库重新建表,最终才发现另一个主节点已经不同步了,尝试自己无法解决后,上报了故障给客户...Master_UUID: 08c887bf-98ab-11ea-b70c-080027c2997a Master_Info_File: mysql.slave_master_info...Master_UUID: 08c887bf-98ab-11ea-b70c-080027c2997a Master_Info_File: mysql.slave_master_info

    1.3K30

    一则mysql主从不同步问题分析

    开发环境出现了主从不同步,在slave节点上显示的SlaveIORunning: Connecting,SlaveSQLRunning: Yes,导致有些查询出现不一致的情况 问题分析 一般这种问题出现的原因主要有以下五点...: 主库机器和从库机器网络不通 可以互ping的方式来查 密码不对 mysql -uroot -p 以对应的用户名和密码登录master mysql server重新对slave授权来排查,具体授权方式见下文...master和slave的pos不正确 在master机器上mysql -uroot -p 登录,然后执行show master status \G; 查看pos和binXX.log的情况; 在slave...从上面两点开始怀疑是不是用户权限的问题,于是到master mysql控制台操作: mysql> grant all privileges on *.* to host112@"slave host"...压力测试通过时业务上有些重要的查询可以强制走主库。 如果上述方法都解决不了问题,建议dump一份数据文件,对master和slave都进行reset,这或许是没有办法的办法。

    1.7K20

    通过RMAN设置standby接收日志后主库归档日志才可删除

    因为Oracle archivelog会不断生产,一般会设置定期清理archivelog的排程,类似下面。...但DG环境中因为某些原因导致主库事务没有即使传到standby,而这时如果主库的archivelog也被清理掉了,主备库就产生了日志GAP export  ORACLE_SID=abc export  ...一种情况standby正常开启,但MPR不开启应用redo,其实standby也能接收主库传递过来的archivelog但并没有被应用,这时主库的archivelog是可以被清理的 默认 CONFIGURE...主库rman中配置 CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY; 3....主库切换生成新log,模拟gap SQL> alter system switch logfile; SQL> / 4.因为standby未接收到archivelog,对主库备份archivelog同时加了

    2.1K20

    mysql主从同步(2)-问题梳理

    reading data from binary log: 'Could not find first log file name in binary log index file' 原因1:清理数据导致主从库不同步...或者是由于某些设置主库上的binlog被删除了,导致从库获取不到对应的binglog file。 解决办法: 1)为了避免数据丢失,需要重新进行slave同步操作。...6)slave连接超时且重新连接频繁 若有多少slave,且没有设置server_id或两个slave设置相同的server_id,将有可能会出现服务器的ID冲突。...7)主库与从库使用不同的存储引擎造成不同步 8)从库同步时,提示表不存在 错误:Last_Error: Error executing row event: 'Table 'test.t1' doesn't...,然后查检主从库上的设置,主库的设置大于从库,因为max_allowed_packet是动态参数,先调整从库上的max_allowed_packet 与主库相同,重新单独启动I/O线程就正常了。

    2.8K60

    MySQL主从复制——主库已有数据的解决方案

    搭建完成后,可以在主库 show slave hosts查看有哪些从库节点。 ?...MySQL主从复制——主库已有数据的解决方案 由单机架构切换到一主一从或一主多从,在增加从库节点前,主库可能已经运行过一段时间,这种情况在实际业务中很常见。...那么如何应对开启主从复制前主库有数据的场景呢? 第一种方案是选择忽略主库之前的数据,不做处理。这种方案只适用于不重要的可有可无的数据,并且业务上能够容忍主从库数据不一致的场景。...第二种方案是对主库的数据进行备份,然后将主数据库中导出的数据导入到从数据库,然后再开启主从复制,以此来保证主从数据库数据一致。...service mysql restart重启mysql服务,这会使得mysql服务所在的docker容器停止 docker start mysql-slave4启动docker容器 配置主从链接 切换到从数据库

    2.3K20

    MySQL主从复制——主库已有数据的解决方案

    搭建完成后,可以在主库show slave hosts查看有哪些从库节点。...MySQL主从复制——主库已有数据的解决方案 由单机架构切换到一主一从或一主多从,在增加从库节点前,主库可能已经运行过一段时间,这种情况在实际业务中很常见。...那么如何应对开启主从复制前主库有数据的场景呢? 第一种方案是选择忽略主库之前的数据,不做处理。这种方案只适用于不重要的可有可无的数据,并且业务上能够容忍主从库数据不一致的场景。...第二种方案是对主库的数据进行备份,然后将主数据库中导出的数据导入到从数据库,然后再开启主从复制,以此来保证主从数据库数据一致。...mysql restart重启mysql服务,这会使得mysql服务所在的docker容器停止 docker start mysql-slave4启动docker容器 配置主从链接 切换到从数据库,执行

    2.5K00
    领券