Undo Tablespace的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:12:05
Oracle数据库为什么需要Undo Tablespace?
Oracle有没有默认的Undo Tablespace?
如果没有Undo Tablespace,能否进行Rollback等操作?

谢谢
谢谢二楼,那么在什么情况下需要自己创建undo tablespace?

算了,给你分吧。

嘿嘿 经典的问题 我仅仅说说问题1 为什么需要UNDO
说起来也简单 就是多版本一致性读的实现.
没有UNDO的数据库 例如SQL SERVER MYSQL DB2等 如果对一条数据进行修改,不提交,那么其他的用户就无法访问这条记录了
这种现象成为"阻塞".简单的说,这类数据库在写的时候,就不能读了.用户少OK,用户一多,嘿嘿 这种数据库就NG了.其实这类数据库很有问题的,他们在读的时候也加锁了.
可是ORACLE或者ENTERPRICE DB这类的有UNDO的实现了"多版本一致性读"的数据库,改吧,反正我可以读UNDO里面修改以前的数据,所以实现了最大的数据库并发访问,根本在读的时候不加任何锁
所以 ORACLE是实现大型OLTP数据库的第一选择

指定UNDO表领域名用的Parameter。在数据库里,这种Parameter可以使用于多个UNDO表领域、但是只是可以在想要使用DATABASE INSTANCE特定下的UNDO表领域时在可以使用。

使用例子:比如保证UNDO保存期间,使用 CREATE DATABASE文或者CREATE UNDO TABLESPACE文来制作UNDO表领域时、对于所制作的UNDO表领域的RETENTION GUARANTEE句进行指定,或者在ALTER TABLESPACE文里面进行指定。如果想要保存期间的保证无效的话,用RETENTION NOGUARANTEE句来设定就可以了。