重启数据库的一场闹剧

在几周前,某个测试环境在尝试impdp导入dump的时候报了错误,有个DBA立马做了kill session的操作,但是持续了5个小时,session状态还是KILLED,于是他们就在等待session被pmon回收。结果又等了几个小时,还是KILLED状态。
最后两拨DBA在交接的时候把这个问题就说明了一下,另外一个DBA继续尝试impdp就报了下面的错误。

Connected to: Oracle Database
11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP,
Data Mining and Real Application Testing options

ORA-31626: job does not exist

ORA-31637: cannot create job
XXXXXX for user xxxxxx

ORA-06512: at
"SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at
"SYS.KUPV$FT_INT", line 798

ORA-31635: unable to establish
job resource synchronization
看起来还是很微妙的。
等到我受到邮件的时候,客户已经在抱怨了,我连入了环境,想看个究竟。那个session还是KILLED状态。
 SQL> select sid,serial#,status,machine,username from v$session where status='KILLED';
       SID    SERIAL# STATUS   MACHINE                                                          USERNAME
---------- ---------- -------- ---------------------------------------------------------------- ------------------------------
      4182      18078 KILLED   gpnuatndb01                                                      XXXXX07

因为已经做了kill操作,对应的进程已经不好定位了。所以作为一个小教训,自己会在kill session的时候尝试也找到对应的进程号。
从日志来看,其实没有相关的session和出问题的这个用户有关。
SELECT s.username,
      s.sid,
      s.serial#,
      t.used_ublk,
      t.used_urec,
      rs.segment_name,
      r.rssize,
      r.status
FROM  v$transaction t,
      v$session s,
      v$rollstat r,
      dba_rollback_segs rs
WHERE s.saddr = t.ses_addr
AND   t.xidusn = r.usn
AND   rs.segment_id = t.xidusn
ORDER BY t.used_ublk DESC;   

USERNAME                              SID    SERIAL#  USED_UBLK  USED_UREC SEGMENT_NAME                       RSSIZE STATUS
------------------------------ ---------- ---------- ---------- ---------- ------------------------------ ---------- ---------------
                                    11485      16129         16        266 _SYSSMU38_1987388439$             2220032 ONLINE
ABPDB10                              7912      46179          2         14 _SYSSMU83_1638092214$             2220032 ONLINE
ABPAPP6                             10393      35829          2         14 _SYSSMU68_660871585$              2220032 ONLINE
ABPAPP22                            15633      21311          1         14 _SYSSMU16_3995703066$             2220032 ONLINE
ABPAPP2                             11388      34725          1          2 _SYSSMU22_455640068$              2220032 ONLINE
ABPAPP22                             7838      44651          1          2 _SYSSMU31_2604536652$             2220032 ONLINE
ABPAPP6                              9473      16735          1          2 _SYSSMU33_1095900139$             2220032 ONLINE
CHIDB7                               9953      59583          1         14 _SYSSMU35_3472989533$            67231744 ONLINE
ABPAPP8                             12508      55865          1          2 _SYSSMU36_1444610389$             2220032 ONLINE
ABPAPP22                             7277      46993          1          2 _SYSSMU37_1673962577$             2220032 ONLINE
ABPAPP22                             7878      40061          1          2 _SYSSMU41_4063564024$             2220032 ONLINE
ABPAPP2                              7302      58443          1          2 _SYSSMU40_1843747856$             2220032 ONLINE
ABPAPP2                             12519      28683          1          2 _SYSSMU45_779001323$              2220032 ONLINE
ABPAPP2                              8380      65241          1         14 _SYSSMU47_1833818776$             2220032 ONLINE
ABPAPP8                              9973      44481          1          2 _SYSSMU52_429211313$              2220032 ONLINE
所以从这个角度来看,其实后台并没有在持续回滚,应该是系统级的进程还没有释放导致了数据库端标记为了KILLED,但是没有实际采取行动。
查看alert日志也没有什么特别之处。
但是过了一会,突然发现多出来很多的日志,最关键的是数据库怎么突然down了,日志和pmon也有一定的关系。
Archived Log entry 1037518 added for thread 1 sequence 1037564 ID 0xd5242bc1 dest 1:
Tue May 26 10:41:25 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:42:26 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:44:06 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:45:06 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:46:46 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:47:12 2015
Thread 1 cannot allocate new log, sequence 1037566
Checkpoint not complete
  Current log# 3 seq# 1037565 mem# 0: /oravl02/oradata/UATDB1/redo_g3_m1.dbf
  Current log# 3 seq# 1037565 mem# 1: /oravl03/oradata/UATDB1/redo_g3_m2.dbf
