mysql实时同步备份

作者: 健隆 分类: 数据库 发布时间: 2018-08-17 17:03
MySQL 实时同步简明操作手册。
一、前言:
    1.1 环境描述
    主机一台,IP地址为:192.19.100.72
    备机一台,IP地址为:129.19.100.245
    
    1.2 效果描述
    按本文档进行配置后,主机数据库里的数据,除了日志信息外,都可以实时备份到备机中。例如,在主机中删除、增加操作,都会实时更新到备机的数据库里。
    主机和备机的日志文件不会互相交换和覆盖。对主机或者副机的操作日志都分别记录在各自的数据库中。   
    
    
二、配置(用root用户身份进行操作,此步骤目前已经配置好了,只有在全新装机器的情况下才需要做):
    2.1 需要在主机上进行的配置
       打开主机中的"/etc/my.cnf"文件。
       在文件中添加(注意,有可能文件中有部分内容已存在):
      [mysqld]
       #Replication master
       server-id = 10
       log-bin=mysql-bin                  
       binlog-do-db=activedb
       
    2.2 需要在备机上进行的配置
       打开备机中的"/etc/my.cnf"文件。
       在文件中" # Replication slave "一句后面添加(注意,有可能文件中有部分内容已经预先存在):
         master-host=192.10.100.72                   //*在备机上设主机的地址
         master-user=root
         master-password=pass
         msster-port=3306
         master-connect-retry=60
              
         replicate-do-table=activedb.carduser
         replicate-do-table=activedb.ktokens
         replicate-do-table=activedb.sstatus
         replicate-do-table=activedb.systemuser
         replicate-do-table=activedb.sysemuserrolerelat
         replicate-ignore-do-table=activedb.klog        //*主机中的日志表不同步到备机中
         
         两边重启机器或者重启数据库以后,备机就能自动到主机中去请求同步。全过程无需人工干预。
         
     2.3 注意事项
         注意:备机可以正常查看数据,启动或者停止服务,进行令牌同步、测试、解锁等操作。
         但千万不要删除或者增加用户(包括系统用户)、令牌等信息!!!
         也不要把备机上的操作当作日常操作经常使用!
         
三、切换(在主备机互相转换身份的时候需要配置,以root身份进行下面的操作:)
     3.1 在原备份机上的操作:
         在原来的备机"/etc/my.cnf"文件里把下列语句全部删除(或在行首用#号全部注释掉):      //*注意,是在原来的备机上操作!!
               
         master-host=192.10.100.72                  
         master-user=root
         master-password=pass
         msster-port=3306
         master-connect-retry=60
              
         replicate-do-table=activedb.carduser
         replicate-do-table=activedb.ktokens
         replicate-do-table=activedb.sstatus
         replicate-do-table=activedb.systemuser
         replicate-do-table=activedb.sysemuserrolerelat
         replicate-ignore-do-table=activedb.klog  
         
       3.2在原主机上的操作  
         原来用做主机的服务器中"/etc/my.cnf"文件里找到# Replication slave(comment out master section to use this),紧接其后添加如下语句:
         
         master-host=129.19.100.245                   //*注意此处的IP地址,此处填写新主机的IP地址。
         master-user=root
         master-password=pass                         //*注意数据库的用户名和密码
         msster-port=3306
         master-connect-retry=60
              
         replicate-do-table=activedb.carduser
         replicate-do-table=activedb.ktokens
         replicate-do-table=activedb.sstatus
         replicate-do-table=activedb.systemuser
         replicate-do-table=activedb.sysemuserrolerelat
         replicate-ignore-do-table=activedb.klog  
         
         重启两边数据库,即可。
         
       3.3 互换后再换回来的操作:
         主机和备机互相交换后,如果还需要再换回来,则不仅要注意3.1和3.2条的事项,并且请参考4.2条,删除"/var/lib/mysql"目录下的master.info文件,并重启数据库,才能生效。 
         
四、排错:
    4.1、查看是否生效:
          如果数据库实时同步成功,则在主机启动认证服务的同时,备机的服务也会起来。此时登录到备机,查看备机的服务是否跟随主机即时启动或者即时停止,即可判断。
          
    4.2、如果要更换主机的IP地址,则不仅要在备机的"/etc/my.cnf"里更改"master-host=*.*.*.*"后面的IP地址值。并且需要删除"/var/lib/mysql"目录下的master.info文件。如果要更改备机的地址,则无需做任何改变。
    
    4.3、主机和备机通过"3306"端口通信。需要开放相应防火墙端口。
    
    4.4、通过在备机中输入"# mysql -u root -p"命令,进入"mysql>"命令行模式,可以进行更细化的排错。
    4.4.1 启动和关闭数据库备份:
             mysql>slave stop;     //**启用备份,注意语句后面的分号
             mysql>slave start;    //**停止备份
             
    4.4.2 查看备机启动状态:
             mysql> show slave status\G             //**查看状态,注意语句后面没有分号
             
             其中:Slave_IO_Status的值必须为:Waiting for master to send event
                   Slave_IO_Running和Slave_SQL_Running的值必须为Yes
                   
              如果Last_IO_Errorno不为零且Last_IO_error后面有错误语句提示,则在请输入以下语句:
              mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;         //**此为跳过同步错误。注意:n的值为上面看到的Last_IO_Errorno的值。
              然后用4.4.1所提示的方法重启slave服务。
              
    4.4.3查看备机进程:
             mysql>show processlist\G             //**查看进程列表,注意语句后面没有分号
             此时会提示正在同步的进程SQL语句。或者提示State:Has read all relay log;waiting for the slave I/O thread to update it

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!