首页 > 数据库技术 > 详细

利用脚本实现mysql主库到备库数据同步(每五分钟同步一次增量)

时间:2015-03-02 15:01:10      阅读:514      评论:0      收藏:0      [点我收藏+]
  1. 目标: 将主库数据(IP1)每五分钟一次同步到备库(IP2) 服务器备库上,只同步增加量

  2. 思路:

  3. 利用crontab 每五分钟一次定时执行脚本进行数据同步

  4. 在脚本中编译实现查询五分钟内的数据增加量,并将增加量导入到备库

  5. 实现过程及代码(record 表为例):

  6. bash脚本中内容

    vi transaction.sh----建立transaction脚本实现同步

    #!/bin/bash

source.bash_profile

(由于定时执行的功能使用crontab实现,需要在bash中添加使环境变量生效)

exportID=`mysql -N -utest -ptest\!@#$ -Dtest -e "select

max(transaction_id)from record"`

(使用替代变量ID定义备库中现在最大transaction_id的值)

mysql-N -hIP2 -uslaveroot -p7Pyw#7AHh7 -Dtest -e "use

test;select* from record where transaction_id > $ID;"> backup.sql

(在主库中查找大于transaction_id 的值即在这五分钟内record中数据增长量,并将其导入

backup.sql文件中)

sed-i ‘s#NULL#\\N#g‘ backup.sql

(由于字符集问题"NULL" 在导入中会出现错误,利用sed指令将NULL替代成为\N)

mysql -N -utest -ptest\!@#$ -Dtest -e "use test;load datainfile

‘/home/mysql/backup.sql‘ into table record;"

(导入生成的backup.sql文件)

crontab脚本编写

    crontab-e (编辑定时脚本)

    5,10,15,20,25,30,35,40,45,50,55* * * * /home/mysql/transaction.sh

    (每五分钟执行一次transaction.sh)

  1. 执行结果验

     

技术分享

技术分享

本文出自 “Sunny” 博客,请务必保留此出处http://dbasunny.blog.51cto.com/9192126/1616432

利用脚本实现mysql主库到备库数据同步(每五分钟同步一次增量)

原文:http://dbasunny.blog.51cto.com/9192126/1616432

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!