楼主: piner

[精华] 10g新特性,flashback系列之一 —— flashback database

[复制链接]
论坛徽章:
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
11#
发表于 2004-4-11 21:33 | 只看该作者
其他几个 flashback  table 功能我不想多说,和9i的原理基本差不多

3、Oracle Flashback Drop
Oracle 10g开始提供一个类似垃圾站的功能,来恢复不小心被drop的表


这个功能,其实,结合oracle触发dbwr的其中一个条件:  当发生 表的ddl 的时候会触发dnwr写数据文件。  这个功能,当初导致的是一个表被drop后,如果立即关机,可以使用dul从数据文件中把该表的内容 抓 出来
起实现的原理不过就是只对数据字典发生了变化而segment 本身还没有丢失,而触发dbwr也是为了让这个没有来得及被覆盖的segment的数据完整

10g中充分利用了这点,采用了数据库功能的方式恢复这个没有被覆盖的segment。所以这个功能的前提必须是 该表被drop后该表的segment的空间还没有被覆盖!


btw:  这些论点并不是来自oracle document ,而是看见这个功能后结合oracle的特征做出的推断。我坚信事实就是这样的。 oracle的很多新功能的推出都是基于以前的一些特性上的进一步完善而已

使用道具 举报

回复
论坛徽章:
65
ITPUB元老
日期:2006-03-01 17:57:36马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
12#
 楼主| 发表于 2004-4-12 09:03 | 只看该作者
最初由 biti_rainy 发布
[B]这东西,还使得rman真正地完美地实现 增量备份

以前的增量备份rman虽然备份的是block,但是必须读取所有的block然后来跟以前的备份中的block来比较,现在则无须这个比较过程,直接从该log中就可以知道哪些block发生了变化而直接拷贝这些block。  当然,依然收到时间限制

但这个功能的实现:
1: 可能空间成本比较大,有一点需要注意的是 10% 的块发生过变化,和 10%的块发生过重复多次的变化,对空间的需求应该是大不一样的。虽然我没有证实过,但相信是这样的。我也相信oracle的原理是这样的(除非,在 falshback  logs  中也建立回滚段,但我相信至少现在没这样做,将来是不是可能我不清楚,这只是解决比如一个block每天被更新了多次的特殊情况)

2:该功能必然对io繁忙系统的 I造成很大的影响!道理么,显然,写了额外的大量文件么 [/B]


10g的rman有的很大的改善,但是我觉得,如果记录日志的改变,那么将在平常导致io的增加,如果不记载日志,仅仅是备份的时候导致整个数据库扫描,毕竟备份的时间是不长的,这种特性的得失我觉得还不好定论。。。

10g的rman改善最好的地方,我觉得就是对增量备份的改进了,不仅能缩短备份时间,也减少了恢复时间。。。

至于rman的recover test,10g与9i还是有同样的问题,明显能恢复的,但是test却是恢复不了。10g的restore的preview还不错。

使用道具 举报

回复
论坛徽章:
65
ITPUB元老
日期:2006-03-01 17:57:36马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
13#
 楼主| 发表于 2004-4-12 09:09 | 只看该作者
最初由 biti_rainy 发布
[B]其他几个 flashback  table 功能我不想多说,和9i的原理基本差不多

3、Oracle Flashback Drop
Oracle 10g开始提供一个类似垃圾站的功能,来恢复不小心被drop的表


这个功能,其实,结合oracle触发dbwr的其中一个条件:  当发生 表的ddl 的时候会触发dnwr写数据文件。  这个功能,当初导致的是一个表被drop后,如果立即关机,可以使用dul从数据文件中把该表的内容 抓 出来
起实现的原理不过就是只对数据字典发生了变化而segment 本身还没有丢失,而触发dbwr也是为了让这个没有来得及被覆盖的segment的数据完整

10g中充分利用了这点,采用了数据库功能的方式恢复这个没有被覆盖的segment。所以这个功能的前提必须是 该表被drop后该表的segment的空间还没有被覆盖!


btw:  这些论点并不是来自oracle document ,而是看见这个功能后结合oracle的特征做出的推断。我坚信事实就是这样的。 oracle的很多新功能的推出都是基于以前的一些特性上的进一步完善而已 [/B]



其它的几个flashback我都将有系统的描述。
falshback database是采用日志
falsgback drop是采用表空间的空间
其它的都是与undo有关。。。

我觉得,drop没有必要触发dbwr,这个与dbwr没有关系,dbwr还是原来的底层的后台进程,该干什么还是干什么。

应当是oracle对drop做了改进,原来是删除数据字典,标记空间为可以使用的空间(如果是字典管理,则修改数据字典,如果是本地管理,则修改位图)。现在,drop过程简单的变为了重令名过程。

