楼主: ddba

有关使用rman恢复spfile和控制文件的疑问???

[复制链接]
论坛徽章:
1
ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:45
11#
发表于 2006-11-23 09:56 | 只看该作者
最初由 exitgogo 发布
[B]



不使用catalog,rman恢复在没有控制文件的时候,都有一个默认的rman配置信息,其中默认spfile文件的路径就在dbs下,所以在恢复的时候,要么指定控制文件的位置,要么吧控制文件放到dbs目录下。 [/B]



对于rman恢复控制文件我是这样想的,如果备份控制文件保存在rman配置参数指定的位置(CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; 这个可以更改),那么就可以使用autobackup进恢复,它会使用最新那个,手动指定也可以。如果备份控制文件没有保存在上面参数指定的位置,那么from autobackup 就能找到备份控制文件了,所以需要手动指定才行。

而对spfile的恢复,还是不太理解,请指点。。。

使用道具 举报

回复
论坛徽章:
22
蛋疼蛋
日期:2011-09-02 08:49:42ITPUB元老
日期:2013-10-29 19:15:25
12#
 楼主| 发表于 2006-11-23 09:58 | 只看该作者
最初由 exitgogo 发布
[B]



不使用catalog,rman恢复在没有控制文件的时候,都有一个默认的rman配置信息,其中默认spfile文件的路径就在dbs下,所以在恢复的时候,要么指定控制文件的位置,要么吧控制文件放到dbs目录下。 [/B]


疑问:rman的配置信息也是记录在目标数据库的控制文件了的,那时还没有读取控制文件,如何知道在dbs下;
我把自动控制文件备份改为默认位置后,还是无法使用from autobackup;
请看:

启动 Control File and SPFILE Autobackup 于 23-11月-06
段 handle=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-1904898126-20061123-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 23-11月-06

RMAN>

RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
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 ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFTEST.ORA'; # default

RMAN> startup force nomount

Oracle 实例已启动

系统全局区域总计     167772160 字节

Fixed Size                     1247900 字节
Variable Size                 79693156 字节
Database Buffers              83886080 字节
Redo Buffers                   2945024 字节

RMAN> restore spfile from autobackup;

启动 restore 于 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=322 devtype=DISK
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/23/2006 09:55:14 上) 失败
RMAN-06564: 当使用 SPFILE 启动实例时必须使用 TO 子句

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-03-15 22:32:12数据库板块每日发贴之星
日期:2006-08-15 01:02:49会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
13#
发表于 2006-11-23 10:11 | 只看该作者
最初由 ghbspecial 发布
[B]


对于rman恢复控制文件我是这样想的,如果备份控制文件保存在rman配置参数指定的位置(CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; 这个可以更改),那么就可以使用autobackup进恢复,它会使用最新那个,手动指定也可以。如果备份控制文件没有保存在上面参数指定的位置,那么from autobackup 就能找到备份控制文件了,所以需要手动指定才行。

而对spfile的恢复,还是不太理解,请指点。。。 [/B]



spfile也是保存在控制文件的备份中的,如果要恢复spfile,可以用rman启动一个没有任何参数的实例,然后跟恢复控制文件一样,

restore spfile from ×××即可恢复spfile文件,当然也可以指定spfile恢复的位置。

restore spfile to ***** from ******;

使用道具 举报

回复
论坛徽章:
22
蛋疼蛋
日期:2011-09-02 08:49:42ITPUB元老
日期:2013-10-29 19:15:25
14#
 楼主| 发表于 2006-11-23 10:14 | 只看该作者
最初由 exitgogo 发布
[B]


spfile也是保存在控制文件的备份中的,如果要恢复spfile,可以用rman启动一个没有任何参数的实例,然后跟恢复控制文件一样,

restore spfile from ×××即可恢复spfile文件,当然也可以指定spfile恢复的位置。

restore spfile to ***** from ******; [/B]

