当然不能了 Shutdown -还需要参数控制呢 ,你自己不也是这么认为的吗
解决方案 »
- “oracle列读取程序”,在电脑A上不能运行,但在B上可以,怎么根据B来判断该程序在A上运行需要什么环境?
- 触发器怎么样实现对另一张表的操作啊
- 更改了控制文件参数后,数据库就无法打开了
- 关于存储过程的两个问题
- oracle系统管理员密码找回
- ora-04031 Error windows补丁在什么地方可以下载???
- 如何将Oracle8i数据库结构导出为sql脚本
- 请各位帮忙,在本机如何创建oracle 数据库?
- 使用数组作为存储过程\函数的参数的问题
- 怎样把数字型的转换为字符星
- 求救修改oracle的日期存储/显示格式为:YYYYMMDD
- 请问ORACLE中 “/” 和 分号“;”有什么区别阿?分别什么意思?
首先我们来了解一下数据库关闭的原理:
数据库的关闭(SHUTDOWN)对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。1、SHUTDOWN NORMAL 这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN NORNAL的意思。 发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。2、SHUTDOWN IMMEDIATE 这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。 当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。3、SHUTDOWN TRANSACTIONAL 该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。4、SHUTDOWN ABORT 这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。1、 数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;2、 需要立即关闭数据库;3、 在启动数据库实例时遇到问题; 所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。 表1可以清楚地看到上述四种不同关闭数据库的区别和联系。 表1 Shutdown数据库不同方式对比表 关闭方式 A I T N
允许新的连接 × × × ×
等待直到当前会话中止 × × × √
等待直到当前事务中止 × × √ √
强制CheckPoint,关闭所有文件 × √ √ √其中:A-Abort I-Immediate T-Transaction N-Nornal而net stop关闭数据库的方式和你通过“服务”去手工关闭数据库的方式是相同的,而这种方式也就相当于在数据库中执行“SHUTDOWN ABORT”是一样的。
作为生产环境,出现shutdown abort这种方式关闭数据库,势必有可能出现事务未处理完而出现数据不一致的现象,所以,在生产环境中,除非你确认没有任何应用连接且数据库事务处理完毕才能使用,否则,千万不要使用。