淘宝做导航网站有哪些功能吗,广东省建筑安全员证查询官网,怎么做一网站,自己可以做公司网站吗目录 备份策略
全量备份 (Full Backup)
增量备份 (Incremental Backup)
差异备份 (Differential Backup)
使用 Percona XtraBackup
全量备份
步骤 1#xff1a;全量备份
步骤 2#xff1a;备份后处理#xff08;应用日志#xff09;
步骤 3#xff1a;恢复备份
验…目录 备份策略
全量备份 (Full Backup)
增量备份 (Incremental Backup)
差异备份 (Differential Backup)
使用 Percona XtraBackup
全量备份
步骤 1全量备份
步骤 2备份后处理应用日志
步骤 3恢复备份
验证备份
增量备份
概述步骤
示例步骤
假设备份目录结构
步骤 1全量备份
步骤 2第一次增量备份
步骤 3第二次增量备份
步骤 4预处理全量备份
步骤 5应用第一次增量备份
步骤 6应用第二次增量备份
步骤 7最终预处理
步骤 8清理原数据目录
步骤 9恢复备份到数据目录
步骤 10调整权限
步骤 11启动 MySQL 服务
差异备份
概述步骤
示例步骤
假设备份目录结构
步骤 1全量备份
步骤 2第一次差异备份
步骤 3第二次差异备份
步骤 4预处理全量备份
步骤 5应用第一次差异备份
步骤 6应用第二次差异备份
步骤 7最终预处理
步骤 8恢复备份到数据目录
扩展
InnoDB Hot Backup (InnoDB 冷备份)
功能比较
1. XtraBackup
2. innobackupex
迁移与升级 MySQL的物理备份涉及直接复制数据库的物理文件如数据文件、二进制日志文件等。这种备份方式通常更快捷特别适用于大型数据库。 备份策略 全量备份 (Full Backup)
定义 全量备份是对指定的数据集进行完整的备份。这意味着所有数据在备份点上都被复制因此可以完全恢复备份时刻的整个数据库。
特点
每次备份都包含所有数据。备份文件大备份及恢复时间相对较长。容易管理因为每个备份均可独立恢复。
适用场景
小型数据库数据量不大且可以在可接受的时间内完成备份。维护简单的备份方案。 增量备份 (Incremental Backup)
定义 增量备份是指在上次备份无论是全量备份还是增量备份后对变化的数据进行备份。这些变化的数据包括增加或修改的数据。
特点
备份文件最小。备份速度最快但恢复过程最复杂需要依次应用全量备份和所有后续的增量备份。适用于数据变化频繁且备份窗口很短的情况。
适用场景
大型数据库需要最小化的备份时间和存储空间。高频率的数据变动数据需要频繁地备份。 差异备份 (Differential Backup)
定义 差异备份是指在上次全量备份后对变化的数据进行备份。这些变化的数据包括随着时间的推移被创建或修改的数据。
特点
比全量备份小但随着时间增加会变得越来越大。备份速度较快但恢复时需要使用最近的全量备份与最新的差异备份。备份文件相对较少便于管理。
适用场景
中型数据库需要更快的备份速度但可以接受适度复杂的恢复过程。数据变动较为频繁每天做全量备份无法完成。 使用 Percona XtraBackup
Percona XtraBackup 是一种免费、开源的物理备份工具适用于MySQL和Percona Server数据库支持热备份。
官网Percona XtraBackup for MySQL - Top MySQL Backup Solution
安装
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
percona-release enable-only tools release
yum -y install percona-xtrabackup-80 全量备份 步骤 1全量备份
确保 MySQL 服务正在运行 确保 MySQL 服务正在运行这样可以进行热备份无需停止数据库。
systemctl status mysqld执行全量备份 使用 xtrabackup --backup 命令来创建全量备份并指定目标目录。
xtrabackup --backup --target-dir/path/to/backup_dir例如下述
假设备份目录为 /backups/full_backup该目录需提前创建
xtrabackup --backup --target-dir/backups/full_backup步骤 2备份后处理应用日志
在进行备份时InnoDB表的数据文件中尚有未完成的事务。要在恢复时确保数据的一致性需要执行 --prepare 步骤。这将应用备份期间收集的所有日志文件。--prepare 或 --apply-log是一样的用来执行相同的操作它会应用 REDO 和 UNDO 日志使得备份数据变得一致。 准备备份 使用 --prepare 选项应用日志。
xtrabackup --prepare --target-dir/path/to/backup_dir对于刚才的例子
xtrabackup --prepare --target-dir/backups/full_backup完成这个步骤后备份目录就准备好进行恢复了。 步骤 3恢复备份 停 止 MySQL 服务 需要停止当前正在运行的 MySQL 服务以进行数据恢复。
systemctl stop mysqld恢复数据目录
先去清理数据目录
rm -rf /var/lib/mysql/* 然后将备份内容复制到 MySQL 数据目录。目录位置在/var/lib/mysql也可以检查你的 MySQL 配置文件my.cnf确认数据目录位置。
xtrabackup --copy-back --target-dir/path/to/backup_dir对于上方的例子
xtrabackup --copy-back --target-dir/backups/full_backup检查权限 确保数据目录的所有文件都由 MySQL 用户拥有。
chown -R mysql:mysql /var/lib/mysql启动 MySQL 服务 启动 MySQL 服务以确保还原的备份正常运行。
systemctl start mysqld验证备份
登录 MySQL 确保 MySQL 服务已恢复并正常运行。
mysql -u root -p[密码]验证数据 检查数据库是否已经成功恢复运行一些查询来验证数据的完整性。 增量备份
概述步骤
全量备份创建一个基础备份包含当前数据库的所有数据。第一次增量备份基于全量备份创建增量备份包含自全量备份以来的所有更改。第二次增量备份基于第一次增量备份创建增量备份包含自第一次增量备份以来的所有更改。预处理全量备份将全量备份应用日志准备合并增量备份。应用第一次增量备份合并第一次增量备份到全量备份中。应用第二次增量备份合并第二次增量备份到全量备份中。最终预处理确保所有更改应用使得备份达到一致状态。恢复备份到 MySQL 数据目录。 示例步骤 假设备份目录结构
全量备份目录 /backups/full_backup第一次增量备份目录 /backups/incremental_backup1第二次增量备份目录 /backups/incremental_backup2 步骤 1全量备份
执行全量备份
xtrabackup --backup --target-dir/backups/full_backup步骤 2第一次增量备份
基于全量备份进行第一次增量备份
xtrabackup --backup --target-dir/backups/incremental_backup1 --incremental-basedir/backups/full_backup步骤 3第二次增量备份
基于第一次增量备份进行第二次增量备份
xtrabackup --backup --target-dir/backups/incremental_backup2 --incremental-basedir/backups/full_backup步骤 4预处理全量备份
首次预处理全量备份应用第一次 REDO 日志
xtrabackup --prepare --target-dir/backups/full_backup步骤 5应用第一次增量备份
将第一次增量备份合并到全量备份中并且此时只应用 REDO 日志
xtrabackup --prepare --apply-log --redo-only --target-dir/backups/full_backup --incremental-dir/backups/incremental_backup1步骤 6应用第二次增量备份
将第二次增量备份合并到全量备份中同样只应用 REDO 日志
xtrabackup --prepare --apply-log --redo-only --target-dir/backups/full_backup --incremental-dir/backups/incremental_backup2 步骤 7最终预处理
进行最终预处理应用所有 REDO 和 UNDO 日志确保数据达到一致状态
xtrabackup --prepare --target-dir/backups/full_backup步骤 8清理原数据目录
在恢复之前清理 MySQL 数据目录
systemctl stop mysqld
rm -rf /var/lib/mysql/*步骤 9恢复备份到数据目录
恢复备份数据到 MySQL 数据目录
xtrabackup --copy-back --target-dir/backups/full_backup步骤 10调整权限
确保 MySQL 数据目录权限正确
sudo chown -R mysql:mysql /var/lib/mysql步骤 11启动 MySQL 服务 重新启动 MySQL 服务
systemctl start mysqld 差异备份 差异备份Differential Backup是指在某个基准点通常是全量备份之后只备份自基准点以来发生了变化的所有数据。与增量备份不同的是差异备份总是基于同一个基准点而增量备份则是基于上一个备份。 概述步骤
进行全量备份创建初始的全量备份作为基准点。进行第一次差异备份自全量备份以来的所有变化。进行第二次差异备份自全量备份以来的所有变化。预处理全量备份准备和合并差异备份。应用第一次差异备份将第一次差异备份合并到全量备份。应用第二次差异备份将第二次差异备份合并到全量备份。最终预处理确保所有更改应用使得备份达到一致状态。恢复备份到 MySQL 数据目录。 示例步骤
假设备份目录结构
全量备份目录 /backups/full_backup第一次差异备份目录 /backups/differential_backup1第二次差异备份目录 /backups/differential_backup2 步骤 1全量备份
执行全量备份
xtrabackup --backup --target-dir/backups/full_backup步骤 2第一次差异备份
进行第一次差异备份基于全量备份
xtrabackup --backup --target-dir/backups/differential_backup1 --incremental-basedir/backups/full_backup步骤 3第二次差异备份
进行第二次差异备份仍然基于全量备份
xtrabackup --backup --target-dir/backups/differential_backup2 --incremental-basedir/backups/full_backup步骤 4预处理全量备份
首次预处理全量备份准备合并差异备份
xtrabackup --prepare --target-dir/backups/full_backup步骤 5应用第一次差异备份
将第一次差异备份合并到全量备份中并且此时只应用 REDO 日志
xtrabackup --prepare --apply-log --redo-only --target-dir/backups/full_backup --incremental-dir/backups/differential_backup1步骤 6应用第二次差异备份
将第二次差异备份合并到全量备份中仍然只应用 REDO 日志
xtrabackup --prepare --apply-log --redo-only --target-dir/backups/full_backup --incremental-dir/backups/differential_backup2步骤 7最终预处理
进行最终预处理应用所有 REDO 和 UNDO 日志确保数据达到一致状态
xtrabackup --prepare --target-dir/backups/full_backup步骤 8恢复备份到数据目录
清理 MySQL 数据目录然后恢复备份数据
systemctl stop mysqld
rm -rf /var/lib/mysql/*xtrabackup --copy-back --target-dir/backups/full_backupchown -R mysql:mysql /var/lib/mysql
systemctl start mysqld 扩展
XtraBackup 和 innobackupex 都是用于 MySQL 和 MariaDB 数据库的一致性备份工具。它们都由 Percona 提供并常用于对 InnoDB 存储引擎进行热备份即在数据库运行时进行备份。不过它们之间还是有一些显著的区别。 InnoDB Hot Backup (InnoDB 冷备份) XtraBackup 是一个专门用于对 InnoDB 存储引擎进行热备份的命令行工具。它比较简洁功能专一但对于复杂的备份操作可能需要更多的手动配置或者结合其他工具使用。 innobackupex 是 Percona XtraBackup 中的一个 Perl 脚本它实际上是一个高级封装使用 XtraBackup 来实现具体的备份和恢复操作。innobackupex 增加了一些便利功能例如备份 MyISAM 表但因为 MyISAM 表备份期间需要静态锁定所以不算是真正的“热备份”。 功能比较 1. XtraBackup 优势 简单直接直接进行 InnoDB 存储引擎的数据备份。更高效更少的额外依赖直接进入备份行为。控制精确对于高级用户可以提供更多的控制选项。限制 需要更多配置可能需要更多的手动步骤来完成备份计划。通用性较低不像 innobackupex 那样能够同时处理多种存储引擎。 2. innobackupex 优势 易用性高封装了更多功能用户友好性更高。处理多种存储引擎可以同时备份 InnoDB 和 MyISAM 表尽管 MyISAM 表不能完全称作“热备份”。包含详细的日志信息更便于进行备份和恢复操作的调试。 限制 额外的脚本消耗因为 innobackupex 是一个脚本相对会多出一些开销。未来更新使用 Perl 脚本可能在跨平台支持上有所限制且潜在影响工具的维护和更新。 迁移与升级
事实上随着时间的推移innobackupex 已被官方弃用Percona 强烈建议用户直接使用 XtraBackup。因此在现代环境中有可能需要将已有 innobackupex 脚本和操作迁移到使用 XtraBackup。