老兄能否解释下
restore spfile from autobackup;
restore controlfile from autobackup;
为何在nomount下无法执行?还是说这两个命令是只能在
mount或open时才能执行的???

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-03-15 22:32:12数据库板块每日发贴之星
日期:2006-08-15 01:02:49会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
15#
发表于 2006-11-23 10:16 | 只看该作者
最初由 ddba 发布
[B]

疑问:rman的配置信息也是记录在目标数据库的控制文件了的,那时还没有读取控制文件,如何知道在dbs下;
我把自动控制文件备份改为默认位置后,还是无法使用from autobackup;
请看:

启动 Control File and SPFILE Autobackup 于 23-11月-06
段 handle=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-1904898126-20061123-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 23-11月-06

RMAN>

RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
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 ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFTEST.ORA'; # default

RMAN> startup force nomount

Oracle 实例已启动

系统全局区域总计     167772160 字节

Fixed Size                     1247900 字节
Variable Size                 79693156 字节
Database Buffers              83886080 字节
Redo Buffers                   2945024 字节

RMAN> restore spfile from autobackup;

启动 restore 于 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=322 devtype=DISK
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/23/2006 09:55:14 上) 失败
RMAN-06564: 当使用 SPFILE 启动实例时必须使用 TO 子句 [/B]



你的设置,跟这个恢复没关系,

因为你设置的信息是保存在控制文件中的,但是你现在正在恢复控制文件,也就是在恢复之前,rman的配置信息是默认的,此时你把要恢复的控制文件备份放到dbs下即可实现
restore spfile from autobackup;

使用道具 举报

回复
论坛徽章:
22
蛋疼蛋
日期:2011-09-02 08:49:42ITPUB元老
日期:2013-10-29 19:15:25
16#
 楼主| 发表于 2006-11-23 10:22 | 只看该作者
最初由 exitgogo 发布
[B]


你的设置,跟这个恢复没关系,

因为你设置的信息是保存在控制文件中的,但是你现在正在恢复控制文件,也就是在恢复之前,rman的配置信息是默认的,此时你把要恢复的控制文件备份放到dbs下即可实现
restore spfile from autobackup; [/B]

老兄看下:
RMAN> startup force nomount

Oracle 实例已启动

系统全局区域总计     167772160 字节

Fixed Size                     1247900 字节
Variable Size                 79693156 字节
Database Buffers              83886080 字节
Redo Buffers                   2945024 字节

RMAN> restore controlfile from autobackup;

启动 restore 于 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=322 devtype=DISK

恢复区域目标: D:\oracle\product\10.2.0\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): TEST
通道 ORA_DISK_1: 在恢复区域中未找到自动备份
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20061123
通道 ORA_DISK_1: 已找到的自动备份: c-1904898126-20061123-02
通道 ORA_DISK_1: 从自动备份复原控制文件已完成
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL01.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL02.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL03.CTL
完成 restore 于 23-11月-06

RMAN> restore spfile from autobackup;

启动 restore 于 23-11月-06
使用通道 ORA_DISK_1

MAN-00571: ===========================================================
MAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
MAN-00571: ===========================================================
MAN-03002: restore 命令 (在 11/23/2006 10:20:35 上) 失败
MAN-06564: 当使用 SPFILE 启动实例时必须使用 TO 子句

何故???

使用道具 举报

回复
论坛徽章:
19
生肖徽章:羊
日期:2006-09-06 21:18:482012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15CTO参与奖
日期:2009-02-12 11:45:48生肖徽章2007版:龙
日期:2008-12-16 14:04:41奥运会纪念徽章:篮球
日期:2008-10-24 13:29:38奥运会纪念徽章:沙滩排球
日期:2008-07-02 12:09:31生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
17#
发表于 2006-11-23 10:29 | 只看该作者
restore spfile from autobackup;由于你的系统是由spfile启动,因此不能直接恢复回去,必须制定另外一个路径,上次记得你也问过这类问题,不过是手动还原时的情况,另外你第一页说得nomount下,数据库不读控制文件,nomount下好像只能用目录数据库了

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-03-15 22:32:12数据库板块每日发贴之星
日期:2006-08-15 01:02:49会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
18#
发表于 2006-11-23 10:35 | 只看该作者
最初由 ddba 发布
[B]
老兄看下:
RMAN> startup force nomount

