举个例子
创新互联公司成立于2013年,我们提供高端成都网站建设、重庆网站制作、成都网站设计、网站定制、成都营销网站建设、微信小程序、微信公众号开发、成都网站推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为发电机回收企业提供源源不断的流量和订单咨询。
通过session id (SID) 找到系统进程号 然后kill 进程
SQL select spid from v$process where addr=(select paddr from v$session where rownum=1 and sid=(select userenv('SID') from dual));
SPID
------------------------
12135
spid 系统进程号
SQL ho kill -9 12135
kill 掉这个进程 就完了
SQL select sysdate from dual;
select sysdate from dual
*
第 1 行出现错误:
ORA-03135: 连接失去联系
进程 ID: 12135
会话 ID: 65 序列号: 19533
在Oracle数据库中,经常会产生一些inactive的会话,但是仍然连接到数据库,一般情况下,我们可以使用alter system kill session 'sid,serial#'; 来强制杀掉他,但是如果我们有大量的这种进程,要手动一个一个去杀掉,是比较麻烦的。
下面有个方法,可以迅速的杀掉这些进程。
SELECT 'ALTER SYSTEM DISCONNECT SESSION ''' || B.SID || ',' || B.SERIAL# ||
'''IMMEDIATE;'
FROM V$LOCKED_OBJECT A, V$SESSION B, DBA_OBJECTS C
WHERE B.SID = A.SESSION_ID
估计你SQL 拼接错了吧,建议打印一下;
我的测试过程;
--新建一个会话窗口,挂起一个会话;
SQL create table test(col varchar2(20));
Table created
SQL insert into test values('test');
1 row inserted
--再新建一个会话窗口,杀掉锁定test表的会话
SQL declare
2 begin
3 for vref in (select t.sid, t.serial#
4 from v$session t
5 where sid in
6 (select sid
7 from v$lock
8 where id1 in
9 (select object_id
10 from user_objects t
11 where object_name = upper('test')))) loop
12 execute immediate 'alter system kill session ''' || vref.sid || ',' ||
13 vref.serial# || '''';
14 end loop;
15 end;
16 /
PL/SQL procedure successfully completed
SQL
SQL select t.sid, t.serial#
2 from v$session t
3 where sid in
4 (select sid
5 from v$lock
6 where id1 in
7 (select object_id
8 from user_objects t
9 where object_name = upper('test')))
10 /
SID SERIAL#
---------- ----------
SQL
pg停止压缩表有三种模式:smart 模式:会等待活动的事务提交结束,并等待客户端主动断开连接之后关闭数据库服务
fast 模式:会回滚所有的活动的事务,并强制断开客户端的连接然后关闭数据库(默认就是使用fast 相当于oracle 中的 immediate模式关闭)
immediate 模式: 会立即终止所有服务器进程,当下一次数据库启动的时候会首先进入恢复状态( 相当于使用 kill 工具杀死进程[此方式不会干净的关闭数据库且会造成数据丢失] )
终止进程并不能结束备份,需要结束备份对应的job;
1、查看备份job
select job_name,state from dba_datapump_jobs;
2、在退出导出监视界面后,可以通过下面语句重新打开expdp界面
Expdp system/test ATTACH=system.export_job10 --第一步查出的job名称
3、结束job
Export kill_job
你要杀掉的是什么后台进程?
如果是主要进程,比如lgwr,dbwr,ckpt,pmon,mmon,smon等,那么数据库会重起该进程,或者宕机。
如果是连接数据库的进程,比如某个客户端连接数据库所形成的进程,那么一般没什么问题。除非正在进行大数据量的操作,可能会有写影响。