oracle关闭rs,Oracle 关闭(shutdown immediate)时hang住

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

e950732414504268593b1c2ec3e4aae3.png

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

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

419522ee535507f73f563d8c9569c857.png

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

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

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

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

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

alert输出信息如下:

4bc1b9ebcbf283da1437b4fd0f07060e.png

从输出信息可以了解到有进行还没有执行完,但业务都已经停了,会是什么进行呢。由于还有其他事情,就没去管是什么进行,就直接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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web大作业介绍自己的家乡_襄阳市恒大名都小学2018—2019年度寒假实践作业

亲爱的同学们: 经过一个学期的成长,我们带着满满的收获开启了期盼已久的寒假生活。那么如何让这个寒假生活变得多姿多彩,充满意义呢?为了让我们度过一个健康、愉快、长知识、增才干,获得幸福感的寒假,…

JAVA入门级教学之(方法重写/方法重载)

方法重写: package com.lbj.javase10;public class Bird extends Animal {public void move(){System.out.println("鸟会飞");} }package com.lbj.javase10;public class Cat extends Animal{public void move(){System.out.println("猫会爬")…

oracle 异常返回值,oracle - java.sql.SQLException:无效的列类型:调用具有行类型返回值的函数时为1111 - 堆栈内存溢出...

我在一个名为“ MyPackage”的Oracle软件包中有一个函数:FUNCTION MyFunction(name IN VARCHAR2) RETURN MyTable%rowtype;我正在尝试通过JDBC调用它。CallableStatement cs connection.prepareCall("{ ? call MyPackage.MyFunction(?) }");cs.regist…

台式电脑键盘按键错乱_收藏篇:电脑键盘上的每个按键的作用和命令你都会用么...

办公,家用,设计,游戏等等都了解电脑键盘上的全部功能么?F1帮助F2改名F3搜索F4地址F5刷新F6切换F10菜单CTRLA全选CTRLC复制CTRLX剪切CTRLV粘贴CTRLZ撤消CTRLO打开SHIFTDelete永久删除Delete删除ALTENTER属性ALTF4关闭CTRLF4关闭ALT…

docker 安装 oracle12,Centos7下利用docker安装oracle12c

实战在windows局域网下可以进行连接,并执行sql语句:执行结果具体的步骤如下:1、在centos7下安装docker[rootlocalhost /]# yum install docker2、启动docker[rootlocalhost /]# systemctl start docker.service3、查找docker镜像可以在docker…

JAVA入门级教学之(多态)

JAVA入门级教学之(多态) 怎么理解多态:你本身就该喊你爹叫爹,你让你爹叫你爹就是强制认做爹 多态的使用: A a new D(); D类继承A类,父类型引用指向子类型对象 * 关于java语言汇总的多态语法机制&#x…

beanutils.copyproperties属性值丢失_[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问...

今天的干货长驱直入,直奔主题看了前文的同学们应该都知道,搜狗、360等浏览器在单点登录中反复重定向,最终失败报错。原因在于,非Chrome80浏览器不识别Cookie上的SameSitenone属性值,导致认证Cookie在后续请求中被抛弃。截至2020/3…

JAVA入门级教学之(final关键字)

不希望任何人可以随意修改自己的东西的时候可以用final关键字进行修饰 * 1.final是一个关键字,表示最终的,不可变的 * * 2.final修饰的类无法被继承 * * 3.final修饰的方法无法被覆盖 * * 4.final修饰的变量一旦被赋值后,不可重新赋…

fopen吃内存吗 php,file_get_contents = PHP致命错误:允许的内存耗尽

我没有处理大文件的经验,所以我不确定该怎么办。我试图使用 file_get_contents 读取几个大文件;任务是使用preg_replace() 清洁和修补它们。我的代码在小文件上运行良好;但是,大文件(40 MB)触发内存耗尽错误:PHP Fatal…

倒计时小工具_这款高颜值的 APP 可以让小仙女/男神们的日子过得更精致

倒计时是大家平常都会用的功能,系统自带的工具或许也能满足一部分朋友的需求,但是对于生活精致,并且富有仪式感的小仙女和小男神们,一款普普通通的计时工具怎么能满足呢?今天推荐的这款应用——小时刻( App Store 搜索…

oracle 删除系统用户,Oracle数据库如何创建和删除用户

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼1. 创建用户:SQL> create user user01 identified by user01;User created.但登录提示01045的错误,缺少CREATE SESSION权限。ERROR:ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denie…

asp单元格合并后宽度没有合并_宅在家里跟着大牛从零开始学excel第五课-合并,边框,列宽行高...

接着上一课,我们制作的课程表,有人说了不好看,确实,我们就来补充和美化一下。首先我们要更改的就是字体,字体改成下图,字体大小选为18,样子就好看了很多了。仔细看上图,还却一点东西…

JAVA入门级教学之(package和import)

目录 JAVA入门级教学之(package和import) 1.包又称为package 2.怎么定义package? 3.包名的命名规范: 4.包名要求全部小写,包名也是标识符,必须遵守标识符的命名规范 5.一个包对应一个目录 6.使用了pa…

oracle数据库中分析函数大全,Oracle数据库的分析函数

over 连续的相加求各部门的薪水总和和全部总和 select name, salary, empsum(salary) over (order by emp) 连续求和sum(salary) over () 总和100*round(sal/sum(sal) over(), 5) 份额from company;sum() sum over() 求的是总和,sum over (order by ) 求的是连续的…

excel合并多个工作表_多个工作表或者多个工作簿的合并计算

哈喽,everybody,作为一个与excel打交道长达六年的职业老手,我会整理汇总一些十分有利于提高工作效率的小tip。也当作是我为自己知识点做的些许总结吧。今天我们就来聊聊如何快速合并多个工作表或者工作簿的这些事。话不多说,直接上…

JAVA入门级教学之(访问修饰符权限控制)

访问控制权限修饰符: 1.访问控制权限修饰符来控制元素的访问范围 public表示公开的,在任何位置都可以访问protected同包、本类、子类(出了包如果是子类没问题)缺省同包、本类(不能出包)private仅…

access字段属性设置下拉列表_CAD常用命令:ATTDEF(定义属性)

下面是本公众号文章分类目录,点击标题文字可打开分类文章列表:安装卸载 异常、退出 文件及输入输出 基本操作技巧 各种设置及相关问题 界面和显示相关问题 快捷键 视图设置和调整 图层 颜色 线型 字体、文字样式和文字输入 标注、引线和标注…

oracle定义转储目录,Oracle 12.1新特性:在线rename或relocate数据文件

在Oracle12.1之前的版本中要重命名数据文件或移动数据文件需要关闭数据库或把表空间/数据文件置为offline状态才可以,参考之前总结的要实现这一功能需要使用ALTERDATABASEMOVEDATAFILE语句,语法如下ALTER DATABASE MOVE DATAFILE ( filename | ASM_filen…

JAVA入门级教学之(super关键字)

目录 JAVA入门级教学之(super关键字) 1.super关键字用在构造方法中: 2.语法规则: 3.注意:super();的调用只能放在构造方法的第一行,和this();的调用规则一样 4.通过子类的构造方法去调用父类的构造方法…

lwip协议栈在linux运行,LwIP协议栈在uCOS II下的实现

1、概述:LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件、OS、编译器相关的部份独立出来,放在ucosii&LwIPsource etlwiparch目录下。因此LwIP在uCOS II上的实现就是修改这个目录下的文件,其它的文件一般不应该…