DL-GreatWall 发表于 2014-03-03 20:05

关于UNDO的问题,求指导

摘自文档
《Oracle® Database Concepts》
11g Release 2 (11.2)
Part Number E25789-01
一句话

Oracle Database writes every transaction synchronously to the redo log buffer, which is then written to the online redo logs. The contents of the log include uncommitted transactions, undo data, and schema and object management statements.

为什么REDO文件里放着UNDO数据? 那UNDO表空间文件里放的是什么数据? 也是UNDO数据吗?

这2个UNDO数据有什么区别?

dingning239 发表于 2014-03-04 10:27

又是一个redo和undo没弄清楚的帖子。


redo 指的是重做日志,顾名思义表示的是可以通过这些日志将数据“重做”,也就是说这些日志保存了数据的改变信息

undo指的是撤销日志,也就是说这些日志是提供给我们进行“反向”操作来用的,通过这些日志我们可以将原来的操作反过来做,原来是insert,我们可以通过undo提取出来delete,这样可以保证我们数据随时可以回滚,但这些“反向”操作也是要记录的redo中的,便于我们在数据库损坏之后来“重做”。

这么解释,不知道楼主是否明白了

DL-GreatWall 发表于 2014-03-04 11:56

大神, 你说的道理我都懂,可是我现在 在学习oracle,肯定更多的是参考官方文档。 文档里的很多内容让我迷惑。 我知道redo是重做,undo是撤销。 你看我发的那段英文。感谢您的回复帮助!回复 2# dingning239


   

jackson198574 发表于 2014-03-10 15:03

UNDO表空间中放的是UNDO信息向量,REDO中放的是将UNDO信息向量和REDO信息向量绑定在一起的记录。不知道这样解释是否正确。

ftc007 发表于 2014-03-11 10:45

你可以理解UNDO其实也是一个表空间,他里面的信息也是需要恢复的,所以也同样记载在redo里。

www_xylove 发表于 2014-03-11 23:35

我的理解是这样的:

Q:为什么REDO文件里放着UNDO数据?
A: 因为REDO记录了数据库的一切变化,“一切”,UNDO也不例外。

Q:那UNDO表空间文件里放的是什么数据?
A:旧数据

Q:也是UNDO数据吗?
A:是

Q:这2个UNDO数据有什么区别?
A: 没有区别,UNDO只记录旧数据,REDO记录一切数据,当然包括旧数据,也包括新数据,“一切” 嘛。


页: [1]
查看完整版本: 关于UNDO的问题,求指导