为了确保数据清理的安全性,Cleanup 模块集成了完整的数据备份功能。该功能不是简单的"备份提醒",而是一个完整的自动备份和恢复系统。
清理执行流程:
1. 分析清理任务 → 确定需要备份的数据
2. 创建备份计划 → 生成备份任务列表
3. 执行数据备份 → 将数据以INSERT语句形式存储到数据库
4. 验证备份完整性 → 确保备份数据完整
5. 记录备份信息 → 保存备份元数据
6. 执行清理操作 → 在备份完成后执行清理
存储示例:
-- 存储在 cleanup_sql_backups 表中的备份内容
-- 表名: kku_farm_users
-- 备份时间: 2024-12-16 14:30:22
-- 表结构信息
CREATE TABLE `kku_farm_users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL,
-- ... 表结构
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 数据INSERT语句
INSERT INTO `kku_farm_users` (`id`, `user_id`, `house_level`, `created_at`) VALUES
(1, 1001, 5, '2024-01-01 10:00:00'),
(2, 1002, 3, '2024-01-02 11:00:00');
// 自动优化:数据库自动优化存储,无需额外压缩
// 查询快速:直接存储在数据库中,查询和检索非常快速
// 事务安全:利用数据库事务保证数据一致性
// 备份可靠:随数据库一起备份,不会单独丢失
-- 存储备份的基本信息
kku_cleanup_backups
├── backup_name # 备份名称
├── backup_type # 备份类型(固定为数据库备份)
├── tables_count # 备份表数量
├── records_count # 备份记录数量
├── backup_status # 备份状态
└── expires_at # 备份过期时间
-- 存储每个表的SQL备份内容
kku_cleanup_sql_backups
├── backup_id # 关联备份记录
├── table_name # 表名
├── sql_content # INSERT语句内容
├── records_count # 备份记录数
├── content_size # 内容大小(字节)
├── content_hash # 内容SHA256哈希
└── backup_conditions # 备份条件
# 执行清理任务时自动创建备份
php artisan cleanup:execute 1
# 系统会自动:
# 1. 分析要清理的数据
# 2. 创建备份文件
# 3. 验证备份完整性
# 4. 执行清理操作
# 为特定任务创建数据库备份
php artisan cleanup:backup 1
# 验证备份完整性
php artisan cleanup:verify-backup 123
# 恢复备份数据
php artisan cleanup:restore 123 --force
// 访问备份管理页面
/admin/cleanup/backups
// 功能包括:
// - 查看备份列表
// - 查看备份内容
// - 验证备份完整性
// - 恢复备份数据
// - 删除过期备份
// 备份状态监控
- 备份成功率统计
- 备份数据大小趋势
- 备份时间性能分析
- 数据库存储空间使用监控
# 定期清理过期备份
php artisan cleanup:clean-backups --days=30
# 验证备份文件完整性
php artisan cleanup:verify-backup --all
# 备份存储空间报告
php artisan cleanup:backup-report
// config/cleanup.php
'backup' => [
'type' => 'database', // 备份类型(固定为数据库备份)
'retention_days' => 30, // 备份保留天数
'batch_size' => 1000, // 分批处理大小
'auto_cleanup' => true, // 自动清理过期备份
'max_records_per_statement' => 100, // 生成INSERT语句时的最大记录数
]
'performance' => [
'parallel_backups' => 3, // 并行备份数量
'memory_limit' => '512M', // 内存限制
'timeout' => 3600, // 超时时间(秒)
]
清理任务执行流程:
1. 任务创建 → 分析清理范围
2. 备份计划 → 确定备份策略
3. 数据备份 → 执行备份操作
4. 备份验证 → 验证备份完整性
5. 清理执行 → 执行数据清理
6. 结果记录 → 记录清理和备份结果
备份失败处理:
- 备份失败 → 停止清理操作
- 清理失败 → 保留备份数据
- 验证失败 → 重新创建备份
- 恢复失败 → 记录错误日志
Cleanup 模块的备份功能提供了完整的数据保护机制:
这个备份系统专注于数据库备份,提供了完整的数据保护机制,确保Cleanup模块在提供强大清理能力的同时,也能保证数据的绝对安全。