温馨提示×

ubuntu oracle怎样恢复

小樊
47
2026-09-23 02:25:10
栏目: 云计算

你提到的 “Ubuntu Oracle 怎样恢复” 可能有几种不同场景,下面我分情况说明,你可以对照自己的情况看。


一、恢复 Oracle 数据库(Data Recovery)

1️⃣ 使用 RMAN 恢复(最常见)

如果你有 RMAN 备份:

# 切换到 oracle 用户
sudo su - oracle

# 启动 RMAN
rman target /

# 恢复控制文件(如果有备份)
restore controlfile from '/backup/controlfile.bak';

# 挂载数据库
alter database mount;

# 恢复数据库
restore database;
recover database;

# 打开数据库
alter database open;

如果是 不完全恢复(比如恢复到某个时间点):

recover database until time '2024-01-01 10:00:00';
alter database open resetlogs;

2️⃣ 误删数据文件(数据库还能 mount)

alter database datafile '/u01/oradata/ORCL/data01.dbf' offline;

然后用 RMAN:

restore datafile 5;
recover datafile 5;

再 online:

alter database datafile 5 online;

二、Ubuntu 系统重装后恢复 Oracle

如果你是 系统重装了 Ubuntu,但 Oracle 数据还在磁盘上:

  1. 重新安装相同版本的 Oracle
  2. 创建相同 SID
  3. 把原 ORADATA 目录挂载回来
  4. 启动到 mount:
startup mount;
alter database open;

⚠️ 注意:Oracle 版本、SID、文件路径必须一致。


三、误删 Oracle 软件(数据还在)

  1. 重新安装 Oracle 软件(不建库)
  2. 修改 .bash_profile
  3. 挂载原数据文件
  4. 使用原有 spfile / pfile 启动

四、Oracle 服务异常恢复

1️⃣ 监听无法启动

lsnrctl status
lsnrctl start

2️⃣ 数据库无法启动

sqlplus / as sysdba
startup

查看错误:

select * from v$diag_info;

五、如果是“误删表 / 数据”

闪回查询(时间不久)

SELECT * FROM emp
AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '1' HOUR;

闪回表

FLASHBACK TABLE emp TO TIMESTAMP 
TO_TIMESTAMP('2024-01-01 10:00:00','YYYY-MM-DD HH24:MI:SS');

六、你需要告诉我的信息(方便精准恢复)

你可以补充:

  1. Oracle 版本(11g / 12c / 19c?)
  2. Ubuntu 版本
  3. 是 数据库崩溃 / 系统重装 / 误删文件 / 数据误删?
  4. 是否有备份(RMAN / expdp / 冷备)

我可以一步一步带你恢复。

0 踩