如何修复错误" SQL Server代理自动停止"?

时间:2015-03-28 14:05:13

标签: sql-server-2014

我正在使用SQL Server 2014并遇到问题。

任务管理器中,在服务标签上,我找到 SQLAgent $ VILLBE_SQLSERVER (VILLBE是我的电脑名称),右键单击并启动。

它开始并且......在1秒后停止。

然后,我打开 services.msc 启动 SQL Server代理(VILLBE_SQLSERVER)。它正在工作。

30秒后,它会自动停止。当我再次点击开始时,它说:

The SQL Server Agent (VILLBE_SQLSERVER) service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.

最后,我右键单击 SQL Server代理,选择属性,将启动类型设置为自动,重启我的电脑。

重启后, SQL Server代理仍然已停止

其他一些服务:

SQL Server Browser - Running - Automatic (start up)

SQL Server (SQLEXPRESS) - Cannot start within warning: **Windows could not start the SQL Server (SQLEXPRESS) on Local Computer....error code 17058.**

你能不能给我解决问题?

谢谢!

9 个答案:

答案 0 :(得分:16)

如果您正在运行SQLEXPRESS,则SQLAGENT不会运行。 如果您正在运行SQL2008或SQL2012,可能您更改了SQL SA密码。 您可以将SQL Service身份验证从网络服务更改为本地系统,然后手动启动该服务。

答案 1 :(得分:1)

SQL Server代理必须以本地系统帐户登录。打开服务控制台(启动>运行>键入services.msc)并找到“SQL Server Agent”服务并双击它。转到“登录”选项卡,确保选中“本地系统帐户”。确认后,您应该可以启动此服务。您还可以使用“net start SQLAgent $ SQLEXPRESS”命令。

Start, Stop, or Pause the SQL Server Agent Service

答案 2 :(得分:1)

确保您没有使用快速版,您可以使用setup.exe文件修复SQL服务器,它将解决您的问题。

答案 3 :(得分:0)

我必须让用户运行SQL Server代理服务修改其日志的权限:

C:\Program Files\Microsoft SQL Server\<SERVER NAME>\MSSQL.<INSTANCE NAME>\Log\SQLAGENT.OUT

但是,我也没有使用SQL Express。

答案 4 :(得分:0)

假定您正在尝试安排一些SQL Server自动化,而在解决方案用尽之前,注册自己的用户定义存储过程之一以在每次启动SQL Server实例时自动执行可能是一个有用的解决方法,因为您可以编写您自己的调度循环,只要您的SQL Server服务启动,该循环就可以一直运行。

在这种情况下,您应该知道所有SQL Server版本(包括 Express )提供的系统存储过程名称为 sp_procoption ,注册用于自动启动的存储过程。

allprojects {
configurations.all {

    resolutionStrategy {

        eachDependency { DependencyResolveDetails details ->
            if (details.requested.group == 'com.google.android.gms' && details.requested.name.startsWith('play-services')) {
                details.useVersion("15.0.1")
            }

        }
    }
}

为进一步阅读,我建议检查Armando Prato's excellent articlethis SQL Server Online Book

希望有帮助!

答案 5 :(得分:0)

这可能是原因之一

1。转到SQL Server配置管理器

2。点击左侧面板中的SQL Server服务

3。右键单击“ SQL Server代理”,然后单击右侧的属性。

4。转到服务标签

5。如果已设置手动,则自动更改启动类型

答案 6 :(得分:0)

如果您已经进行了多次升级,那么以前的升级为您提供的SID与您的SQLServerAgent帐户不匹配。 (NT SERVICE \ SQLSERVERAGENT)。 ./MSSQL/LOG文件夹很可能包含当前SQLSERVERAGENT帐户无权读取的文件。我发现您首先修改了文件夹,但是随后修改了每个最新文件以获取许可,或者也许更容易了,只需重新启动即可。

答案 7 :(得分:0)

正如 dvhh 在主要问题中所建议的,您可以查看事件查看器 -> Windows 日志 -> 应用程序 日志。在“SQLAgent$”下,您可能会看到错误。以我正在分析的数据库为例:

<块引用>

SQLServerAgent 无法启动(原因:此 SQL Server Agent 安装被禁用。安装此服务的 SQL Server 版本不支持 SQL Server Agent。)。

答案 8 :(得分:0)

请检查用于启动 sql server 代理的帐户。 在 SSMS 上,转到“对象资源管理器”并在“安全|登录”下搜索帐户。请确保 SQL Server 代理帐户的权限正确。

例如,如果您检查“SQL Server 代理 | 错误日志”下的 SQL 日志,您可能会看到如下错误消息:

"留言 [000] 对象“sp_sqlagent_update_agent_xps”、数据库“msdb”、架构“dbo”上的 EXECUTE 权限被拒绝。 [SQLSTATE 42000](错误 229)"

在这种情况下,向用户授予执行权限将解决问题。 请注意,sql server 标准角色不包括和“执行者角色”。因此,您需要创建一个或提供一个系统管理员角色。

示例Sql Server Agent以“localsystem”开头,提供sysadmin或executor角色登录“NT AUTHORITY\SYSTEM”