iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么解决死锁导致网站无法访问故障
  • 332
分享到

怎么解决死锁导致网站无法访问故障

2024-04-02 19:04:59 332人浏览 安东尼
摘要

这篇文章主要介绍了怎么解决死锁导致网站无法访问故障,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  如何解决死锁导致网站无法访问故障  问题

这篇文章主要介绍了怎么解决死导致网站无法访问故障,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

  如何解决死锁导致网站无法访问故障

  问题:网站访问不了,主机重启之后,网站运行正常。

  解决对策:由于数据库死锁造成。

  死锁原因:

  提取查询数据相应数据,修改Stat表,都是修改同一条数据,进行大数据量的操作,多用户同时操作时,造成数据库死锁和阻塞;

  知识拓展:

  1、sql死锁和阻塞。

  2、死锁测试方法:程序中将数据库操作,循环操作1万次,打开多个窗口同时执行。

  3、查找数据库死锁原因的方法。

  下面的SQL语句运行之后,便可以查找出SQLServer的死锁和阻塞的源头。

use master
  Go
  declare @spid int,@bl int
  DECLARE s_cur CURSOR FOR
  select 0 ,blocked
  from (select * from sysprocesses where blocked>0 ) a
  where not exists(select * from (select * from sysprocesses where blocked>0 ) b
  where a.blocked=spid)
  uNIOn select spid,blocked from sysprocesses where blocked>0
  OPEN s_cur
  FETCH NEXT FROM s_cur INTO @spid,@bl
  WHILE @@FETCH_STATUS = 0
  begin
  if @spid =0

  select '引起数据库死锁的是:

  '+ CAST(@bl AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'

  else

  select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '

  进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'

DBCC INPUTBUFFER (@bl )
  FETCH NEXT FROM s_cur INTO @spid,@bl
  end
  CLOSE s_cur
  DEALLOCATE s_cur
  exec sp_who2

  如何解决死锁导致网站无法访问故障

  4、查看当前进程,或死锁进程,并能自动杀掉死进程:

  处理死锁

  查看当前进程,或死锁进程,并能自动杀掉死进程。因为是针对死的,所以如果有死锁进程,只能查看死锁进程。当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程。

  调用示例:

exec p_lockinfo
  --*/
  create proc p_lockinfo
  @kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示
  @show_spid_if_nolock bit=1 --如果没有死锁的进程,
  是否显示正常进程信息,1 显示,0 不显示
  as
  declare @count int,@s nvarchar(1000),@i int
  select id=identity(int,1,1),标志,
  进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,
  数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu,
  登陆时间=login_time,打开事务数=open_tran, 进程状态=status,
  工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess,
  域名=nt_domain,网卡地址=net_address
  into #t from(
  select 标志='死锁的进程',
  spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,
  status,hostname,program_name,hostprocess,nt_domain,net_address,
  s1=a.spid,s2=0
  from master..sysprocesses a join (
  select blocked from master..sysprocesses group by blocked
  )b on a.spid=b.blocked where a.blocked=0
  union all
  select '|_牺牲品_>',
  spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,
  status,hostname,program_name,hostprocess,nt_domain,net_address,
  s1=blocked,s2=1
  from master..sysprocesses a where blocked<>0
  )a order by s1,s2
  select @count=@@rowcount,@i=1
  if @count=0 and @show_spid_if_nolock=1
  begin
  insert #t
  select 标志='正常的进程',
  spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time,
  open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address
  from master..sysprocesses
  set @count=@@rowcount
  end
  if @count>0
  begin
  create table #t1(id int identity(1,1),a nvarchar(30),
  b Int,EventInfo nvarchar(255))
  if @kill_lock_spid=1
  begin
  declare @spid varchar(10),@标志 varchar(10)
  while @i<=@count

  begin

  select @spid=进程ID,@标志=标志 from #t where id=@i

  insert #t1 exec('dbcc inputbuffer('+@spid+')')

  if @标志='死锁的进程' exec('kill '+@spid)

  set @i=@i+1

  end

  end

  else

  while @i<=@count

  begin

  select @s='dbcc inputbuffer('+cast(进程ID as varchar)+')'

  from #t where id=@i

  insert #t1 exec(@s)

  set @i=@i+1

  end

  select a.*,进程的SQL语句=b.EventInfo

  from #t a join #t1 b on a.id=b.id

  end

  go

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么解决死锁导致网站无法访问故障”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么解决死锁导致网站无法访问故障

