如题

解决方案 »

  1.   

    跟普通的一样。
    1. 先判断之前的同步是否完成了。
    2. 进行CHANGE MASTER TO 操作。
      

  2.   

    1. 先判断之前的同步是否完成了。 ###如何判断?
    2. 进行CHANGE MASTER TO 操作。###我知道可以切换成备份机,但是不知道如何切换回主服务器,
    ,不胜感谢!
      

  3.   

    donggeng008 想做这个的主要目的应该是主机出现问题,备机能切换,顶成主机?如果是这样,最好的方法是做 1主2备,采用级联方式。当第一台主机出现问题时:
    1)判断备机无延迟
    2) 修改应用程序的主DB配置为备份DB的IP.这样,即使切换后,还是有主备存在。
    3) 如果步骤2中的DB ip配置过于分散,修改困难。
       可以把原主机的ip停掉,使用备机把主机的ip接管过来,这样所有的应用就不用修改了。
       如果主备不在一个网段,可以在主机上把Mysql停掉,然后设置转发到新的备机也可以。
    如果是一定要在2台之间做主备切换,在不考虑ip的情况。
    可以事先定制好配置文件或者切换命令。
    1)为主机定制一份作为备机时的配置或命令
    2)为备机定制一份作为主机的配置或命令
    3)需要切换时,分别执行一下命令就可以了。
       但是有一点要注意,一定要确保主备数据已经完全同步。4)这样做的难点在于在指定备机的复制点的binlog文件和position。
       可以在主备切换之前,均执行一下flush logs,使得binlog文件切换成一个新的。
       然后指定binlog文件时,只需要检测获取最新的binlog文件名,postion从文件头开始即可。
      

  4.   

    如果楼主要的是mysql内部自动机制来是实现无缝切换的话,那么我想你要失望了,也许5.5版本可以满足你的这个要求吧,这个版本把google的一个patch加上了,所以能大概的实现这个功能。所以,你还是要通过C#程序来控制,或者是脚本语言来管理。具体的思路其实ICEQQ说的很清楚了。通过这种方式来是实现切换,必定要面临两个问题:同步是否已经一致?切换过程中正在写入的数据如何保证不丢失?这些问题主要是通过严格的代码逻辑来保证的,个人建议是:保证同步的一致,而将切换过程中的新数据至于次要地位,即,切换过程中,不能进行数据插入。