控制文件到底需不需要用trace命令备份呢?

   请问老师:如果我们可以用RMAN来备份控制文件那么是不是就没有必要用trace来备份它了呢?

标签: 暂无标签
原始人

写了 32 篇文章,拥有财富 297,被 1 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2010-11-16 13:12:50
如果配置了RMAN中的控制文件的自动备份后数据库会在下面几种情况下自动备份控制文件:
1、数据库的物理结构发生变化,如表空间、数据文件发生变化;
2、在使用RMAN以resetlogs打开数据库时;
而手工trace控制文件不是哪么保险,所以只要打开控制文件的自动备份,哪么只要控制文件发生变化就会自动备份,从这个方面看trace就没必要了。
回复

使用道具

P4 | 发表于 2010-11-16 14:16:10
trace  备份的内容就和手工建库的脚本一样,是固定的格式,你备份成trace只是为了以后恢复时的方便。可是即使没备份你也可以手工建立。
回复

使用道具

P6 | 发表于 2010-11-16 17:59:50
最好做一个trace,不做也没有什么大问题。
回复

使用道具

P4 | 发表于 2010-11-17 19:12:50
老师,一个lgwr进程怎么同时向一个日志组中的多个成员写呢?
回复

使用道具

P4 | 发表于 2010-11-17 21:07:11
REDO有一些和并行相关的隐藏参数,重要的有
_log_parallelism         Number of log buffer strands          1                    TRUE
_log_parallelism_max     Maximum number of log buffer s trands 2                    TRUE
_log_parallelism_dynamic Enable dynamic strands                TRUE                 TRUE
通过增加并行度不知道能不能使Lgwr同时写入到不同的member中,lgwr写入redo log的机制是怎样的还请老师指教。
回复

使用道具

P4 | 发表于 2010-11-18 09:54:32
chenyu 发表于 2010-11-17 21:07
REDO有一些和并行相关的隐藏参数,重要的有
_log_parallelism         Number of log buffer strands       ...

同问。
一直的理解就是LGWR是同时往多个member里面写。不然如果突然down机岂不是多个redo member中的数据可能不同步了?
另外,如果不经过特殊设置,那么lgwr进程不是只有一个吗?既然进程只有一个,那么如何实现并行?老陈列出的隐藏参数的并行设置又是对什么的并行?
回复

使用道具

P4 | 发表于 2010-11-18 21:05:08
如果突然down机岂不是多个redo member中的数据可能不同步了
还有一个严重的问题,如果lgwr是同步写一个日志组的所有成员时,假如有这种情况,log buffer中有10个重做日志需要写入redo log,当前有两个日志成员,写入的步骤如下
write one redo record to     one member     two member
write two redo record to     one member     cash(这时数据库cash)
下面的8个redo record还没写入,并且第二个成员只写入了one redo record,这时可能造成redo log 的member损坏吧,而且这时log buffer的信息也丢失了,这时数据库的SMON怎么去完成instance recover?
回复

使用道具

P4 | 发表于 2010-11-18 21:31:38
个人认为oracle应该是用了某些标志位来保证一致性,原子性。但是具体是哪些标志位就不清楚了。
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