今天整理数据库又遇到一个错误,汗...
不多说了,直接付解决方法:
SELECT A.OWNER,
A.OBJECT_NAME,
B.SESSION_ID,
B.ORACLE_USERNAME,
B.OS_USER_NAME,
B.PROCESS,
B.LOCKED_MODE,
C.SID,
C.SERIAL#,
C.PROGRAM
FROM ALL_OBJECTS A,
V$LOCKED_OBJECT B,
SYS.GV_$SESSION C
WHERE ( A.OBJECT_ID = B.OBJECT_ID )
AND (B.PROCESS = C.PROCESS )
AND A.OBJECT_NAME='TAB_NAME';
然后杀掉这个线程。
alter system kill session 'sid,serial#' immediate;
PS:该错误主要由另一个ORA-03135引起,主要原因为最近局里网络不稳定,如集群中任一主机PUBLIC端口断掉会导致与之绑定的VIP消失,造成假DOWN情况.
据说这种是裂脑(split-brain)现象:裂脑是由于集群中的节点之间无法正常通讯而导致的集群中出现的不一致的现象
如果出现这种情况,Oracle RAC会终止一个实例,来保证集群的一致性.
附:
·servera实例down情况下的自动切换实验:
1.初始状态:两台服务器的oracle实例均运行
$ srvctl status database -d sddzyj
Instance sddzyj1 is running on node ibmsvr1
Instance sddzyj2 is running on node ibmsvr2
2.在客户端PC上连接oracle,连接到实例sddzyj2
SQL> conn sys/oracle @sddzyj as sysdba;
已连接。
SQL> select instance_number,instance_name,host_name from v$instance;
INSTANCE_NUMBER INSTANCE_NAME HOST_NAME
--------------- ---------------------------------------------
2 sddzyj2 ibmsvr2
3.stop ractest2
$ srvctl stop instance -d sddzyj -i sddzyj2
$ srvctl status database -d sddzyj
Instance sddzyj1 is running on node ibmsvr1
Instance sddzyj2 is not running on node ibmsvr2
4.客户端PC的连接自动切换到ractest1,而且不会出现ORA错误
SQL> select instance_number,instance_name,host_name from v$instance;
INSTANCE_NUMBER INSTANCE_NAME HOST_NAME
--------------- ---------------------------------------------
1 sddzyj1 ibmsvr1
·servera的public网线断开时的自动切换实验:
1.初始状态:两台服务器的oracle实例均运行
$ srvctl status database -d sddzyj
Instance sddzyj1 is running on node ibmsvr1
Instance sddzyj2 is running on node ibmsvr2
2.在客户端PC上连接oracle,连接到实例sddzyj2
SQL> conn sys/oracle @sddzyj as sysdba;
已连接。
SQL> select instance_number,instance_name,host_name from v$instance;
INSTANCE_NUMBER INSTANCE_NAME HOST_NAME
--------------- ---------------------------------------------
2 sddzyj2 ibmsvr2
3.断开ibmsvr2的public端口网线,过一会后,ibmsvr2上的oracle实例sddzyj2会down
$ srvctl status database -d sddzyj
Instance sddzyj1 is running on node ibmsvr1
Instance sddzyj2 is not running on node ibmsvr2
4.客户端PC的连接丢失,且不能切换到serverb
SQL> select instance_number,instance_name,host_name from v$instance;
select instance_number,instance_name,host_name from v$instance
*
第 1 行出现错误:
ORA-03135: 连接失去联系
SQL> select instance_number,instance_name,host_name from v$instance;
ERROR:
ORA-03114: 未连接到 ORALCE
最近忙着整理数据库,没时间解决这个问题,先记下来以后再说……-。。-
系统环境及TNS配制在以前帖子里有。。。 |