관련 학습 권장 사항: mysql tutorial
최근 개학 시즌부터 저희 회사는 대학 관련 사업을 하고 있어서 꽤 바쁘고 시간이 많지 않습니다. 일단 너무 바쁘면 기사를 쓰세요. 바쁘면 실수하기 쉽습니다. 저는 불과 며칠 전, 아니, 제 친구가 며칠 전 온라인 데이터베이스를 운영하던 중 데이터베이스를 삭제할 뻔하고 도망갈 뻔했습니다. ㅋㅋㅋ > . 사실은 내가 아니라 내 친구야. 사실은 내가 아니라 내 친구야. 다만, 이하에서는 서술의 편의를 위해 '내 친구'를 '나'로 표기하겠습니다.
다행히도 몇 가지 데이터베이스 복구 솔루션을 보았고 여전히 이에 대해 조금 알고 있습니다.
데이터 복구
show variables like 'log_%';复制代码
ON 상태인 것을 볼 수 있는데, OFF 상태라면 my.cnf에서
뒤에 구성을 추가하고 mysql 서비스를 재시작하면 됩니다. 그것을.# my.cnf文件 [mysqld] log-bin=mysql-bin server-id=1复制代码
# 查看binlog日志的目录show master status;复制代码
[mysqld]
# 查看binlog日志内容show binlog events IN 'mysql-bin.000002';复制代码
# 进入存储binlog日志的文件木了,可以通过这条命令查看详情 mysqlbinlog --base64-output=decode-rows -v mysql-bin.000002;复制代码
# 将binlog日志转为txt导出 mysqlbinlog --base64-output=decode-rows -v mysql-bin.000002 > sql.txt复制代码
# 通过起始点和结束点恢复 mysqlbinlog --start-position="582" --stop-position="9414" mysql-bin.000002 | mysql -uroot -proot;复制代码
# 通过起始时间和结束时间来恢复,传入的时间可以是一个yyyy-MM-dd HH:mm:ss 的时间格式,也可以是一个时间戳 mysqlbinlog --start-datetime="2020-9-1 8:25:04" --stop-datetime="2020-9-1 20:00:00" mysql-bin.000002 | mysql -uroot -proot复制代码
# 设置文件大小,单位是字节,下面换算是100Mset global max_binlog_size=104857600; # 设置文件保存天数,下面是保存7天,默认值为0,表示"没有自动删除"set global expire_logs_days = 7;复制代码
对于线上环境来说,做好每日备份和binlog一起用才是王道。线上一般都是部署在linux上的,所以这里就简单列一下linux的定时备份方法。
yum install crontabs复制代码
/var/spool/cron/root 此文件为crontab定时任务,可通过crontab -e
或者直接修改此文件修改.
crontab -l
查看定时任务.
touch xxx.sh
mysqldump -uroot -p"密码" 数据库名 > /mysql/person_`date +%Y%m%d`.sql复制代码
chmod 777 xxx.sh
crontab -e
每天凌晨2点执行 00 2 * * * /xxx.sh复制代码
完结!
想了解更多编程学习,敬请关注php培训栏目!
위 내용은 슬픈 이야기, 온라인 데이터베이스가 실수로 삭제되었을 때의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!