利用逻辑备份工具对mariadb数据库进行备份及恢复

实验背景:对数据库进行备份是运维工作中非常重要的一环,生产环境下常用mysqldump这一逻辑备份工具进行,而且通常是完全备份且热备份。结合数据库自身的二进制日志文件,可以对基于备份时间点之后的误删除数据等操作进行数据恢复。

实验条件:热备需求-->数据库引擎支持事务(此例中用的是mariadb默认的innodb引擎),恢复需求-->数据库的二进制日志文件确保为开启状态。

实验过程:模生产环境下的正常备份(通常设置计划任务,在规定时间点利用逻辑备份工具mysqldump进行整个库的全备份);模拟破坏数据库中的库或者表;利用备份节点处的二进制格式日志恢复被破坏的库或者表。

实验步骤:1.[root@centos7 ~]# mysqldump -uroot -pcentos -A -F --single-transaction --master-data=2 > /app/databak.$(date +%F_+%T).sql    

     2.错误操作 [root@centos7 ~]# mysql -uroot -pcentos -e "drop database hellodb"

      正确操作 [root@centos7 ~]# mysql -uroot -pcentos -e "create database testdb"

     3.恢复被误删除的数据库hellodb

       1)查询/app/databak.2018-10-11_+20\:52\:28.sql 文件,找到备份节点时的二进制日志文件

        -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=245;

       2)导出指定二进制日志

        [root@centos7 ~]# mysqlbinlog /app/binlog/mysql-bin.000002 > binlog.sql

       3)编辑binlog.sql文件,将错误操作的部分注释或者删除

        #drop database hellodb

       4)阻挡客户端访问数据库

        [root@centos7 ~]# iptables -A INPUT -p tcp --dport 3306 -j REJECT

       5)导入备份文件以及修改的二进制日志

        [root@centos7 ~]# mysql -uroot -pcentos < /app/databak.2018-10-11_+20\:52\:28.sql

        [root@centos7 ~]# mysql -uroot -pcentos < ./binlog.sql 

       6)解除防火墙策略,完成恢复操作

        [root@centos7 ~]# iptables -D INPUT -p tcp --dport 3306 -j REJECT

猜你喜欢

转载自www.cnblogs.com/centos-Paul/p/9775208.html