Articles of sql server

SQL Server的“顶”式活动监视器?

我对SQL Server 2005附带的活动监视器并不感到兴奋,但我想它是试图成为一样的东西。 从表名,CPU时间,IO时间,内存分配查询,用户名,数据库名称的片段,可能会获得锁… 设置刷新速度2-3秒,让它运行? 我喜欢分析器 – 对于性能调优非常有用; 但是像Top一样工作的东西有时候对于故障排除来说是很棒的。 编辑:命令行工具,不需要SQL工作室可能会很好。

在Windows 2008 x64中使用/ 3GB statup开关只运行Sql Server 2008 x64,好东西?

有很多文章解释了/ 3GB启动开关的使用 。 一般的解释是.. 无论系统中的物理内存量如何,Windows都使用4 GB的虚拟地址空间,其中2 GB分配给用户模式进程(例如应用程序),2 GB分配给内核模式进程(例如,操作系统和内核模式驱动程序)。 在具有1 GB或更多物理内存的系统上,这两个启动开关可用于为应用程序(3 GB)分配更多的内存,并为操作系统(1 GB)分配更less的内存。 好的 – 这不难理解。 ……但这对于Sql Server来说是好事吗? 答案取决于服务器中存在多less内存? 对于这个讨论,我们可以把任何答案与 4 GB RAM 16 GB RAM …与包含Windows 2008标准x64 + Sql Server 2008 x64的服务器 。 我希望处理器的数量不会影响答案:P 所以我想我问,Sql Server是否需要大量内存的OS +核心模式驱动程序?

必须有一个Windows Server的应用程序

我的网站在SQL 2008上运行.NET 3.5。 我正在考虑build立自己的服务器,想知道我在做什么。 我需要知道什么应用程序安装,所以我的服务器将是安全的,并运行良好。 明显的列表是: •Windows Server 2003 •.Net Framework 3.5 •SQL 2008 我需要: •防病毒? •防火墙? 有更多的必须有应用程序?

为什么SQL Server 2005需要消耗太多的内存(甚至没有运行)

最近,我注意到即使Management Studio没有运行,SQL Server也消耗了太多的内存。 它消耗多达50万K的内存。 我知道SQL Server实例必须运行,但有这么多的内存? 有什么我可以做的,以解决这个问题? 替代文字http://i48.tinypic.com/75z.png

我怎样才能防止对我的SQL Server安装的攻击?

在过去的一个月中,我注意到在sql server的事件查看器中有很多失败审计。 看起来就像是一个来自中国的ip试图login到我已禁用的sa帐户的暴力攻击。 我已经在我的networking防火墙上阻止了它,但一个星期后,我又从另一个在中国的ip也收到了同样的攻击。 到目前为止,我阻止了6 ips。 有什么我可以做,以防止这种攻击我只是继续阻止ips? 这台服务器需要面对互联网,因为我有外面的开发者访问它。 我将查看防火墙设置。 我正在使用思科asa。

如何设置Zabbix来监视SQL Server故障转移主动 – 被动群集?

这应该是简单的,所以这很可能是我的方法完全closures,有人希望刺激我走向正确的方向。 我们有一个Zabbix 2.0.3服务器实例,用于监视一堆不同的服务器,但现在我们需要设置它来监视和通知有关SQL Server 2008 R2故障转移主动 – 被动群集的任何警报。 本质上,这是一个2服务器集群,当其中一个节点可以在给定的时间“活动”,提供所有SQL Server相关的请求,而另一个服务器只是“睡觉”,从任何人login服务器 – 拥有所有与SQL Server相关的服务处于停止状态。 我们已经尝试在两台服务器上设置Zabbix代理,使用SQL Server 2005模板(我们找不到任何2008特定版本,而2005版本在监视2008 R2实例方面似乎总能正常工作),并为Zabbix服务器configuration服务器,但是我们最终会持续警报服务器当前是集群中的被动服务器。 我们已经能够查find实际监控故障转移的各种方法,但是我们还没有find任何有关如何指导Zabbix的指导,在这种情况下,只希望组中的一个服务器处于在线状态,而另一个可以被丢弃,不应该提出任何警报。 我希望我自己清楚。 感谢您的任何指导。 我没有想法。

分布式和/或并行SSIS处理

