我的服务器错误日志中定期显示以下错误消息序列:
错误: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 'SqlQueryNotificationService-b7240bb0-6586-4cee-bb7c-a3d2e706c0f8' 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 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) 今天早上发现在 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 事件日志以获取有关可能的相关问题的信息。
以下过程解决了该问题:
以上仅解决了问题,直到下次重新启动,再次发生。显然,SSL 证书需要 SQL2012 读取的权限,但我不敢一直重启,直到这个问题得到解决,所以我现在通过 RDC 而不是通过 …
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
问题:如何让我的可用性组注册为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 连接字符串中使用 SA 帐户。它在源代码中是硬编码的,无论出于何种原因,我们都无法更改它 - 我的问题不是我们为什么要更改它,而是解决它。
我正在考虑将 SA 帐户重命名为其他名称(例如“SysAccount”或类似名称,并为其提供新密码),然后使用旧密码创建一个名为“SA”的新帐户并授予其适用于应用程序的权限(显然不是 sysadmin 角色的成员)。这样做有什么陷阱吗?如果名为 SA 的帐户实际上不是系统管理员,SQL Server 是否会遇到已知问题?
我假设因为我只是重命名帐户,所以我是安全的 - 它的 uid 仍然为 0x01,我已经测试过了,它在物理上是可行的,并且在测试中似乎可以正常工作,但我想确保我并没有忽视任何会因此而明显破裂的东西。如果它破坏了某些东西,我总是可以删除新的 SA 并将旧的 SA 重命名回以消除损坏,但希望避免尝试和失败。
我正在使用 SQL Server 2012,但我怀疑相同的答案将适用于任何现代版本。我已经看到了从 2005 年升级到 2008 年的错误,如果你这样做了,但我想这个问题早就解决了。
在执行 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)
知道这是否可能以及如何做到吗?
我使用 SharePoint 2013 和 SQL Server 2012 作为持久层。我需要加密存储在数据库中的数据。我偶然发现了 SQL Server 功能透明数据加密 (TDE)。
使用 TDE 时,文档库中的文件(Office 文档)会发生什么情况?文件也被加密还是只加密表?
sharepoint encryption sql-server-2012 transparent-data-encryption
抱歉,如果之前有人问过这个问题,建议的“相关”问题不相关,而且我自己的搜索结果很少。
我需要列出所有存储过程的定义(代码),以便我可以开始处理所有 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-2012 ×10
sql-server ×9
architecture ×1
dns ×1
encryption ×1
logins ×1
performance ×1
replication ×1
sharepoint ×1
t-sql ×1
transparent-data-encryption ×1
users ×1