标签: sql-server-2012

错误:9245,严重性:16,状态:1。/在最后一个时间间隔内,XXX 查询通知错误被抑制

我的服务器错误日志中定期显示以下错误消息序列:

错误:9245,严重性:16,状态:1。
在上一个时间间隔内,抑制了 257 个查询通知错误。

但是我找不到错误 9245 的任何细节。我查看了产生错误的 spid,它与服务代理有关。我也经常出现这样的错误,我怀疑它们都是相关的:

对话句柄“{1C8BCD7B-3366-E211-93C7-005056BA3606}”上的查询通知对话框。由于以下错误关闭:
<?xml version="1.0"?>
<Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker/Error">
<Code>-8490</Code>
<Description>Cannot find the remote service &apos;SqlQueryNotificationService-b7240bb0-6586-4cee-bb7c-a3d2e706c0f8&apos; because it does not exist.</Description> </Error>

该错误是我们已经知道了一段时间,但目前还无法在我们的应用程序代码中解决的错误。前两个错误在最近几天才刚刚开始出现,错误的频率和被抑制的查询通知的数量似乎都在增加。

有没有人对进一步的故障排除步骤或错误 9245 的信息有任何见解?

编辑:一些附加信息 -

关于 Jon 的问题,我们在 App 中实现了 SqlDependency,我相信它可能没有正确完成,导致查询通知对话框消息。当我们之前在 SQL 2008R2 上运行此应用程序时,我们启用了跟踪标志 4133,如以下知识库文章所述:http : //support.microsoft.com/kb/958006,这至少减少了事件日志中出现的消息数量。

也就是说,我上面发布的第一个错误消息序列(错误:9245)是新的(据我所知)。几周前,我们将服务器升级到 SQL 2012 SP1,并且在 9245 错误开始出现时尚未启用跟踪标志 4133。

同样值得注意的是,虽然错误发生的频率越来越高(每 5 到 10 分钟接近 1 个错误)持续大约 12 小时,但昨天早上我在这里询问错误后不久突然停止:9245。大约一个小时后,我启用跟踪标志 4133,从那以后我就没有看到错误。虽然这两个错误似乎是相关的,但我并不完全确定它们是否直接相关。

我将查看我可以从该服务器上的其他 Windows 事件日志中找到的内容,并查看是否还有其他任何内容与这些错误发生的时间相关。我还禁用了 4133 以确认它对 9245 错误没有影响。

Edit2:在禁用跟踪标志 4133 几分钟后,错误又开始发生,我相信我现在也知道两者之间的关系,所以我将继续回答我自己的问题。

sql-server service-broker sql-server-2012

7
推荐指数
1
解决办法
8940
查看次数

选择更多的字段会导致灾难性的失败

我有一个从 sql server 2012 到 pervasive sql 的链接服务器的连接。

当我做的select field1, field2, field3 from mytable一切正常!

但是,当我这样做时,select field1, field2, field3, field4, ...field10+ from mytable我收到此错误消息:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "KSLAP208" reported an error. The provider reported an unexpected catastrophic failure.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "KSLAP208".
Run Code Online (Sandbox Code Playgroud)

我查看了日志,这是它所说的:

2013-02-08 11:27:30.93 spid55      ***Stack Dump …
Run Code Online (Sandbox Code Playgroud)

sql-server linked-server sql-server-2012

7
推荐指数
1
解决办法
1718
查看次数

SQL Server 服务因“坏”而关闭?SSL证书

今天早上发现在 Win2012 上运行的 SQL Server 2012 服务已经关闭。当我以服务器管理员身份登录并尝试访问 SSMS 时,在输入我的凭据后,我收到了“传输”错误。在检查 Windows 服务时,SQL Server 和代理均已停止。我试图启动它们,但出现超时错误。

SQL 事件日志包含以下条目:

服务器无法加载启动 SSL 连接所需的证书。它返回以下错误:0x8009030d。检查证书以确保它们有效。

Windows 事件日志包含以下条目:

日志名称:应用程序

来源:MSSQLSERVER

日期:14/03/2013 09:01:40

说明:无法加载用户指定的证书 [Cert Hash(sha1) "A1CF6EE1C352B7A185950EB400013269759C24BD"]。服务器将不接受连接。您应该验证证书是否已正确安装。请参阅联机丛书中的“配置 SSL 使用的证书”。

