问题 单项选择题

数据库CAT有两个还原表空间:undo_cat1和undo_cat2。实例目前正在使用的还原表空间是undo_cat1并使用了如下的SQL语句:

ALTER SYSTEM SET UNDO_TABLESPACE=undo_cat2;
为什么还原表空间undo_cat1进入了挂起脱机模式A.还原表空间undo_cat2还没有激活
B.仍然有事务正在使用undo_cat1
C.ALTER SYSTEM SET UNDO_TABLESPACE没有成功
D.新的事务既可以使用undo_cat1还原表空间,也可以使用undo_cat2还原表空间

答案

参考答案:B

解析: 这一题仍然是测试对还原表空间之间切换的理解程度。根据有关还原表空间之间切换的介绍,可知当“ALTER SYSTEM SET UNDO_TABLESPACE=undo_cat2;”语句正确执行后,还原表空间undo_cat2就已经激活了,所以选项A肯定是错误的。
同样根据有关还原表空间之间切换的介绍,我们知道“ALTER SYSTEM SET UNDO_TABLESPACE=undo_cat2; ”语句是一个正确的语句,应该能够执行成功的。另外,如果这一语句有错误不能执行成功的话,系统应该返回出错信息而不会对undo_cat1还原表空间有任何影响,所以undo_cat1也不可能进入了挂起脱机状态,因此选项C肯定是错误的。
根据本有关还原表空间之间切换的介绍,可知在一个实例中可以有多个还原表空间存在但只能有一个为活动的,所以可以肯定选项D也是错误的。
综上所述,利用排除法,可以肯定只有选项B是正确的。实际上,Oracle之所以将undo_cat1设置为挂起脱机状态,是为了在保证正在使用undo_cat1还原表空间的事务,可以正常完成的同时不会有新的事务继续使用这一还原表空间。

判断题
单项选择题