使用道具 举报

回复
论坛徽章:
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
14#
发表于 2004-4-12 09:23 | 只看该作者
最初由 piner 发布
[B]


其它的几个flashback我都将有系统的描述。
falshback database是采用日志
falsgback drop是采用表空间的空间
其它的都是与undo有关。。。

我觉得,drop没有必要触发dbwr,这个与dbwr没有关系,dbwr还是原来的底层的后台进程,该干什么还是干什么。

应当是oracle对drop做了改进,原来是删除数据字典,标记空间为可以使用的空间(如果是字典管理,则修改数据字典,如果是本地管理,则修改位图)。现在,drop过程简单的变为了重令名过程。 [/B]


drop 当然有触发  DBWR ! 这不是你我说了算的

若不触发DBWR,那么你的这个表的数据存在可能就丢失在 内存 中 ,还怎么来 undrop  ?

使用道具 举报

回复
论坛徽章:
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
15#
发表于 2004-4-12 09:27 | 只看该作者
最初由 piner 发布
[B]

10g的rman有的很大的改善,但是我觉得,如果记录日志的改变,那么将在平常导致io的增加,如果不记载日志,仅仅是备份的时候导致整个数据库扫描,毕竟备份的时间是不长的,这种特性的得失我觉得还不好定论。。。

[/B]



记录 数据库block变量的前映像,也就是所谓的  falshback  logs 的实际操作可能性有待考究,增加了大量的  IO 和 磁盘空间需求

带来的主要是 回退database  和 rman 增量备份等功能的完善

所以,是否实际实用,得根据具体环境来定了

使用道具 举报

回复
论坛徽章:
65
ITPUB元老
日期:2006-03-01 17:57:36马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
16#
 楼主| 发表于 2004-4-12 10:00 | 只看该作者
最初由 biti_rainy 发布
[B]

drop 当然有触发  DBWR ! 这不是你我说了算的

若不触发DBWR,那么你的这个表的数据存在可能就丢失在 内存 中 ,还怎么来 undrop  ? [/B]


我是觉得,drop触不触发dbwr,
还是与以前一样,dbwr并不多干其它工作。

flashback drop应当是在drop命令上做了改动。

使用道具 举报

回复
论坛徽章:
65
ITPUB元老
日期:2006-03-01 17:57:36马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
17#
 楼主| 发表于 2004-4-12 10:05 | 只看该作者
最初由 biti_rainy 发布
[B]


记录 数据库block变量的前映像,也就是所谓的  falshback  logs 的实际操作可能性有待考究,增加了大量的  IO 和 磁盘空间需求

带来的主要是 回退database  和 rman 增量备份等功能的完善

所以,是否实际实用,得根据具体环境来定了 [/B]


除了flashback log,10g还有一种rman的增量日志

alter database enable block change tracking using file '/rman_bkups/change.log';

如果是OLTP系统,也将导致大量的附加IO,DSS系统可能无所谓。

使用道具 举报

回复
论坛徽章:
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
18#
发表于 2004-4-12 12:05 | 只看该作者
最初由 piner 发布
[B]

我是觉得,drop触不触发dbwr,
还是与以前一样,dbwr并不多干其它工作。

flashback drop应当是在drop命令上做了改动。 [/B]


dbwr 是不是多干工作不好说,比如一个block 可能被修改了10次却被写文件一次 和被修改5次写文件一次。这不过是触发时机的不一样而已。
在8i的时候 drop 就已经触发  DBWR 了
只不过文档一般没有说而已

我只是说明dbwr把 buffer写进数据文件 是 undrop 的物理基础。而至于  数据字典的变化 和 flashback  drop 的功能,是具体的功能表现


rman 的 log 的问题,我没深究,多谢指出

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2004-4-14 11:40 | 只看该作者

我的怎么会这样?

SQL> FLASHBACK DATABASE to timestamp(to_date('2004-04-14 10:51:30','yyyy-mm-dd hh24:mi:ss'));
SP2-0734: 未知的命令开头 "FLASHBACK ..." - 忽略了剩余的行。

使用道具 举报

回复
论坛徽章:
65
ITPUB元老
日期:2006-03-01 17:57:36马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52
20#
 楼主| 发表于 2004-4-14 14:06 | 只看该作者

Re: 我的怎么会这样?

最初由 Alex_wws 发布
[B]SQL> FLASHBACK DATABASE to timestamp(to_date('2004-04-14 10:51:30','yyyy-mm-dd hh24:mi:ss'));
SP2-0734: 未知的命令开头 "FLASHBACK ..." - 忽略了剩余的行。 [/B]


你是10g吗?

使用道具 举报

回复

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

本版积分规则 发表回复

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