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

 更新时间:2015年02月27日 09:27:18   投稿:junjie  
这篇文章主要介绍了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组中的数据库不受影响,对应用而言,主副本的服务仍然正常;

相关文章

  • 数据库中两张表之间的数据同步增加、删除与更新实现思路

    数据库中两张表之间的数据同步增加、删除与更新实现思路

    可以采用分别创建增加、删除、更新的触发器(Trigger)来达到两张表之间数据同步的目的,感兴趣的朋友可以参考下,希望可以帮助到你
    2013-03-03
  • SQL Server模糊查询的常见方法总结

    SQL Server模糊查询的常见方法总结

    这篇文章主要给大家介绍了关于SQL Server模糊查询的常见方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • SQLSERVER 临时表和表变量的区别汇总

    SQLSERVER 临时表和表变量的区别汇总

    不管临时表还是表变量都带了表这个词,既然提到表 ,按推理自然会落到某数据库中,如果真在一个数据库中,那自然就有它的存储文件 .mdf和.ldf,那是不是如我推理的那样呢,这篇文章主要介绍了SQLSERVER 临时表和表变量到底有什么区别,需要的朋友可以参考下
    2023-02-02
  • 参考sql2012存储过程写的统计所有用户表尺寸大小的示例

    参考sql2012存储过程写的统计所有用户表尺寸大小的示例

    参考SQL2005, 2008和2012的系统存储过程master.sys.sp_spaceused代码后,写了下面一条语句来方便平时统计所有用户表尺寸大小
    2014-01-01
  • Sql Server事务语法及使用方法实例分析

    Sql Server事务语法及使用方法实例分析

    这篇文章主要介绍了Sql Server事务语法及使用方法,结合实例形式分析了Sql Server事务的概念、原理及相关使用技巧,需要的朋友可以参考下
    2019-02-02
  • SQL SERVER常用的日期与时间查询总结

    SQL SERVER常用的日期与时间查询总结

    这篇文章介绍了SQL SERVER常用日期与时间查询的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • select * from sp_who的解决方案

    select * from sp_who的解决方案

    sql server中提供很多有用的系统存储过程,但是我们都知道,存储过程的结果集是不能用select来过滤的,也就是说select * from sp_who where [dbname] = 'xxx';这样的语句是执行不过。下面介绍两种方法来解决这个问题
    2009-04-04
  • sqlserver中存储过程的递归调用示例

    sqlserver中存储过程的递归调用示例

    这篇文章主要介绍了sqlserver中存储过程的递归调用示例,本文直接给出示例代码,需要的朋友可以参考下
    2015-07-07
  • sqlserver中关于WINDOWS性能计数器的介绍

    sqlserver中关于WINDOWS性能计数器的介绍

    sqlserver中关于WINDOWS 性能计数器的介绍,需要的朋友可以看下
    2013-01-01
  • sql server2022彻底卸载全过程

    sql server2022彻底卸载全过程

    这篇文章主要给大家介绍了关于sql server2022彻底卸载的相关资料,按照下面的文章操作可以完全卸载 SQL Server的现有实例,并对系统进行准备以便可以重新安装 SQL Server,需要的朋友可以参考下
    2023-10-10

最新评论