背景:我们公司承载SaaS DSS应用程序,客户向我们提供每日和/或每周数据,我们处理并合并到他们现有的数据库中。 在营业时间内,服务器的负载相当小,因为大多数用户通过网站运行简单的预定义查询,或者运行大多数情况下击中SSAS OLAP多维数据集的钻取报表。 我pipe理IT运营团队,到目前为止,这已经为我们提出了一个有趣的“缩放”问题。 对于我们每天刷新的客户端来说,服务器在晚上只有“忙”的时间,大概4-6小时。 对于我们的每周刷新客户端来说,服务器每周只有8-10个小时“忙”! 我们尽最大努力使用一些简单的方法分发负载,将日常客户端均匀地分布在服务器之间,这样我们就不会每天晚上连续处理客户端。 但是长期的这种扩张战略会产生两个值得注意的问题。 首先,它将消耗相当大量的硬件,闲置很长一段时间。 其次,它需要大量的生产支持,以便基本上“调度”ETL,以便它们不会重叠,并且如果在特定的服务器或分配的时隙上增加资源,则将客户端/时间表移动。 正如标题所暗示的,我们试过的一个选项是并行运行多个SSIS包,但在大多数情况下,这已经产生了非常不一致的结果。 最常见的失败是DTExec,SQL和SSAS争夺物理内存和抛出内存错误,ETL运行时间比预期长3,4,5倍。 因此,从我迄今为止的实践经验来看,似乎在同一个硬件上运行多个ETL包并不是一个好主意,但是我不能成为第一个不希望围绕手动调度扩展多个ETL的人,处理。 我们考虑过的一个select是虚拟化服务器,这显然不会给你任何额外的资源,但将资源争用转移到pipe理程序上,从我的经验来看,它似乎同时pipe理CPU / RAM /磁盘I / O比让DTExec,SQL和SSAS在Windows中战胜它还要优雅得多。 对论坛的问题:所以我对论坛的问题是,我们在这里错过了一些明显的东西吗? 有没有工具可以帮助pipe理在同一个硬件上运行多个SSIS包? 如果不是运行DTExec,SQL和SSAS同一台机器(每台机器都运行该configuration),而是在一台机器上运行SSIS的三台机器运行,另一台机器上运行SQL和SSAS的第三? 显然这只有在我们能够独立处理超过三个ETL的情况下才有意义。 我们考虑过的另一个select是完全重新devise我们的SSIS软件包,为所有客户端提供一个“主”软件包,试图根据CPU /内存/磁盘利用率已经“繁忙”的情况来智能地select服务器,但是这将是一个艰巨的努力,似乎我们正在试图重塑一些你会认为有人会出售的东西(尽pipe我没有find它的运气)。 总而言之,我们是否错过了一个明显的解决scheme,是否有人知道是否有任何工具(免费或者购买,无关紧要)能够在多个服务器上并行运行多个SSIS ETL包? (我称之为“基于队列和节点的”系统,但这不是一个正式的术语)。 最终,VMWare的分布式资源调度程序解决了这个问题,因为您只需为每个虚拟机运行一个一致的数量的客户端,而这些客户端永远不会发生冲突,然后将其留给VMWare来移动虚拟机以平衡硬件使用。 我绝对不反对使用VMWare来做到这一点,但由于我们是一个100%的Microsoft应用程序堆栈,似乎有人会通过检查资源在应用程序层而不是虚拟机pipe理程序层解决此问题在操作系统,SQL,SSAS级别的利用率。 任何有关这方面的讨论都是开放的,请记住,没有任何build议太疯狂或激进! :-)现在,VMWare是我们发现摆脱“手动”平衡资源的唯一select,所以任何将我们留在纯粹的Microsoft堆栈上的build议都会很棒。 多谢你们, 杰夫

重新启动服务器后Glassfish连接池不工作

