分类: Mysql/postgreSQL
2011-07-28 00:45:57
由于主服务器比较繁忙,主服务器与从服务器的硬件相差比较大等原因可能造成主服务器与从服务器数据差距比较大。这是为了不影响应用我们需要手动的定期进行主从服务器的数据同步,下面是手动进行数据同步的步骤。
在数据库负载比较低时执行下面的步骤,此时主服务器不能更新
1、对主服务器执行
mysql> flush tables with read lock; 用读锁锁住所有的表阻止对它的更新
mysql> show master status\G
*************************** 1. row ***************************
File: binlog.000022
Position: 592429
Binlog_Do_DB:
Binlog_Ignore_DB:
记录下FILE:后面的值 及Postion:后面的值 也就是日志名字及其偏移量
2、在从服务器上执行下面的语句
mysql> select MASTER_POS_WAIT('binlog.000022','592429')\G
*************************** 1. row ***************************
MASTER_POS_WAIT('binlog.000022','592429'): 0
MASTER_POS_WAIT的第一个参数是 上面master的File值,第二个参数是上面master 的Position值
如果返回值是0代表同步是成功的,如果为-1代表是超时退出。
3、对主服务器的操作。
mysql> unlock tables;