将 SQL Server Express 升级到 Developer 性能计数器注册表一致性错误

Posted

技术标签:

【中文标题】将 SQL Server Express 升级到 Developer 性能计数器注册表一致性错误【英文标题】:Upgrading SQL Server Express to Developer performance counter registry consistency error 【发布时间】:2012-05-15 15:14:37 【问题描述】:

我目前正在尝试将我的 SQL Server Express Edition 版本升级到 Developer 版本。

我遇到了这个失败消息,有人可以吗

A.) 解释是一种基本的清晰方式,这实际上意味着什么,所以我可以理解它。

B.) 为这个问题提出解决方案

【问题讨论】:

您是否转到知识库文章并尝试修复问题?似乎正是错误消息清楚地告诉您要做的事情:support.microsoft.com/kb/300956 我确实去过这个但是想在我尝试改变任何东西之前先弄清楚问题是什么 我认为这里没有人有时间机器可以回去弄清楚您的性能计数器何时或为何下降。 :-) 好吧,您能否解释一下性能计数器可能是什么以及它们损坏的原因,以及这意味着什么? 您可以在此处阅读有关性能计数器的信息:msdn.microsoft.com/en-us/library/windows/desktop/… 为什么它们会损坏?同样,我不知道您的系统上发生了什么或何时发生。 SQL Server 不会继续安装的原因是它实际上在两个方向上都使用性能计数器 - 它向 Windows 提供数据以供 perfmon 查看,它还通过 DMV sys.dm_os_performance_counters 向 SQL Server 公开性能计数器。 【参考方案1】:

除了通过the KB article mentioned in the error message 修复计数器之外,我建议您安装适当的Developer Edition 实例,而不是尝试就地升级。然后从 Express 备份您的用户数据库,在 Developer 上恢复它们​​,一旦您对一切正常工作感到满意,请卸载 Express Edition。除了在迁移到新版本时避免特殊的升级问题新版本(除非你不是真的说 Express 是 SQL Server 2008),你还有额外的好处,你仍然有你的原始数据库完好无损(如果升级失败比简单地被阻止更糟糕,您将不会拥有这些数据库)。

【讨论】:

【参考方案2】:

这意味着您的密钥:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\最后一个计数器

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

彼此不同。

检查您是否有禁用性能计数器键并将其设置为 0(我删除了我的,如您在打印屏幕上看到的那样)

然后通过运行重建性能计数器:

cd %systemroot%\system32
lodctr /R

您可以通过尝试添加 SQl 服务器计数器来检查它是否在性能监视器上工作

【讨论】:

以上是关于将 SQL Server Express 升级到 Developer 性能计数器注册表一致性错误的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL Server Express 数据库复制到另一台计算机

从 SQL Server 2008 升级应用程序以使用 SQL Server 2016

sql server2008升级到2008 R2出现问题

无法安装 SQL Server 2008 R2 Express

如何将所有数据库(快速)自 sql server 2008 express 传递到 sql server 2008 R2(无 express)

如何将远程 SQL Server Express 数据库的部分副本复制到本地 SQL Server Express 数据库?