MySQL Server 1以Master身份运行。
MySQL Server 2作为从属服务器运行。
两个DB都联机时,它们处于“完美同步”状态。如果从站脱机,则Master仍然在线也没有问题;从站再次联机后,它们将恢复同步。
除了服务器配置之外,如果主服务器脱机,我将重定向从服务器DB的连接(使用JSP代码)(我当然使用/etc/init.d/mysqld stop进行了测试)。
当主服务器重新联机时,是否有任何自动方法将主服务器与从设备更新同步?
MySQL Server 1以Master身份运行。
MySQL Server 2作为从属服务器运行。
两个DB都联机时,它们处于“完美同步”状态。如果从站脱机,则Master仍然在线也没有问题;从站再次联机后,它们将恢复同步。
除了服务器配置之外,如果主服务器脱机,我将重定向从服务器DB的连接(使用JSP代码)(我当然使用/etc/init.d/mysqld stop进行了测试)。
当主服务器重新联机时,是否有任何自动方法将主服务器与从设备更新同步?
Answers:
实现这种性质的一种好方法是设置主-主复制或循环复制。请勿将此与MultiMaster Replciation混淆。
如果已设置主从复制,则设置循环复制实际上非常容易。这是您需要进行配置的步骤。
对于此示例,我们将假定主从复制处于活动状态,但是您会遇到一些停机时间(1-2分钟):
步骤1)将此行添加到主服务器上的/etc/my.cnf。
日志从属更新
步骤2)将这些行添加到从站上的/etc/my.cnf中:
log-bin = mysql-bin(或具有此功能的主服务器)log-slave-updates
警告:这是短暂的停机时间!!!
步骤3)在从站上,服务mysql重新启动
这将激活从站上的二进制日志
步骤4)在Master上,服务mysql停止
步骤5)使用rsync将Slave的/ var / lib / mysql文件夹复制到Master。
警告:这是更长的停机时间!
步骤6)在从站上,服务mysql停止
步骤7)在从站上,找到最后一个二进制日志
步骤8)在从站上,找到最后一个二进制日志的文件大小
步骤9)使用rsync将Slave的/ var / lib / mysql文件夹复制到Master。这应该是一个更快的副本。
步骤10)在Master上,
使用Slave的最后一个二进制日志编辑master.info的第2行。
master.info的第3行包含从站的最后一个二进制日志的文件大小。
master.info的第4行,带有从站的IP。
第5行是复制用户的用户ID(请勿触摸)
第6行是复制用户的密码(请勿触摸)
步骤11)删除Master的所有二进制日志和二进制日志索引文件。
步骤12)在Slave上,服务mysql启动,等待15秒
步骤13)在Master上,服务mysql启动
步骤14)在主机上,运行STOP SLAVE;显示主状态;
步骤15)在从站上,运行CHANGE MASTER TO MASTER_HOST ='从站IP',MASTER_USER ='来自步骤10的复制用户的用户名',MASTER_PASSWORD ='来自步骤10的复制用户的密码',MASTER_LOG_FILE ='来自步骤14的二进制日志', MASTER_LOG_POS =来自Step14的LogPos。
步骤16)在Slave上,运行START SLAVE;
步骤17)在Master上,运行START SLAVE;
对于另一个已回答的StackExchange问题,我执行了与此类似的步骤。
试试看 !!!
log-slave-updates
除非主机将要有其他从机,否则您不需要。
MySQL不提供异步复制功能。您刚刚知道为什么“开箱即用”的MySQL复制(5.5之前的版本)本身并不是高可用性解决方案的。使用半同步复制5.5(http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html)会使情况稍微好一些,但是会因为事务处理时间变慢而导致主服务器等待从奴隶确认。
如果不能接受主机故障时数据丢失的可能性,我想说的是,要比简单的主机/从机更复杂的设置。
许多MySQL著名人士认为,从主复制到主复制比麻烦多于收益(甚至MySQL AB本身也不再建议将其作为高可用性解决方案)。因此,我认为您实际上需要使用DRBD设置来使用块级副本使主动主机和被动从机保持同步。
恕我直言,首先,在非多主设备(主设备/从设备)配置中,您的从设备绝对不要写入。应该配置从属my.cnf并以以下方式启动服务器:
# Flag to not take writes from network
read-only
接下来,要解决主机与意外写入的可写从服务器不同步的问题,必须在两个主机上进行数据差异处理。如果没有按键冲突,则应提升以前的从属主机为主控,并将旧的主控主机重新映像为从新的主控主机复制的从属主机。(这里可能/可能有数据问题)
最后,如果这种断电/停机的情况甚至有可能继续发生,请花点时间将两台主机都设置为多主机(日志箱,服务器ID,偏移量等)。这将在某种程度上帮助您减少停机和停机时间。
如果您必须运行master / slave,则至少可以获得一些奖励积分,用于分隔ACL和应用程序中的读写用户连接。