• MySQl学习笔记-6.数据库的备份


    @TOC

    一、数据库的备份

    1. 数据备份种类

    在这里插入图片描述

    1.1 分类的维度

    在这里插入图片描述

    1. 备份时数据库的状态

    在这里插入图片描述

    2. 备份文件的格式

    在这里插入图片描述

    • 逻辑备份:供人可读的文件
    • 物理备份:二进制文件,表数据rdb文件等
    3. 备份的内容

    在这里插入图片描述

    1.2 备份常用工具

    在这里插入图片描述

    2. OUTFILE命令备份

    在这里插入图片描述

    2.1 定义

    在这里插入图片描述

    2.2 使用方式

    • 1.首先查询到MySQL的导出路径
    show variables like '%secure%'
    
    • 1

    在这里插入图片描述

    • 2.然后使用into outfile指令将查询结果导出到指定文件中

    在这里插入图片描述

    mysql> select * into outfile '/var/lib/mysql-files/t1-out' from t1;
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    • 3.可以在事务中备份同一时刻的一致性数据
      在这里插入图片描述
    mysql> begin;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select * into outfile '/var/lib/mysql-files/t2-out' fields terminated by ',' from t2;
    Query OK, 3 rows affected (0.00 sec)
    
    mysql> commit;
    Query OK, 0 rows affected (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    [root@lsEdu01 ~]# cat /var/lib/mysql-files/t2-out
    1,2
    3,4
    5,6
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.3 缺陷

    在这里插入图片描述

    3. 如何使用mysqldump

    在这里插入图片描述

    3.1 outfile如何改进

    在这里插入图片描述

    3.2 mysqldump简介

    在这里插入图片描述

    3.3 mysqldump原理

    1. 备份语句

    在这里插入图片描述
    在这里插入图片描述

    [root@lsEdu01 ~]# mysqldump -h192.168.184.128 -uroot -pLSEdu01_1010 --databases d1 --single-transaction > 1.sql
    
    
    • 1
    • 2

    在这里插入图片描述

    3.4 注意事项

    在这里插入图片描述

    3.5 缺陷

    在这里插入图片描述

    4. mysqldump增量备份

    4.1 增量备份思路

    在这里插入图片描述

    • 查看binlog日志文件
    [root@lsEdu01 mysql]# pwd
    /var/lib/mysql
    [root@lsEdu01 mysql]# ll
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    4.2 备份步骤

    1. 全量备份,并创建新的binlog文件

    在这里插入图片描述

    • master-data标记新的binlog位置,还原时知道从哪开始还原
    [root@lsEdu01 mysql]# mysqldump -h192.168.184.128 -uroot -pLSEdu01_1010 --databases d1 --single-transaction --flush-logs --master-data=2 > d1_back.sql;
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    [root@lsEdu01 mysql]#
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • 13号之前的是旧的日志文件,之后的是备份后产生的新的binlog日志文件,是进行增量备份的起始标志
    • 查看日志文件
    [root@lsEdu01 mysql]# cat d1_back.sql
    
    
    • 1
    • 2

    在这里插入图片描述

    2. 增量备份

    在这里插入图片描述

    • 备份前,防止备份日志文件正在写,需要先切换binlog文件,即,切换到新的日志文件,比如之前最新的是13号,现在切换成14号,保证13号文件的完整性
    • 这样,13号文件记录了之前全量备份到这次增量备份之间所做的全部变更
    • 最后,将所有新增的binlog文件备份
    [root@lsEdu01 mysql]# mysqladmin -h192.168.184.128 -uroot -pLSEdu01_1010 flush-logs
    
    
    • 1
    • 2

    在这里插入图片描述

    3. 还原

    在这里插入图片描述

    5. 物理备份-XtraBackup

    在这里插入图片描述

    5.1 优点

    在这里插入图片描述

    5.2 原理

    直接拷贝裸文件问题

    在这里插入图片描述

    Mysql文件结构

    在这里插入图片描述

    实现物理热备份

    在这里插入图片描述

    实现物理增量备份

    在这里插入图片描述

    物理还原

    在这里插入图片描述

    5.3 实操

    idbackup

    在这里插入图片描述

    xtraBackup

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6. 新的备份工具

    在这里插入图片描述

    6.1 mylvmbackup

    在这里插入图片描述

    6.2 mydumper

    在这里插入图片描述

    6.3 Zmanda Recovery Manager

    在这里插入图片描述

    二、其他安全策略

    在这里插入图片描述

    1. 权限隔离

    在这里插入图片描述

    2. SQL审计

    在这里插入图片描述

    3. 伪删表

    在这里插入图片描述

    4. 完备流程

    在这里插入图片描述

  • 相关阅读:
    golang常用库包:log日志记录-uber的Go日志库zap使用详解
    【服务器搭建】教程三:怎样购买域名并怎样进行域名解析 来啦
    基于Vue3+TS的Monorepo前端项目架构设计与实现
    Python gdal读取MODIS遥感影像并结合质量控制QC波段掩膜数据
    手写一个下拉的左侧二级菜单,Vue项目
    Java 面试被问框架源码看过吗?70 道 SSM 面试题及学习笔记值得收藏
    简单认识泛型【java】
    error LNK2001: 无法解析的外部符号 “public: __thiscall std::
    Jupyter的安装
    42.【vector简单列题】
  • 原文地址:https://blog.csdn.net/xingzhes_/article/details/126657761