目前,我正在将服务器从一家公司转移到另一家公司。
他们希望将 SQL Server 安装在服务器上,以便我们清除所有数据库、维护计划和作业。
我正在尝试删除一堆 SQL Server 代理作业,但即使它们被禁用,它们仍处于“空闲”模式,因此在尝试删除它们时会引发以下错误:
删除 Job 失败
job_name.Subplan_1。(Microsoft.SqlServer.Smo)执行 Transact-SQL 语句或批处理时发生异常。(
Microsoft.SqlServer.ConnectionInfo)该
DELETE语句与REFERENCE约束冲突FK_subplan_job_id。数据库“msdb”、表dbo.sysmaintplan_subplans、列中发生冲突job_id。该语句已终止。(Microsoft SQL Server,错误:547)
如何从作业中删除 IDLE 状态以便删除通过?
我有一个 SQL Server 2012 Standard 安装,其中引擎和代理在默认 NT 服务帐户下运行
引擎 - NT 服务\MSSQLSERVER
代理 - NT 服务\SQLSERVERAGENT
我试图让 Ola Hallengrens 备份脚本备份到网络共享,但这证明有点问题。通常我会让引擎和代理在域帐户下运行并授予这些访问网络共享的权限,它会正常工作,但是这是在我之前设置的,无法更改这些。
由于代理和引擎不在域帐户下运行,我试图使用代理来使其正常工作。
我有一个共享\\ComputerName\Folder和一个服务帐户Domain\account.svc。我可以使用该Domain\account.svc帐户浏览和创建文件和文件夹,因此访问似乎正常。但是,当通过代理运行它时,它不起作用。
我做了什么。
Domain\account.svc我在日志文件中得到的错误是
消息 50000,级别 16,状态 1,服务器 [服务器名称],过程 DatabaseBackup,第 457 行
目录 \\ComputerName\Folder 不存在。Msg 50000, Level 16, State 1, Server [SERVER NAME], Procedure DatabaseBackup, Line 740 该文档可在https://ola.hallengren.com/sql-server-backup.html 获得。
这与您通常在代理域帐户无权访问共享时遇到的错误相同。
问题 - 有人可以解释为什么这不起作用。
谢谢。
编辑 1:Domain\account.svc 对共享具有完全控制权,是机器上的本地管理员以及 SQL 中的系统管理员。
编辑 2:在我的桌面上安装了 SQL 的测试实例,并且能够复制该问题。当我将引擎和代理服务帐户更改为在 Domain\account.svc 下运行时,备份成功完成到共享。 …
sql-server permissions sql-server-2012 sql-server-agent ola-hallengren
当我尝试启动 SQL Server 代理时,出现以下错误:
标题:Microsoft SQL Server Management Studio
无法在服务器 NAGA 上启动服务 SQLAGENT$SQL_NAGA。(mscorlib)
附加信息:
NAGA 上的 SQLAGENT$SQL_NAGA 服务启动然后停止。(对象浏览器)
你们能帮我解决这个问题吗?我使用的是 2014 企业版。
使用@@version我得到了这个:
Microsoft SQL Server 2014 - 12.0.4213.0 (X64)
Jun 9 2015 12:06:16
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 10586: )
Run Code Online (Sandbox Code Playgroud)
我还在 Windows 事件日志中发现了这个与 SQL Server 代理相关的错误事件
Log Name: Application
Source: SQLAgent$SQL_NAGA
Date: 1/31/2016 6:17:24 PM
Event ID: 103
Task Category: Service Control
Level: Error
Keywords: Classic
User: N/A
Computer: Naga …Run Code Online (Sandbox Code Playgroud) 当使用 AOHA 集群的 SQL Server 代理调度作业时,是否像您将服务器分开一样使用主目标配置?或者是否有更好的方法将作业分发到所有服务器,以便在主服务器出现故障时其中一个副本可以获取它们?
在尝试在两个 SQL Server 上运行 SSIS 包 SQL Server 代理作业时,我遇到了一些非常顽固的困难,一个在域中,一个不在域中。我在几十个不同的论坛上阅读了数百个帖子,可惜无济于事。应用我发现的修复程序和解决方案(例如,使用代理)只会导致(略微)不同的错误消息。从 Visual Studio 或直接从 SQL Server Management Studio 运行包时,它们按预期执行。
这是我到目前为止所得到的:
运行其步骤作为SQL Server 代理服务帐户运行的作业时,我收到以下错误消息:
以用户身份执行:NT Service\SQLSERVERAGENT。适用于 32 位的 Microsoft (R) SQL Server 执行包实用程序版本 13.0.1601.5 版权所有 (C) 2016 Microsoft。版权所有。开始时间:下午 2:59:44 由于错误 0x80131904,无法执行 IS 服务器包。服务器:172.16.2.107,包路径:\SSISDB\test\test sp …
作为最佳实践,我正在尝试安排一个活动,其中所有 SQL 代理作业都应将输出记录到文本文件中。
手动我可以为单个工作执行此操作。但是我正在通过脚本或任何好的方法寻找更好的方法,我可以为每个服务器大约 80-90 个作业的多个作业进行此更改。
此外,我必须在 QA、UAT 和 prod 中执行此操作,涵盖 100 多台服务器。
请分享您的经验或任何有用的链接,这是如何以最佳方式实现的,因为生成输出的日志文件的路径应该在服务器/作业之间通用。
我在整个企业的许多 SQL 代理作业步骤中都有这个,并且它按预期工作:
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q "EXECUTE MyStoredProc etc..."
Run Code Online (Sandbox Code Playgroud)
但是在我的新 SQL Server 2016 实例上,它只会产生一个命名管道连接错误(这是一个完全的红鲱鱼)。
另一方面,这在我的新服务器上运行良好:
sqlcmd -E -S MyExplicitServerName -d master -Q "EXECUTE MyStoredProc etc..."
Run Code Online (Sandbox Code Playgroud)
为什么 SRVR 令牌不起作用?
如果我在命令提示符下启动 sqlcmd 并告诉它打印$(ESCAPE_SQUOTE(SRVR))它说:
'SRVR' scripting vaiable not defined.
Run Code Online (Sandbox Code Playgroud)
这是一个非常基本的、简单的安装,只有默认实例。
我创建了一个 sql 作业来查询计划缓存并单独获取串行计划,然后从计划缓存中清除它。作为 SQL 作业中第 1 步的一部分,我仅过滤串行计划并将其插入到我创建的表中。当我运行作业时,在第 1 步本身中,我收到以下错误;
INSERT failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations. [SQLSTATE 42000] (Error 1934). The step failed.
Run Code Online (Sandbox Code Playgroud)
我做了研究并了解到这可能是由于 SET 选项。所以我检查了我创建的表,它是用
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Run Code Online (Sandbox Code Playgroud)
我看到有人有同样问题的帖子,并在将上述 SET 选项更改为 ON 后解决了它。我已经有了这个 SET,但仍然是同样的错误。我不知道为什么我会收到这个错误。
我在获取串行计划的查询中有这一行。
WITH XMLNAMESPACES ( 'http://schemas.microsoft.com/sqlserver/2004/07/showplan' …Run Code Online (Sandbox Code Playgroud) 我们有许多由 DBA 拥有的工作。DBA 现在将离开公司,因此他们的帐户将在 Active Directory 中停用。
这会对代理工作产生什么影响?
我有一个 SQL Server 代理作业设置为每分钟运行一次。
通常它正好在时钟的 :00 运行,但偶尔会等待几秒钟。
如下所示,其中一项作业在早上 6 点 32 分被触发运行,但实际上在 9 秒后才开始运行。
我想可能发生这种情况的原因有很多,但我的问题是:有什么方法可以查明导致这种情况的原因(而不是仅仅猜测、进行更改并希望能够解决问题)?
我阅读了这个问题和答案,但这不是我的问题。我确实有其他 SQL Server 代理作业,但在 6:32 没有其他作业在运行,并且也没有其他作业涉及此特定作业中涉及的任何表。当我尝试在该问题的公认答案中运行查询时,它总是导致 0 行数据。