前段时间一生产库上的EM出现问题,采用EMCA重建,结果引发了一次事故。
用EMCA重建OEM时,导致数据库挂起,DB一直处于quiescing状态,除了使用sys和system新的连接无法建立。在生产数据库上重建EM还是具有危险性的,这一点以前没有意识到,因为每一次都很顺利,但这一次真实遇到问题。
用EMCA重建repository之前,实际上每次都会警告,在repository被删除的时候数据库会被置于静默状态。
———————————————————————-
WARNING : While repository is dropped the database will be put in quiesce mode.
———————————————————————-
Do you wish to continue? [yes(Y)/no(N)]: Y
这个时候如果查询v$instance,会发现db一直处于quiescing状态
select status,active_state from v$instance;
使用上面的SQL进入静默状态时,数据库会等待所有非DBA用户session结束,并不允许非DBA用户建立新的session,在这个过程中,v$instance会一直显示quiescing,在进入静默状态后会显示quiesced:
alter system quiesce restricted;
下面的语句离开静默状态:
alter system unquiesce;
Metalink文档152819.1提供了一个SQL用来查询是那个session阻止了DB进入静默状态。具体内容如下:
select p.spid, s.osuser, s.machine, s.username, s.sid, s.serial#
from v$session s, v$process p
where p.addr = s.paddr
and s.sid in (select sid from v$lock where type = ‘TX’);
用EMCA重建repository之前,实际上每次都会警告,在repository被删除的时候数据库会被置于静默状态。
———————————————————————-
WARNING : While repository is dropped the database will be put in quiesce mode.
———————————————————————-
Do you wish to continue? [yes(Y)/no(N)]: Y
这个时候如果查询v$instance,会发现db一直处于quiescing状态
select status,active_state from v$instance;
使用上面的SQL进入静默状态时,数据库会等待所有非DBA用户session结束,并不允许非DBA用户建立新的session,在这个过程中,v$instance会一直显示quiescing,在进入静默状态后会显示quiesced:
alter system quiesce restricted;
下面的语句离开静默状态:
alter system unquiesce;
Metalink文档152819.1提供了一个SQL用来查询是那个session阻止了DB进入静默状态。具体内容如下:
select p.spid, s.osuser, s.machine, s.username, s.sid, s.serial#
from v$session s, v$process p
where p.addr = s.paddr
and s.sid in (select sid from v$lock where type = ‘TX’);
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4555/viewspace-711913/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4555/viewspace-711913/