我管理一个托管 100 多个数据库的 MySQL 服务器。
我们已经设置了标准的主从复制,但是 SQL 线程往往会经常中断,并且需要手动干预才能重新启动它。在此期间,服务器不同步。
我知道有一个选项可以指定哪些数据库被复制/不被复制。
是否可以设置复制线程的多个实例(理想情况下每个数据库一个),以便如果复制在一个线程上中断(并停止),它不会停止所有其他线程的复制?
我管理一个托管 100 多个数据库的 MySQL 服务器。
我们已经设置了标准的主从复制,但是 SQL 线程往往会经常中断,并且需要手动干预才能重新启动它。在此期间,服务器不同步。
我知道有一个选项可以指定哪些数据库被复制/不被复制。
是否可以设置复制线程的多个实例(理想情况下每个数据库一个),以便如果复制在一个线程上中断(并停止),它不会停止所有其他线程的复制?
这是不可能的,但请阅读row-replication format。
另一种解决方案可能是同一台机器上的多个mysql服务器实例,每个实例都有自己的复制线程(但我从未尝试过这个解决方案)。
复制线程是单线程的,因此语句不会乱序。
Continuent 的人们正在尝试使用他们的 Tungsten Replicator 改进异步复制:http: //www.continuent.com/community/tungsten-replicator
我没试过,但你可能想看看。在最近的一个套牌中,他们取笑了“并行复制”
干杯
如果“SQL 线程往往经常中断”,那么最好解决问题的根源。有关您遇到的错误的任何详细信息?
如果问题的根源无法修复,或者应用程序可以容忍问题的其他副作用,您可以通过slave-skip-errors配置要忽略的错误类型。谨慎行事。:)