• SQL Server的AlwaysOn错误19456和41158


    SQL Server的AlwaysOn错误19456和41158

    最近在公司搞异地数据库容灾,使用AlwaysOn的异地节点进行数据同步,在搭建的过程中遇到了一些问题

    软件版本

    SQL Server2014

    Windows2012R2

    网络环境

    两个机房,一个机房是一个网段,另一个机房是另一个网段,也就是两个子网,两个网段,但是在同一个域中,而且使用了VPN

    AlwaysOn是支持多子网的,在跨机房,多子网环境有几个地方需要注意

    1、在搭建过程中需要把异地节点的投票权去掉,这个在搭建过程中没有遇到问题
    NodeWeight
    在任意集群节点上以域用户登录计算机,并以管理员身份运行powershell,并执行下面命令,JXxx08为异地节点的计算机名,把JXxx08节点的投票权设置为0
    命令如下

    Import-Module FailoverClusters
    $node ="JXxx08"
    (Get-ClusterNode $node).NodeWeight = 0
    $cluster = (Get-ClusterNode $node).Cluster
    $nodes = Get-ClusterNode -Cluster $cluster
    $nodes | Format-Table -property NodeName, State, NodeWeight

    2、由于可用性组建立了侦听器,那么在failover的时候会遇到侦听器IP不能覆盖另一个子网的问题,导致报错

    无法将实例xxx联接到可用性组xxx

    服务器“xxxxxx”无法承载为可用性组侦听器配置的任何 IP 地址。或者配置可承载指定 IP 地址之一的公共群集网络,或者添加可在此服务器的公共群集网络上承载的另一个侦听器 IP 地址。
    无法将本地可用性副本联接到可用性组“xxxxxx”。该操作遇到了 SQL Server 错误 19456,已被回滚。有关详细信息,请查看 SQL Server 错误日志。在错误根源得到纠正后,请重试 ALTER AVAILABILITY GROUP JOIN 命令。 (Microsoft SQL Server,错误: 19456)

    解决这个问题的方法是在侦听器里再添加另一个网段的vip

    这样侦听器现在有两个网段的vip了,异地机房的侦听器IP在添加之后会自动脱机,不用理会它

    3、由于是新添加的异地节点,添加到已有的可用性组中,那么可能遇到下面这个报错

    无法将实例xxx联接到可用性组xxx

    无法将可用性副本联接到可用性组xx,该操作遇到了SQL Server错误41106,已被回滚。
    有关详细信息,请查看 SQL Server 错误日志。在错误根源得到纠正后,请重试 ALTER AVAILABILITY GROUP JOIN 命令。 (Microsoft SQL Server,错误: 41158)

    这个问题跟多子网无关,在这里也顺便列出来了

    解决方法是再随便新建一个AG,把异地节点也加入到这个AG里面,就可以解决

    因为异地节点是新建进来的节点,AlwaysOn的镜像端点还没有设置才导致报上面的错误

    希望这篇文章能帮助大家

    如有不对的地方,欢迎大家拍砖o(∩_∩)o 

    本文版权归作者所有,未经作者同意不得转载。

  • 相关阅读:
    ThinkPHP5远程代码执行高危漏洞(附:升级修复解决方法)
    PowerDesigner 表格导出为excel
    ubuntu 18.04 配置远程ssh/远程ftp/远程vnc登陆
    Linux apache的运行用户和用户组
    mac系统 安装pip,用python读写excel(xlrd、xlwt)安装
    nvm 设置 nodejs 默认版本
    js基础
    Node.js 8 中的 util.promisify的详解
    HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误
    MQTT简介
  • 原文地址:https://www.cnblogs.com/lyhabc/p/5854523.html
Copyright © 2020-2023  润新知