Questions tagged «troubleshooting»

2
什么会导致镜像会话超时然后故障转移?
我们有两个运行SQL Server 2005 SP4且具有累积更新3的生产SQL Server。这两个服务器都在相同的物理计算机上运行。DELL PowerEdge R815具有4个12核心CPU和512GB(yes GB)的ram,以及用于所有SQL数据库和日志的10GB iSCSI SAN连接的驱动器。操作系统是带有所有SP和Windows更新的Microsoft Windows Server 2008 R2企业版。操作系统驱动器是3个72GB 2.5英寸15k SAS驱动器的RAID 5阵列。SAN是具有48个10k SAS 3.5英寸驱动器的Dell EqualLogic 6510,在RAID 50中进行配置,分割为两个SQL Server的多个LUN,并且也共享一台Exchange机器和几台VMWare服务器。 我们有20多个数据库,其中有11个使用见证服务器以高可用性进行了镜像。见证服务器是运行SQL Server实例的低功耗计算机,该实例仅用于提供见证服务。最大的镜像数据库为450GB,可生成约100-300 iops。数据库镜像监视器报告当前的发送速率约为100kb至10mb /秒,并且镜像提交开销(通常为0毫秒)。镜像服务器与主体保持一致没有问题。 我们一直在经历镜像故障转移。有时,单个数据库将进行故障转移,而有时几乎所有数据库将同时进行故障转移。例如,昨晚,我们进行了11个数据库故障转移中的10个,其​​余的数据库保持可访问性,直到我手动对其进行故障转移。 我已经经历了一些故障排除步骤来尝试确定问题,但是到目前为止,仍无法解决问题: 1)该机器随附Broadcom BCM5709C NetXtreme II 4端口千兆网络适配器,我们最初将其用作主要网络连接。此后,我们在两台计算机上都安装了Intel PRO / 1000 PT双端口服务器适配器,以消除NIC的问题。 2)所有数据库每晚都有一个自动完整备份,以及有关镜像数据库的日志备份。日志文件的使用情况受到监控,很少使用超过15%。主数据库的日志文件为125GB,由159个虚拟日志文件组成,大小从511MB到1GB不等。TempDB位于其自己的LUN上,由24 x 2GB文件组成。 3)在见证服务器上的SQL Server登录没有显示以下任何错误:与数据库“ Data”的镜像连接“ TCP://SQL02.DOMAIN.INET:5022”的超时在30秒后没有响应。检查服务和网络连接。 主服务器和辅助服务器上的SQL Server登录显示与镜像有关的消息: 30秒钟后,到“ TCP://SQL01.DOMAIN.INET:5022”的镜像连接超时,数据库“ Data”无响应。检查服务和网络连接。 …

3
休眠的SPID阻止了其他事务
我确实很难找到我们遇到的一些障碍。 根阻止SPID的状态为“正在休眠”,cmd为“正在等待命令”,并且sqltext为SET TRANSACTION ISOLATION LEVEL READ COMMITTED。 当我查看“按阻塞的交易计数列出的最高交易”报告时,阻塞的SQL语句为“-”。 我已经在SQL上执行了跟踪,并且当阻塞发生时是在跟踪根阻塞SPID,但它并没有真正引导我到任何地方。最后一个trace语句与sqltext上面的相同SET TRANSACTION ISOLATION LEVEL READ COMMITTED。 我检查了所有可以找到的相关存储过程,以确保它们具有TRY / CATCH BEGIN TRAN / COMMIT TRAN / ROLLBACK TRAN语句(我们将存储过程用于所有内容,因此没有独立的语句在运行)。该问题在过去的24小时内才刚刚开始发生,并且没有人声称对系统进行了任何更改。 解决方案:我们很少使用的存储过程之一有一个插入错误(列数不匹配),但是我们仍然对正在发生的事情感到困惑。 查看所有跟踪信息时,有时会列出该存储过程的EXEC语句,但绝不会在阻塞SPID上发生BLOCK之前。看来,当它开始阻塞时,跟踪并没有记录它(或其中的任何一条语句)的执行情况。但是,还有其他时间跟踪确实记录了它的执行并且没有发生阻塞。 存储过程错误报告来自用户,我能够在跟踪中找到多个EXEC语句并在SSMS中运行它们。当我运行它们时,我们没有任何阻塞发生或挂起的情况。它们按预期运行(错误后触发catch块并回滚了事务)。解决了存储过程的问题后,我们再也没有看到此问题。

4
如何查询SSISDB找出软件包中的错误?
我已经看到了这个问题 SSIS 2012-如何在T-SQL中查询当前正在运行的程序包? 它给了我以下脚本: SELECT E.execution_id , E.folder_name , E.project_name , E.package_name , E.reference_id , E.reference_type , E.environment_folder_name , E.environment_name , E.project_lsn , E.executed_as_sid , E.executed_as_name , E.use32bitruntime , E.operation_type , E.created_time , E.object_type , E.object_id , E.status , E.start_time , E.end_time , E.caller_sid , E.caller_name , E.process_id , E.stopped_by_sid …

2
在将文件添加到tempdb的上下文中,热点是什么?
我试图找出是否有可能在不重新启动SQL Server服务的情况下将tempdb文件添加到SQL Server。我在数据库管理员那里看到了这个答案: Tempdb添加文件需要重新启动 一个答案指出: 添加-无需中断。尽管正如Microsoft的Sean指出的那样,SQL将更喜欢使用填充较低的文件。如果您要从1个数据文件开始添加更多数据,则SQL会在一段时间内使用新数据文件,但是您的性能不会比仅拥有一个文件更糟。但是,如果您已经有2个以上并添加一个以上,则它将在新的1个热点上出现并降低性能。 但是,有一条评论警告以下内容: 我将在“添加”部分添加一个附录:“添加:不,但是您很可能会失衡,所以您会发现热点,这会使情况变得更糟。” 我有关于该评论的以下问题,但被指示在我自己的新问题(此问题)中提出这些问题,而不是通过对该问题的答案中的评论来询问评论者。 特别: 什么是热点?(我通过Google获得了一些信息,但未详细添加文件后在tempdb上进行热点时会发生什么情况) 热点问题会使tempdb变得更糟吗? 数据库中哪些特定的事情会变得更糟?

6
如何在MS SQL Server上修复混乱的复制
我从备份还原了数据库。数据库使用复制发布到其他服务器。假设数据库还原会破坏复制,我尝试删除该复制并重新创建它(我们有一个脚本可以从头开始重新创建它)。我不确定自己所做的确切,但是现在它处于完全混乱的状态,我无法修复。 首先,我尝试摆脱订阅(在发布服务器上): EXEC sp_dropsubscription @publication = 'PublicationName', @article = N'all', @subscriber = 'SubscriberServerName' 这似乎有效。SELECT * FROM syssubscriptions没有显示结果。在订阅服务器上,SSMS> {SubscriberServer}>复制>本地订阅-订阅不存在。 因此,我尝试删除该出版物。SSMS> {服务器}>复制>本地发布> {PublicationName}>删除。这给出以下错误信息: Could not delete publication 'PublicationName'. Could not drop article. A subscription exists on it. Changed database context to 'DatabaseName'. (Microsoft SQL Server, Error: 14046) 好的,所以我尝试删除文章: EXEC sp_droparticle @publication = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.