测试环境数据库同步,使用主从同步,但生产环境中,为了高可用,两组数据库,每组数据库组内实现主主互备,这时主从方案就不好实现了,于是采用了定时任务,每天日终导出当天的表记录,并导入到另外一个库中,以实现部分表同步的需求。
环境
- 主机:centos 6.7
- 主库:mysql5.7.21,172.18.169.16:3306
- 备库:mysql5.7.21,172.18.169.16:13306
- 脚本放在/opt/DbBackup
导出脚本
export.sh
#!/bin/bash --login
if [ ! -n "$1" ] ;then
echo '请输入开始日期'
exit
fi
mysqldump --skip-lock-tables --single-transaction -h172.18.169.16 -P3306 -uroot -pbs -t trade_core pay_trade --where=" trade_date = '$1' "> pay_trade_$1.sql
导入脚本
import.sh
#!/bin/bash --login
if [ ! -n "$1" ] ;then
echo '请输入开始日期'
exit
fi
mysql -h172.18.169.16 -P13306 -uroot -pbs123456 trade_core < pay_trade_$1.sql
自动同步脚本
autoImport.sh
#!/bin/bash --login
cd /opt/DbBackup
yesterday=`date +"%Y%m%d" -d "-1 days"`
echo "同步$yesterday数据"
./export.sh $yesterday
./import.sh $yesterday
定时任务
crontab -e
00 03 * * * /opt/DbBackup/autoImport.sh
查看任务执行
tail -f /var/spool/mail/root
mark
网友评论