我看到了
主:
Slave_IO_Running: Yes Slave_sql_Running: Yes
奴隶:(我被截断的错误)
Slave_IO_Running: Yes Slave_sql_Running: No Last_Errno: 1062 Last_Error: Error 'Duplicate entry '3' for key 'PRIMARY'' on [...]
我不知道是什么导致它处理,因为我们不能在那里复制.重要的是恢复正常运作;
现在我已经停止了奴隶;在主人和停止奴隶;在Slave上,因为我看到如果我在Slave上更改记录,那么更改Do Do Propagated to Master正在使用中.
我如何能:
强制从主站到从站同步一切,而不影响主站上的数据?希望像往常一样有奴隶皮卡复制?
UPDATE
确定我尝试删除奴隶上的所有表格然后它在错误部分抱怨“表格”不存在.所以我做了一个没有Master的数据转储,并确保我在Secondary(slave)中只有空表.
我开始奴隶;在奴隶但现在它抱怨血腥的alter table语句,例如:
Last_Errno: 1060 Last_Error: Error 'Duplicate column name [...] Query: 'ALTER TABLE [...]
如何跳过fracking alter语句我只是想复制血腥数据并用它来完成,我的表已经有了很多变化已经FFS现在它抱怨几周前复制后发生的变化
如何重置日志或其他内容?
优秀
为什么会这样开始? “辅助”正在传播到“主要”. “主要”不会传播到“次要”.
但是我尝试做的任何修复都将它保持在相同的状态Yes-Yes Yes-No with Last_Error.
我想在那个时候服务器被从网络中删除了,是否会以某种方式混淆MysqL?
解决方法
重新种子奴隶的粗略过程如下:(不要按照这些说明)
>获取数据的一致快照.
>将快照复制到从属设备.
>重新配置并启动从站.
如果您无法忍受停机时间,那么有两种方法可以实现此目的.
>如果您的数据足够小,您可以MysqLdump包括数据在内的所有内容,then these instructions are good.如果您有多个数据库,请务必阅读本文,因为我不打算在此处复制这些注意事项.但是如果你只有1个数据库,基本步骤是:
>在主服务器上,像这样备份数据库:MysqLdump -u root -e -q –single-transaction –master-data database_name
>将此备份导入您的从属设备.
>查看备份文件的开头以获取主日志名称和位置.
>在MysqL shell中的slave上运行类似的东西,但是使用步骤#3中的信息进行更新:START SLAVE UNTIL MASTER_LOG_FILE =’bin.000029′,MASTER_LOG_POS = 651322976;
>如果您的数据库对于MysqL转储来说太大,那么您将需要使用操作系统的卷快照功能对表进行快照.这将暂停你的MysqL服务器几秒钟,所以最好在几小时后完成它可能不会打扰任何人.
>在MysqL shell中的master上,对所有表执行写锁定,以使用具有写锁定的刷新表来使它们保持一致.这将有效地暂停服务器.>不要退出MysqL shell,否则你将失去锁定.>在另一个OS shell中,获取MysqL数据卷的快照.>返回MysqL shell:SHOW MASTER STATUS获取当前日志位置,然后UNLOCK TABLES释放锁定.服务器现已取消暂停.>访问快照并将MysqL数据文件复制到从属服务器.>在MysqL shell中的slave上运行类似的东西,但是使用步骤#4中的信息进行更新:START SLAVE UNTIL MASTER_LOG_FILE =’bin.000029′,MASTER_LOG_POS = 651322976;