我有一个生产数据库,主从复制正在进行。生产DB备份是在从服务器上完成的。
我希望这样做,以便任意数量的开发环境可以被复制为奴隶。问题是,当从服务器没有任何东西写入它时,开发服务器可能会这样做。就像仅仅通过开发站点的web接口登录可能会触发对loginLog表的插入之类的一样,这可能会导致从复制停止,出现以下错误:
无法在表Write_rows上执行dbname.tablename事件;关键字“Error_code”的重复条目“15610534”,Error_code: 1062;处理程序错误HA_ERR_FOUND_DUPP_KEY;事件的主日志bin-log.000829,end_log_pos 8209872
我的问题是..。当发现冲突时,主DB的数据覆盖从DB的数据,是否有可能设置从DB?
这意味着开发人员可以在开发环境中访问实时数据。比如,如果开发人员正在开发某种实时销售报告(例如。这种实时数据可能是有用的。
发布于 2017-03-11 21:50:11
不,您不能消除mysql复制中的此类问题。
但是,为什么在编写报告时会出现关键的违规错误呢?
最大的问题是,您的生产数据的开发副本到底需要更新到什么程度?我们说的是多少数据?
你可以从一个主人那里得到大量的奴隶。但是,这里的正确解决方案可能是运行一个附加的从服务器作为生产数据的主卷副本,然后在一夜之间将其脱机以创建文件系统级别的副本,然后将其挂载到新的实例上。这在存储区域网络中很容易实现。但是,如果副本运行在同一台主机上,或者在本地磁盘和DRBD镜像上运行主卷复制从服务器,然后将远程DRBD重新映射为RAID镜像以使卫星副本同步,也是可能的。
或者,如果它是一个小型数据库,只需使用rsync。
这确实意味着您将丢失在快照之间创建的任何测试数据。
https://serverfault.com/questions/837714
复制相似问题