背景:昨天误操作数据库,执行了一个update操作,where条件没有生效,原因是set某值的时候value里有引号,导致悲剧的发生。悲剧发生之后第一时间查了一下binlog日志有没有打开,果然,没有打开。没办法,最后从内网扒数据,一顿操作猛如虎,搞到晚上12点。还好最终修复了。(生产数据库),为了有效的阻止此类事件的再次发生,记录一下。
1、开启binlog日志
找到f位置并打开此文件,加入下边命令
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/f -u${username} -hlocalhost -p${password} --databases ${databases} >${mysqlbackdir}/${databases}.sql#然后将此脚本在定时器中打开执行crontab -e输入: 03 20 * * 0-6 /u02/start.sh
因领导担心数据库重启有问题,故没有将数据库重启,binlog暂时未生效。只能通过第二种方式备份了。
如果觉得《mysql binlog 备份_linux定时备份mysql数据库》对你有帮助,请点赞、收藏,并留下你的观点哦!