none
SQLServer 2008 R2でウィットネスが停止中のサーバ障害についてウィットネス起動時に自動的にフェールオーバーさせる方法について RRS feed

  • 質問

  • お世話になります。

    SQLServer2008R2でウィットネスを含む3台構成でのミラーリングを行っております。

    プリンシパル、ミラーはサーバーを使用しておりますが、

    ウィットネスはサーバーではなくビジネス用PCを使用しております。

    (データベースを使用するのはAM08:00~PM20:00までとした場合)

    ウィットネスがシャットダウンされた状態(PM20:00~AM:08:00)の時にプリンシパルに障害が起きた場合、

    ウィットネスを起動したタイミングで自動的にフェールオーバーさせることは可能なのでしょうか?

     

    2011年4月12日 9:17

回答

  • 自動フェイルオーバを伴う高い安全性モードでは3台構成では2台が生きていることがサービス続行の条件です。
    ですのでウィットネス停止中にプリンシパルが停止すると、1台だけではDBが使えず、
    ウィットネスが起動し、ミラーリングセッションが確立された時点でDBが利用可能になると思われます。
    1台は失われた状態のままなので自動フェイルオーバはできません。

    2011年4月19日 10:40
    モデレータ
  • 自己レスですが
    バッチファイルからSQLCMDを使用するして自動化することにしました。

    プリンシパル、ミラーに接続して
    接続可能・不可能、ミラー状態(プリンシパル、ミラー)、ウィットネス接続状態に応じて以下の処理を行うことにしました。


    ①フェイルオーバー
     ALTER DATABASE <database_name> SET PARTNER FAILOVER
     
    ②強制プリンシパル
      ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
     
    ③ミラーリング解除(障害解消後にミラーリング再構成が必要です)
      ALTER DATABASE <database_name> SET PARTNER OFF
     
      場合によっては復元中を解除
      RESTORE DATABASE <database_name> WITH RECOVERY
     
    参考URL
    http://msdn.microsoft.com/ja-jp/library/ms178655.aspx
    http://technet.microsoft.com/ja-jp/library/cc917681.aspx

    参考SQL
    ■ミラー状態確認
     SELECT mirroring_role
       ,mirroring_witness_state
     FROM sys.database_mirroring
     WHERE mirroring_role_desc IS NOT NULL

    2011年5月18日 8:59

すべての返信

  • 自動フェイルオーバを伴う高い安全性モードでは3台構成では2台が生きていることがサービス続行の条件です。
    ですのでウィットネス停止中にプリンシパルが停止すると、1台だけではDBが使えず、
    ウィットネスが起動し、ミラーリングセッションが確立された時点でDBが利用可能になると思われます。
    1台は失われた状態のままなので自動フェイルオーバはできません。

    2011年4月19日 10:40
    モデレータ
  • ElanLilac様

    返信遅くなり申し訳ございません。
    回答ありがとうございます。

    >ウィットネスが起動し、ミラーリングセッションが確立された時点
    この時点で手動にてフェイルオーバーさせるしかないということですね?

     

    2011年5月9日 7:39
  • 自己レスですが
    バッチファイルからSQLCMDを使用するして自動化することにしました。

    プリンシパル、ミラーに接続して
    接続可能・不可能、ミラー状態(プリンシパル、ミラー)、ウィットネス接続状態に応じて以下の処理を行うことにしました。


    ①フェイルオーバー
     ALTER DATABASE <database_name> SET PARTNER FAILOVER
     
    ②強制プリンシパル
      ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
     
    ③ミラーリング解除(障害解消後にミラーリング再構成が必要です)
      ALTER DATABASE <database_name> SET PARTNER OFF
     
      場合によっては復元中を解除
      RESTORE DATABASE <database_name> WITH RECOVERY
     
    参考URL
    http://msdn.microsoft.com/ja-jp/library/ms178655.aspx
    http://technet.microsoft.com/ja-jp/library/cc917681.aspx

    参考SQL
    ■ミラー状態確認
     SELECT mirroring_role
       ,mirroring_witness_state
     FROM sys.database_mirroring
     WHERE mirroring_role_desc IS NOT NULL

    2011年5月18日 8:59