Oracle 实例已启动

系统全局区域总计     167772160 字节

Fixed Size                     1247900 字节
Variable Size                 79693156 字节
Database Buffers              83886080 字节
Redo Buffers                   2945024 字节

RMAN> restore controlfile from autobackup;

启动 restore 于 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=322 devtype=DISK

恢复区域目标: D:\oracle\product\10.2.0\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): TEST
通道 ORA_DISK_1: 在恢复区域中未找到自动备份
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20061123
通道 ORA_DISK_1: 已找到的自动备份: c-1904898126-20061123-02
通道 ORA_DISK_1: 从自动备份复原控制文件已完成
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL01.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0
\ORADATA\TEST\CONTROL02.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL03.CTL
完成 restore 于 23-11月-06

RMAN> restore spfile from autobackup;

启动 restore 于 23-11月-06
使用通道 ORA_DISK_1

MAN-00571: ===========================================================
MAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
MAN-00571: ===========================================================
MAN-03002: restore 命令 (在 11/23/2006 10:20:35 上) 失败
MAN-06564: 当使用 SPFILE 启动实例时必须使用 TO 子句

何故??? [/B]



当使用 SPFILE 启动实例时必须使用 TO 子句

你现在使用的是spfile参数,要用to字句换个位置即可。

使用道具 举报

回复
论坛徽章:
52
摩羯座
日期:2015-07-23 16:30:53马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11问答徽章
日期:2014-01-14 17:25:10兰博基尼
日期:2013-12-16 09:09:38大众
日期:2013-12-11 15:24:03林肯
日期:2013-12-04 12:21:38保时捷
日期:2013-11-22 15:45:33雪佛兰
日期:2013-09-12 12:10:44奥迪
日期:2013-08-22 17:17:49
19#
发表于 2006-11-23 10:52 | 只看该作者
SPFILE [TO [PFILE] 'filename']

Restores the server parameter file to the location from which it was backed up (default). Alternatively, you can specify a different location with the TO clause. RMAN cannot overwrite a server parameter file currently in use by the target database.

Specify UNTIL or TAG options of RESTORE command to restore older versions of the server parameter file. By default RMAN restores the most current server parameter file.

If the server parameter file is lost, connect to the target (and catalog if used) and then run SET DBID. Run STARTUP FORCE NOMOUNT before running RESTORE SPFILE (with FROM AUTOBACKUP if in NOCATALOG mode). Then run STARTUP FORCE to restart the database with the restored server parameter file.

你把你本地的spfile删除,应该就可以了,不需要to 。

使用道具 举报

回复
论坛徽章:
19
生肖徽章:羊
日期:2006-09-06 21:18:482012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15CTO参与奖
日期:2009-02-12 11:45:48生肖徽章2007版:龙
日期:2008-12-16 14:04:41奥运会纪念徽章:篮球
日期:2008-10-24 13:29:38奥运会纪念徽章:沙滩排球
日期:2008-07-02 12:09:31生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
20#
发表于 2006-11-23 11:36 | 只看该作者
“你把你本地的spfile删除,应该就可以了,不需要to 。”

这样应该还是不行,因为你是用os命令删除,oracle认为还在,oracle的机制是spfile只要在使用中就不能直接用oracle命令做恢复的操作

不过照这样 Run STARTUP FORCE NOMOUNT before running RESTORE SPFILE (with FROM AUTOBACKUP if in NOCATALOG mode). Then run STARTUP FORCE to restart the database with the restored server parameter file.

强行重启到nomount下倒是可以,不过这样就不是正常的恢复步骤了,本来不需要关闭实例的还得弄个强行重启到nomout

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表