SHUTDOWN有几个參数能够使用:

SHUTDOWN NORMAL:NORMAL也是默认的子句,运行的条件是

No new connections are allowed after the statement is issued.

Before the database is shut down, the database waits for all currently connectedusers to disconnect from
the database.

下次启动时不须要不论什么实例恢复过程。

SHUTDOWN IMMEDIATE:运行的场景是

To initiate an automated and unattended backup.

When a power shutdown is going to occur soon.

When the database or one of its applications is functioning irregularly and youcannot contact users to ask
them to log off or they are unable to log off.

运行的条件是

No new connections are allowed, nor are new transactions
allowed to be started,after the statement is issued.

Any uncommitted transactions are rolled back. (If long
uncommitted transactionsexist, this method of shutdown might not complete quickly, despite its name.)

Oracle Database does not wait for users currently connected
to the database todisconnect. The database implicitly rolls back active transactions and disconnectsall connected users.

相同地,下次启动时不须要不论什么实例恢复过程。

SHUTDOWN
TRANSACTIONAL
:运行的场景是须要进行例行的实例停止,但首先同意全部活动的交易完毕,运行的条件是

No new connections are allowed, nor are new transactions
allowed to be started,after the statement is issued.

After all transactions have completed, any client still
connected to the instance isdisconnected.

At this point, the instance shuts down just as it would
when a SHUTDOWNIMMEDIATE statement is submitted.

下次启动时不须要不论什么实例恢复过程。

这样的关闭操作不会让client丢失任务,同一时候不要求全部用户退出。

SHUTDOWN
ABORT
:运行的场景是

You need to shut down the database instantaneously (for
example, if you know apower shutdown is going to occur in one minute).

You experience problems when starting a database instance.

运行的条件是

No new connections are allowed, nor are new transactions
allowed to be started,after the statement is issued.

Current client SQL statements being processed by Oracle Database areimmediately terminated.

Uncommitted transactions are not rolled back.

Oracle Database does not wait for users currently connected to the database todisconnect. The database implicitly
disconnects all connected users.

下次启动时将须要实例恢复过程。

能够看出ABORT是一种暴力的关闭,不会隐式地回滚交易,因为仍存在脏块,所下面次启动时须要进行实例恢复。

实验:

1. 运行shutdown normal命令关闭数据库

SQL> shutdown normal

发现提示SHUTDOWN: waiting for logins to complete.

从上面的介绍看,使用shutdown normal的方式关闭数据库,不同意新连接接入,同一时候须要全部已连接的client断开后,才干继续正常关闭。怀疑此处可能存在仍未断开的连接。

使用kill -9 7255仍不起作用。

2. 运行shutdown immediate命令关闭数据库

于是直接CTRL+C中断shutdown
normal,然后使用shutdown immediate命令关闭数据库

SQL>shutdown
immediate

此时提示SHUTDOWN:
Active processes prevent shutdown operation

MOS上有篇文章(416658.1)专门介绍了immediate出现这样的报错的问题,给出的原因是:

“If
the DB Control repository is running on the database target against which shutdown immediate was attempted then an incorrect order of events seems used.You should stop DB Control first to get rid of all connections
between DB Control and the repository database and then shutdown the database with 'shutdown immediate'.”

意思是说可能DB
Control库正在运行一些事件,须要停止DB Control避免全部DB Control和库之间的连接,然后才干运行shutdown immediate关闭,但这里我没有这样可能的操作,应该是没有普通用户未运行exit的场景,想一想,原来之前使用SYS登录后用过host切换到OS下,但并未切回退出,因此可能因为这种问题,导致shutdown immediate出现hang的情况

3.
运行shutdown abort命令关闭数据库

依照MOS的说法,使用

SQL>
shutdown abort   直接关闭

SQL>
startup restrict     同意具有restrict session权限的用户才干登陆,换句话,避免用户再登陆导致无法正常关闭

SQL>
shutdown normal 运行normal正常关闭

此时一切都安静了。

总结

1.
非到万不得已尽量不要使用ABORT,谁知道会出现什么诡异的事情。

2.
运行关闭前,建议断开全部使用SYS连接的会话,特别是使用host切换OS的连接,可能会不注意,这点是教训。

最新文章

  1. 今天再给大家带点html5前端开发的干货模板“text/tpl”怎么用 script template怎么用
  2. Web 播放声音(AMR 、WAVE)
  3. join 和 union 区别
  4. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
  5. Lua中实现队列(高效方式)
  6. jQuery 遍历祖先
  7. 搜索Collections元素,用DateFormatSymbols 获得月份
  8. font-face 使用
  9. 开销是有益的:AppCan 至HTML5移动创新和创业精神和健康
  10. 浏览器兼容问题 chrome iframe location href
  11. [BZOJ 2500]幸福的道路 树形dp+单调队列+二分答案
  12. RecyclerView用法
  13. Android中获取文件路径的方法总结及对照
  14. 论文笔记:Deep Residual Learning
  15. 【未解决】对于使用Windows的IDEA进行编译的文件,但无法在Linux系统中统计代码行数的疑问
  16. 加速JDBC的快捷方法
  17. java注解自定义使用
  18. linux下c语言获取当前时间
  19. Python小白学习之路(十二)—【前向引用】【风湿理论】
  20. Low Power之CPF/UPF

热门文章

  1. OpenCL 查看设备信息
  2. HDU 1016 Prime Ring Problem 题解
  3. adt-bundle更新eclipse,以及搭建android环境
  4. Codeforces 4A-Watermelon(意甲冠军)
  5. hibernate得知——Set设置配置
  6. 经常使用vi编辑命令
  7. php将中文插入数据库出现乱码
  8. Learning Cocos2d-x for WP8(3)——文字篇
  9. Java虚拟机几个命令行参数说明
  10. css 实现table 隔行变色