有没有办法通过扩展事件监控加密连接?我过去曾使用 sqlsni.TRACE 监控过 TLS 1.0、1.1 和 1.2 握手,但找不到与加密连接本身相同的内容。除非“encrypt=yes”没有添加到连接字符串中,否则只有握手会被加密,没有别的。
我可以使用 sys.dm_exec_connections 来捕获它,但这不是实时的,我必须非常频繁地运行它(每分钟或更短时间)才能找到我正在寻找的东西。
有没有办法通过扩展事件监控加密连接?我过去曾使用 sqlsni.TRACE 监控过 TLS 1.0、1.1 和 1.2 握手,但找不到与加密连接本身相同的内容。除非“encrypt=yes”没有添加到连接字符串中,否则只有握手会被加密,没有别的。
我可以使用 sys.dm_exec_connections 来捕获它,但这不是实时的,我必须非常频繁地运行它(每分钟或更短时间)才能找到我正在寻找的东西。
通过 UI,我可以看到我有 2 个带有过滤器的表。我需要能够查询此信息,但找不到包含数据的表。我搜索了 Distribution 数据库中名称为“Filter”或“Where”的任何列。结果如下。不幸的是,这些表中没有一个包含我要查找的数据。
- SELECT * FROM IHarticles
- SELECT * FROM IHextendedArticleView
- SELECT * FROM MSarticles
- SELECT * FROM MSmerge_articlehistory
- SELECT * FROM MSmerge_articleresolver
- SELECT * FROM sysarticlecolumns
- SELECT * FROM sysarticles
- SELECT * FROM sysextendedarticlesview
- SELECT * FROM sysschemaarticles
有谁知道这些数据保存在哪里?
我们使用 2 个发布服务器、4 个发布和 1 个订阅服务器实现事务复制。我需要关闭我们的分发服务器几个小时。重新启动后,日志读取器是否能够从关机前停止读取日志的位置恢复?
我的想法是,因为事务日志备份将继续在发布者上并清除日志,所以日志阅读器将没有任何东西可以抓取。
我相信我唯一可靠的选择是重新初始化每个出版物并重新开始。
我对此的理解是正确的还是我把事情复杂化了?
谢谢!
我们正在将多个 SQL Server 2008R2 实例更新到 SQL Server 2012 SP3 CU2。我知道在此过程中数据库版本将从 100 更改为 110(例如,一旦完成,数据库将无法再移回 2008R2 实例)。
对数据库的这种更改是在升级过程中发生的,还是在服务器重新启动时数据库首次联机时发生的?
我在我的 SQL Server 审核日志中看到如下所示的调用,但不知道它是什么意思。谷歌搜索发现了与编译/重新编译的可能关系。该行(或类似行)也可以在多个 SQL Server 内部存储过程中找到。
EXEC %%Object(MultiName = @objname).LockMatchID(ID = @objid, Exclusive = 1, BindInternal = 0)
有没有人了解这个过程?
几个月来,我们其中一台服务器上的 PLE 一直徘徊在 200 万秒左右。如果每天略有变化,但在那里非常稳定。
上周末,我们向服务器添加了 12 GB 的虚拟 RAM 和 1 个虚拟 CPU 内核。我们没有更改 SQL Server 中的最大使用 RAM 以匹配新的 RAM,也没有为 SQL Server 分配新的 CPU 内核。
自此完成后,我们的 PLE 波动很大,每 10-30 分钟波动 50 到 400 万秒。这些变化不是缓慢的上升或下降。指标在不到一分钟的时间内从非常低直接变为非常高,反之亦然。
我们对服务器的总体等待时间很好。闩锁是正常的。缓冲区和计划缓存大小没有改变。似乎没有任何一致的特定查询模式或耗尽资源的查询类型。
我以前从未见过 PLE 这样做过。有人可以指出我可能遗漏或需要更深入研究的内容吗?
MAXDOP
4,成本阈值为 10。谁能解释关闭 SQL Browser 服务和通过 SQL Server 配置管理器隐藏实例之间的区别?
我一直认为他们做同样的事情并且已经隐藏了服务器作为备份,以防 SQL 浏览器服务被打开但找不到任何证实这一点的文档。
提前致谢!
我们在我们的一个生产数据库中收到大量以下错误。CheckDB 是完全干净的。
我们认为它与复制有关,因此我们使用 sp_removedbreplication 将其关闭,问题就消失了。由于其他原因,我们从昨晚的备份中进行了恢复,再次恢复了复制。尽管我再次删除了复制,但错误立即返回并持续存在。
除了以下文章外,我在网上找不到太多与此相关的内容:
任何建议将不胜感激!
我试图更好地了解 SQL Server 如何使用远程 SQL Server(例如链接服务器)上的统计信息。我了解用户需要 db_owner/db_ddladmin 权限才能使用远程框上的统计信息。起初,根据 Microsoft 的以下文本,这似乎非常简单。
要在链接服务器上使用表时创建最佳查询计划,查询处理器必须具有来自链接服务器的数据分布统计信息。对表的任何列具有有限权限的用户可能没有足够的权限来获取所有有用的统计信息,并且可能会收到效率较低的查询计划并体验较差的性能。如果链接服务器是 SQL Server 的实例,要获取所有可用的统计信息,用户必须拥有该表或者是链接服务器上 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员.
让我感到困惑的是“用户”这个词。我们对所有连接使用标准安全上下文,而不是用户登录。此登录名/用户具有上述对相关数据库定义的所需权限。此外,我们不使用模拟。
我尝试使用在删除服务器上具有和不具有提升权限的帐户在两端运行查询并捕获跟踪。在我看来,除非实际用户(键盘上的那个人)具有提升的权限,否则远程服务器不会收集统计信息。我相信这是真的,因为我只在用户拥有所需权限时才看到对 sys.sp_table_statistics2_rowset 的调用。
我真的希望这是有道理的。
有没有人了解这在 SQL 2008 R2 及更低版本中是如何工作的?
我知道查看DBCC PAGE
应该向我展示最后已知的商品DBCC CHECKDB
,但我没有正确地看到这项工作。
我有一个我知道已损坏的数据库。如果我运行DBCC CHECKDB
错误会按预期显示(见下文)。
CHECKDB found 0 allocation errors and 1 consistency errors in table 'Blah'
(object ID 251147940).
Msg 2508, Level 16, State 3, Line 1
当我运行下面的 evaluatedbi_dbccLastKnownGood
时,我得到的时间CHECKDB
是刚刚运行到第二个。
DBCC PAGE ('Blah', 1, 9, 3) WITH TABLERESULTS;
我已经阅读了 Paul Randal 的信息,从中看来,我正在正确地做/阅读这个。有没有人以前见过这个,如果有,有没有想过解决这个问题?
这是错误的完整示例。我在不同的桌子上得到了 12 个。
Msg 2508, Level 16, State 3, Line 1
The In-row data RSVD page count for object "Mailings", index ID 0, partition ID 16459231395840, alloc unit ID 16459231395840 (type In-row data) is incorrect. Run DBCC UPDATEUSAGE.
CHECKDB found 0 allocation errors and 1 consistency errors in table Mailings' (object ID 251147940).
在为复制设置发布以允许从备份初始化时,有一个选项。几年来,我们一直在创建复制数据库,并且总是从备份中初始化,但从未设置过这个标志(几天前我们才第一次注意到它)。复制当然一直没有问题。
我发现很多点击都解释了需要使用它,但没有一个可以解释原因。
有没有人了解这实际上是做什么的?从我的角度来看,这似乎没有必要,但我认为我必须遗漏一些东西。
我觉得这是一个愚蠢的问题,但对于我的生活,我无法追踪发生了什么。我刚刚接管了几台服务器的管理,在所有这些服务器上,作业历史记录仅保留 5 天。有一个清理维护计划,但它设置为保留 5 周。
EXEC msdb.dbo.sp_syspolicy_purge_history 每天都在运行,但是历史保留天数设置为 0,所以我的理解是它无论如何都没有做任何事情。
我在这里缺少一些非常简单的东西。谁能指出我正确的方向?
我有几个带有事务日志的 SQL Server 2008 数据库,这些数据库已经失控并填满了驱动器。这些日志之一是 68gb yikes。
我知道最好不要通过截断日志来终止我的备份链,但是当我单独进行收缩时,在几个数据库上我没有得到任何空间回收,而在我所做的那些上,数量可以忽略不计。我已经验证客户端每小时都在运行 t-log 备份,并且在过去几周内这些备份都成功了。
显然我错过了一些东西。有人可以指出我正确的方向,还是我只是不得不手动截断并祈祷在此期间什么也没有发生?