zoukankan      html  css  js  c++  java
  • SQL Server 关于kill state

    产品数据库的环境是: Microsoft SQL Server 2017(14.x),有一个ETL运行失败,从系统中查看到错误消息是:

    Cannot continue the execution because the session is in the kill state.

    从错误消息中推测,应该是有人执行kill命令主动结束了一个session。SQL Server的错误日志(error log)中应该包含 kill session的详细信息,可以通过执行以下命令得到执行kill命令的主机名称和进程ID:

    EXEC xp_readerrorlog 0, 1, N'kill', NULL, NULL, NULL, N'DESC'

    但是,出现这种错误,有可能不是执行kill命令,因此,从errorlog中并不会得到任何关于kill的信息,有可能是数据库的表结构或索引结构出现崩溃(corruption )导致的。

    如果是聚集的索引结构出现崩溃,在创建非聚集索引的时候,就可能发生该错误,这需要执行DBCC CHECKDB 命令来检查数据库的完整性:

    DBCC CHECKDB (database_name)
    DBCC CHECKCATALOG (database_name)

    而修复错误,通常需要执行以下几个命令:

    DBCC CHECKDB (database_name, REPAIR_FAST) -- quick fix
    DBCC CHECKDB (database_name, REPAIR_REBUILD) -- reset index
    DBCC CHECKDB (database_name, REPAIR_ALLOW_DATA_LOSS) -- Allows correction of missing data
    DBCC CHECKALLOC (database_name, REPAIR_REBUILD) -- Fixed allocation problem
    DBCC DBREINDEX (database_name, REPAIR_REBUILD) -- fix index problem

    参考文档:

  • 相关阅读:
    2017-2018-1 20155218 《信息安全系统设计基础》第十一周学习总结
    # 课堂测试(CH6)20155218
    Elasticsearch6.0 IKAnalysis分词使用
    ELK6.0环境搭建及配置
    使用PHP抓取网站ico图标
    centos下apache+mysql+php安装及配置
    PHP的(Thread Safe与Non Thread Safe)
    作业九
    附加题
    作业八
  • 原文地址:https://www.cnblogs.com/ljhdo/p/13925900.html
Copyright © 2011-2022 走看看