Tue May 26 10:47:13 2015
Completed checkpoint up to RBA [0xfd4fb.2.10], SCN: 13552283008295
Beginning log switch checkpoint up to RBA [0xfd4fe.2.10], SCN: 13552283030199
Thread 1 advanced to log sequence 1037566 (LGWR switch)
  Current log# 4 seq# 1037566 mem# 0: /oravl02/oradata/UATDB1/redo_g4_m1.dbf
  Current log# 4 seq# 1037566 mem# 1: /oravl03/oradata/UATDB1/redo_g4_m2.dbf
Tue May 26 10:47:13 2015
Archived Log entry 1037519 added for thread 1 sequence 1037565 ID 0xd5242bc1 dest 1:
Tue May 26 10:47:46 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:48:05 2015
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Tue May 26 10:48:06 2015
Completed checkpoint up to RBA [0xfd4fe.2.10], SCN: 13552283030199
Completed checkpoint up to RBA [0xfd4fd.2.10], SCN: 13552283023016
Completed checkpoint up to RBA [0xfd4fc.2.10], SCN: 13552283015563
Stopping background process QMNC
Tue May 26 10:49:16 2015
PMON failed to acquire latch, see PMON dump
Tue May 26 10:50:16 2015
PMON failed to acquire latch, see PMON dump
因为当时是早班时间,也没多想,正在琢磨是不是什么bug导致的宕机,简单收集完信息,就是尽快把数据库给启动起来。
启动的时候也报错了。当时就有些凌乱了。
SQL> startup mount
ORACLE instance started.
Total System Global Area 1.2727E+10 bytes
Fixed Size                  2280384 bytes
Variable Size            1.0855E+10 bytes
Database Buffers         1577058304 bytes
Redo Buffers              292958208 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00450: background process 'QMNC' did not start
ORA-00443: background process "QMNC" did not start
Process ID: 47857
Session ID: 10341 Serial number: 3

赶紧去查看日志,有些疑惑的是,数据库怎么启动起来了。我用sqlplus反复尝试都没有问题。真是奇怪。
对于这种问题还是相信日志,我去找对应时间点的日志,从日志来看
数据库似乎是使用了shutdown immediate的方式停掉的。有可能是人为的。

Tue May 26 10:48:05 2015

Shutting down instance (immediate)

Stopping background process SMCO

我发送了封邮件抄给组内去确认,还没有得到消息。
然后继续查看日志,看到后面又启动了两次,一次启动失败,一次启动成功,但是我只启动了一次啊。
最后得到确认,是另外一个远在菲律宾的dba启动的,但是事先没有发送邮件。这样问题就清楚了,但是也算是大清早的一场闹剧。2个人同时在启动数据库,最后也没有造成什么影响,可见oracle还是很健壮的,对于启库的并发都考虑了。:)
这个案例带给我们的其实就是在清理session的时候,最好还是先绑定一下系统级操作进程,然后再清除,这样也会给自己带来很多便利,清除完成后,做一个确认检查,可能session通过kill方式不一定能释放系统进程资源,这个时候在判断没有回滚事务的前提下,
可以采用手工清理系统进程号的方式来完成。
至于启库的闹剧还是完全可以避免的,还是协调的时候出了点问题。

时间: 2024-07-29 07:22:06

重启数据库的一场闹剧的相关文章

21岁女孩发微博直播割腕后被证实为一场闹剧

这是一条模糊而又人命关天的网络报警. 5月16日凌晨0时许,有 网友向萧山警方报案,一名女子在微博上说要直播割腕自杀,并配有"五分钟一刀,开个房间玩自残"的文字说明. 接警后,萧山警方立刻出动 大量民警搜索. 1小时后,当民警找到自杀女孩时,她却好好地在宾馆房间里"玩抑郁". 女孩假意轻生 发微博惊动警方 网友向警方报案时,只提供了微博上的内容,却提供不出任何有效信息.接警后,萧山警方很快找到报警人所说的微博账号,上面 的确发布有关于割腕自残的图片. 通过向&quo

运营商联手打车软件注定只是场闹剧?

移动互联网的魔力,不仅让我们体验到科幻片中的种种科幻场景,更颠覆了诸多行业,甚至还打破根深蒂固的观念和态势.在移动互联网飞速发展的过程中,深受影响的无疑是基础运营商.以往在国内居于垄断地位的运营商,再也不能"吆五喝六"地把互联网企业.从业人员玩得团团转.更不可能凭借一纸通知,就扭转自己所处的不利位置.如今,运营商更多的是使用"怀柔政策",与互联网企业进行合作. 近日,运营商就开始联手打车软件.这场合作最大亮点,就是运营商开始与互联网企业坐在平等的位置,甚至付出更多.

