首页主机资讯如何在centos上恢复oracle

如何在centos上恢复oracle

时间2026-01-21 02:54:05发布访客分类主机资讯浏览403
导读:在 CentOS 上恢复 Oracle 的可执行方案 一、先判断你的备份类型与恢复路径 使用 RMAN 物理备份(含数据文件、控制文件、归档日志、SPFILE):优先走 RMAN 的 restore/recover/open 流程,支持...

在 CentOS 上恢复 Oracle 的可执行方案


一、先判断你的备份类型与恢复路径

  • 使用 RMAN 物理备份(含数据文件、控制文件、归档日志、SPFILE):优先走 RMAN 的 restore/recover/open 流程,支持到指定时间点恢复(PITR)。若只有数据文件与控制文件,也可在 NOMOUNT 下用 RMAN 还原控制文件后继续恢复。
  • 仅有 逻辑导出文件(DMP,Data Pump):使用 impdp 导入到已存在的数据库/表空间/用户中,适合跨版本迁移或对象级恢复。
  • 控制文件丢失或损坏:可用 RMAN 还原控制文件;若无法还原,可基于告警日志中的 CREATE CONTROLFILE 脚本重建,注意 NORESETLOGS/RESETLOGS 的选择与临时表空间处理。
  • 异机恢复:在新主机仅安装 Oracle 软件(不建库),准备 pfile备份集密码文件,从 NOMOUNT 启动后 RMAN 还原并恢复,最后 OPEN RESETLOGS

二、RMAN 物理恢复步骤(含异机与时间点恢复)

  • 准备环境
    • 安装同版本 Oracle 软件(异机仅装软件),创建必要目录(如 $ORACLE_BASE/oradata/$ORACLE_SID$ORACLE_BASE/fast_recovery_area/$ORACLE_SID$ORACLE_BASE/admin/$ORACLE_SID/adump),设置 ORACLE_SIDORACLE_HOMEPATH
    • 将备份集(含数据文件、归档日志、控制文件备份、SPFILE 备份)与 密码文件 orapw$ORACLE_SID 传到目标机;必要时用 create pfile from spfile 导出的 pfile.ora 调整路径。
  • 启动到 NOMOUNT 并还原控制文件
    • SQL> startup nomount pfile=‘/path/pfile.ora’
    • RMAN> restore controlfile from ‘/path/ctl_XXXX.bak’;
    • RMAN> alter database mount;
  • 还原与恢复
    • RMAN> restore database;
    • RMAN> recover database; (若需时间点恢复:RMAN> recover database until time ‘2026-01-06 10:00:00’; )
  • 打开数据库
    • 若是 完整恢复到当前时间点 且控制文件新生成:RMAN> alter database open;
    • 若经历了 不完全恢复(如按时间/SCN):RMAN> alter database open resetlogs;
  • 异机要点
    • 目标库目录结构需与备份一致或通过 SET NEWNAME 改写;
    • 若源库是 RAC,目标机为单机,恢复时通常需 cluster=no
    • 恢复后按需重建 tempfile、检查 undo_tablespacelistener

三、仅用 Data Pump 的逻辑恢复步骤(DMP 文件)

  • 准备目标库对象
    • SYSDBA 登录:sqlplus / as sysdba
    • 创建目录对象:create directory dir as ‘/oracledir’;
    • 创建表空间与用户(示例):
      • create tablespace cwbaseoe73 datafile ‘/oracledir/cwbaseoe73.dbf’ size 1024M autoextend on next 1024M;
      • create user lcoe739999 default tablespace cwbaseoe73 identified by Test6530;
      • grant dba,resource,connect,create any table,create any view,create any sequence,unlimited tablespace to lcoe739999;
  • 执行导入
    • impdp system/Test6530@127.0.0.1/ora18c directory=dir schemas=lcoe739999 dumpfile=CWBASEOE73_201906.DMP logfile=20190622.txt
    • 如为 RAC 环境,可在任意节点执行,必要时加 cluster=no;若对象已存在会报 ORA-31684,可先 drop 或在导入时处理。

四、常见故障场景与要点

  • 控制文件丢失或损坏
    • 有 RMAN 备份:还原控制文件后 mount→restore→recover→open/resetlogs;
    • 无 RMAN 备份:从 alert_.log 中复制最后的 CREATE CONTROLFILE 脚本,按实际路径修改;若 REDO 日志丢失,将脚本中的 NORESETLOGS 改为 RESETLOGS;DATAFILE 段中务必 剔除临时表空间文件,打开后重建临时文件:alter tablespace TEMP add tempfile ‘…’ reuse;
  • 临时表空间文件导致启动失败
    • 恢复时若旧 temp01.dbf 仍在,可能报 ORA-01187/ORA-01110;删除旧临时文件后启动,Oracle 会自动重建;
  • 目录与权限
    • 上传/拷贝备份后执行:chown -R oracle:oinstall /oracledir;确保 $ORACLE_HOME/dbs/orapw$ORACLE_SID 与目标库 ORACLE_SID 一致;
  • 归档与恢复窗口
    • 生产库建议开启 ARCHIVELOG,并使用 Fast Recovery Area 统一管理备份与归档,便于 RMAN 完整恢复与时间点恢复。

五、关键注意事项

  • 恢复前先做好当前环境快照(如当前 spfile/pfile、控制文件、数据文件清单),避免不可逆覆盖。
  • 不完全恢复(时间/SCN)后必须以 OPEN RESETLOGS 打开,并尽快做一次 全备
  • 异机恢复注意 字节序/平台差异、字符集一致性、以及 COMPATIBLE 参数匹配。
  • 导入导出时注意 schema 存在性表空间可用空间、以及 权限 配置。
  • 任何操作建议在维护窗口执行,并做好 告警日志RMAN 日志 留存。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在centos上恢复oracle
本文地址: https://pptw.com/jishu/788004.html
centos oracle性能如何提升 如何利用CentOS MongoDB进行数据分析

游客 回复需填写必要信息