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

  • 相关阅读:
    django基础篇
    oracle中的intersect和minus
    Mybatis中的DTD文件
    ibatis 大于 小于 等。。
    Mysql的DATE_FORMAT()日期格式转换
    mybatis中配置批量insert list
    java split 函数
    Hadoop全分布式模式安装
    Linux免密远程登陆
    Hadoop伪分布式搭建
  • 原文地址:https://www.cnblogs.com/centos-Paul/p/9775208.html
Copyright © 2011-2022 走看看