mysql 定时同步数据_linux定时备份mysql数据库

背景:昨天误操作数据库,执行了一个update操作,where条件没有生效,原因是set某值的时候value里有引号,导致悲剧的发生。悲剧发生之后第一时间查了一下binlog日志有没有打开,果然,没有打开。没办法,最后从内网扒数据,一顿操作猛如虎,搞到晚上12点。还好最终修复了。(生产数据库),为了有效的阻止此类事件的再次发生,记录一下。

1、开启binlog日志

找到my.cnf位置并打开此文件,加入下边命令

log_bin=ONlog_bin_basename=/var/lib/mysql/mysql-binlog_bin_index=/var/lib/mysql/mysql-bin.index/**三个参数来指定,第一个参数是打开binlog日志第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录*/

2、每天定时备份数据库

如:

cd /u02touch start.shvim start.sh 并将以下内容复制进去#备份整个数据库#设置要备份的表空格隔开databases="XXXXXX";#需要备份的数据库username="root"password='XXXXXX';logtime=$(date "+%m%d");mysqltime=$(date "+%H%M");mysqllogdir="/u02/log/mysql/"${logtime}mysqlbackdir="/u02/back/mysql/"${logtime}/${mysqltime};if  [ ! -d "${mysqllogdir}" ] ;thenmkdir -p ${mysqllogdir};fi ;if  [ ! -d "${mysqlbackdir}" ] ;thenmkdir -p ${mysqlbackdir};fi ;echo 【$(date "+%Y-%m-%d%H:%M:%S")】"触发了备份数据库操作"${databases} >>${mysqllogdir}/${logtime}.log 2>&1 &/usr/local/mysql/bin/mysqldump --defaults-extra-file=/etc/my.cnf -u${username} -hlocalhost -p${password} --databases ${databases} >${mysqlbackdir}/${databases}.sql#然后将此脚本在定时器中打开执行crontab -e输入: 03 20 * * 0-6 /u02/start.sh

因领导担心数据库重启有问题,故没有将数据库重启,binlog暂时未生效。只能通过第二种方式备份了。

3c1811301c50855dcf754d48ea3b480b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值