如果我想更改一个NULL列以允许null值,那么在我的DB从属服务器上运行那个ALTER TABLE,等待它赶上,然后将它提升为master是否安全呢?
发布于 2011-01-23 23:46:31
当您从"NULL“到”NULL“时,这应该是可以的。我会这样做:
mysql> STOP SLAVE SQL_THREAD;mysql> START SLAVE SQL_THREAD;然后在主人身上,跑:
mysql> SET SQL_LOG_BIN=FALSE;的bin日志mysql> SET SQL_LOG_BIN=TRUE;1 MySQL复制在从服务器上的两个线程中运行。I/O线程将复制数据从主复制到从线程。SQL线程在从线程上执行该SQL,执行INSERT/UPDATE/DELETE/等操作。您可以独立地停止每个线程。
2只影响您所处的会话,而不影响来自生产应用程序的其他连接。您正在指示MySQL不要为复制而将运行到bin日志中的任何命令添加。您需要这样做,这样您的ALTER TABLE就不会复制到从服务器上,因为它已经在那里运行了。
发布于 2011-02-04 22:28:42
我刚刚读完了一篇关于使用MMM修改大型表的很棒的文章,它似乎可以解决您的问题,假设您正在使用或能够设置MMM。
https://serverfault.com/questions/225900
复制相似问题