技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 查看专题: 主从同步
    一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的apply,所以难怪slave在高并发时会远落后master。
    在MySQL复制中,如何忽略slave节点上发生的主键冲突、数据不存在等错误。 在MySQL复制中,如果slave节点上遇到错误,比如数据不存在或者主键冲突等错误时,想要忽略这些错误,可以采用以下几种方法.....
    遇到SLAVE延迟很大,binlog apply position一直不动的情况如何排查?
    kvproxy的一个很重要的特性是能实现主从集群间的数据同步。有点类似于mysql和redis的主从数据同步。之所以实现这个功能,是因为在使用memcached的时候,有些时候需要两个集群间保持数据一致。而memcached又没有提供类似的功能。
    SSDB 的主从同步策略非常简单, 就是把主(Master)上的所有写操作(Binlogs), 在从(Slave)上再执行一遍. MySQL 的主从同步也是一样. 而多主可以理解为互为主从.把 Master 上的所有操作(Binlogs)在 Slave 上执行一遍, 说来很简单, 但还是会遇到一些难题, 例如 Binlogs 不可能无限地永久保留. SSDB 只保留最新的 1000 万次写操作. 对于熟悉 MySQL 的同学可能也知道这样的例子: 在有 Binlogs 之前, 数据库内已经有了一部分数据. 也就是说, 这部分数据是无法通过 Binlog 来获得的.为此, 要有一个基础数据的拷贝(Copy)过程. 对于 MySQL 来说, 必须由 DBA 手动拷贝. 而对于 SSDB 来说, 这是自动的.
    鉴于MySQL5.5数据库产品的性能提升不明显,软件产品稳定性不佳,且新增加的功能也不足突破,所以生产环境中只有几套应用使用MySQL5.5版本支撑,以培养与掌握MySQL5.5的经验和技术,所以个人对MySQL5.5系列的实战也不多。现有一个项目,因服务器配置的特殊性,以及业务特点、数据容量、数据访问等也非常特殊,不得不考虑采用MySQL5.5,且国内某mysql服务提供商技术人员指定要求的版本号为MySQL5.5.27。综合上述信息导致今天无意碰到一个MySQL数据库复制搭建过程中出现的错误信息,可能其他同行也可能会碰见,特此写一篇技术博文分享给大家。
    在一些场景想利用MySQL的内存表存一些数据来加快数据的操作。但如果在复制环境中这可不是一个好事情。
    在高版本对低版本的主从中,要注意不要用到低版本不支持的字符集(所以官方并不建议高版本的master同步到低版本的slave)。 对于已经在Master的里面已经存在的binlog,要让主从能够继续同步,只能在slave_skip_errors里加上 22这个错误号。
    mysql 的主从同步挂了,从日志中报的错如下: 120309 18:39:23 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000004' at position 2207467...
    直到今天为止,MySQL依然只支持一个Slave从一个Master复制数据,虽然也可以做到一主多备(M->S),双主复制(MM)等架构,但是局限性依然很大。 例如最近我们遇到一个问题,需要为线上的集群搭建在线延时备份,即从线上的双主集群中再延伸出一组Slave,以防重要集群主备都宕机。按照现在MySQL的架构,要搭建这种在线备份,只能启动相同数据的实例来实现,假设线上有128个实例在提供服务,那么我就需要128个实例来做这128个实例的复制,这个管理成本是巨大的。 之前我们也有个方案,利用Perl脚本来做,参见这篇文章:点我阅读。这个方案的最大问题就是管理不方便,没有可以监控的地方,也不能随便停止脚本等等,如果完善这些部分,代码量太大,几乎就实现了一个MySQL Replication,那还不如利用MySQL的管理部分,在MySQL里实现多Master。
    今天的故事简单有趣,你绝对没有遇到过。当我们把网卡的MTU值从默认的1500,调整为3000/6000/9000后,复制十分诡异,搞得我云里来雾里去的,先记录下:以下命令可以动态修改MTU值及时生效,和查看状态的一些命令: shell> ifconfig eth1 mtu 3000 up (永久生效可以增加MTU=XXXX到配置文件ifcfg-ethN中) shell> ip link list eth1 shell> ethtool shell> ping -s xxxx IP (当增大MTU后,-s值大于1500的ping都会失...
    日常工作中,对于MySQL主从复制检查,一方面我们要保证复制的整体结构是否正常,另一方面需要检查主从数据是否保持一致。对于前者我们可以通过监控复制线程是否工作正常以及主从延时是否在容忍范围内,对于后者则可以通过分别校验主从表中数据的md5码是否一致,来保证数据一致,可以使用Maatkit工具包中的mk-table-checksum工具去检查。在这里,我只想讨论下关于如何检查主从延时的问题。判断主从延时,通常有两个方法:1. Second...
    同MongoDB,Redis这样的NoSQL数据库的复制相比,MySQL复制显得相当复杂! 概述 首先主服务器把数据变化记录到主日志,然后从服务器通过I/O线程读取主服务器上的主日志,并且把它写入到从服务器的中继日志中,接着SQL线程读取中继日志,并且在从服务器上重放,从而实现MySQL复制。
    sql_slave_skip_counter这个全局参数,维护过主从架构的DBA一定都不陌生,当从库的sql_thread被意外中断,你又想尽快恢复主从间的正常复制,就会用到这个参数;这个跳过的后果就是,你的业务要能容忍这个跳过所带来的丢失,也就是主库和从库上的数据将会不再一致,尽管之后你的主从同步又正常,其实严格意义上,这个从库已经没有意义了,无论是去备份还是对外提供读的服务,也就是说“她”已经不在纯净。那么,这个参数具体是什么...
    这篇文章主要是从原理, 手册和源码分析在PHP中查询MySQL返回大量结果时, 内存占用的问题, 同时对使用MySQL C API也有涉及. 昨天, 有同事在PHP讨论群里提到, 他做的一个项目由于MySQL查询返回的结果太多(达10万条), 从而导致PHP内存不够用. 所以, 他问, 在执行下面的代码遍历返回的MySQL结果之前, 数据是否已经在内存中了?
    记录一个比较简便的mysql的主从同步设置步骤,方便日后使用。
    整理的一份mysql replication的报告,主要包括基本原理,一些常见的架构和replication的历史,不能同步等问题。
    server-id做什么用的,你知道吗?1、 mysql的同步的数据中是包含server-id的,用于标识该语句最初是从哪个server写入的,所以server-id一定要有的2、 每一个同步中的slave在master上都对应一个master线程,该线程就是通过slave的server-id来标识的;每个slave在master端最多有一个master线程,如果两个slave的server-id 相同,则后一个连接成功时,前一个将被踢掉。 这里至少有这么一种考虑: slave主动连接master之后,如果slav...
    MySQL 单向同步实现
    不知道\"拉\"一天开始, 好像大家都开始谈论PgSQL了, 呵呵, 最近尝试在项目中使用Pgsql, 现在就将使用Slony-I配置PostgreSQL同步的过程拿来与大家分享. 话说Pgsql虽然很流行,但是国内的文档真的是很少,尤其配置同步这块,基本上都是互相转贴, 写的也很笼统,在我自己配置过程中, 遇到了很多问题. 本文将努力将各种概念解释清楚, 尽量避免大家再遇到我遇到的疑难问题.
[ 共21篇文章 ][ 第1页/共2页 ][ 1 ][ 2 ]
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1