Undo Tablespace的问题
来源:百度知道 编辑:UC知道 时间:2024/06/09 02:12:05
Oracle数据库为什么需要Undo Tablespace?
Oracle有没有默认的Undo Tablespace?
如果没有Undo Tablespace,能否进行Rollback等操作?
谢谢
谢谢二楼,那么在什么情况下需要自己创建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句来设定就可以了。