备份与恢复要点

备份目录示例:/backup/appdb/rman/。账号用 rman_user 这类占位。

先问三个问题

  1. 要回到哪个时间点?
  2. 当前是 ARCHIVELOG 吗?
  3. 控制文件、spfile、数据文件是否都在备份策略里?
SELECT log_mode FROM v$database;
SELECT sequence#, first_time, next_time, applied
FROM v$archived_log
WHERE first_time > SYSDATE - 1
ORDER BY sequence#;

RMAN 最小检查

rman target /
LIST BACKUP SUMMARY;
REPORT NEED BACKUP;
REPORT UNRECOVERABLE;

库级备份思路:数据文件 + 归档 + 控制文件。只拷数据文件、不归档,开库后只能回到备份点,不能做时间点恢复。

Data Pump

逻辑导出适合迁表、换字符集、给开发一套脱敏库,不是崩溃恢复的主手段。

expdp app_user/******@apppdb \
  directory=DATA_PUMP_DIR \
  dumpfile=app_schema_%U.dmp \
  schemas=APP_USER \
  logfile=exp_app.log

密码不要写进仓库。目录对象指向的操作系统路径要和备份盘分开,避免把 dump 和数据文件放同一块快满的盘。

注意

恢复演练比备份任务更重要。没验证过的备份,等于没有。生产恢复路径要写在 runbook 里,不要只存在某个人脑子里。

参考:Backup and Recovery User’s Guide