两个场景下Mysqldump数据库备份恢复-创新互联
场景一
创新互联公司-专业网站定制、快速模板网站建设、高性价比双流网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式双流网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖双流地区。费用合理售后完善,十载实体公司更值得信赖。昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放
1、建立数据库并开启二进制日志
建立用于存放二进制日志的文件夹,修改文件夹属组属主使mysql用户可以读
二点钟做完全备份,备份完看下是否备份成功
mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sqlless /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`.sqlless /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虽然可以恢复但是花费的时间成本或许是相当大的,生产环境还需慎重
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:两个场景下Mysqldump数据库备份恢复-创新互联
文章源于:http://hbruida.cn/article/cosose.html