企业网站建设太原网站建设,wordpress模板生,wordpress侧边联系方式,深圳开发的相亲网站目录
前言
一、备份概述
#xff08;一#xff09;备份方式
#xff08;二#xff09;备份策略
二、物理备份及恢复
#xff08;一#xff09;备份操作
#xff08;二#xff09;恢复操作
三、逻辑备份及恢复
#xff08;一#xff09;逻辑备份
#xff0…目录
前言
一、备份概述
一备份方式
二备份策略
二、物理备份及恢复
一备份操作
二恢复操作
三、逻辑备份及恢复
一逻辑备份
二逻辑恢复
三mysqldump局限性
四、环境准备
一软件介绍编辑
二安装软件
六、增量备份与恢复
一增量备份
首次完全备份
增量备份
二增量恢复
准备全量备份
合并增量备份
恢复数据
七、差异备份与恢复
一差异备份
首次完全备份
差异备份
二差异恢复
准备全量备份
合并差异备份
恢复数据
八、数据实时备份与恢复
一binlog日志管理
日志介绍
启用bin-log
创建新日志文件 日志文件常用管理命令
二备份数据
备份单个库
备份所有库
三恢复数据
恢复所有数据
恢复部分数据
四注意事项 前言
如果有需要了解MySQL的基础使用如查询和表管理的可以参考MySQL技术笔记-从基础配置到高级查询的全栈实战指南、MySQL技术笔记-表结构设计与管理的完整指南
一、备份概述
一备份方式
按照数据库服务状态分类
类型说明优点缺点冷备份在数据库服务停止状态下进行备份直接复制数据文件数据一致性强备份过程简单服务中断影响业务连续性热备份在数据库服务运行状态下进行备份无需停机不影响业务运行适合高可用场景数据可能存在短暂不一致备份复杂度较高温备份在数据库运行状态下进行的备份操作但备份过程中会短暂阻塞数据库的写操作以保证数据一致性mysqldump无需停止数据库服务通过短暂阻塞写操作确保备份数据的一致性适用于数据一致性要求较高、写入压力适中的业务系统写入压力较大的业务可能因阻塞而产生延迟
按照备份的数据分类
类型说明优点缺点物理备份直接复制数据库的物理文件如 .ibd、.frm 文件恢复速度快适合大数据量跨平台兼容性差备份文件体积大逻辑备份导出数据库中的数据为 SQL 脚本如 mysqldump跨平台兼容性好适合数据迁移备份和恢复速度较慢依赖 SQL 解析
二备份策略
备份系统的三要素
要素全称含义说明BWBackup Window备份窗口在一个工作周期内系统可用于执行备份操作的时间范围备份窗口越短对业务影响越小RPORecovery Point Objective恢复点目标在发生故障时企业可接受的最大数据丢失量RPO 越小数据丢失越少RTORecovery Time Objective恢复时间目标在发生故障时企业可接受的最长系统恢复时间RTO 越短业务中断时间越短
灾备系统建设国际标准SHARE 78
级别描述恢复能力适用场景0无备份无恢复能力无法恢复不建议1本地磁带备份恢复时间长小型企业2远程磁带备份恢复时间较短中型企业3远程磁盘备份恢复时间更短大型企业4远程热备中心快速恢复高可用需求5实时数据复制数据几乎无丢失金融、电商等关键业务6实时复制 完整IT基础设施快速切换数据中心级容灾7实时复制 完整IT基础设施 应用零中断最高级别容灾
二、物理备份及恢复
一备份操作
使用cp命令备份 cp -r /var/lib/mysql /备份目录/mysql.bak
使用tar命令备份 tar -zcf /root/mysql.tar.gz /var/lib/mysql/*
二恢复操作
使用cp命令恢复 cp -r 备份目录/mysql.bak /var/lib/mysql/
使用tar命令恢复 tar -zxf /root/mysql.tar.gz -C /var/lib/mysql/
修改文件所有权 chown -R mysql:mysql /var/lib/mysql # 确保MySQL对目录和目录下的文件有读权限
三、逻辑备份及恢复
一逻辑备份
备份操作 mysqldump -uroot -p密码 库名 /目录/xxx.sql
库名表示方式 库名 表名列表备份1张表或多张表所有数据。-B 库名列表备份1个库或多个库所有数据。--all-databases或-A备份1台服务器所有数据。 示例 mysqldump -uroot -ptest -A /bakdir/all_backup.sql
二逻辑恢复
恢复操作 mysql -uroot -p密码 [库名] /目录/名.sql
示例 mysqldump -uroot -pa test users /test_users.sql
mysqldump -uroot -pa -B test /test.sql
mysql -uroot -pa test /test_users.sql
mysql -uroot -pa /test.sql
注意 恢复库时库名可以省略。备份和恢复时数据库服务必须是运行状态。覆盖恢复数据时需谨慎操作确保数据安全。
三mysqldump局限性
物理备份缺点 跨平台性差。备份时间长、冗余备份、浪费存储空间。 物理备份通常只能恢复整个数据库实例无法单独恢复某个库或表灵活性不如逻辑备份。 mysqldump备份缺点 恢复效率低导入大数据量时耗时较长 。备份速度较慢尤其在大数据量场景下性能不佳 。锁表备份过程中数据插入和更新操作被阻塞。 不支持增量备份仅支持全量逻辑备份 。对于大规模数据库备份文件体积较大占用存储资源 。 备份过程中可能对数据库性能产生影响 。
四、环境准备
一软件介绍
Percona XtraBackup一款强大的在线热备份工具备份过程中不锁库表适合生产环境。由专业组织Percona提供改进MySQL分支。
二安装软件
安装依赖 yum -y install perl-DBD-MySQL
解压软件 tar -xf percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal.tar.gz
mv percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12 /usr/local/percona
配置环境变量 echo export PATH/usr/local/percona/bin:$PATH /etc/bashrc
source /etc/bashrc
五、增量备份与恢复
一增量备份
首次完全备份
xtrabackup --host127.0.0.1 --user用户名 --password密码 --backup --target-dir备份目录 --datadir数据库目录
#完全备份就是每次进行备份都只执行该操作
示例 xtrabackup --host127.0.0.1 --userroot --passwordtest --backup --target-dir/basement --datadir/var/lib/mysql 增量备份
xtrabackup --host127.0.0.1 --user用户名 --password密码 --backup --target-dir备份目录 --incremental-basedir参考目录 --datadir数据库目录
示例 xtrabackup --host127.0.0.1 --userroot --passwordtest --backup --target-dir/inc1 --incremental-basedir/basement --datadir/var/lib/mysql
二增量恢复
准备全量备份
xtrabackup --prepare --apply-log-only --target-dir/完全备份目录
#--apply-log-only 参数确保未提交的事务不被回滚以便后续合并增量备份。
示例
xtrabackup --prepare --apply-log-only --target-dir/basement
合并增量备份
xtrabackup --prepare --apply-log-only \
--target-dir/完全备份目录 \
--incremental-dir/增量备份目录
#将增量备份的数据合并到全量备份目录中确保数据一致性。
#如果有多个增量备份需要将每个增量备份按照先后顺序和完全备份进行合并
示例
xtrabackup --prepare --apply-log-only \
--target-dir/basement \
--incremental-dir/inc1
恢复数据
xtrabackup --copy-back --target-dir/完全备份目录
#--copy-back 将准备好的备份数据复制回 MySQL 的数据目录。
示例
xtrabackup --copy-back --target-dir/basement
注意事项 执行恢复前务必清空 MySQL 数据目录如 /var/lib/mysql避免数据冲突。恢复完成后需修改数据目录权限为 mysql:mysql并重启 MySQL 服务。 chown -R mysql:mysql /var/lib/mysql
systemctl restart mysqld
六、差异备份与恢复
一差异备份
首次完全备份
xtrabackup --host127.0.0.1 --user用户名 --password密码 --backup --target-dir/备份目录 --datadir/数据库目录
示例 xtrabackup --host127.0.0.1 --userroot --passwordtest --backup --target-dir/fullbackup --datadir/var/lib/mysql
差异备份
xtrabackup --host127.0.0.1 --user用户名 --password密码 --backup --target-dir/备份目录 --incremental-basedir/完全备份目录 --datadir/数据库目录
#每次差异备份都是以上次全量或差异备份为基础
示例 xtrabackup --host127.0.0.1 --userroot --passwordtest --backup --target-dir/diff_1 --incremental-basedir/fullbackup --datadir/var/lib/mysql
二差异恢复
准备全量备份
xtrabackup --prepare --apply-log-only --target-dir/完全备份目录
示例 xtrabackup --prepare --apply-log-only --target-dir/fullbackup
合并差异备份
xtrabackup --prepare --apply-log-only --target-dir/完全备份目录 --incremental-dir/最后一次差异备份
#只要和最后一次差异备份合并即可因为最后一次差异备份包括之前所有差异备份的数据
示例 xtrabackup --prepare --apply-log-only \
--target-dir/fullbackup \
--incremental-dir/diff_1
恢复数据
xtrabackup --copy-back --target-dir/完全备份目录
示例 xtrabackup --copy-back --target-dir/fullbackup
注意事项 执行恢复前务必清空 MySQL 数据目录如 /var/lib/mysql避免数据冲突。恢复完成后需修改数据目录权限为 mysql:mysql并重启 MySQL 服务。 chown -R mysql:mysql /var/lib/mysql
systemctl restart mysqld
七、数据实时备份与恢复
一binlog日志管理
日志介绍
什么是binlog日志 又称“二进制日志”是MySQL服务生成的日志文件之一。记录除查询语句SELECT、SHOW等以外的所有SQL命令包括INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。主要用于数据恢复、数据复制以及主从同步。启用binlog是实现MySQL主从复制的必要条件。
启用bin-log
日志默认启用日志默认存储在/var/lib/mysql/目录下。自定义日志示例 mkdir /mylog # 创建目录
vim /etc/my.cnf.d/mysql-server.cnf #修改配置
#添加
[mysqld]
log-bin/mylog/mysql-binchown mysql:mysql /mylog # 修改目录的所有者为mysql
setenforce 0 # 关闭selinux
systemctl restart mysqld # 重启服务
创建新日志文件
默认容量Binlog日志文件默认1G容量超出后会自动创建新日志。手动创建 FLUSH LOGS;
或者
systemctl restart mysqld 日志文件常用管理命令
查看正在使用的日志 SHOW MASTER STATUS;
查看已有的日志文件 SHOW BINARY LOGS;
删除编号之前的日志 PURGE MASTER LOGS TO 日志名;
示例 PURGE MASTER LOGS TO mysql-bin.000004;
删除所有日志重新创建日志 RESET MASTER;
查看日志文件内容 SHOW BINLOG EVENTS IN 日志文件名; 示例 SHOW BINLOG EVENTS IN mysql-000004;
二备份数据
备份单个库
mysqldump -uroot -p密码 --flush-logs -B test /single.sql
备份所有库
mysqldump -uroot -p密码 --flush-logs -A /all.sql
三恢复数据
恢复所有数据
mysqlbinlog /目录/文件名 | mysql -uroot -p密码 #查看文件全部内容并通过管道导入数据库中
示例 mysqlbinlog /mylog/mysql-bin.000001 | mysql -uroot -ptest
恢复部分数据
mysqlbinlog --start-datetime开始时间 --stop-datetime结束时间 /目录/文件名 | mysql -uroot -p密码
示例 mysqlbinlog --start-datetime2025-06-01 00:00:00 --stop-datetime2025-07-10 23:59:59 /mylog/mysql-bin.000001 | mysql -uroot -ptest
四注意事项
备份时 确保备份目录有足够的空间。定期检查备份文件的完整性和可用性。 恢复时 确保恢复操作不会影响生产环境。在恢复前备份当前数据库状态以防恢复失败。确保恢复后的数据一致性。