反盗版联盟的这场闹剧也该结束了吧

中介交易 SEO诊断 淘宝客 云主机 技术大厅 这已经成为了一场闹剧,谁都无法否定这个事实!而以搜狐为首的反盗版联盟上演这场闹剧的目的无非是想让自己在这场视频大战中分得一杯羹,而从目前结果来看,不但这杯羹没有得到,反而让双方都陷入了这场无休止的争斗中! 众所周知的事实是,音乐及视频的版权问题一直都是互联网从业者的症结所在,在web2.0还没有蓬勃发展的昨天,百度就经常深陷音乐版权的官司,而最终的解决方法从目前双方的利益所得来看,也不是那么的和谐,音乐公司只能从百度方面分得较少的版权费用,而至于其

服务器增加内存后无法重启数据库的问题及解决

前几天生产环境需要做服务器的扩容,把原本64G的内存扩到了128G.然后调整了一些其他的kernel参数,在此基础上需要调整sga的大小,以便分配更多的缓存. 环境是11gR2的RAC环境,这时候rac有一个明显的优点就显现出来了,就是没有downtime.一个实例一个实例的改动,调整kernel,db参数都很方便管理. 所在的每个服务器只有一个oracle_home,各有两套rac环境在同一个unix账户下.所以我启停数据库的时候也是一套环境一套环境的来.反正节点也不多. 我先是按照要求把sg

百度“有啊”是否会是一场闹剧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 百度终于"有啊"了,在大家的意料之中,9201.html">互联网世界中,百度一惯喜欢横插一杠的本性.只是这次,在从发布消息到准备了一年之久之后,有啊终于出来了. 没有太多惊喜,也没有太多新奇,仅仅只是抬出了1.96亿用户这个看似很牛B的数据.百度,一个靠Z---F的帮助打败google的互联网公司,一个搜

关于Oracle中重启数据库的一个bug

关于drop database在oracle中是致命的操作,这个操作自己在测试环境中体验过,会完全删除数据文件,因此这个操作非常敏感但是实用性不强,不过话说过来,这个操作也不是随便就能执行的,除了操作敏感的权限之外,其实还是有一些前提条件的. 在数据库open状态,是无法运行这个命令的.SQL> drop database TEST;drop database TEST              *ERROR at line 1:ORA-00933: SQL command not proper

文学选秀:一场“闹剧”还是“产业动力”?

首届"文学之新"新人选拔赛总决赛落下帷幕--- 本报讯 粉丝团声嘶力竭的尖叫.炫目的红地毯.奢华的晚礼服.残酷的PK.煽情的桥段--昨天下午,记者走进首届"文学之新"新人选拔总决赛的现场以为走错了地方,文学比赛的现场俨然成了时尚派对.由郭敬明等模仿超女等选秀节目打造的文学新人选拔赛昨日经过繁冗的赛制终于决出了总冠军.由王蒙.刘震云.周国平.王海鸰等专业作家组成的评委团在这样的场合里显得有些格格不入.对于这场历时一年多的"文学选秀",评委们褒贬不一

金山卫士开源恐成一场闹剧

金山卫士正式开源了,这是傅盛入主金山安全后的第二把火,第一把火是把金山毒霸完全转向了"功能免费+增值服务"的方向.做法本身本身是好的,也像模像样地构建了项目主页,但是恐怕金山卫士的开源梦很难走得顺利. 首先来分析下金山这么做的动机,首先金山想借助开源这个概念,在舆论和竞争中占据更有利的位置,对于大多数不明真相的群众而言,"开源=免费=靠谱"这一概念还是非常根深蒂固的,不知道那些开源贡献者们对此是否应该高兴:其次,金山想要吸引一批不明真相的开发者义务为金山打工,这种免

央视批百度只是一场闹剧

朋友调侃,如果一个知名企业不出现在CCTV的广告时段,那他们很快出现在"经济半小时". 一语成谶.昨天周一(15日)晚中央二套的经济半小时,竟然见到了久违的百度,笔者的一个感觉是,央视又要拿百度开刀了.自从08年百度遭遇那次央视报道竞价门,据说投了4000万广告费.最近很久没在电视上看到百度了,估计也没投多少广告费,也就难怪再上经济半小时了. 经济半小时这次拿百度的凤巢系统开刀, 曝光的过程与竞价排名如出一辙.从内容看,中国骗子太多,百度淘宝不可避免.这些大互联网公司该反省.另外国家相