|
Re: Re: 噢
最初由 wyq21973 发布
[B]
biti:这句话是不是笔误?
我是这样理解的:回滚段是位于data file中的,data buffer中的回滚段的block和其它类型的block在DBWR和SERVER PROCESS的角度来看是一样的,SERVER PROCESS负责将其从回滚段读到data buffer中,如果需要还负责对其进行更改,同时产生redo entries写进redo buffer,DBWR负责将其刷回到回滚段中去。
如有错误请指正。
还想借此机会问个问题:
对数据文件的更改可以回滚,那么对回滚段内容的更改可以回滚吗,或者说需要吗? [/B]
dbwr 写的是数据文件,这点上oracle当作和其他block一样看待。 这里的理解的差异在于 我所说的回滚段 指的是在buffer中的block,而dbwr 写出,是把 block 从buffer中写到 datafile。我并没有把这个称做 dbwr写回滚段(如果这么说我们还可以说 dbwr写表段、index segment……)。 习惯上大家把 回滚段看做 数据文件中的物理段了,而我没这样看,把他和 表段一样地看待。
所以我没有说 dbwr 负责刷回 回滚段,而是把回滚段写回数据文件。
回滚段的内容本身不再产生回滚。不需要。 |
|