同步服务器

同步服务器

本人假设要同步的服务器是linux。

同步服务器通常有2个东西需要同步,文件和数据库。就拿最典型的web 服务器举例,并且假设所用的数据库就是MySQL。

 

同步文件

使用linux的命令 rsync

rsync -avzhe ssh user@example.com:/var/www/webtest /var/www

在配合cron不断同步,例如每5分钟一次。

由于rsync是增量复制,并且在传输的过程中有压缩和解压操作,所以很省带宽的。

不过是单方向的,如果是双方向的,就有问题。

上面的命令中用的是标准的ssh端口,如果使用其他端口,请参考我的另外一篇博文:

使用rsync的ssh的非标准端口

 

同步数据库

使用mysql的replication功能,具体请参看:

http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html

等同步配置完成之后,在slave端登录mysql,使用

SLAVE START;

如果想查看slave和master的链接和同步状态,使用

SHOW SLAVE STATUS\G

记住没有末尾的分号。结果类似如下:

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: localhost
                  Master_User: test
                  Master_Port: 2201
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 1037911
               Relay_Log_File: mysqld-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: No
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 103342
              Relay_Log_Space: 106
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 

               Last_SQL_Errno: 0
               Last_SQL_Error: 
1 row in set (0.02 sec)

 

—————————————————–

如果有错误,那么上面绿色的2行就会出现类似:

                Last_IO_Errno: 1000

                Last_IO_Error: error xxxxxx

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *