• MySQL 数据备份


    备份的类型

    冷备:停库,停服务,备份

    热备:不停库,不停服务,备份

    温备:不停服务,锁表(阻止数据写入),备份

    冷备份:这些备份在用户不能访问数据时进行,因此无法读取或修改数据。这些脱机备份会阻止执行任何使用数据的活动。这些类型的备份不会干扰正常运行的系统的性能。但是,对于某些应用程序,会无法接受必须在一段较长的时间里锁定或完全阻止用户访问数据。
    温备份:这些备份在读取数据时进行,但在多数情况下,在进行备份时不能修改数据本身。这种中途备份类型的优点是不必完全锁定最终用户。但是,其不足之处在于无法在进行备份时修改数据集,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。
    热备份:这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问。

    备份的策略

    • 全量备份:对选择的所有文件进行数据备份,若文件存在则覆盖。
    • 增量备份:针对于上一次备份(无论是哪种备份),备份上一次备份后(包含全量备份、差异备份、增量备份),所有发生变化的文件。
    • 差异备份:针对于上一次完全备份,备份上一次的完全备份后发生变化的所有文件。

    备份的方式

    逻辑备份

    # 基于SQL语句的备份
    
    # 1.binlog 备份,binlog 中是对于数据库 DDL/DML/DCL 的记录
    
    # 2.into outfile,会以二维表格的形式输出数据 
    [root@db03 data]# vim /etc/my.cnf
    [mysqld]
    secure-file-priv=/tmp
    mysql> select * from world.city into outfile '/tmp/world_city.data';
    
    # 3.使用 mysqldump 命令备份
    # 4.replication,主从复制
    

    物理备份

    # 备份底层的数据文件
    1. 备份整个 data 数据目录
    2. Percona-xtrabackup 增量备份
    

    mysqldump 命令(备份)

    1.不加参数:用于备份单个表
        1)备份库
        [root@db02 ~]# mysqldump ku > /tmp/ku.sql
        2)备份表
        [root@db02 ~]# mysqldump ku test > /tmp/ku.sql
        3)备份多个表
        [root@db02 ~]# mysqldump ku test test2 test3 > /tmp/ku.sql
        #注意:当不加参数时命令后面跟的是库名,库的后面全都是必须是库下面的表名
    
    2.连接服务端参数(基本参数):-u -p -h -P -S
    
    3.-A, --all-databases:全库备份
    
    4.-B:指定库备份
    [root@db01 ~]# mysqldump -uroot -p123 -B db1 > /backup/db1.sql
    [root@db01 ~]# mysqldump -uroot -p123 -B db1 db2 > /backup/db1_db2.sql
    
    5.-F:flush logs在备份时自动刷新binlog(不怎么常用)
    [root@db01 backup]# mysqldump -uroot -p123 -A -F > /backup/full_2.sql
    
    6.--master-data=2:备份时加入change master语句0没有1不注释2注释
    	1)等于2:记录binlog信息,并注释(日常备份)
    	2)等于1:记录binlog信息,不注释(扩展从库)
    	0)等于0:不记录binlog信息
    	[root@db01 backup]# mysqldump -uroot -p123 --master-data=2 >/backup/full.sql
    
    7.--single-transaction:快照备份
    
    8.-d:仅表结构
    9.-t:仅数据
    
    10.-R, --routines:备份存储过程和函数数据
    11.--triggers:备份触发器数据
    12.gzip:压缩备份
    	#备份成压缩包
    	[root@db01 ~]# mysqldump -uroot -p123 -A | gzip > /backup/full.sql.gz
    	#恢复压缩包中的数据
    	[root@db03 ~]# zcat /tmp/full.sql.gz | mysql -uroot -p123
    
    #完整的备份命令:
    mysqldump -uroot -p123 -A -R --triggers --master-data=2 –-single-transaction > /tmp/full.sql
    

    注意:

    mysqldump 在备份和恢复时都需要 MySQL实例 启动为前提;

    一般数据量级 100G 以内,大约 15-30分钟 可以恢复;

    mysqldump 是以覆盖的形式恢复数据的。

    记录成长过程
  • 相关阅读:
    k8s之StatefulSet介绍(六)
    k8s之Deployment 声明式地升级应用(五)
    k8s 挂载卷介绍(四)
    k8s 之service资源介绍(三)
    k8s几种pod的控制器
    k8s 初识pod (二)
    k8s的常用命令(一)
    k8s 学习笔记
    aws centos系统磁盘扩容
    mac更改launchpad图标大小
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/13362812.html
Copyright © 2020-2023  润新知