RMAN恢复案例——丢失spfile的恢复

本文介绍了一种在Oracle数据库中丢失SPFILE后的恢复方法。前提条件是已经配置了数据库控制文件的自动备份,并且已有可靠的备份。通过RMAN命令进行SPFILE的自动备份和恢复,确保数据库能够正常启动。
摘要由CSDN通过智能技术生成
1.1. 丢失spfile的恢复


大前提:已经配置了数据库控制文件的自动备份,并且已经有可靠的备份:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;
 
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
正在启动全部恢复目录的 resync
完成全部 resync
 
RMAN>
 
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:/RMANTEST/%F';
 
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:/RMANTEST/%F';
已成功存储新的 RMAN 配置参数
正在启动全部恢复目录的 resync
完成全部 resync
 
RMAN>
 
RMAN> show all;
 
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:/RMANTEST/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/ORACLE92/DATABASE/SNCFTEST1.ORA'; # default
 
RMAN>
 
RMAN> run{
2> backup database
3> tag 'full_db_20041007'
4> format 'd:/rmantest/full_dbtest_yyyymmdd%_u%.bak'
5> include current controlfile;
6> backup archivelog all
7> tag 'arch_bak'
8> format 'd:/rmantest/arch_yyyymmdd%_u%.bak'
9> delete input;}
 
启动 backup 于 07-10月-04
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:/ORACLE92/TEST1/SYSTEM01.DBF
输入数据文件 fno=00002 name=D:/ORACLE92/TEST1/UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:/ORACLE92/TEST1/RMAN01.DBF
输入数据文件 fno=00003 name=D:/ORACLE92/TEST1/INDX01.DBF
输入数据文件 fno=00005 name=D:/ORACLE92/TEST1/USERS01.DBF
输入数据文件 fno=00004 name=D:/ORACLE92/TEST1/TOOLS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 07-10月-04
通道 ORA_DISK_1: 已完成段 1 于 07-10月-04
段 handle=D:/RMANTEST/FULL_DBTEST_YYYYMMDD%_U%.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:06
完成 backup 于 07-10月-04
 
启动 backup 于 07-10月-04
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =15 记录 ID=20 时间戳=538928248
通道 ORA_DISK_1: 正在启动段 1 于 07-10月-04
通道 ORA_DISK_1: 已完成段 1 于 07-10月-04
段 handle=D:/RMANTEST/ARCH_YYYYMMDD%_U%.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =D:/ORACLE92/ADMIN/TEST1/ARCH/ARC00015.001 记录 ID=20 时间戳 =538928248
完成 backup 于 07-10月-04
 
启动 Control File and SPFILE Autobackup 于 07-10月-04
段 handle=D:/RMANTEST/C-910599446-20041007-00 comment=NONE
完成 Control File and SPFILE Autobackup 于 07-10月-04
 
RMAN>
 
 
 
 
1.1.1.    将当前spfile挪到其他位置来模拟spfile丢失


RMAN> host;
 
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
 
C:/>move D:/oracle92/database/SPFILETEST1.ORA D:/oracle92/database/bak/SPFILETEST1.ORA
 
C:/>dir D:/oracle92/database/SPFILETEST1.ORA
 驱动器 D 中的卷没有标签。
 卷的序列号是 644D-03D9
 
 D:/oracle92/database 的目录
 
找不到文件
 
C:/>dir D:/oracle92/database/bak/SPFILETEST1.ORA
 驱动器 D 中的卷没有标签。
 卷的序列号是 644D-03D9
 
 D:/oracle92/database/bak 的目录
 
2004-10-04  14:06             2,560 SPFILETEST1.ORA
               1 个文件          2,560 字节
               0 个目录 10,708,807,680 可用字节
 
C:/>exit
主机命令完成
 
RMAN>
 
1.1.2.    设置ORACLE_SID


C:/>set ORACLE_SID=TEST1
 
C:/>ECHO ORACLE_SID
ORACLE_SID
 
C:/>
 
1.1.3.    登陆RMAN


C:/>rman
 
恢复管理器: 版本9.2.0.1.0 - Production
 
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
 
RMAN> connect target lunar/lunar@test1
 
已连接到目标数据库 (未启动)
 
RMAN> connect catalog rman/rman@rman
 
连接到恢复目录数据库
 
RMAN>
 
1.1.4.    在RMAN中设置DBID


使RMAN知道需要查找哪一个数据库的spfile
(必须在数据关闭的情况下设置DBID)
RMAN> set DBID=910599446
 
正在执行命令: SET DBID
 
RMAN>
 
1.1.5.    将数据库启动到nomount状态


RMAN> startup nomount;
 
启动失败: ORA-01078: failure in processing system parameters
LRM-00109: N^7(4r?*2NJ}ND<~ 'D:/ORACLE92/DATABASE/INITTEST1.ORA'
 
正在尝试在没有参数文件的情况下启动 Oracle 例程...
Oracle 例程已启动
 
系统全局区域总计      97589952 字节
 
Fixed Size                      453312 字节
Variable Size                 46137344 字节
Database Buffers              50331648 字节
Redo Buffers                    667648 字节
 
RMAN>
 
1.1.6.    从自动备份中还原参数文件


RMAN> show all;
 
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:/RMANTEST/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 
RMAN> restore spfile from autobackup;
 
启动 restore 于 07-10月-04
 
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=9 devtype=DISK
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20041007
通道 ORA_DISK_1: 已找到的自动备份: D:/RMANTEST/c-910599446-20041007-00
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 07-10月-04
 
RMAN> host;
 
 
恢复管理器完成。
 
C:/>dir D:/oracle92/database/SPFILETEST1.ORA
 驱动器 D 中的卷没有标签。
 卷的序列号是 644D-03D9
 
 D:/oracle92/database 的目录
 
2004-10-07  14:31             2,560 SPFILETEST1.ORA
               1 个文件          2,560 字节
               0 个目录 10,528,374,784 可用字节
 
C:/> exit
 
恢复管理器: 版本9.2.0.1.0 - Production
 
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
 
连接到目标数据库: TEST1(未安装)
连接到恢复目录数据库
 
RMAN>
 
1.1.7.    用Shutdown immediate关闭数据库


RMAN> shutdown immediate;
 
Oracle 例程已关闭
 
RMAN>
 
1.1.8.    重新启动数据库


RMAN> set DBID=910599446
 
正在执行命令: SET DBID
 
RMAN> startup
 
已连接到目标数据库 (未启动)
Oracle 例程已启动
数据库已加载
数据库已打开
 
系统全局区域总计     101784276 字节
 
Fixed Size                      453332 字节
Variable Size                 75497472 字节
Database Buffers              25165824 字节
Redo Buffers                    667648 字节
 
RMAN>
更多 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值