说明:TDSSNIClient 初始化失败,错误为 0x80092004,状态代码为 0x80。原因:无法初始化 SSL 支持。找不到对象或属性。

说明:TDSSNIClient 初始化失败,错误为 0x80092004,状态代码为 0x1。原因:初始化因基础结构错误而失败。检查以前的错误。找不到对象或属性。

描述:由于网络库中的内部错误,无法启动网络库。要确定原因,请查看错误日志中紧接此错误之前的错误。

说明:SQL Server 无法生成 FRunCommunicationsManager 线程。检查 SQL Server 错误日志和 Windows 事件日志以获取有关可能的相关问题的信息。

以下过程解决了该问题:

  1. 开始 > SQL Server 配置管理器
  2. SQL Server 网络配置 > MSSQLSERVER 协议(属性)
  3. 取消选中常规 > 强制加密
  4. 开始 > 服务 > 启动 MSSQLSERVER 服务

更新:

以上仅解决了问题,直到下次重新启动,再次发生。显然,SSL 证书需要 SQL2012 读取的权限,但我不敢一直重启,直到这个问题得到解决,所以我现在通过 RDC 而不是通过 …

sql-server sql-server-2012 windows-server

7
推荐指数
1
解决办法
8800
查看次数

高度碎片化是一个问题吗?

DBCC SHOWCONTIG scanning 'MyTable' table...
Table: 'MyTable' (2048062382); index ID: 1, database ID: 28
TABLE level scan performed.
- Pages Scanned................................: 1019182
- Extents Scanned..............................: 127400
- Extent Switches..............................: 127399
- Avg. Pages per Extent........................: 8.0
- Scan Density [Best Count:Actual Count].......: 100.00% [127398:127400]
- Logical Scan Fragmentation ..................: 0.01%
- Extent Scan Fragmentation ...................: 77.25%
- Avg. Bytes Free per Page.....................: 135.7
- Avg. Page Density (full).....................: 98.32%
Run Code Online (Sandbox Code Playgroud)

我读过 Scan Density = 100% 非常好,并且 Logical Scan Fragmentation <1% 也很棒。77% …

performance sql-server fragmentation sql-server-2012 query-performance

7
推荐指数
1
解决办法
1万
查看次数

如何更改 SQL Server 2012 可用性组 DNS 子域?

问题:如何让我的可用性组注册为ag-ewgtest.sql.company.com我的服务器认为自己的给定server.company.com

设置:我的 SQL Server 2012 可用性组位于多个子网上,类似于这篇 MSDN 博客文章 中的描述。当我进入故障转移群集管理器时,它显示名称解析尚不可用:

在此处输入图片说明

然后我右键单击“名称:ag-ewgtest”并选择属性。我勾选了“发布 PTR 记录”,它显示全名是ag-ewgtest.company.com.

在此处输入图片说明

我的问题是我只被允许更新 DNS 区域sql.company.com。如果我将 DNS 名称更改为 ,ag-ewgtest.sql.company.com则全名变为ag-ewgtest.sql.company.com.company.com.

我尝试将我的 NIC 更新为:

在此处输入图片说明

但并没有什么不同。如何更改我的可用性组尝试注册的子域?

sql-server sql-server-2012 dns availability-groups

7
推荐指数
1
解决办法
8212
查看次数

具有 SQL Server 复制功能的地理分布式应用程序是个好主意吗?

我们目前正在考虑地理分布式应用程序的目标架构。

此应用程序跟踪和安排所有材料单元在各个生产现场的移动。

将有两个逻辑实体:

  • 第一个负责特定商店的运营/本地管理 - 该实体的实例与商店一样多
  • 第二个负责全局管理(例如:商店之间的单位转移),因此与所有运营/本地实体进行通信

这是应用程序的逻辑图:

逻辑架构

这个应用程序的实现不能直接从上图导出,因为我们必须考虑以下约束:

  • 商店位于不同的区域(通常每个区域有几家商店),如果该区域暂时与全球网络隔离,则系统仍应在有限的时间内正常运行。
  • 运营实体要求全球实体工作

因此,我想到了一种新架构,我们将在其中为每个区域创建具有同步数据库的全局实体(相同的可执行文件)的相同实例:

在此处输入图片说明

我想知道是否有人已经使用 SQL Server 复制来实现相同的目标。

这是正确的方法吗?欢迎所有建议/警告!

非常感谢,塞巴斯蒂安。

replication sql-server architecture sql-server-2012

