如何解决MySQL数据库主从服务器之间数据有差距问题

发表于:2012-2-09 10:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xyaxlz    来源:51Testing软件测试网采编

  为什么MySQL数据库的主从服务器之间的数据会有差距呢?原因是由于主服务器比较繁忙,主服务器与从服务器的硬件相差比较大等原因可能造成主服务器与从服务器数据差距比较大。为了不影响MySQL数据库的应用,我们常常手动地定期进行主从服务器的数据同步,下面是手动进行数据同步的步骤。该过程是在数据库负载比较低时执行的,此时主服务器不能更新。

  1、对主服务器执行:

  1. mysql> flush tables with read lock; 用读锁锁住所有的表阻止对它的更新  
  2. mysql> show master status\G  
  3. *************************** 1. row ***************************  
  4. File: binlog.000022  
  5. Position: 592429  
  6. Binlog_Do_DB:   
  7. Binlog_Ignore_DB:

  记录下FILE后面的值及Postion后面的值也就是日志名字及其偏移量。

  2、在从服务器上执行下面的语句:

  1. mysql> select MASTER_POS_WAIT('binlog.000022','592429')\G  
  2. *************************** 1. row ***************************  
  3. MASTER_POS_WAIT('binlog.000022','592429'): 0

  MASTER_POS_WAIT的第一个参数是上面master的File值,第二个参数是上面master 的Position值。

  如果返回值是0代表同步是成功的,如果为-1代表是超时退出。

  3、对主服务器的操作:

mysql> unlock tables;

  按照以上的步骤执行完毕,就能够解决MySQL数据库主从服务器之间的差距问题了。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号