备份与恢复要点
备份目录示例:/backup/appdb/rman/。账号用 rman_user 这类占位。
先问三个问题
- 要回到哪个时间点?
- 当前是 ARCHIVELOG 吗?
- 控制文件、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 里,不要只存在某个人脑子里。