Bo's Oracle Station

查看: 2538|回复: 2

使用rman备份和恢复的方式,修改控制文件到其他的路径,

[复制链接]

4

主题

5

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2017-7-18 17:17:01 | 显示全部楼层 |阅读模式
老师好,童鞋们好!
本人使用rman备份了控制文件,希望使用该备份将控制文件恢复到指定的位置,该位置是控制文件新的存储路径

以下是操作的大致步骤:
1、关闭数据库
2、启动数据库到mount
3、backup spfile,备份控制文件
4、alter system set control_files='新位置' scope=spfile;修改控制文件的新路径
5、关闭数据库
6、启动数据库到nomount状态
7、rman下restore controlfile from autobackup;控制文件被恢复到设定的新路径
8、alter database mount;恢复后,数据库再mount,
9、alter database open;再打开数据库,报必须以resetlogs或者noresetlogs方式打开数据库


因为数据库在mount状态下,查看了v$database、 v$datafile、v$datafile_header  3个动态视图的checkpoint_change字段,值都是相同的,
为什么打开数据库还是要resetlogs呢?

本人尝试过如果使用手工拷贝源控制文件到新控制文件设定的路径下,最后打开数据库不会报必须以resetlogs方式打开的






回复

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2017-7-19 09:54:44 | 显示全部楼层
7、rman下restore controlfile from autobackup;控制文件被恢复到设定的新路径


这样把老的控制文件(autobackup是在“热”时做的)拷贝回来必然导致resetlogs。
手工拷贝的是“冷”的控制文件,版本一致,不会resetlogs。
回复 支持 反对

使用道具 举报

4

主题

5

帖子

36

积分

新手上路

Rank: 1

积分
36
 楼主| 发表于 2017-7-21 11:56:53 | 显示全部楼层
botang 发表于 2017-7-19 09:54
这样把老的控制文件(autobackup是在“热”时做的)拷贝回来必然导致resetlogs。
手工拷贝的是“冷” ...

原先以为,数据库处于mount而不是open,此时备份控制文件是属于冷备的方式,

而mount状态就已经处于读取控制文件的状态了,显然不属于冷备份的方式。

谢谢老师指点!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-5-2 09:08 , Processed in 0.034157 second(s), 24 queries .

快速回复 返回顶部 返回列表