oracle 12c rac关闭pdb出现ORA-01155异常
今天想关闭部署在windows 2012 r2环境下oracle 12c 双节点rac中的节点2里的一个pdb: 通过cmd执行sqlplus命令: SQL>alter pluggable database scmdb close; 一直卡在这里,过了很久都没响应,通过查看告警日志也没发现什么提示: Wed Apr 26 09:23:24 2017 于是,直接终止了关闭。 突然,一种不详的预感从我脑中闪过:这个pdb肯定出问题了! 于是,通过 SQL>show pdbs; 看到scmdb的状态为READ WRITE,但是 SQL> alter session set container=scmdb; 出现了ORA-01155错误…… 好吧,果然不出我所料。。。 遇到这种情况怎么办?而且之前也没遇到过 没错,我先查看了官方的说明: ORA-01155: the database is being opened,closed,mounted or dismounted 额,Oracle官方建议我们静观其变,或者是SHUTDOWN ABORT。 因为不知道要什么时候才能完成,而且急于测试,所以我选择了SHUTDOWN ABORT,然并卵…… 为什么会没用呢?我在这里找到了答案 Oracle 12c 多租户:PDB 支持 abort 关闭么?后面我还进行了各种尝试,例如 SQL> select sid,SERIAL#,con_id from v$session where con_id=5;SID SERIAL# CON_ID ---------- ---------- ---------- 1980 31763 5 2130 2312 5 (出现异常的pdb的id为5) SQL> alter system kill session '1980,31763'; 系统已更改。 SQL> SQL> alter system kill session '2130,2312'; alter system kill session '2130,2312' * 第 1 行出现错误: ORA-00031: 标记要终止的会话 还是不起作用,就这样,时间一分一秒的过去…… 后来,我在不经意间再次执行了 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB MOUNTED 4 PTMSDB READ WRITE NO 5 SCMDB READ WRITE NO SQL> SQL> alter session set container=scmdb; 会话已更改。 居然可以切换了,也就是说scmdb恢复正常了! 事出有因,我立马查看日志,发现以下信息: Wed Apr 26 10:23:25 2017 Active process user '' program 'PSEUDO' SHUTDOWN: Active sessions prevent database close operation Shutdown did not complete in 60 minutes ORA-1013 signalled during: alter pluggable database scmdb close... opidcl aborting process unknown ospid (22344) as a result of ORA-28 雨过天晴,操作超时,关闭被取消了。这也印证了官方的建议:等。 现在有个新问题:这个60分钟是默认的吗?能否修改? 答案待续…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |