centos oracle数据库恢复方法
导读:CentOS 上 Oracle 数据库恢复方法 一 恢复总览与准备 明确备份类型:物理备份(RMAN 全备/增量 + 归档日志)或逻辑备份(Data Pump expdp 导出)。 准备恢复环境:安装同版本 Oracle 软件(必要时仅装...
CentOS 上 Oracle 数据库恢复方法
一 恢复总览与准备
- 明确备份类型:物理备份(RMAN 全备/增量 + 归档日志)或逻辑备份(Data Pump expdp 导出)。
- 准备恢复环境:安装同版本 Oracle 软件(必要时仅装软件不建库)、创建必要目录(如 $ORACLE_BASE/oradata/SID、$ORACLE_BASE/fast_recovery_area/SID、$ORACLE_BASE/admin/SID/adump)、配置环境变量 ORACLE_HOME、ORACLE_SID、PATH。
- 获取并校验备份:确保备份完整可用(校验 RMAN list backup 或 expdp 日志),并将备份复制到目标服务器;若做过 RAC,准备 VIP/SCAN 与服务名;若做过 Data Pump,准备 directory 对象与 DMP 文件。
- 权限与目录:上传/拷贝后修正属主属组为 oracle:oinstall,目录权限 750/770,避免恢复时报权限错误。
二 物理恢复 RMAN 场景
-
场景A 有可用控制文件备份
- 以 nomount 启动:SQL> startup nomount pfile=‘/path/init.ora’;
- RMAN 恢复控制文件:RMAN> restore controlfile from ‘/backup/ctl_xxx.bak’;
- 装载数据库:SQL> alter database mount;
- 还原与恢复:RMAN> restore database; RMAN> recover database;
- 打开数据库:SQL> alter database open resetlogs; (若恢复至指定时间点/SCN,则按不完全恢复流程执行后再 open resetlogs)
-
场景B 无控制文件备份(重建控制文件)
- 从告警日志 alert_SID.log 中复制最后的 CREATE CONTROLFILE 模板;
- 若在线日志丢失,将语句中的 NORESETLOGS 改为 RESETLOGS;
- 删除模板中属于 TEMPORARY 表空间的数据文件行;
- SQL> startup nomount; 执行修改后的脚本重建控制文件;
- SQL> alter database open resetlogs;
- 重建临时表空间:SQL> alter tablespace TEMP add tempfile ‘/u01/…/temp01.dbf’ reuse;
-
场景C 个别数据文件丢失或损坏
- 确认缺失文件:RMAN> report schema; 或 SQL> select name from v$datafile where file#=6;
- 还原该数据文件:RMAN> restore datafile 6;
- 介质恢复:RMAN> recover datafile 6;
- 打开数据库:SQL> alter database open; (必要时先 mount)
三 逻辑恢复 Data Pump 场景
- 准备目录对象与权限:SQL> create directory dpdir as ‘/oracledir’; 并授予导入用户相应权限。
- 执行导入:
- 全库导入:impdp system/口令@服务名 directory=dpdir dumpfile=expdp_full_%U.dmp logfile=impdp_full.log full=y
- 按用户导入:impdp system/口令@服务名 directory=dpdir dumpfile=schema.dmp logfile=imp.log schemas=SCOTT
- 指定表空间映射:impdp … remap_tablespace=OLD_TBS:NEW_TBS
- 指定目录映射:impdp … remap_schema=SCOTT:NEWUSER
- 注意:若目标库不存在同名用户/表空间,需先创建;导入前确保 DMP 文件与 directory 路径一致且权限正确。
四 常见问题与关键提示
- 归档与不完全恢复:若需回到某个时间点/SCN,RMAN> recover database until time/scn/logseq …; 完成后 open resetlogs。
- 临时文件:重建控制文件脚本中不要包含 TEMP 数据文件,打开后通过 alter tablespace TEMP add tempfile … 补齐。
- 目录与权限:RMAN/Data Pump 对 操作系统目录与 directory 对象权限敏感,恢复前统一为 oracle:oinstall 并设 750/770。
- 版本与兼容性:尽量保持 软件版本、字符集、平台位数一致;跨平台/跨版本恢复需额外评估与转换。
- 验证:恢复后执行 select * from v$database_block_corruption; 、抽样校验关键表数据量与一致性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos oracle数据库恢复方法
本文地址: https://pptw.com/jishu/781044.html