7
推荐指数
1
解决办法
2328
查看次数

SA 帐户需要称为“SA”还是我可以安全地重命名它?

我们的网络上有一些应用程序(在我之前)在其 SQL Server 连接字符串中使用 SA 帐户。它在源代码中是硬编码的,无论出于何种原因,我们都无法更改它 - 我的问题不是我们为什么要更改它,而是解决它。

我正在考虑将 SA 帐户重命名为其他名称(例如“SysAccount”或类似名称,并为其提供新密码),然后使用旧密码创建一个名为“SA”的新帐户并授予其适用于应用程序的权限(显然不是 sysadmin 角色的成员)。这样做有什么陷阱吗?如果名为 SA 的帐户实际上不是系统管理员,SQL Server 是否会遇到已知问题?

我假设因为我只是重命名帐户,所以我是安全的 - 它的 uid 仍然为 0x01,我已经测试过了,它在物理上是可行的,并且在测试中似乎可以正常工作,但我想确保我并没有忽视任何会因此而明显破裂的东西。如果它破坏了某些东西,我总是可以删除新的 SA 并将旧的 SA 重命名回以消除损坏,但希望避免尝试和失败。

我正在使用 SQL Server 2012,但我怀疑相同的答案将适用于任何现代版本。我已经看到了从 2005 年升级到 2008 年的错误,如果你这样做了,但我想这个问题早就解决了。

sql-server sql-server-2012

7
推荐指数
1
解决办法
5570
查看次数

使用此用户还原后,将 SQL Server 用户重新绑定到其登录名

在执行 SQL Server (v12.0.2000) 数据库的还原后,我认为需要将用户重新映射到其登录名(这个问题似乎被称为孤儿用户)。最简单的方法之一是执行:

use [MyDatabase];
alter user MyUser with login = MyUser;
Run Code Online (Sandbox Code Playgroud)

然而,在实现恢复后,该USE命令失败了,因为我试图用 执行上述命令'MyUser',这是孤立的...

因为它是在脚本中,所以我想避免restore与一个用户和alter user另一个用户执行 a ,以便第一个用户正确地重新映射到其登录名。

有没有办法用“MyUser”来做到这一点(谁可以毫无问题地连接到主人)?

我通过以下方式完全限定“MyUser”进行了尝试,但没有成功:

use master;
alter user MyDatabase.MyUser with login = MyUser;
Run Code Online (Sandbox Code Playgroud)

知道这是否可能以及如何做到吗?

sql-server sql-server-2012 users logins

7
推荐指数
1
解决办法
8613
查看次数

SharePoint 2013 数据库加密

我使用 SharePoint 2013 和 SQL Server 2012 作为持久层。我需要加密存储在数据库中的数据。我偶然发现了 SQL Server 功能透明数据加密 (TDE)。

使用 TDE 时,文档库中的文件(Office 文档)会发生什么情况?文件也被加密还是只加密表?

sharepoint encryption sql-server-2012 transparent-data-encryption

7
推荐指数
1
解决办法
1896
查看次数

显示所有存储过程定义(内容)以供编辑

抱歉,如果之前有人问过这个问题,建议的“相关”问题不相关,而且我自己的搜索结果很少。

我需要列出所有存储过程的定义(代码),以便我可以开始处理所有 450 个并添加分号以实现 v2014 标准。

我在这里找到了以下代码并稍微修改了它:

SELECT
    obj.Name AS SPName,
    REPLACE(modu.definition, 'CREATE PROC', 'ALTER PROC') + 'GO' AS SPDefinition
FROM
    sys.sql_modules modu INNER JOIN
    sys.objects obj ON modu.object_id = obj.object_id
WHERE
    (obj.type = 'P')
ORDER BY
    obj.name;
Run Code Online (Sandbox Code Playgroud)

上面的代码是使用 SA 帐户运行的。

认为这正是我需要的,但是,我刚刚注意到 MSDN 上有人声称它没有按预期显示全文

将结果粘贴到 SSMS 编辑器中时,我有 46,000 行代码需要处理,因此如果缺少任何内容,对我来说并不明显。我想确保在编辑器中浪费一天之前我已经正确地开始了这个过程。

因此,我正在联系您的专业人士,询问这是否是这种方法的真正缺点,或者是否有替代方法而不是一个一个?

sql-server stored-procedures t-sql sql-server-2012

7
推荐指数
1
解决办法
1万
查看次数