阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 关闭(shutdown immediate)时hang住

450次阅读
没有评论

共计 3670 个字符,预计需要花费 10 分钟才能阅读完成。

昨天晚上生产的两套 10.2.0.4 的数据库修改了参数,需要重启。在发出 shutdown immediate 命令后等了大概 10 分钟的时间,数据库还没有 down 下来。检查后台 alert 日志,发现从开始 shutdown 到最后只输出几条日志,其中最后一条日志是:SHUTDOWN: Active processes prevent shutdown operation。

Oracle 关闭 (shutdown immediate) 时 hang 住

图为在虚拟机上还原场景时的截图。

开一个新的会话连接显示已连接,但无法查视图,又提示未连接。再次执行 shutdown immediate 命令得到报错如下:

Oracle 关闭 (shutdown immediate) 时 hang 住

立马百度了一下这个问题,随便点开一个去看,说是因为在 sqlplus / as sysdba 连接的情况下又执行 host 命令导致的。如下图这种情况

Oracle 关闭 (shutdown immediate) 时 hang 住马上想到我这边也是这种情况,赶紧把相应的会话从操作系统中 kill 掉。kill 掉之后,数据库又正常关闭了(这是在虚拟机上的情况)。

在实际的生产中却是,把会话 kill 掉之后又等了几分种,还是没有返应,于是只得强制 shutdown abort 了。好在业务都是提前停了,不过在执行这条命令是还是有些忐忑的,就怕数据库起不来。

在看贴子的时候,作者提到了他在停库前做了切换日志,归档和 checkpoint 的操作来以防万一,我觉得这也是一个可取的地方,以后在停生产库时不应该业务停了就立马停数据库,也应该做这些操作来保护数据。

俗话说祸不单行,真是没错,就在第一个数据库成功重启后,在 shutdown 第二套数据库也 hang 住了,但这次报错与上次还不一样!!!(我的小心脏啊。。)

alert 输出信息如下:

Oracle 关闭 (shutdown immediate) 时 hang 住

从输出信息可以了解到有进行还没有执行完,但业务都已经停了,会是什么进行呢。由于还有其他事情,就没去管是什么进行,就直接 kill 掉了,但数据库还是停不下来啊。

最后还是只得 shutdown abort 了,还是依然的忐忑。最后平安无事。

这个问题最后也没有在虚拟机上模拟出来,始终不知道是什么。

总结一下:

1、自己给自己挖坑的滋味真是不好受啊。

2、关闭数据库前做一些切换日志文件、归档和 checkpoint 的操作,来保证数据的安全性

3、关闭数据库前一定做好检查,是否有未解决的事务、JOB、或其他进程,避免出现类似第二种的情况

4、要有一颗强大的内心,相信自己:)

 

事后在 MOS 上查到了一些相关信息:

MOS 文档

Troubleshooting Shutdown Immediate/Normal Hanging Issues (文档 ID 1906014.1)

列举四种 shutdown Hang 的情况。

第一种情况的原因和给出的解决方案

Shutdown Immediate Hangs / Active Processes Prevent Shutdown (文档 ID 416658.1)

 

CAUSE

This is not a bug.

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’.

Current database sessions may show:

SQL> select SID, USERNAME, PROGRAM from v$session;
SID  USERNAME              PROGRAM
—– ———————- ———————————-
  243 SYSTEM                SQL Developer
  246 SYSMAN                OMS
  247                        Oracle@lgiora09 (q001)
  248                        oracle@lgiora09 (q000)
  251 DBSNMP                emagent@lgiora09 (TNS V1-V3)
  252 SYSMAN                OMS
  253 SYSMAN                OMS
  254 DBSNMP                emagent@lgiora09 (TNS V1-V3)
  255 SYSTEM                java.exe
  256 SYSMAN                OMS

Clearly OMS and OEM are connected (Oracle Enterprise Manager Grid Control or DBConsole) via users SYSMAN and DBSNMP.
These sessions should be de-activated (that is to log off any OEM, OMS, SYSMAN and DBSNMP) before the shutdown immediate is attempted.

Oracle Enterprise Manager, Grid Control, Dbconsole and agents keep doing internal processing.
This may include a few PLSQL notification procedures running on the database by database control like
BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END;

As per internal documentation of the shutdown immediate, if there are active calls then it would wait for all the active calls to finish.

SOLUTION

To implement the solution:

1. Given OEM connections are active (SYSMAN and DBSNMP), de-activate these sessions, i.e. by stopping the agent/DBConsole

2. Then shutdown immediate as normal

– OR –

There may be processes still running and holding locks at the time a shutdown is issued. 
Sometimes these are failed jobs or transactions, which are effectively ‘zombies’, which are not able to receive a signal from Oracle. 

If this occurs, the only way to shutdown the database is by doing: 

sql> 
shutdown abort 
startup restrict 
shutdown normal

The startup does any necessary recovery and cleanup, so that a valid cold backup can be taken afterward. 

If this issue occurs frequently, it would be a good practice to see if there are any active user processes running in v$session or v$process before shutting down the instance. 

If the problem persists, and no apparent user processes are active, you can set this event prior to issuing the shutdown command in order to see what is happening. This will dump a systemstate every 5 minutes while shutdown is hanging 

SQL> 
connect / as sysdba 
alter session set events ‘10400 trace name context forever, level 1’; 

Then issue the shutdown command.

3. You can kill the sessions preventing shutdown. Refer: Alert Log: Shutdown Waiting for Active Calls to Complete (Doc ID 1039389.6)

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143228.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3670字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7806778
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...