手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题
SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题
摘要:事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题;事件分析:在排除了系统资源争用等问题后,初步分析可...

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

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

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

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

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

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

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

既然短期内无法改造网络环境,那就从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组中的数据库不受影响,对应用而言,主副本的服务仍然正常;

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

SQL Server 2008 安装SQLDMO.dll的方法

SQL Server 2000中的触发器使用

SQLServer 触发器 数据库进行数据备份

SQLServer 批量导入目录文件

win2003 Server配置SQL Server 2005远程连接的方法

SQL Server 2000的安全配置

SQL Server 2005 数据维护实务

SQLServer 2008 R2中使用Cross apply统计最新数据和最近数据

SQL Server 2005使用的网络协议

SQL Server 中 RAISERROR 的用法详细介绍

精品推荐
分类导航