温馨提示×

linux oracle怎样恢复

小樊
55
2026-09-13 13:16:33
栏目: 云计算

你问的“Linux Oracle 怎样恢复”,通常指 Oracle 数据库在 Linux 环境下的恢复,常见场景有:

  1. 用 RMAN 备份恢复(最常用)
  2. 控制文件 / 数据文件丢失恢复
  3. 整库异机恢复
  4. 误删数据(闪回)
  5. 没有备份的极端恢复

下面按常见情况给你一套实战步骤


一、RMAN 全库恢复(有备份)

1. 启动到 mount

sqlplus / as sysdba
shutdown immediate;
startup mount;

2. 使用 RMAN 恢复

rman target /
restore database;
recover database;

3. 打开数据库

alter database open;

(若使用了增量或归档,确保归档可用)


二、恢复控制文件

从 RMAN 备份恢复控制文件

rman target /
restore controlfile from autobackup;
# 或
restore controlfile from '/backup/ctl.bak';
alter database mount;
restore database;
recover database;
alter database open resetlogs;

三、单个数据文件恢复

rman target /
sql 'alter database datafile 5 offline';
restore datafile 5;
recover datafile 5;
sql 'alter database datafile 5 online';

四、误删表 / 数据(闪回)

闪回表

flashback table scott.emp to timestamp
to_timestamp('2024-01-01 10:00:00','YYYY-MM-DD HH24:MI:SS');

闪回删除(回收站)

flashback table emp to before drop;

前提:

  • undo_retention 足够
  • 未使用 purge

五、没有备份的紧急恢复(不保证成功)

  • 数据文件存在但控制文件丢失 → 重建控制文件
  • 数据文件误删但进程未重启 → 从 /proc 拷贝文件
  • 使用 dbms_repair 尝试跳过坏块

⚠️ 这种情况风险极高,建议先停业务、做冷备。


六、恢复前必须确认

archive log list;
select name, open_mode from v$database;
select * from v$recovery_file_dest;

七、常见错误

错误 原因
ORA-01113 需要 recover
ORA-01152 备份太旧
ORA-19625 备份路径不对
ORA-00313 日志文件丢失

你可以告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 是否使用 RMAN
  • 全库恢复还是某表/某文件
  • 是否有备份

我可以直接给你针对你环境的恢复命令

0