备份与双机热备,主从、多主结构的区别
双机热备,主从、多主结构:
属于数据库高可用范畴。在生产环境中单个数据库节点宕机,可以无缝或快速切换到其他正常数据库节点,保障业务正常运行,用于解决数据库单点故障。
备份:
属于数据安全保障,用于线上磁盘故障、物理数据损坏或数据误删除时的恢复手段。还可用作数据库热迁移等用途。
物理热备
- 将整个数据库的数据按原结构(物理文件目录结构、文件类型、文件属性)拷贝一份。
- 具有拷贝速度快、拷贝数据体积可控、拷贝数据可压缩等特点。
- 物理热备一般通过第三方工具进行,最通用的是percona的xtrabackup。
逻辑热备
-
将数据库数据以sql语句格式导出到文本文件中。
-
具有操作简单、导出的数据跨平台兼容性较强等特点。
-
逻辑备份一般通过MySQL自带mysqldump即可操作。
xtrabackup是percona研发的一款MySQL物理备份工具,支持数据库在线备份,备份数据压缩、备份数据加密、全量备份、增量备份等特点。
本文我们主要探讨MySQL-5.7.42通过xtrabackup-2.4.26进行物理全量备份。
基本操作如下:
- 全量备份:
#启动数据备份(全量备份)
mkdir -p /target_backup/
cd /target_backup/
xtrabackup --no-defaults \
--no-lock \
--binlog-log=off \
--core-file \
--backup \
--compress \
--compress-threads=16 \
--stream=xbstream \
--datadir=/var/lib/mysql \
--socket=/var/lib/mysql/mysql.sock \
--target-dir=/target_backup/ > backup.dat
–compress #开启备份压缩,根据数据内容不同,压缩比可以在50%~60%
–stream=xbstream #开启流式备份,备份出来的数据输出到stdout
完成后备份文件即保存在了backup.dat文件中。
- 备份恢复:
mkdir -p /work_dir/
mkdir -p /restore_dir/
cd /restore_dir/
#将打包的xbstream格式的备份文件提取到当前目录
# -x 开启提取模式
# -v 开启日志模式
# -p 开启多线程模式
cat /target_backup/backup.dat | xbstream -x -v -p 32
#备份文件解压
xtrabackup --decompress --parallel 16 --target-dir=.
#备份文件一致性检查
xtrabackup --prepare --target-dir=./
#将备份文件从restore_dir拷贝到work_dir目录
xtrabackup --copy-back --datadir=/work_dir/ --target-dir=/restore_dir
至此通过xtrbackup已经完成了MySQL的全量备份及恢复。