你是用的SQLSERVER数据库吗?在SQLSERVER2008里面有个活动监视器,
快捷键Ctrl+Alt+A,
可以看到 *** 作的状态以及进程ID,看到哪个占用时间太久,可以把它kill掉。
最简便方法把数据库及SAP重启就可以了. 由于交换机掉电,做成CLUSTER的生产系统里有很多死了的DIA进程,如何才能CANCEL掉这些进程 呢? 用SM50里的END SESSION 没有反应!
如果想正常关闭,那么最好是:先手动断开所有数据库连接(外部链接,比如访问等),关闭监听(防止再次产生外部链接),然后杀掉所有正在执行的数据库进程(数据库内部的一些,比如正在执行的执行计划等,主进程别杀啊),然后关闭外围服务,最后再用immediate关闭数据库。这样能快一些,而且相对而言数据库会正常,不会因为断开外部链接,等待进程结束等问题等待时间超长。,当然也只是快一些而已,如果数据库很大,那么还是会很慢。
其他的shutdown abort,也是一个关闭数据库的方法,不过oracle本身也不推荐,因为每次abort后数据库可能会有这样那样的问题。
再baoli一些的,就是直接关机器,关电源了。
锁表查询的代码有以下的形式:
select count() from v$locked_object;
select from v$locked_object;
查看哪个表被锁
select bowner,bobject_name,asession_id,alocked_modefrom v$locked_object a,dba_objects b
where bobject_id = aobject_id;
查看是哪个session引起的
select busername,bsid,bserial#,logon_timefrom v$locked_object a,v$session b
where asession_id = bsid order by blogon_time;
杀掉对应进程
执行命令:alter system kill session'1025,41';
其中1025为sid,41为serial#
查看锁表进程SQL语句1:
select sesssid,
sessserial#,
looracle_username,
loos_user_name,
aoobject_name,
lolocked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where aoobject_id = loobject_id and losession_id = sesssid;
查看锁表进程SQL语句2:
select from v$session t1, v$locked_object t2 where t1sid = t2SESSION_ID;
杀掉锁表进程:
如有记录则表示有lock,记录下SID和serial# ,将记录的ID替换下面的738,1429,即可解除LOCK
alter system kill session '738,1429';
以上就是关于sqlserver kill掉进程后数据会丢失吗如何恢复丢失的数据全部的内容,包括:sqlserver kill掉进程后数据会丢失吗如何恢复丢失的数据、求助:如何杀掉死了的SAP DIA进程、oracle如何快速关闭数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)