很多朋友都知道ORACLE停止可以使用:
sqlplus / as sysdba
1,shutdown normal;
2,shutdown immediate;
3,shutdown transaction;
4,shutdown abort;
但是我们往往忽略了上述各种停止的具体意义。下面我们来一一看看ORACLE是如何工作的。
1,首先我们使用normal;
描述:发出该命令后,任何形式的会话连接都不被允许连接到数据库了。同时它也在等待已经存在的连接都退出后在开始尝试关闭数据库。
安全级别:高
理由:下次启动无需做任何实例的恢复操作。
弊端:这种命令执行持续时间较长。可以尝试通知应用开发相关人员在保证应用不受影响的情况下人为关闭某些已经连接的会话。
2,其次我们使用 immediate;
描述:发出该命令后,任何形式的会话连接都不被允许连接到数据库了,同时它会首先回滚(如果有很 大/长 的事务未提交则需要等待一定的时间)所有事务,然后断开已经连接的所有会话(不等用户手工断开),并尝试关闭数据库。
安全级别:高
理由:下次启动无需做任何实例的恢复操作。
弊端:这种持续时间有可能较长。主要是可能存在有大事务未提交的情况,遇到此情况还是请兄弟们静心等待下,并时时观察oracle日志情况。
3,其次我们使用transaction;
描述:发出该命令后,任何形式的会话连接都不被允许连接到数据库,同时它还另当前所有活动的事物都执行完毕后提交。然后尝试关闭数据库。
安全级别:一般
理由:启动数据库就不得不考虑,事务操作都是有很多种可能的,大事务的提交,等待时间长,中间断电等因素的印象会造成下次启动数据库的恢复操作。
弊端:同样这种持续时间有可能较长。主要是可能存在有大事务未提交的情况,遇到此情况还是请兄弟们静心等待下,并时时观察oracle日志情况。
4,其次我们使用abort;
描述:在上述3种关闭全都不起作用的情况下在才能采取这种 后备的关闭方式,此方式一旦执行所有正在活动、不活动的会话将完全断开,它将无视事务的存在不回滚也不提交,直接关闭数据库。
安全级别:低
理由:下次启动数据库,要进行实例恢复操作。
弊端:恢复时间长,能不能恢复是有前置条件的,比如undo是否可能在关闭后损坏造成不能恢复,或者在异常关闭时有很大的事务在提交这样恢复也就要花大量的时间了。