Which mode of database shutdown requires an instance recovery at the time of the next database startup?
A.ABORT
B.NORMAL
C.IMMEDIATE
D.TRANSACTIONAL
数据库在关闭的时候可以使用下列参数来指定关闭模式:
shutdown [NORMAL]:
这个是默认的关闭模式,需要满足下列条件:
•在这个语句发布之后不允许新连接
•在数据库关闭之前,数据库会等待当前连接的用户断开连接。
shutdown immediate:
这个模式关闭需要满足下列条件:
•在发布命令后,不允许新的连接,也不允许启动新的事务
•所有未提交的事务被回滚(如果有长事务存在,这个方式关闭不会很快完毕。)
•数据库不会等待所有当前连接断开。回隐式的回滚所有活动事物,然后断开所有数据库连接
shutdown transactional
这个模式关闭需要满足下列条件:
•在发布命令后,不允许新的连接,也不允许启动新的事务
•在所有事物完成后,所有客户端连接断开。
•在这个时候;实例关闭和使用 shutdown immediate 一样。
shutdown abort:
这个模式关闭需要满足下列条件:
•在发布命令后,不允许新的连接,也不允许启动新的事务
•当前客户端执行的 SQL 会立即中止
•未提交的事务不会回滚
•数据库不会等待用户当前的连接断开,会隐式的端口所有用户的连接。
在下次数据库启动的时候需要自动的实例恢复过程。
normal 最温和,需要等待当前连接活动都停止才能关闭数据库,因为它允许新事务,这个基本不太现实。所以使用的最多的是 immediate,其于 transactional 的区别是一个是回滚未提交事务,一个是等待当前事务完成。
abort 关闭最快,既不回滚事务,也不等待事务完成,直接中止所有 SQL,关闭数据库。并在这个模式关闭不会进行检查点,上述其他关闭模式均会执行检查点。这样就会出现提交事务的数据块未写入数据文件(需要前滚),或者未提交事务的数据块写入了数据文件(需要回滚)。这就需要实例恢复.A 对