从SQL EXPRESS升级到SQL标准

时间:2016-11-03 17:16:33

标签: sql-server

我将SQL 2014 Express升级为Standard edition而不更改实例名称。取得了成功,似乎工作正常,除了SQL AGENT

配置管理器的错误消息:

  

请求失败或服务没有及时响应。   请参阅事件日志或其他适用的错误日志详细信息。

尝试使用服务器管理员用户。内置帐户/本地服务也不起作用。

事件日志除了打开然后关闭外没有显示任何内容。

这就是我在DETAILS中看到的。不告诉我任何事情:

  
      
  • 提供商

         

    [Name] SQLAgent $ SQLEXPRESS

         
        
    • EventID 102
    •   
         

    [资格赛] 16384    4级    任务2    关键字0x80000000000000

  •   

尝试使用管理员权限从CMD运行它:

  

StartServiceCtrlDispatcher失败(错误0)。

读取某处以尝试关闭VIA协议。我没有任何称为VIA的协议。

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:1)

刚发布后我检查了安全性,发现BUILTIN \ USERS没有sysadmin权限..

添加后,它已解决!

答案 1 :(得分:1)

当我将SQL Server 2017从Express升级到Standard时,我遇到了类似的问题。即使在升级之后,SQL Server代理也无法启动。

我在SQLAgent日志中出现错误消息 (C:\ Program Files \ Microsoft SQL Server \ MSSQL14.SQL2017EXPRESS \ MSSQL \ Log)

  

2017-12-18 16:21:06 - ! [298] SQLServer错误:229,对象'sp_sqlagent_update_agent_xps',数据库'msdb',架构'dbo'上的EXECUTE权限被拒绝。 [SQLSTATE 42000](DisableAgentXPs)

将SQL代理服务登录帐户更改为“本地系统”不起作用(如您所述)。

最终对我有用的是将登录帐户更改为“NT Service \ MSSQL $ SQL2017EXPRESS”。

此用户是在安装期间命名SQL Server“SQL2017EXPRESS”时创建的。如果打开SSMS,连接到数据库实例,并打开Security-> Logins,您应该能够找到可以访问系统数据库(msdb)的数据库NT服务用户列表。尝试将其中一个用户用作SQL代理服务的登录用户。

我认为您安装了标准版,它会创建一个用户调用NT Service \ MSSQLAgent $ 2014。

在研究期间,我尝试了article中的说明。它似乎使用Sql Server配置管理器来更改登录用户不适合我。相反,从管理员 - >查看本地服务更改登录用户。

答案 2 :(得分:0)

我知道这很晚了,但是我希望它将来对某人有帮助。从Express升级到Standard后,对我有用的修复程序是从SQL Server安装中心的Maintenance节点运行Repair选项(参见图片)。修复完成并重新启动完成后,代理将按预期工作。

Use Repair option from the Maintenance page of the SQL Server Installation Center

答案 3 :(得分:0)

从Express升级到Standard后,我在SQL 2019中也遇到了同样的问题。从安装维护部分进行修复为我固定了代理。