none
sql server 镜像(带见证),不自动切换 RRS feed

  • 问题

  • windows 2003 sp2,2005 企业版sp4,有见证服务器。

    测试环境和库密码都一样,用的证书认证。

    将主机(1.50)关闭后,站点报无法连接数据库。

    待主机恢复后,从SQL管理器上可看到主备关系已调换。且之前数据已同步

    <add name="ConnectionString" connectionString="Data Source=192.168.1.50;Failover Partner=192.168.1.56;Initial Catalog=a_test;User ID=sa;Password=111111"/>

    2014年4月24日 10:48

答案

  • Mirror swing takes time, duration depends on many transactions in the queue to send over. In that period, db is in disconnect status. I guess that's what you saw on your server.
    2014年4月24日 13:21

全部回复

  • Mirror swing takes time, duration depends on many transactions in the queue to send over. In that period, db is in disconnect status. I guess that's what you saw on your server.
    2014年4月24日 13:21
  • 主体数据库新日志生成的速率都可能会快于日志发生的速率,有些日志记录会来不及发送,
    而在主体服务器上暂时积累起来。这部分积累未发送的日志产生了一个队列,叫发送队列(send queue)
    发送队列不会占用主体服务器上额外的存储空间或内存,他是存在于主体数据库的事务日志文件(LDF)
    上。事务日志里会一个标记,指向所有没被发送到镜像服务器的日志记录中最早的那个。那么从这个标记
    开始到最新的日志为止就是“发送队列”。主体服务器就不断地从这个队列中取出最早的日志,并发送给
    镜像数据库。
    在镜像数据库中,如果日志重做速度赶不上日志在镜像端固化的速度,那么也在镜像数据库的LDF文件中等待重做
    的事务也会产生一个队列,叫做重做队列(redo queue)。和发送队列类似,重做队列也不使用额外的存储空间
    和内存。他仅是使用一个标记,指向镜像数据库的事务日志文件中最早的那个还未重做的日志。镜像数据库
    从这个标记开始按顺序重做日志,更新数据。重做队列中等待的未重做日志数量决定了故障转移到镜像数据库

    所要花费的时间。

    通过上面的描述LZ应该明白为什么故障转移需要一段时间,虽然是自动故障转移,

    但是也需要把两边数据库的数据同步先可以切换的,这个切换(故障转移)是需要时间的

    2014年4月25日 1:55