首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

How to log on when SYSDBA can't connect the db

2012-09-19 
How to log on when SYSDBA cant connect the db?有时候应用打电话,数据库已经Hang了,我们以DBA角色去登录

How to log on when SYSDBA can't connect the db?
有时候应用打电话,数据库已经Hang了,我们以DBA角色去登录的时候都无法登录,这时候该怎么办。通常,比如当归档异常,普通用户或者具有DBA角色的用户都无法登录,
这是因为通常当新的session创建一个connection的时候,会产生审计记录,那么就需要更新SEQ$表。那么这时候任何DML都将被阻塞,除非归档异常被解决或者正常。
但是,SYSDBA用户是任然能够登录,这是因为SYSDBA连接在数据库表中不产生审计记录(也就是为什么audit_file_dest目录里面是SYSDBA审计文件被写入的地方)。
但有时候也有BUG,导致SYSDBA无法登录,忽略不论……
正常情况下我们以SYSDBA登录会发生以下情况:
1,建立新的oracle进程。
2,新的oracle进程attache共享内存结构在SGA中。
3,新的oracle进程分配进程和session的状态对象结构以及在SGA中初始化新session。
或许有时候在步骤3中,数据库要分配内存结构,如果某些mutex或者latch异常,就可能导致无法连接,oracle有类似的bug。

下面用这种方式登录:

SQL> shutdown abortORACLE instance shut down.

热点排行