RMAN是Oracle官方推荐的物理备份恢复工具,支持全量、增量及归档日志恢复,适用于大多数场景。
rman target /
RESTORE DATABASE;  -- 恢复数据库文件
RECOVER DATABASE;  -- 应用归档日志以达到一致状态
ALTER DATABASE OPEN;  -- 打开数据库
RECOVER DATABASE命令自动应用后续增量备份及归档日志,例如:rman target /
RESTORE DATABASE;
RECOVER DATABASE;  -- 自动应用增量备份和归档日志
rman target /
RECOVER DATABASE UNTIL TIME 'YYYY-MM-DD HH24:MI:SS';  -- 指定恢复时间点
rman target /
RESTORE CONTROLFILE FROM '/backup/controlfile.bak';  -- 指定控制文件备份路径
ALTER DATABASE MOUNT;  -- 挂载数据库
RECOVER DATABASE;  -- 恢复数据库
ALTER DATABASE OPEN;
expdp(数据泵导出)和impdp(数据泵导入)是Oracle逻辑备份工具,适用于表级或用户级数据恢复,尤其适合跨数据库版本迁移。
./expdp_full.sh  # 示例脚本,需包含用户名、密码、dumpfile路径等参数
./impdp_new.sh  # 示例脚本,需指定dumpfile路径、目标schema等参数
FULL=Y(全库导出)、SCHEMAS=用户名(指定schema)、TABLES=表名(指定表)、REMAP_SCHEMA=源schema:目标schema(跨schema导入)。rman target /
RESTORE DATABASE;
RECOVER DATABASE;
SHUTDOWN IMMEDIATE),恢复时直接还原所有数据文件并启动数据库:cp -R /backup/datafiles/* /ORACLE_HOME/ORADATA/  # 还原数据文件
sqlplus / as sysdba
STARTUP;  -- 启动数据库
通过crontab设置定时任务,自动执行备份与恢复验证,减少人为错误。例如,每日凌晨2点执行RMAN备份:
# 编辑crontab
crontab -e
添加以下内容:
0 2 * * * /path/to/rman_backup_script.sh >> /var/log/oracle_rman.log 2>&1
其中rman_backup_script.sh需包含RMAN备份命令及日志记录。
RMAN VERIFY BACKUP命令检查备份文件的完整性,避免无效备份导致恢复失败。RMAN CROSSCHECK ARCHIVELOG ALL命令检查归档日志状态。sqlplus / as sysdba),且数据库需处于归档模式(ARCHIVELOG)以支持时间点恢复。