sqlserver kill掉进程后数据会丢失吗如何恢复丢失的数据

sqlserver kill掉进程后数据会丢失吗如何恢复丢失的数据,第1张

你是用的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_mode

  from v$locked_object a,dba_objects b

  where bobject_id = aobject_id;

查看是哪个session引起的

select busername,bsid,bserial#,logon_time

 from 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如何快速关闭数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9393690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存