备份的类型
冷备:停库,停服务,备份
热备:不停库,不停服务,备份
温备:不停服务,锁表(阻止数据写入),备份
冷备份:这些备份在用户不能访问数据时进行,因此无法读取或修改数据。这些脱机备份会阻止执行任何使用数据的活动。这些类型的备份不会干扰正常运行的系统的性能。但是,对于某些应用程序,会无法接受必须在一段较长的时间里锁定或完全阻止用户访问数据。
温备份:这些备份在读取数据时进行,但在多数情况下,在进行备份时不能修改数据本身。这种中途备份类型的优点是不必完全锁定最终用户。但是,其不足之处在于无法在进行备份时修改数据集,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。
热备份:这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问。
备份的策略
- 全量备份:对选择的所有文件进行数据备份,若文件存在则覆盖。
- 增量备份:针对于上一次备份(无论是哪种备份),备份上一次备份后(包含全量备份、差异备份、增量备份),所有发生变化的文件。
- 差异备份:针对于上一次完全备份,备份上一次的完全备份后发生变化的所有文件。
备份的方式
逻辑备份
# 基于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 是以覆盖的形式恢复数据的。