SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题

事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题;

事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话超时等待提交的问题导致。

经过排查,扩展事件里发现不定期出现35202错误,这是一条副本连接恢复的消息。

由于机房网络环境复杂,数据库服务器和应用服务器混用一个交换机,在业务高峰期时,因上联端口流量打满而导致连接失败的情况屡有发生。

既然短期内无法改造网络环境,那就从SQLSERVER服务器自身出发,只对数据同步的部分进行改造;

现有环境:

SQL AG:为两节点的同步模式,两个节点各有一块网卡连接到交换机,没有直连心跳线(WSFC也不再要求有独立的心跳网络)

改造方案:

1、两个节点各启用一块网卡,采用直连方式进行通信,同时配置私有地址
复制代码 代码如下:
Server_A:10.0.0.11
Server_B:10.0.0.12

2、删除两个节点的endpoint,手动重新创建Listener_IP为直连IP的endpoint
3、更改AG中,每个副本的endpoint_url
4、等待数据重新同步;

其中第三步的脚本如下,要在两个节点上分别操作,注意Listener_IP为直连网卡的IP
复制代码 代码如下:
/****** Object:  Endpoint [Hadr_endpoint]    Script Date: 2015/1/6 16:06:17 ******/
DROP ENDPOINT [Hadr_endpoint]
GO

/****** Object:  Endpoint [Hadr_endpoint]    Script Date: 2015/1/6 16:06:17 ******/
CREATE ENDPOINT [Hadr_endpoint]
         STATE=STARTED
         AS TCP (LISTENER_PORT = 5022, LISTENER_IP = (10.0.0.11))
         FOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE
, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

第四步的脚本如下,在主副本执行即可
复制代码 代码如下:
ALTER AVAILABILITY GROUP [Alwayson01]
MODIFY REPLICA ON N'Node_01' WITH (ENDPOINT_URL = N'TCP://10.0.0.11:5022')

ALTER AVAILABILITY GROUP [Alwayson01]
MODIFY REPLICA ON N'Node_02' WITH (ENDPOINT_URL = N'TCP://10.0.0.12:5022')

注意:删除endpoint后两副本即为未同步状态,但侦听器和AG组中的数据库不受影响,对应用而言,主副本的服务仍然正常;

时间: 2024-07-31 10:19:19

SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题的相关文章

SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题_MsSql

事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题: 事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话超时等待提交的问题导致. 经过排查,扩展事件里发现不定期出现35202错误,这是一条副本连接恢复的消息. 由于机房网络环境复杂,数据库服务器和应用服务器混用一个交换机,在业务高峰期时,因上联端口流量打满而导致连接失败的情况屡有发生. 既然短期内无法改造网络环境,那就从SQLSERVER服务器自身出发

SQLServer 2012之AlwaysOn —— 指定数据同步链路,消除网络抖动导致的提交延迟问题

原文:SQLServer 2012之AlwaysOn -- 指定数据同步链路,消除网络抖动导致的提交延迟问题 事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题: 事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话超时等待提交的问题导致. 经过排查,扩展事件里发现不定期出现35202错误,这是一条副本连接恢复的消息.   由于机房网络环境复杂,数据库服务器和应用服务器混用一个交换机,在业务高峰期时,因

使用virtualbox在windows 7中设置ubuntu虚拟机网络

以前在XP下使用virtualbox安装ubuntu虚拟机,配置网络连接很容易的.使用nat上网:使用桥接,主机能访问虚拟机.也就是配置2张网卡就可以了.在win7下面,完全不是一回事.使用nat能上网,不过桥接的网卡,配置就麻烦了很多.桥接使用静态地址,主机能访问虚拟机,不过会导致虚拟机访问不了网络,ping百度都没反应:桥接使用动态地址,虚拟机能访问外网,不过主机访问不了虚拟机.捣腾的过程,遇到了不少的麻烦.后来到网上放狗,找到了解决方法,在这里标记一下.简单的来说,使用host only

SQLSERVER 2012之AlwaysOn -- 一次硬件升级引发的问题

原文:SQLSERVER 2012之AlwaysOn -- 一次硬件升级引发的问题 这是上周遇到的一个案例:对已有的硬件进行升级而引发的问题,期间还触发了一个比较严重的BUG,可谓多灾多难:不过值得庆幸的是,在一连串连锁问题出现的时候,并没有出现人工操作失误(这往往是在处理故障中风险最高.影响最大的问题)而扩大故障影响范围:   ==========================华丽丽的分割线==========================     先说一下环境:     我做的是跨机房3

SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化

原文:SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化 本文是基于上一篇<SQLServer 2012之AlwaysOn -- 指定数据同步链路,消除网络抖动导致的提交延迟问题>的问题继续进行优化:具体背景请参照上文:     前后折腾了一个多月,最近终于把这块难啃的骨头搞定了.问题只是出在网卡的高级功能上:     解决方案:关闭网卡的高级功能Jumbo Mtu和Large Send Offload V2     问题分析:根据Broadcom Ethernet

MySQL应对网络抖动问题

默认情况下,MySQL本身通过各种TIMEOUT参数来断开链接. 对TIMEOUT的各种解释: connect_timeout 在建立连接时起作用,对于使用连接池的情况或者网络较差的情况建议将该值增大.interactive_timeout和wait_timeout 交互式与非交互的链接 主要适用于连接空闲阶段.net_read_timeout和net_write_timeout主要是connection 在 read 或write时 繁忙阶段的超时. 具体实例: 1.Can't connect

sql server 2012中实现字符串连接的新方法

--sqlserver 2012之前的版本 /* 处理not null字符 */ DECLARE @t1 varchar(10) = 'a' DECLARE @t2 varchar(10) = 'b' DECLARE @t3 varchar(10) = 'c' DECLARE @t4 varchar(10) = 'd' DECLARE @N1 int = 2012 SELECT @t1+@t2+@t3+@t4+convert(varchar(10),@N1 ) as result go /* 处

C# 开发类似QQ的通讯软件,如何在软件中实现通过设置代理连接网络。百分求助!请大神帮忙。

问题描述 项目功能描述:给单位内部开发一个CS构架的管理工具(有点类似QQ),因为内部网络环境比较复杂,直连互联网的电脑无问题,但有部分电脑是通过公司OA网络(OA网络是通过一台固定IP的代理服务器与外网链接)因此这部分电脑的客户端只能通过设置代理服务器与架设在公网上的服务端交互(安装在我们OA网络的所有通讯工具也都需要在各自软件中设置代理服务器的IP,端口才能正常使用):问题:如何让自己设计的这款软件也能象QQ一样可以通过设置代理服务器实现与OA网络互通?请大神帮忙解决!主要实现代码priva

当流量尖峰到达时,在 Linux 内核中解决网络问题

当流量尖峰到达时,在 Linux 内核中解决网络问题 几周前,我们开始注意位于华盛顿的追踪API的服务器网络流量有很大的变化.从一个相当稳定的日常模式下,我们开始看到300-400 Mbps尖峰流量,但我们的合法的流量(事件和人为更新)是不变的. 突然,我们的网络流量开始飙升像疯了似的. 找到虚假的流量来源是当务之急,因为这些尖峰流量正触发我们的上游路由器启动DDOS减灾模式来阻止流量. 有一些很好的内置的Linux工具帮助诊断网络问题. ifconfig 会显示你的网络接口和多少数据包通过他们