利用脚本实现mysql主库到备库数据同步(每五分钟同步一次增量)
目标: 将主库数据(IP1)每五分钟一次同步到备库(IP2) 服务器备库上,只同步增加量
思路:
利用crontab 每五分钟一次定时执行脚本进行数据同步
在脚本中编译实现查询五分钟内的数据增加量,并将增加量导入到备库
实现过程及代码(以record 表为例):
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)
执行结果验
本文出自 “Sunny” 博客,请务必保留此出处http://dbasunny.blog.51cto.com/9192126/1616432
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。