zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    一种可以避免数据迁移的分库分表scale-out扩容方式
    ZooKeeper快速搭建
    ZooKeeper典型应用场景一览
    基于 Quartz 开发企业级任务调度应用
    mac安装dart环境配置及中途的错误解决
    Android Studio3.3打包报错AAPT2 process unexpectedly exit. Error output:
    android在App应用内打开word、xls、pdf等office文档(基于腾讯tbs)
    android分渠道打包,监测日活量统计(基于友盟SDK)
    PHP环境搭建-Windows系统下PHP环境搭建
    使用bugly热更新时自定义升级弹窗的UI样式
  • 原文地址:https://www.cnblogs.com/xuyingzhong/p/8250227.html
Copyright © 2011-2022 走看看