• Mssql主备见证的弊端及主备模式主down掉怎么恢复


      mssql主备见证有个没有解决的问题,mssql的主备是针对单个库的,有时候单个或多个库主备切换了,但是整个主数据库并没有挂掉,并且还运行着其他的库,程序检测到的数据库连接是正常的,只是部分库连接不了,这个时候程序切换不过来,也不能切换,切换了部分还在主上的数据库也连接不了,除非是整个数据库连接不上或者关机了,这种情况数据库和程序同时切换才有意义。

    后来我们就没有要见证了,只有主从,一直运行起,只是做一个数据备份。

    程序的主备连接还是保留起,毕竟主从的情况,挂一台就是整体切换了。

      为了以防主数据库突然各种原因down了,这个时候备机数据库是不能读写的,备机显示(镜像,已断开连接/正在恢复)。我们要想办法恢复备机,而且最好是还能保持主备的模式,在主机起来的情况下还可以继续主备和切换回去。下面以A(主)B(备)来说明。

    停止主机A的SQL SERVER 服务(比如断电),此时备机上的数据库会显示正在恢复状态,大概持续几十秒

    此时,在B机上执行

    use master;

    alter database dataName set partner FORCE_SERVICE_ALLOW_DATA_LOSS

    开始会显示(正在恢复),过几秒会显示(主体,已断开连接)

    假如现在有业务往数据库里插也是能成功的

    现在把原主机A恢复(通电),起来后A显示(镜像 挂起/正在恢复),B显示(主体 挂起)然后在B机里操作

    use master;

    alter database dbtest set partner resume;

    如果A启动不了了,可以重新配置一台A机,在B机上取消镜像重新备份数据库和日志,然后到A机恢复重新设置镜像。期间B机可以继续提供服务,不影响镜像的建立。

    此时A机是作为镜像的,B机是作为主机的,数据开始同步,如果要再切换一下,则再在B上执行下面的sql或者手动切换

    use master;

    alter database dbtest set partner failover;

  • 相关阅读:
    output在delete中的应用
    静态什么时候用?
    Main函数解析
    构造函数
    Main函数解析
    java类类型
    静态使用的注意事项
    Main函数剖析
    成员变量和局部变量的区别
    static的特点
  • 原文地址:https://www.cnblogs.com/xuyingzhong/p/8250227.html
Copyright © 2020-2023  润新知