我有Glassfish 3.1中的连接池来连接到SqlServer 2008 Express,这个池工作正常,但是当Glassfish重新启动时,连接池不能ping和停止工作。 再次工作,我更改从“localhost”的URL主机名到“127.0.0.1”或相反…显然,这个问题只发生在Glassfish运行在Windows Server 2008中,当我在Linux服务器运行Glassfish没有问题这发生了… EDITED [#|2012-06-20T14:21:34.992-0300|WARNING|oracle-glassfish3.1.2|javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.service|_ThreadID=24;_ThreadName=Thread-2;|RAR8054: Exception while creating an unpooled [test] connection for pool [ erp_hm_pool ], null|#] [#|2012-06-20T14:21:35.006-0300|SEVERE|oracle-glassfish3.1.2|org.glassfish.admingui|_ThreadID=25;_ThreadName=Thread-2;|RestResponse.getResponse() dá FAILURE. endpoint = 'http://localhost:48/management/domain/resources/ping-connection-pool.json'; attrs = '{id=erp_hm_pool}'|#] [#|2012-06-20T14:22:42.187-0300|WARNING|oracle-glassfish3.1.2|javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.pool.resizer|_ThreadID=26;_ThreadName=Thread-2;|RAR5058: Error while Resizing pool erp_hm_pool. Exception : null|#] [#|2012-06-20T14:22:42.193-0300|WARNING|oracle-glassfish3.1.2|javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.pool.resizer|_ThreadID=26;_ThreadName=Thread-2;|RAR5058: Error while Resizing pool erp_hm_pool. Exception : null|#] [#|2012-06-20T14:22:42.194-0300|WARNING|oracle-glassfish3.1.2|javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.pool.resizer|_ThreadID=26;_ThreadName=Thread-2;|RAR5058: Error while Resizing pool erp_hm_pool. […]

Windows身份validation到Intranet环境中的远程服务器

在我公司的Intranet环境中,我有几台服务器(都在同一台DC上)。 为了简单起见,我将把我的问题集中在IIS和SQL服务器上。 我在域上的另一台机器上有一个IIS 7.5 Web服务器和一个远程SQL Server 2005。 以下是我希望达到的要求: IIS服务器上的Web应用程序应使用某种forms的身份validation(可能是Windows身份validation),以便用户无需进行身份validation,因为它将在loginWindows计算机时使用其networking用户凭据。 理想的情况下,身份validation方法也应该通过VPN连接支持到networking中。 应将用户标识(Principal)传递到远程SQL Server上,以便在该服务器上的查询将能够标识用户,以便根据用户名来支持授权。 例如,查询select suser_sname()应该通过IIS Web应用程序将执行操作的人员的实际用户名返回给数据库。 该解决scheme应至less与networking上的SQL Server和UNCpath一起工作。 高度可靠和未来的certificate(即最佳实践)。 我花了至less几个星期(累计)研究这个过去几年,因为我有时间,但没有效果。 请首先帮助我理解,如果能够满足这些要求(因为我有理由相信这一点),请指出我在“如何”做到这一点的正确方向,以及我应该如何解决这个问题。 我到目前为止所做的: 我有一个testing应用程序是唯一启用Windows AuthenticationType报告Kerberos AuthenticationTypevalidationtypes。 Windows身份validationconfiguration为使用“协商”作为提供程序,还需要启用内核模式的扩展保护。 应用程序池在集成模式下使用.NET 4.0。 应用程序池标识是我们注册为SPN的自定义域帐户。 AD服务器启用了委托,但SQL Server没有。 我已经能够完成的最好的事情是确认Kerberos http标题的存在,但是我的testing应用程序显示应用程序池的自定义用户(SPN帐户)正在通过,而不是我自己的。 这里是我的testing应用程序的结果,如果你喜欢: Result Field Description Test App Code —— —————– ————- Negotiate Page Authentication Type Page.User.Identity.AuthenticationType <dc>\<username> Page Identity Page.User.Identity.Name Kerberos Principal Windows Auth […]

Hyper-V主机消耗可用内存

我对configurationHyper-V有一点新意,所以对某人来说这可能是一个简单的问题,但是我需要一些build议。 我有一个具有128GB内存的Hyper-V主机服务器,所有这些内存正在被某些东西消耗掉。 它有6个虚拟机正在运行,这些虚拟机被configuration为使用不到128GB的一半,所以如果另一台主机出现故障,这可能会占用虚拟机。 所以所有在我的主机上使用的内存不是预期的问题。 其中一台运行的虚拟机是SQL Server 2014 Standard,而且我发现重新启动这个虚拟机会把RAM重新带回主机,所以看起来这是麻烦的机器。 SQL虚拟机已经被configuration为一个固定的16GB的RAM,然后我尝试了dynamicRAM从16GB到32GB,问题依然存在。 SQL Server服务本身configuration了一个最大内存限制,当虚拟机在任务pipe理器内部时,这个内存限制得到了尊重。 值得补充的是,主机操作系统正在使用的额外内存在SQL虚拟机任务pipe理器中没有显示,显示了我configuration它使用的内容。 但就像我说的重新启动SQL虚拟机确实把所有的RAM回到主机,它从100%使用下降到40%的区域。 内存设置: 感谢您的任何指示。 ***更新19/01/17 12:00我已经使用了一个免费的Hyper-V Veeam任务pipe理器,它告诉我这是使用内存的主机,而不是我怀疑的SQL VM。 但正如前面提到的,我发现closuresSQL虚拟机免费的这一点。 那么主机是否需要这么多内存来pipe理SQL虚拟机呢? 我们有一台主机正在使用7%的物理机器RAM。 这个问题主机正在使用54%! 我计划今晚closures和启动这个主机,任何想法都欢迎。