恢复前提:备机安装了同名oracle且目录结构和生产机一致,记录生产库dbid(12345678)。
第一步,从生产拷贝全备份文件
将生产库上RMAN全备份文件(包括数据文件、日志文件、控制文件、参数文件)拷贝到备机;
scp /home/oracle/rmanbackup/* 192.168.0.2:/home/oracle/rmanbackup/
第二步,恢复控制文件
(1)数据库open状态查看控制文件位置并关闭数据库:
sqlplus / as sysdba
SQL> show parameter control
SQL> shutdown immediate
(2)数据库nomount状态恢复控制文件:
rman target /
RMAN> set dbid 12345678
RMAN> startup nomount
RMAN> restore controlfile to '/home/oracle/app/oradata/orcl/control01.ctl' from '/home/oracle/rmanbackup/cntrl_326_1_326';
cp /home/oracle/app/oradata/orcl/control01.ctl /home/oracle/app/recovery_area/orcl/control02.ctl
第三步,启动数据库到mount并注册备份集
RMAN> alter database mount;
RMAN> catalog start with '/home/oracle/rmanbackup/';
此处若报错:当前DBID与目标装载数据库不一致,执行以下步骤:
RMAN> shutdown immediate
RMAN> exit;
rman target /
RMAN> set dbid 12345678
RMAN> startup nomount;
RMAN> alter database mount;
RMAN> catalog start with '/home/oracle/rmanbackup/';
第四步,检查备份,使用备份集恢复数据库
RMAN> crosscheck backup;
RMAN> restore database;
RMAN> recover database;
此处若报错:无法创建文件,系统找不到指定的路径,解决方案:
该问题说明备库数据文件目录跟生产库不完全一致,根据问题提示,创建备份集需要的目录并赋予oracle用户目录所属权限和读写权限。
第五步,只读模式打开数据库验证用户和数据
sqlplus / as sysdba
SQL> alter database open read only;
第六步,验证成功后,关闭数据库重新打开
sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup mount;
SQL>alter database open resetlogs;
本文详细介绍了Oracle数据库的恢复过程,包括从生产环境复制全备份文件到备用服务器,恢复控制文件,启动数据库到mount状态并注册备份集,使用备份集恢复数据库,以及验证恢复后的数据完整性和用户访问。
1683

被折叠的 条评论
为什么被折叠?



