Lee*_*ain 4 sql-server dbcc dbcc-checkdb sql-server-2017
Microsoft SQL Server 2017 (RTM-CU14-GDR) (KB4494352) - 14.0.3103.1 (X64) 2019 年 3 月 22 日 22:33:11 版权所有 (C) 2017 Microsoft Corporation Developer Edition(64 位),Windows Server 2016(数据中心 10.0)内部版本 14393:)(管理程序)
我的生产服务器在 SQL 代理作业中执行这些命令以将结果输出到我的管理数据库中的表:
DECLARE @SQL VARCHAR(MAX) = 'master..xp_cmdshell ''SQLCMD -E -Q"DBCC CHECKDB('+@Database+') WITH NO_INFOMSGS, ALL_ERRORMSGS"'''; -- If all is well, there will be no output.
INSERT INTO DBCC_CHECKDB_Results EXEC(@SQL);
Run Code Online (Sandbox Code Playgroud)
昨晚,输出一行信息,作业停止执行,作业历史记录中没有显示错误。一行信息是:
“Sqlcmd:警告:上次操作已终止,因为用户按下了 CTRL+C。”
这怎么可能?周日晚上 10:00,没有人登录到服务器。CTRL+C不在命令行中。
作为测试,我执行了此命令,并在执行时键入CTRL+C::
USE ARC
DBCC CHECKDB WITH NO_INFOMSGS, ALL_ERRORMSGS:
Nothing happened.
Run Code Online (Sandbox Code Playgroud)
关于什么会导致该输出行的任何想法?
谢谢,李
您看到的错误消息:
Sqlcmd:警告:由于用户按下了 CTRL+C,上次操作已终止。
当 sqlcmd 在等待来自 SQL Server 的响应时被要求退出时发生。很可能是某人(或某物)杀死了运行 SQLCMD.exe 的衍生 cmd.exe 进程,这导致该错误消息被定向到 SQL Server 错误日志。
DBCC CHECKDB您应该简单地设置一个标准的 T-SQL 作业步骤来DBCC CHECKDB直接运行命令,而不是使用 SQLCMD 来执行。
或者,运行Ola Hallengren 出色的免费和开源维护解决方案,或其他无数可用的解决方案之一。
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |