nocatalog下的rman备份,控制文件backup与cp有何区别?

[复制链接]
查看11 | 回复8 | 2005-11-4 15:12:46 | 显示全部楼层 |阅读模式
做完nocatalog下的rman备份后,还要做控制文件的备份.
控制文件备份一般是这样:alter database backup controlfile to '/xxx/xxx.xx';
但我直接在数据库open的状态下使用命令cp拷贝控制文件,我称这样也叫控制文件的一种备份方式.
删除原数据库后,我试了两种方式都可以恢复到最后的一个archive log的点.
请问两种备份方式有什么区别呢?有人说不能在数据库open的状态下直接copy控制文件.为什么呢?
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
直接COPY的文件不一定能在恢复的时候使用。
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
不一定?哪种情况下呢?恢复的时候使用这个控制文件mount上就好了,此控制文件也记录了备份信息,check point那个点不重要吧?
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
这个问题我以前也有考虑过,自己觉得应该相同吧
不同的是它的备份方式不同吧.
如果有好的见解的话,请出来说说看吧
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
控制文件在数据库启动时被Oracle实例读取,保持打开并随着操作而文件内容更新,直到实例关闭为止。 在中间过程中进行操作系统一级的拷贝,无法保证你拷贝的时候ORACLE没在更新控制文件,所以说不一定可用。
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
个人观点:
其实这个跟热备有点类似。
假如有一进程正在修改控制文件,但是还未完成,此时你在OS上Copy 控制文件
就有可能造成控制文件的不完整。
当然,一般修改控制文件的时间很短,所以的话,你才可以恢复。
假如,你运气够好,刚好碰上那一点,那就有可能恢复不了了。
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
正在写控制文件的时候,一定是数据库transaction量比较大的时候吧.如果我在没有人使用数据库的时段copy控制文件,就不会有问题哦?
回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
最初由 coohoo 发布
[B]正在写控制文件的时候,一定是数据库transaction量比较大的时候吧.如果我在没有人使用数据库的时段copy控制文件,就不会有问题哦? [/B]

trace 了一下:
alter database backup controlfile to 'd:\controlbak.ctl'
END OF STMT
PARSE #1:c=0,e=132493,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=4,tim=18684011817
XCTEND rlbk=0, rd_only=1[/COLOR]
EXEC #1:c=15625,e=938978,p=0,cr=0,cu=2,mis=0,r=0,dep=0,og=4,tim=18684953807
=====================
PARSING IN CURSOR #1 len=33 dep=0 uid=0 oct=42 lid=0 tim=18691066077 hv=1615536819 ad='662925f8'

详细的信息,我也不是很明白。
但是从rd_only=1[/COLOR] 可以看出:
在Backup controlfile的过程当中,会将controlfile 置为readonly状态。
这下该死心了吧.


回复

使用道具 举报

千问 | 2005-11-4 15:12:46 | 显示全部楼层
谢谢!!看来是为了安全起见,还是alter database backup controlfile to '/xxx/xxx';的好.
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行