两个场景下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 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;
检查数据
vi /etc/my.cnf #去掉skip-networking
虽然可以恢复但是花费的时间成本或许是相当大的,生产环境还需慎重
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
大数据虚拟混算平台Moonbox配置指南
一、环境准备 已安装Apache Spark 2.2.0(此版本仅支持Apache Spark 2.2.0, 其他Spark 版本后续会兼容) 已安装MySQL并启动,且开启远程访问 各安装节点已经配置ssh免密登录 二、下载 moonbox-0.3.0-beta下载:https://github.com/edp963/moonbox/releases/tag/0.3.0-beta 三、解压 tar -zxvf moonbox-assembly_2.11-0.3.0-beta-dist.tar.gz 四、修改配置文件 配置文件位于conf目录下 step 1: 修改slaves mv slaves.example slaves vim slaves 将会看到如下内容: localhost 请根据实际情况修改为需要部署worker节点的地址, 每行一个地址 step 2: 修改moonbox-env.sh mv moonbox-env.sh.example moonbox-env.sh chmod u+x moonbox-env.sh vim moonbox-env.sh 将会看到如下内...
- 下一篇
vSphere 通过 vMotion 实现虚拟机热迁移
在实际环境中,总会有新陈代谢,旧机器总还是躲不过时间的摧残,这就需要更换新机器,而 vMotion 是 VMware 开发出的一项独特技术,可将正在运行的虚拟机从一台服务器迁移到另一台服务器上。若要实现热迁移,那么外部共享存储服务器便是必不可少的,因为必须要保证源ESXi主机和目标ESXi主机都可访问虚拟机文件,所以在热迁移之前必须把虚拟机配置文件都迁移到外部共享存储之上。openfiler是一个免费的NAS/ISCSI的SAN服务器系统,主要用于为LAN主机提供独立存储系统,openfiler提供了包括NFS、SMB、ISCSI、target等多种连接方式,一般通过http的方式管理,它对于希望搭建虚拟化的中小型企业而言,是provisiong阶段最好的工具。vMotion是所有vSPhere高级功能的基础,可实现热迁移。vMotion的迁移过程(如果迁移期间出错,虚拟机将恢复原始状态和位置): 1、请求vMotion迁移时,vCenter server会验证虚拟机与ESXi主机状态是否稳定2、此时,源ESXi主机将虚拟机内存克隆到新ESXi主机3、源ESXi主机将克隆期间发生改变的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果