zoukankan      html  css  js  c++  java
  • 利用逻辑备份工具对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

  • 相关阅读:
    一个校园互联网实验室的纳新试题(试题整理)
    用CI框架向数据库中实现简单的增删改查
    CodeIgniter框架学习要点
    一个理解PHP面向对象编程(OOP)的实例
    为什么在需要使用‘template as a disambiguator’
    被忽略的class“特殊成员”—转换函数
    C++风格cast的优先级
    printf当前正在处理的格式化符是什么
    C++中模板特殊化(speicialization)的偏序关系及make规则选择
    PhysX中raycast和sweep对block和touch的处理逻辑
  • 原文地址:https://www.cnblogs.com/centos-Paul/p/9775208.html
Copyright © 2011-2022 走看看