我需要快速(和强制)杀死连接到我的oracle数据库的所有外部会话,而无需管理员和管理员.
我不想只是锁定数据库,让用户优雅地退出.
我该如何编写脚本?
这个答案很大程度上受到对话的影响:http://www.tek-tips.com/viewthread.cfm? qid = 1395151& page = 3
ALTER SYSTEM ENABLE RESTRICTED SESSION; begin for x in ( select Sid, Serial#, machine, program from v$session where machine <> 'MyDatabaseServerName' ) loop execute immediate 'Alter System Kill Session '''|| x.Sid || ',' || x.Serial# || ''' IMMEDIATE'; end loop; end;
我跳过了源自数据库服务器的杀戮会话,以避免杀死Oracle与自身的连接.
作为SYS:
startup force;
残酷而优雅.
在杀死会话之前,如果可能的话
ALTER SYSTEM ENABLE RESTRICTED SESSION;
阻止新会话连接.