同步服务器
本人假设要同步的服务器是linux。
同步服务器通常有2个东西需要同步,文件和数据库。就拿最典型的web 服务器举例,并且假设所用的数据库就是MySQL。
同步文件
使用linux的命令 rsync
rsync -avzhe ssh user@example.com:/var/www/webtest /var/www
在配合cron不断同步,例如每5分钟一次。
由于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
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.