本文链接: https://www.lsjlt.com/news/55175.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么解决死锁导致网站无法访问故障
    这篇文章主要介绍了怎么解决死锁导致网站无法访问故障,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  如何解决死锁导致网站无法访问故障  问题...
    99+
    2022-10-18
  • phpcms后台设置了访问域名后导致网站后台无法访问的解决方法
    为了安全,很多朋友在配置了phpcms后台设置了访问域名(如上图)后导致网站后台无法访问,且出现No permission resources的错误,如下图: 此后就被催的无法操作了。 关于此问题,在进行二级域名设置...
    99+
    2022-06-12
    phpcms后台 访问域名 网站后台无法访问
  • 购买vps无法访问网站怎么解决
    购买vps无法访问网站解决的方法:1、登录vps服务器系统,运行cmd打开命令提示符窗口;2、在命令提示符窗口中输入netsh winsock reset,按回车,然后重启系统即可。具体内容如下:1、登录系统,运行“cmd”,打开“命令提示...
    99+
    2022-10-18
  • 无法访问国外网站空间怎么解决
    1. 检查网络连接:确保你的网络连接正常,尝试重新启动路由器或调整网络设置。2. 更改DNS服务器:尝试更改你的DNS服务器,可以使...
    99+
    2023-06-04
    国外网站空间 国外空间 空间
  • Docker容器导致磁盘空间不足无法访问怎么解决
    今天小编给大家分享一下Docker容器导致磁盘空间不足无法访问怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题:客...
    99+
    2023-06-30
  • 网站ssl证书过期无法访问怎么解决
    如果网站SSL证书过期无法访问,可以尝试以下几个解决方法:1、续期SSL证书如果SSL证书已经过期,需要及时续期证书。可以联系SSL...
    99+
    2023-03-19
    网站ssl证书过期 ssl证书 ssl
  • 如何解决使用Google CDN导致网站页面无法加载的问题
    本篇内容主要讲解“如何解决使用Google CDN导致网站页面无法加载的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决使用Google CDN导致网站页面无法加载的问题”吧!国内网非...
    99+
    2023-06-10
  • Win7怎么修改DNS地址解决网站无法访问的情况
    今天下午三点左右,国内大量网站出现无法访问的情况,导致此问题,是由于中国顶级域名根服务器故障,导致很多域名被错误的解析指向65.49.2.178地址,从而导致大量网站出现问题。尽管目前顶级域名根服务器故障已经恢复,但各地...
    99+
    2023-06-03
    win7 改DNS地址 DNS 地址 情况 网站
  • 云服务器无法访问外网怎么解决
    如果您的云服务器无法访问外网,以下是一些可能的解决方法: 检查网络连接:网络连接是云服务器访问外网时的基础。确保您的网络连接通畅,并且有足够的带宽和防火墙设置。您可以使用网络管理软件或服务提供商提供的网络监视器来检测网络连接。 尝试重启...
    99+
    2023-10-26
    无法访问 服务器
  • 云服务器无法访问外网怎么解决问题
    如果您的云服务器无法访问外网,以下是一些可能的解决方案: 检查网络连接:重启您的计算机和网络线路,确保您连接的网络已重新设置为可用状态。 更新 Windows 或 Mac 操作系统:如果您尝试访问外网,那么您的计算机或 Mac 将会受到...
    99+
    2023-10-26
    解决问题 无法访问 服务器
  • 云服务器无法访问外网怎么解决方法
    如果您的云服务器无法访问外网,通常有以下几种解决方法: 检查您的计算机是否已安装防火墙。防火墙可以检测网络中是否有恶意软件或不明来历的连接。如果您安装了防火墙,您可以尝试关闭它们或更改为其他选项。 检查您的浏览器是否被禁用。有些网站可能...
    99+
    2023-10-26
    解决方法 无法访问 服务器
  • Windows电脑超频导致网卡出现故障解决方法是怎样的
    这篇文章给大家介绍Windows电脑超频导致网卡出现故障解决方法是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。故障现象:朋友的一台电脑,其主要配置为:P4 2.4A CPU、昂达865PEN主板(集成网卡)、两...
    99+
    2023-06-14
  • 云服务器无法访问外网怎么解决呢
    如果您的云服务器无法访问外网,那么可以尝试以下几种解决方法: 检查本地网络连接是否正常:首先可以尝试使用网络设置中的“DHCP服务器”或者“自动获取IP地址”功能,如果您的电脑已经分配了IP地址,则可以尝试使用此功能获取IP地址。 检查...
    99+
    2023-10-26
    无法访问 服务器
  • 云服务器无法访问外网怎么解决问题呢
    检查网络连接 如果云服务器无法访问外网,那么首先需要检查网络连接。可以尝试使用其他设备连接到云服务器,例如网线、路由器或者无线网络。如果仍然无法连接,那么可能是网络配置有误或者网络环境有问题。在这种情况下,需要逐一排查网络配置,并且根...
    99+
    2023-10-28
    解决问题 无法访问 服务器
  • 电脑升级到win8系统后导致浏览器无法访问网页怎么办?
    不少用户在将win8系统升级至win8.1时发现这么一个问题,那就是使用浏览器时经常无法访问网页,借助浏览器的自动修复也同样于事无补。其实出现这个问题是因为win8系统仍旧不够成熟,在某些应用上仍未完善好。...
    99+
    2022-06-04
    升级到 无法访问 浏览器
  • Win10无法访问局域网共享电脑怎么解决
    本篇内容介绍了“Win10无法访问局域网共享电脑怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体操作:按下WIN+S键,在搜索框中...
    99+
    2023-06-27
  • php运行后显示网页无法访问怎么解决
    出现网页无法访问的问题可能是由于多种原因造成的。以下是一些建议的解决方法:1. 检查网络连接:首先确保你的电脑或服务器正常连接到互联...
    99+
    2023-08-19
    php
  • 腾讯云服务器无法访问网页怎么解决
    如果您的腾讯云服务器无法访问网页,可以尝试以下解决方法: 检查您的操作系统和浏览器是否正在运行:尝试清除浏览器中的历史记录、是否启用了某些阻止云端连接的设置或服务。 检查云服务器的设置:确认您的云服务器是否提供了访问您浏览器的权限,例如...
    99+
    2023-10-26
    腾讯 无法访问 服务器
  • 云主机无法访问防火墙内网怎么解决
    如果云主机无法访问防火墙内网,可以尝试以下解决方法:1. 检查防火墙规则:确保防火墙的规则设置正确,包括允许云主机访问内网的规则。检...
    99+
    2023-08-18
    云主机
  • 腾讯云服务器无法访问网页怎么解决问题
    首先,要了解具体的原因。由于服务器故障,造成无法访问网页的可能原因有很多种。例如,服务器的硬件问题、网络故障、内部故障等。这些原因可能导致服务器无法响应用户请求,从而无法访问网页。 针对不同的原因,我们需要采取不同的解决方案。首先,我们需...
    99+
    2023-10-27
    腾讯 解决问题 无法访问
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作