楼主: text1978

[FAQ] 冷备份还原数据库是不是不能前滚恢复?

[复制链接]
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
51#
 楼主| 发表于 2004-5-11 17:14 | 只看该作者


前滚这个词初次接触是在学校的时候考db2的时候看到的。这个词很容易望字生意。我说的这个前滚应该是“广义的”前滚,应用ARCHIVE向前恢复像前滚嘛

另外biti_rainy开始给的Tip的却是这个问题的答案。不过没有说清楚。
recover database using backup controlfile until cancel要执行两次。第一次是auto,他会在找不到归档的时候停下来。紧接着再发布一次recover database using backup controlfile until cancel;直接cancle掉。然后resetlogs重置在线日志打开数据库(因为,在线日志丢失了,冷备的在线日志不可用。)就可以恢复到最后一次归档了.

我不清楚的是recover database using backup controlfile until cancel,auto
到最后oracle为什么会建议需要一个不存在的归档呢?比如我有01,02,03。到最后它说需要04,然后报错04找不到。recover database using backup controlfile until cancel,auto就停下来了。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
52#
发表于 2004-5-11 17:37 | 只看该作者
最初由 text1978 发布
[B]

前滚这个词初次接触是在学校的时候考db2的时候看到的。这个词很容易望字生意。我说的这个前滚应该是“广义的”前滚,应用ARCHIVE向前恢复像前滚嘛

另外biti_rainy开始给的Tip的却是这个问题的答案。不过没有说清楚。
recover database using backup controlfile until cancel要执行两次。第一次是auto,他会在找不到归档的时候停下来。紧接着再发布一次recover database using backup controlfile until cancel;直接cancle掉。然后resetlogs重置在线日志打开数据库(因为,在线日志丢失了,冷备的在线日志不可用。)就可以恢复到最后一次归档了.

我不清楚的是recover database using backup controlfile until cancel,auto
到最后oracle为什么会建议需要一个不存在的归档呢?比如我有01,02,03。到最后它说需要04,然后报错04找不到。recover database using backup controlfile until cancel,auto就停下来了。 [/B]


因为控制文件中没有归档日志的信息,它不知道归档应用完了呢还是归档没有存在……  所以就给这样的提示了

你自己就该知道该输入联机日志了

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB技术丛书作者
日期:2010-09-26 15:24:56
53#
发表于 2004-5-11 17:56 | 只看该作者
最初由 kingdom 发布
[B]请问:
除了发生日志切换、强制归档和checkpoint外,还有没有其他机制可以激活ARCn呢? [/B]


arch是归档进程。

工作在归档模式的数据库,在日志切换(手工切换或日志满时)或者手工发出归档的命令都会激活arch进程。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
54#
 楼主| 发表于 2004-5-11 17:57 | 只看该作者
最初由 biti_rainy 发布
[B]

因为控制文件中没有归档日志的信息,它不知道归档应用完了呢还是归档没有存在……  所以就给这样的提示了

你自己就该知道该输入联机日志了 [/B]


我的一个测试是

冷备+01,02,03归档+02,03归档之间的控制文件备份

用以上来做恢复,oracle应用到03归档,报:介质恢复完成。
打开数据库,发现03归档实际并没有应用。

使用道具 举报

回复
论坛徽章:
0
55#
发表于 2004-5-11 17:58 | 只看该作者
最初由 lunar2000 发布
[B]

arch是归档进程。

工作在归档模式的数据库,在日志切换(手工切换或日志满时)或者手工发出归档的命令都会激活arch进程。 [/B]


没有其他情况能激活ARCn进程了吗?

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
56#
 楼主| 发表于 2004-5-11 18:02 | 只看该作者
最初由 lunar2000 发布
[B]

arch是归档进程。

工作在归档模式的数据库,在日志切换(手工切换或日志满时)或者手工发出归档的命令都会激活arch进程。 [/B]


最初由 text1978 发布
问题多多。
oracle是用什么机制触发ARCH进行写归档的?因为我的redolog大小是100M,但是得到的归档有100M的,几十兆,十几兆,以致几兆,几百K的都有。期间我并未手动强制归档过。而且oracle的官方文档上说,数据库关闭的时候也没有强制写归档。那么这些几十兆,十几兆,以致几兆,几百K的归档是怎么产生的?

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB技术丛书作者
日期:2010-09-26 15:24:56
57#
发表于 2004-5-11 18:06 | 只看该作者
最初由 text1978 发布
[B]

前滚这个词初次接触是在学校的时候考db2的时候看到的。这个词很容易望字生意。我说的这个前滚应该是“广义的”前滚,应用ARCHIVE向前恢复像前滚嘛

另外biti_rainy开始给的Tip的却是这个问题的答案。不过没有说清楚。
recover database using backup controlfile until cancel要执行两次。第一次是auto,他会在找不到归档的时候停下来。紧接着再发布一次recover database using backup controlfile until cancel;直接cancle掉。然后resetlogs重置在线日志打开数据库(因为,在线日志丢失了,冷备的在线日志不可用。)就可以恢复到最后一次归档了.

我不清楚的是recover database using backup controlfile until cancel,auto
到最后oracle为什么会建议需要一个不存在的归档呢?比如我有01,02,03。到最后它说需要04,然后报错04找不到。recover database using backup controlfile until cancel,auto就停下来了。 [/B]



乱了,你很多概念全乱了,呵呵

1,Oracle的前滚是实例失效时,数据库重新启动过程中应用联机日志做前滚。

2,所谓“两次”,第一次停下来是因为自动恢复过程中找不到那个归档,为什么没有呢?是因为那些需要恢复的东西(根据scn确定)都在联机日志中,还没有归档到归档日志呢。第二次为什么仅仅需要cancel就可以了呢?是因为使用手工提交归档的情况下,除了联机日志以外所有的归档都已经应用了,那你还提交什么呢?所以cancel。这两次实际上都是不完全恢复的命令,但两个cancel有着不同的作用。

3,你那个04是当前日志的内容

顺便说一句,checkpoint,联机日志和归档这几个概念你似乎也混淆了。
举个例子,只要备份可靠,并且当前的redo没有丢,那么最次都可以恢复最后一次checkpoint之前的所有数据,呵呵。

完全恢复是没丢失数据的恢复,那么怎么能不丢失呢?
应该有可靠的数据文件的备份,还要有联机日志文件,控制文件。这也就是为什么一定要复用连接日志文件和控制文件的原因了。

再多说一句,只要是用了until cancel, until time, until change,都不能做完全恢复了。


其实,恢复数据库,仅仅要求数据库又能用了是远远不够的,要考虑如何尽快恢复,如何最少的丢失数据,要实现这些要求,我觉得还是照着规矩来,该用什么控制文件就用什么控制文件,该noresetlog,就一定不要resetlog。

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB技术丛书作者
日期:2010-09-26 15:24:56
58#
发表于 2004-5-11 18:25 | 只看该作者
最初由 text1978 发布
[B]
问题多多。
oracle是用什么机制触发ARCH进行写归档的?因为我的redolog大小是100M,但是得到的归档有100M的,几十兆,十几兆,以致几兆,几百K的都有。期间我并未手动强制归档过。而且oracle的官方文档上说,数据库关闭的时候也没有强制写归档。那么这些几十兆,十几兆,以致几兆,几百K的归档是怎么产生的?

[/B]


上面已经说了,请注意"日志切换"!!

日志切换就是告诉数据库,我要使用下一个日志了,这时数据库就要归档了。你的情况一定是发生过日志切换。

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB技术丛书作者
日期:2010-09-26 15:24:56
59#
发表于 2004-5-11 18:29 | 只看该作者
最初由 text1978 发布
[B]

我的一个测试是

冷备+01,02,03归档+02,03归档之间的控制文件备份

用以上来做恢复,oracle应用到03归档,报:介质恢复完成。
打开数据库,发现03归档实际并没有应用。 [/B]


如果你用02和03之间备份的控制文件恢复,当然不能恢复03了,因为03的信息还没有记录在那个控制文件呢。要想使用03,必须用当前的控制文件或者用03之后的控制文件,或者用重建的控制文件。

我感觉,你的问题已经很迫切的需要你去充分理解一些概念了,呵呵。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
60#
 楼主| 发表于 2004-5-11 18:32 | 只看该作者
虚心向大家学习。

使用道具 举报

回复

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

本版积分规则 发表回复

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