RMAN恢复案例——丢失spfile的恢复
2024-07-21 02:07:03
供稿:网友
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 ncftest1.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 ystem01.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 pfiletest1.ora d:/oracle92/database/bak pfiletest1.ora
c:/>dir d:/oracle92/database pfiletest1.ora
驱动器 d 中的卷没有标签。
卷的序列号是 644d-03d9
d:/oracle92/database 的目录
找不到文件
c:/>dir d:/oracle92/database/bak pfiletest1.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/[email protected]
已连接到目标数据库 (未启动)
rman> connect catalog rman/[email protected]
连接到恢复目录数据库
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 pfiletest1.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>