← ClaudeAtlas

disaster-recoverylisted

灾难恢复
ryukyagamilight/terminal-skills · ★ 1 · AI & Automation · score 75
Install: claude install-skill ryukyagamilight/terminal-skills
# 灾难恢复 ## 概述 灾难恢复计划、RTO/RPO、故障切换技能。 ## 核心概念 ### RTO 与 RPO ``` RPO (Recovery Point Objective) - 可接受的数据丢失量 - 决定备份频率 RTO (Recovery Time Objective) - 可接受的恢复时间 - 决定恢复策略 示例: - RPO = 1小时 → 每小时备份 - RTO = 4小时 → 需要热备或快速恢复 ``` ### 恢复策略 ``` 冷备 (Cold) - 最低成本 - 最长 RTO - 适合非关键系统 温备 (Warm) - 中等成本 - 中等 RTO - 定期同步数据 热备 (Hot) - 最高成本 - 最短 RTO - 实时同步 ``` ## 数据库恢复 ### MySQL 恢复 ```bash # 从备份恢复 mysql -u root -p < full_backup.sql # 应用 binlog mysqlbinlog mysql-bin.000001 | mysql -u root -p # 时间点恢复 mysqlbinlog --stop-datetime="2024-01-15 10:00:00" mysql-bin.* | mysql -u root -p # 主从切换 # 在从库执行 STOP SLAVE; RESET SLAVE ALL; # 应用程序切换连接 ``` ### PostgreSQL 恢复 ```bash # 从备份恢复 pg_restore -d database backup.dump # PITR 恢复 # recovery.conf restore_command = 'cp /archive/%f %p' recovery_target_time = '2024-01-15 10:00:00' # 主从切换 pg_ctl promote -D /var/lib/postgresql/data ``` ### Redis 恢复 ```bash # 从 RDB 恢复 cp backup.rdb /var/lib/redis/dump.rdb systemctl restart redis # 从 AOF 恢复 cp backup.aof /var/lib/redis/appendonly.aof redis-check-aof --fix appendonly.aof systemctl restart redis ``` ## 系统恢复 ### 文件系统恢复 ```bash # 从 tar 备份恢复 tar -xzvf /backup/system.tar.gz -C / # 从 rsync 备份恢复 rsync -avz /backup/system/ / # 恢复权限 restorecon -Rv / ``` ### 引导修复 ```bash # 进入救援模式 # 挂载根分区 mount /dev/sda1 /mnt mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys chroot /mnt # 修复 GRUB grub-install /dev/sda update-grub ``` ## 故障切换 ### Keepalived 切换 ```bash # 检查状态 systemctl status keep