我必须处理以下情况:
目前我们有
正在使用。所有服务器都是在VMWare 中运行的虚拟服务器。
我们想要设置一个新的集群(SQL Server 2014 Enterprise)。第一步,将迁移 2008 Enterprise 集群中的 1 个实例和 2104 Standard 集群中的 1 个实例。
于是,老板问了我两个问题:
我的回答是:“这取决于......”现在我必须通过监控接下来的几周来提供确凿的事实。伟大的!(小心讽刺)
我对第一个问题的处理方法:
我计划使用 perfmon.exe 进行监控
问题是,这些数据从哪里获取呢?从节点?来自 SQL Server?
在第一种情况下,它应该很简单:第一个实例 -为了简单起见vsql2008ent-1\instanceX - 当前正在节点上运行,我们将其命名为节点sql2008NodeA。正常情况下,该节点上不应运行任何其他实例或服务器。所以我从哪里获取数据并不重要,不是吗?如果发生灾难,其他实例也将在此节点上运行。但我们希望有一个正常运行的基线。
第二个实例 - vsql2014stan-1\instanceY - 与其他 2 个实例共享其节点 - sql2014NodeA。在这种情况下,我永远无法确定实例真正需要多少核心才能平稳运行,对吧?这样我就可以监控实例了。但结果意味着什么呢?它仅显示该实例实际使用的CPU资源。但如果有可用的内核,是否会使用更多内核?那么上述问题的答案是什么呢?
内存是另一个问题。由于过去发生过几次灾难,当所有实例都落在同一节点上时,我为每个实例设置了最大服务器内存的上限。此限制取决于节点的可用内存(当前分别为 100GB 或 120GB)。那么如何监控呢?如果所有内存都用完,一切似乎都清楚了:内存不足。如果一切都变慢:内存不足。但我真正需要多少内存?
我尝试总结一下我的问题:
这可能是一个简单的问题,但我搜索了很多却找不到。
是否有 sql 查询或我可以在注册服务器上运行来查找所有正在运行的 sql 相关服务的列表,例如 ssis 、 ssas 、 ssrs 、 sql 、 agent 、 broswer 等...
尝试谷歌搜索并可以找到 sys.dm_server_services dmv 但它没有显示所有正在运行的服务
我有一个由 IT 部门构建的虚拟机来托管各种流程。他们将计算机命名为“XYSVC105”之类难以理解的名称,并且不允许我更改它。我还在这台机器上安装了 MS SQL Server 2014,一切运行良好。
但是,我一直在寻找 MS 最佳实践,但似乎无法找到您是否能够将 SQL Server 的名称更改为与主机不同的名称,或者是否建议不要这样做。我想将 SQL Server 名称更改为“OPSRES”之类的名称。
造成这种情况的大部分原因是内部原因。其中之一是这将被众多用户和开发人员使用。根据经验,他们会记住像 OPSRES 这样的简单名称,而不是 XYZ145PPQ。
在 Sql Server 2014 中,如何查询发布者给定发布的订阅及其文章列表?(事务复制)
是的,有更简单的方法可以从发行商处查询,但我需要从发行商端进行查询。
远程分销商模型(如果有帮助)
谢谢,
replication sql-server transactional-replication sql-server-2014
根据最佳实践,建议将所有tempdb(不仅仅是 tempdb)文件移动到不同的物理磁盘中。
我有一个虚拟服务器,最初有来自同一RAID 10池的 4 个 LUN。在卷管理器的帮助下,我将这 4 个 LUN 转换为 4 个不同的卷。
现在的问题是,移动tempdb到单独的卷中是否会产生任何影响,或者就性能而言,将它们与其他 SQL Server 文件保留在一起就可以了?
到目前为止,我有以下查询,不幸的是,我无法使用正则表达式或大于运算符,我只能使用LIKE关键字。
整个列都在 json 字符串中,我无法使用json_value或 regexp,因为我在 SQL Server 上,所以我只能使用LIKE. 它是 SQL Server 2014,json_value直到 2016 年才受支持。
SELECT * FROM DataTableOne
WHERE update_date LIKE '%1645290000%'
Run Code Online (Sandbox Code Playgroud)
我想仅使用 SQL 关键字检索纪元 unix 时间戳大于 1645290000 的所有记录LIKE(甚至使用 SQLLIKE运算符在 1645290000 和 9999999999 之间)。
任何帮助将不胜感激,因为这是一个非常困难的独特案例,我只能使用关键字LIKE。
下面的示例表/数据:
CREATE TABLE DataTableOne (
ID int,
DATA varchar(MAX)
);
INSERT INTO DataTableOne (ID, DATA)
VALUES (1, '{"name":"Cole", "update_date":"2855290000"}'),
(2, '{"name":"Peter", "update_date":"1222290000"}') ;
Run Code Online (Sandbox Code Playgroud)
此类数据可能有一千行,而我只需要 update_date 大于 1645290000 …
我刚刚安装了 SQL Server Management Studio 2014,我还需要更新我的(本地)服务器以通过来自版本 12 服务器的 bak 文件接受新数据库。当我查看服务器属性时,我看到我的服务器版本为 11.0.5858.0(即 2012 sp2)。
如何将我的服务器升级/迁移到版本 12?
我查看了几个链接:Upgrade Database Engine,Upgrade to SQL Server 2014 Using the Installation Wizard (Setup)。我还看到了我需要备份和恢复数据库的建议,我认为这意味着创建一个新的本地(说实话,我忘记了如何做到这一点)并将它们移到那里?
我有一个独特的(好吧,我认为这是独特的)情况,可以或多或少地动态创建数据库(是的,整个数据库)。
忽略与此相关的明显问题,我需要能够允许 AD 帐户读取任何数据库中的任何数据。
承认围绕所有这些的安全问题,有没有办法在服务器级别只授予一次,而不是在新数据库弹出时不断授予?我更愿意将它保持在数据阅读器级别。
具体来说: 1. 数据库是动态创建的,无需 DBA 的先验知识 2. 报告作业遍历这些数据库,如果遇到新数据库则失败。
我正在使用 SQL Server 2008R2 和 SQL Server 2014。
作为应用程序数据库设计规范的一部分,我们被要求阻止执行一组直接从 SSMS/osql/sqlcmd 等触发的存储过程;也就是说,它们必须只被允许在应用程序本身内运行。
当我们的团队质疑这是否可行时,我们看到了一个演示,该演示将查询限制在特定系统(实际上它让查询运行,但记录到运行它的表中)。然而,这样做的过程是加密的,所以我们无法知道它是如何完成的。
我们如何做到这一点?
我正在一台规格合理的机器上运行一些 Microsoft SQL Server 2014 负载测试。我当然不是 SQL Server 调优细节方面的专家,但根据我从各个地方收集的一些片段,我认为设置非常好。
表演中的一个元素确实令人困惑,因此我在这里伸出援手。我正在测试的数据库是历史上建立的,最初是针对 2008r2 创建的。兼容性设置是从那个版本继承过来的。上周我分两个阶段提高了该设置,但是当我将其从 2012 年提高到 2014 年的兼容性时,突然间 CPU 负载飙升。
当来回更改此设置时,它似乎是系统性的。我可以使用 2012 设置在 8 核数据库上运行 X 个模拟用户(数据库前面的 Web 应用程序)。如果我将其提高到 2014 年,我只能逃脱 60% 的 X 个模拟用户。反之,对于 X 用户,2014 年设置的批量请求数降低了 40%。
据我了解,切换回兼容性级别不会恢复数据库,而只会关闭功能。这种情况似乎表明一个功能在没有明显增益的情况下消耗 CPU,所以我想知道可能是哪个功能以及是否有办法单独打开该特定功能?
serverfault 上的其他帖子指出升级后重建索引,我已经这样做了,但这似乎并没有真正产生影响。
需要注意的是,手头的应用程序会生成许多不是准备好的语句的查询。这可能导致我在 perfmon 中看到大量编译(编译/批处理请求:0.25)。我对此无能为力,所以告诉我先做些什么并不能真正帮助我前进。
sql-server ×10
sql-server-2014 ×10
security ×2
date-math ×1
json ×1
like ×1
monitoring ×1
performance ×1
raid ×1
replication ×1
tempdb ×1