两个场景下Mysqldump数据库备份恢复
admin
2023-04-16 16:22:02
0

场景一

    昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放

两个场景下Mysqldump数据库备份恢复

1、建立数据库并开启二进制日志

两个场景下Mysqldump数据库备份恢复

建立用于存放二进制日志的文件夹,修改文件夹属组属主使mysql用户可以读

两个场景下Mysqldump数据库备份恢复

二点钟做完全备份,备份完看下是否备份成功

mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sql

两个场景下Mysqldump数据库备份恢复

less /backup/fullbak2019-07-11.sql    #--master-data选项在备份时自动记录bin-log的位置

两个场景下Mysqldump数据库备份恢复

模拟2点到18点的数据修改

两个场景下Mysqldump数据库备份恢复

2、存放数据库的硬盘损坏,所有数据库丢失

两个场景下Mysqldump数据库备份恢复

3、还原

故障恢复中可以让用户暂停访问数据库

vi /etc/my.cnf  #添加一行

两个场景下Mysqldump数据库备份恢复

systemctl restart mariadb

查看当前二进制日志的位置

两个场景下Mysqldump数据库备份恢复

从二进制日志中获取2点到18点数据

[root@swh ~]mysqlbinlog  --start-position=245 /data/logbin/mysql-bin.000003 > /backup/inc.sql
[root@swh ~]#mysqlbinlog  /data/logbin/mysql-bin.000004 >> /backup/inc.sql
[root@swh ~]#mysqlbinlog  /data/logbin/mysql-bin.000005 >> /backup/inc.sql
[root@swh ~]#mysqlbinlog  /data/logbin/mysql-bin.000006 >> /backup/inc.sql


由于恢复数据库会产生大量的日志,可以临时关闭二进制日志

MariaDB [(none)]> set sql_log_bin=off;
MariaDB [(none)]> source  /backup/fullbak2019-07-11.sql  #导入完全备份
MariaDB [(none)]> source  /backup/inc.sql     #导入增量备份
MariaDB [(none)]> set sql_log_bin=on;
恢复后检查数据库,恢复访问
MariaDB [hellodb]> select * from students;

两个场景下Mysqldump数据库备份恢复

vi /etc/my.cnf  #去掉skip-networking

场景二

    凌晨2点做过一次完全备份,白天使用过程中,某同事误删除数据库,当时并未发现,直到下班的时候出故障了

两个场景下Mysqldump数据库备份恢复

1、数据库完全备份

mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sql

两个场景下Mysqldump数据库备份恢复

less /backup/fullbak2019-07-11.sql       #--master-data选项在备份时自动记录bin-log的位置

两个场景下Mysqldump数据库备份恢复

2、表被删除,但是没有发现,继续使用,在18点发现问题

两个场景下Mysqldump数据库备份恢复

3、还原

故障恢复中可以让用户暂停访问数据库

vi /etc/my.cnf  #添加一行

两个场景下Mysqldump数据库备份恢复

systemctl restart mariadb

查看当前日志的位置

两个场景下Mysqldump数据库备份恢复

根据备份文件中记录的日志位置,从二进制日志获取增量

[root@swh ~]#mysqlbinlog  --start-position=245 /data/logbin/mysql-bin.000013 > /backup/inc.sql
[root@swh ~]#cp /backup/inc.sql  /backup/inc.sql.bak    #修改下备份下
[root@swh ~]#vi /backup/inc.sql   #从二进制日志中找出删表语句并删除,剩下的日志就是使用的日志

两个场景下Mysqldump数据库备份恢复

[root@swh ~]#rm -rf /var/lib/mysql/*    #可以选择删除所有数据库恢复,或者直接恢复增量备份
[root@swh ~]#systemctl restart mariadb
MariaDB [(none)]> set sql_log_bin=off;
MariaDB [(none)]> source  /backup/fullbak2019-07-11.sql
MariaDB [(none)]> source /backup/inc.sql
MariaDB [(none)]> set sql_log_bin=on;

检查数据

两个场景下Mysqldump数据库备份恢复

两个场景下Mysqldump数据库备份恢复

vi /etc/my.cnf  #去掉skip-networking

虽然可以恢复但是花费的时间成本或许是相当大的,生产环境还需慎重

相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...