两个场景下Mysqldump数据库备份恢复
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,场景一昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放1、建立数据库并开启二进制日志建立用于存放二进制日志的文件夹,修改文
千家信息网最后更新 2025年02月24日两个场景下Mysqldump数据库备份恢复
场景一
昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放
1、建立数据库并开启二进制日志
建立用于存放二进制日志的文件夹,修改文件夹属组属主使mysql用户可以读
二点钟做完全备份,备份完看下是否备份成功
mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sql
less /backup/fullbak2019-07-11.sql #--master-data选项在备份时自动记录bin-log的位置
模拟2点到18点的数据修改
2、存放数据库的硬盘损坏,所有数据库丢失
3、还原
故障恢复中可以让用户暂停访问数据库
vi /etc/my.cnf #添加一行
systemctl restart mariadb
查看当前二进制日志的位置
从二进制日志中获取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;
vi /etc/my.cnf #去掉skip-networking
场景二
凌晨2点做过一次完全备份,白天使用过程中,某同事误删除数据库,当时并未发现,直到下班的时候出故障了
1、数据库完全备份
mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sql
less /backup/fullbak2019-07-11.sql #--master-data选项在备份时自动记录bin-log的位置
2、表被删除,但是没有发现,继续使用,在18点发现问题
3、还原
故障恢复中可以让用户暂停访问数据库
vi /etc/my.cnf #添加一行
systemctl restart mariadb
查看当前日志的位置
根据备份文件中记录的日志位置,从二进制日志获取增量
[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 #从二进制日志中找出删表语句并删除,剩下的日志就是使用的日志
[root@swh ~]#rm -rf /var/lib/mysql/* #可以选择删除所有数据库恢复,或者直接恢复增量备份[root@swh ~]#systemctl restart mariadbMariaDB [(none)]> set sql_log_bin=off;MariaDB [(none)]> source /backup/fullbak2019-07-11.sqlMariaDB [(none)]> source /backup/inc.sqlMariaDB [(none)]> set sql_log_bin=on;
检查数据
vi /etc/my.cnf #去掉skip-networking
虽然可以恢复但是花费的时间成本或许是相当大的,生产环境还需慎重
备份
数据
日志
数据库
二进制
位置
增量
故障
文件
用户
进制
从二
场景
一行
文件夹
时候
点到
硬盘
检查
幸运
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全研究方向
重庆服务器硬盘销售
100个汉字在数据库
吴忠网络技术销售价格
郑州直销软件开发哪家服务好
在线软件开发外包
数据库选型
数据库中脏数据
网络安全能力 脑图
医院信息化应用数据库
快快网络技术 王宁
如何在我的世界里面建造服务器
sap查看数据库空间
数据库并发一致性
银河聚阵网络技术有限公司
六大图像数据库
上海正规软件开发定制
易语言 多线程 数据库
数据库驱动程序是什么
一个软件开发的工作量
天津网络安全专题发布会
网络技术部能学到什么
迅云服务器
网络管理员一定要懂服务器吗
如何查看服务器的计算机管理
数据库选型
渝中区提供软件开发流程代理商
阿里云建服务器
软件开发需要投资多少钱
机房服务器多少钱一个