当前位置: 首页 > news >正文

MSSQL:模拟故障

模拟NFS存储波动引发挂载点IO失效,可从网络、服务器、存储设备三方面入手:

网络层面

  • 模拟网络延迟与丢包:借助网络模拟工具,如Linux系统的 netem 。以Ubuntu系统为例,先安装 iproute2 工具包(若未安装),执行命令 sudo apt install iproute2 。然后使用命令 sudo tc qdisc add dev <网卡名> root netem delay <延迟时间>ms loss <丢包率>% ,如 sudo tc qdisc add dev eth0 root netem delay 100ms loss 5% ,为指定网卡(eth0 )添加100毫秒延迟和5% 丢包率,模拟网络不稳定。
  • 模拟网络中断:通过在网络设备(路由器、交换机)上配置访问控制列表(ACL),或在服务器上使用 iptables 等防火墙工具,临时阻断NFS客户端与服务器间的网络连接。例如在Linux服务器上执行 sudo iptables - I INPUT - s <NFS服务器IP> - j DROP ,丢弃来自NFS服务器的数据包,模拟网络中断;恢复连接则执行 sudo iptables - D INPUT - s <NFS服务器IP> - j DROP

服务器层面

  • 模拟服务器负载过高:利用压力测试工具,如 stress 。在NFS服务器上安装 stress ,以CentOS系统为例,执行 sudo yum install stress 。然后使用命令 stress - c <CPU核心数> - m <内存使用量MB> -- hdd <磁盘操作数> ,如 stress - c 4 - m 1024 -- hdd 10 ,模拟4个CPU核心满载、占用1024MB内存及10次磁盘操作,使服务器负载升高,影响NFS服务性能。
  • 模拟NFS服务异常:在NFS服务器上,使用命令停止或重启NFS服务。以Ubuntu系统为例,执行 sudo service nfs - kernel - server stop 停止服务,模拟服务故障;执行 sudo service nfs - kernel - server start 重启服务。也可修改NFS配置文件(如 /etc/exports ),错误配置共享目录权限等参数,引发NFS服务问题。

存储设备层面

  • 模拟磁盘I/O性能下降:使用 dd 命令对磁盘进行大量读写操作,占用磁盘带宽,模拟I/O性能下降。如执行 dd if=/dev/zero of=/mnt/nfs - mount - point/testfile bs=1M count=1000 ,在NFS挂载点(/mnt/nfs - mount - point )创建一个1000MB的文件,大量占用磁盘I/O资源。
  • 模拟磁盘故障:在虚拟机环境下,可通过管理界面移除或断开虚拟磁盘与虚拟机的连接,模拟磁盘故障;在物理机上,可借助磁盘管理工具(如 smartctl )对磁盘进行错误注入操作,但此操作有数据丢失风险,需谨慎操作且提前备份数据。

日志

日志关键内容分析:

  1. Always On 可用性组主备切换

    • 状态变化
      • NOT_AVAILABLE → RESOLVING_NORMAL → PRIMARY_PENDING → PRIMARY_NORMAL,表明本地副本加入可用性组,逐步完成角色转换,最终成为主副本(PRIMARY_NORMAL)。
      • preparing to transition to the primary role 直接说明实例正准备切换为主角色,属于正常的主备切换流程。
  2. HADR 传输连接异常

    • 连接建立与超时
      • 先记录 A connection ... has been successfully established,说明主备副本间的连接曾正常建立。
      • 随后出现 Timeout Detected 10 sA connection timeout has occurred,表明主备副本(E1855EEC-...7E186029-...)间的通信因超时中断。可能原因包括:
        • 网络不稳定(延迟、丢包)或防火墙策略干扰;
        • 备库角色异常(如切换后未及时恢复正常状态)。
  3. 服务器主动关闭

    • 最后 Server shut down by NOWAIT request from login sa 表明,实例被用户 sa 使用 SHUTDOWN WITH NOWAIT 命令强制关闭,属于人为主动操作,同时导致 SQL Trace 停止。

总结:

日志完整记录了 MSSQL 可用性组主备切换过程,切换后 HADR 传输因超时出现连接异常(需排查网络或备库状态),最终实例被 sa 用户主动关闭。需结合网络监控、备库状态进一步定位超时原因,同时关注人为操作对实例的影响。

相关文章:

  • 基于 Spring Boot 的项目模板搭建指南
  • linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
  • 自然语言处理(27:(终章Attention 3.)Attention的评价)
  • Linux Vim 编辑器的使用
  • 在线转换ico格式工具,给qt生成的exe添加桌面图标
  • Java 基础-28- 多态 — 多态下的类型转换问题
  • 4月01日,每日信息差
  • Pytorch学习笔记(十九)Image and Video - Spatial Transformer Networks Tutorial
  • 标题:利用 Rork 打造定制旅游计划应用程序:一步到位的指南
  • 汇编学习之《运算和逻辑指令》
  • GO语言学习(14)GO并发编程
  • 40.C++哈希6(哈希切割/分片/位图/布隆过滤器与海量数据处理场景)
  • 最大正方形(前缀和)
  • seq2seq
  • USB转串口数据抓包--Bus hound
  • 人工智能之数学基础:初等反射阵
  • C# Winform 入门(1)之跨线程调用,程序说话
  • 敏捷开发10:精益软件开发和看板kanban开发方法的区别是什么
  • Windows 下的多功能汉字笔顺学习与字帖生成软件
  • 三维重构 优质视频
  • 第1现场|俄媒称乌克兰网上出售北约对乌军培训手册
  • 43.2℃!河南林州打破全省5月最高温纪录,明后天高温将持续
  • 国家统计局:消费对我国经济增长的拉动有望持续增长
  • 国内规模最大女子赛艇官方赛事在沪启航,中外41支队伍逐浪
  • 遭车祸罹难的村医遇“身份”难题:镇卫生院否认劳动关系,家属上诉后二审将开庭
  • 通往国际舞台之路:清政府与万国公会的交往