免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6366 | 回复: 15
打印 上一主题 下一主题

[Veritas NBU] 求助:NBU中retention数据保存周期保存oracle数据库数据文件的问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-01 11:07 |只看该作者 |倒序浏览
     在用NBU备份oracle 数据库的时候遇到一个疑问,
init.ora中controlfile_record_keep_time是控制文件保存rman备份数据库数据备份信息的时间周期参数
retention是NBU保存备份数据的时间周期,请问它们两个参数有什么区别?

比如:我在NBU中设置了 retention=30 天,但是controlfile_record_keep_time=7 (默认) ,会不会过了7后,7天前备份的oracle数据就不能恢复了呢?谢谢各位了!

论坛徽章:
0
2 [报告]
发表于 2009-07-01 11:20 |只看该作者
如果使用nocatalog方式差不多恢复不了

论坛徽章:
0
3 [报告]
发表于 2009-07-01 11:28 |只看该作者
我是在nocatalog模式下备份的数据库的,恢复不了么?   
那retention这个值不是没有什么用么?还需要改 controlfile_record_keep_time ?

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
4 [报告]
发表于 2009-07-01 13:17 |只看该作者
retention:控制的是Oracle备份出的数据在NBU中的保存时间。
controlfile_record_keep_time:是指当使用controlfile 代替Oracle catalog的时候,RMAN的备份信息在controlfile保存多长时间。

论坛徽章:
0
5 [报告]
发表于 2009-07-01 14:15 |只看该作者
谁说没有CATALOG恢复不了的呢?
KEKP TIME=7,即使过了7天一样能恢复。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
6 [报告]
发表于 2009-07-01 15:03 |只看该作者
只要是NBU哪边还有数据就能恢复。

论坛徽章:
0
7 [报告]
发表于 2009-07-01 16:18 |只看该作者
原帖由 无牙 于 2009-7-1 13:17 发表
retention:控制的是Oracle备份出的数据在NBU中的保存时间。
controlfile_record_keep_time:是指当使用controlfile 代替Oracle catalog的时候,RMAN的备份信息在controlfile保存多长时间。


无牙就是厉害!
controlfile_record_keep_time缺省值是7天,前面有兄弟说这个过期后数据恢复的问题,其实没有关系,即使超过这个时间值,仍然可以恢复数据库的,以nocatalog方式为例,就可以通过PL/SQL从备份的image中将controlfile的备份数据恢复回来。

论坛徽章:
0
8 [报告]
发表于 2009-07-02 16:46 |只看该作者
原帖由 netbackup 于 2009-7-1 16:18 发表


无牙就是厉害!
controlfile_record_keep_time缺省值是7天,前面有兄弟说这个过期后数据恢复的问题,其实没有关系,即使超过这个时间值,仍然可以恢复数据库的,以nocatalog方式为例,就可以通过PL/SQL从备 ...



controlfile_record_keep_time ???
Oralce 9i开始nocatalog备份方式备份记录写入controlfile保留是以次数为准不是以多少天为准,通过配置rman参数CONFIGURE RETENTION POLICY TO REDUNDANCY来实现。
controlfile_record_keep_time是说你的备份记录存在于controlfile中最大是记当量是保留7天的记录,并不是说7天后就清除。准确点说是:
control_file_record_keep_time表示控制文件里可重复使用的记录所能保存的最小天数。如果新增加一条记录到控制文件可以重复使用的部分,这时最老的记录尚没有超出最小保留天数,那么记录将控制文件的这一部分将扩展。如果将该参数设置为0,那么控制文件可以重复使用的部分将永远不会扩展。

虽然controfile的大小是可以手工调整的,但不可以动态增长(就是手工修改也得停机).所以当备份记录过多时可能将controfile空间撑满.但在实际环境中controfile中存7000-8000条备份记录是没有问题的,生产环境中一年之内产生7000-8000次备份的量的情况很小,所以不必担心.

也就说只要不设为0 controlfile中就有记录存在,当然设的太小的话你每备份一次就得把controlfile备份一次,在实际生产环境中我们通常会每次备份完成就备一次controlfile,当此参数设的太小的情况下,大不了恢复之前把相应的controlfile导一次就完事了。



通过PL/SQL从备份的image中将controlfile的备份数据恢复回来???

这个是备份到磁盘的吧,或者说你在备份脚本中强制指定了备分格式;说白了rman是先将备份内容打包成一个文件然后写入磁带,而并非是rman直接将数据写入磁带.脚本区别如下:
指定格式的:
connect target rmanbak/rmanbak;
run {
    allocate channel t1 type 'sbt_tape';
    backup full filesperset 4 (database  format 'dbf_%t_%s_%p' );
     release channel t1;
   }
以上方式是按备份集名称'dbf_%t_%s_%p' 写入磁带或磁盘

没有指定格式的:
connect target rmanbak/rmanbak;
run {
    allocate channel t1 type 'sbt_tape';
    backup full  filesperset 4  database;
     release channel t1;
     }
以上方式在备份过程中rman直接将数据写入磁带,虽然也是按备份集方式存入磁带,但他的备份集名称是自动生成的.


在不采用指定格式的情况下情况下你根本不知道备份到磁带或磁盘上的oracle数据的备份集名称,在N多备份集中你知道那一个是你要的,你又如何导出呢?


现在用户多使用9i或以上版本oracle了,并且现在多采用spfile方式管理oracle参数,并不使用init_SID.ora文件了.所以还是在rman中配置以下参数:
CONFIGURE RETENTION POLICY TO REDUNDANCY 500;   #保留多少次备份,这个自已去算了(按你周期内的db和archivelog备份次数据和恢复到多长间前)
CONFIGURE CONTROLFILE AUTOBACKUP ON;     #备分完成spfile和controlfile自动备份
这样你就不用去维护controfile与spfile的备份了(这是oracle 9i及以上版本的新功能,8i不具备)


当灾难发生时你只要:
首先从autobackup中导出spfile到文件pfile并修改与实际环境相符,并从pfile创建spfile
其次从autobackup将controfile导出来,将数据置于nomount状态就可以导数据文件了
再次直接作recover无需将archivelog导到主机磁盘直接作回滚

[ 本帖最后由 redwaves 于 2009-7-2 17:14 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-07-02 17:05 |只看该作者
学习了,讲的都很清楚啊!
都可以做教师了啊!哈哈!

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
10 [报告]
发表于 2009-07-02 18:14 |只看该作者
原帖由 redwaves 于 2009-7-2 16:46 发表



controlfile_record_keep_time ???
Oralce 9i开始nocatalog备份方式备份记录写入controlfile保留是以次数为准不是以多少天为准,通过配置rman参数CONFIGURE RETENTION POLICY TO REDUNDANCY来实现。
con ...


牛牙!真是人外有人,山外有山牙!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP