12
返回列表 发新帖
楼主: easonmy

!这个恢复问题,自己真的搞不定了!请帮助!

[复制链接]
论坛徽章:
4
授权会员
日期:2006-12-27 14:22:082008新春纪念徽章
日期:2008-02-13 12:43:03暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
11#
发表于 2008-4-10 11:45 | 只看该作者
备份期间的日志在log2 ,而你却删除了log2所以出现这个错误:ORA-01194: 文件1需要更多的恢复来保持一致性

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:牛
日期:2009-04-28 17:28:37ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:44
12#
 楼主| 发表于 2008-4-13 09:43 | 只看该作者
原帖由 solearn 于 2008-4-10 10:46 发表


你是删除的log2吧,就是current log是吗?如果是,那么rollingpig的方法switch日志是必要的,此后你再删除current log,恢复即可成功。

你现在的情况是:rman备份结束时文件中最大的block scn(学名absolute fuzzy scn)正处于log2中。即:log2's low scn


你看看下面测试该如何解释?

1: 全备份数据, 这个过程中 log1是current. 说明备份这个动作在 log1 中保存
rman> backup database;


2: 切换日志,发出检查点,使log1变成 inactive. 说明此备份动作引起的scn变化已经同步到了当前controlfile和datafile
>alter system switch logfile;
>alter system checkpoint;

3: 这时 log2 是current, 此时插入一条测试数据, 说明该条测试数据位于 log2中
>insert into test values(1);
>commit;

4: shutdown abort 后, 删除所有 redolog, archivelog

5: 转储第一步的全备份,进行不完全恢复成功

> startup mount;
rman> restore database;
> recover database until cancel;
--直接应用cancel成功
> alter database open resetlogs;  打开了数据库


6: 在这个过程中删除了所有redolog, archivelog, 却可以进行不完全恢复. 这是什么道理呢?

使用道具 举报

回复
论坛徽章:
14
奥运会纪念徽章:自行车
日期:2008-04-25 21:00:142013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14奥运会纪念徽章:皮划艇激流回旋
日期:2012-08-13 10:25:38鲜花蛋
日期:2012-02-10 11:40:172010新春纪念徽章
日期:2010-03-01 11:04:58授权会员
日期:2010-01-12 09:40:47ITPUB元老
日期:2010-01-12 09:33:092009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:拳击
日期:2008-10-24 13:22:33
13#
发表于 2008-4-16 14:04 | 只看该作者
原帖由 easonmy 于 2008-4-13 09:43 发表


你看看下面测试该如何解释?

1: 全备份数据, 这个过程中 log1是current. 说明备份这个动作在 log1 中保存
rman> backup database;


2: 切换日志,发出检查点,使log1变成 inactive. 说明此备份动作引起的scn变化已经同步到了当前controlfile和datafile
>alter system switch logfile;
>alter system checkpoint;

3: 这时 log2 是current, 此时插入一条测试数据, 说明该条测试数据位于 log2中
>insert into test values(1);
>commit;

4: shutdown abort 后, 删除所有 redolog, archivelog

5: 转储第一步的全备份,进行不完全恢复成功

> startup mount;
rman> restore database;
> recover database until cancel;
--直接应用cancel成功
> alter database open resetlogs;  打开了数据库


6: 在这个过程中删除了所有redolog, archivelog, 却可以进行不完全恢复. 这是什么道理呢?


你的这个试验证明了一个问题:不完全恢复至少要恢复到哪里--即consistent(non-fuzzy)的状态。

在你备份的时候,我想由于是测试环境,当时没有其它操作,因而你得到的备份本身就是一致的(因为备份开始时会对每个备份片所包含的数据文件作检查点)。于是你recover时没有应用日志,这相当于一个冷备份。

你可以重做这个实验,但是在备份过程中在另一会话中作些dml操作,相信你不会再次恢复成功。

使用道具 举报

回复

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

本版积分规则 发表回复

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