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

    参考文档:

  • 相关阅读:
    BNU 51002 BQG's Complexity Analysis
    BNU OJ 51003 BQG's Confusing Sequence
    BNU OJ 51000 BQG's Random String
    BNU OJ 50999 BQG's Approaching Deadline
    BNU OJ 50998 BQG's Messy Code
    BNU OJ 50997 BQG's Programming Contest
    CodeForces 609D Gadgets for dollars and pounds
    CodeForces 609C Load Balancing
    CodeForces 609B The Best Gift
    CodeForces 609A USB Flash Drives
  • 原文地址:https://www.cnblogs.com/ljhdo/p/13925900.html
Copyright © 2011-2022 走看看