none
SQL Server 2008 Std(64) フェールオーバークラスタのインストールに失敗する RRS feed

  • 質問

  • お世話になります。
    表題の件について質問させていただきます。

    SQL Server 2008 Standard を
    「SQL Server フェールオーバークラスタの新規インストール」
    しているのですが、
    「インストールの進行状況」というフェーズにおいて、
    「Windows インストーラの構成タイミングの後処理を実行しています。」
     SqlEngineConfigAction_install_startup_Cpu64
    という所でエラーメッセージが表示されます。

    エラーメッセージは
    「クラスタリソーズ'SQL Server(UserInfo)'をオンラインにできませんでした。
     エラー:グループまたはリソースは要求した操作を実行するのに適切な状態ではありません。
     (HRESULTからの例外:0x8007139F)」
    というものです。

    障害発生の条件を調べてみましたところ、
    サービスアカウントの設定を行う箇所で
    SQL Server Agent と SQL Server Database Engine のアカウントに対し、 
    Domain Admins のユーザを指定したところ、インストールが正常に行えました。
    Domain Users のユーザを指定すると、インストールが失敗しました。
    Domain Users のユーザに対してローカルのAdministrator権限を付与してみましたが、失敗しました。

    権限が関わっている事は理解できるのですが、具体的にどのような権限が必要なのかが理解できていません。
    ご教授願えますでしょうか。よろしくお願いいたします。

    環境
    ネットワーク環境
     Server 2008 によるActiveDirectory
    障害発生マシン
     上記ドメインのメンバサーバ
     Windows Server 2008 Enterprise (64) SP2
     フェールオーバークラスタ機能を追加
     共有ディスクは iSCSI ディスクを指定
    2009年9月9日 7:59

回答

  • yshiro さん、

    こんにちは!
    フォーラム オペレーターの服部 清次です。

    ご質問の件に関しまして、私の方で調べてみましたところ、以下のようなサポート技術情報が公開されていましたので、一度確認されてみてはいかがでしょうか?
    ● 「クラスタ サービス アカウントを手動で再作成する方法」: http://support.microsoft.com/kb/269229/ja

    また、いろいろ情報を探しているうちに、海の向こうのブログで紹介されている情報を見つけました。
    http://blogs.msdn.com/karthick_pk/archive/2009/03/27/installation-of-sqlserver2008-cluster-fails-on-windows2008-the-group-or-resource-is-not-in-the-correct-state-to-perform-the-requested-operation-exception-from-hresult-0x8007139f.aspx (英語)

    こちらでは、yshiro さんが遭遇されたエラー メッセージに関する原因と解決方法が紹介されており、ひょっとすると何かの役に立つかもしれませんので、参考までに和訳して紹介させていただきますね。
    量的にかなり多いので、[原因] と推奨されている [方法3] あたりからご確認いただくのが良いかもしれません。。。 (^^;)

    ↓↓↓↓ ここから ↓↓↓↓

    Windows Server 2008 上で SQL Server 2008 クラスタのインストールに失敗する。 (グループまたはリソースは要求した操作を実行するのに適切な状態ではありません。 HRESULT からの例外: 0x8007139F)

    [現象]
    Windows Server 2008 上で SQL Server 2008 クラスタのインストールに失敗する。

    [エラーの内容]
    クラスタ リソース 'SQL Server' をオンラインにできませんでした。
    エラー: グループまたはリソースは要求した操作を実行するのに適切な状態ではありません。 (HRESULT からの例外: 0x8007139F)

    [原因]
    Windows Server 2008 では、ローカル サーバーから NetBIOS 名や IP アドレスではない名前でサーバーにアクセスを試みる場合、NTLM 認証を使用することはできません。 SQL Server エージェント リソースは、バーチャル サーバー名を使用してサーバーにアクセスするため、NTLM を使用できません。 SPN がないために Is-Alive のチェックが失敗し、SQL Server リソースをオンラインにすることができなくなります。 つまり、Is-Alive チェックを行なうために SQL Server に接続すると、クラスタ サービス起動アカウントが NT AUTHORITY\ANONYMOUS LOGON として解決され、接続が失敗します。 インストールの失敗後、SQL Server リソースは作成されますが、SQL Server エージェント リソースは作成されません。 この問題を解決するには、3つの方法があります。

    [方法 1]
    1. インストールの失敗後、SETSPN ツールを使用して、手動で SPN を作成します (デフォルト インスタンスに対してのみ行なうことができます)。
        例: SETSPN -A MSSQLSVC/VSName.XX.XX.EDU:1433 <起動アカウント名>
              SETSPN -A MSSQLSVC/VSName.XX.XX.EDU <起動アカウント名>
    2. SQL Server リソースをオンラインにする。
    3. SQL Server エージェントのリソース型を作成する。
    {
    SQL Server エージェントを追加するには、以下のコマンドを実行します。
    cluster restype "SQL Server Agent" /create /DLL:sqagtres.dll

    以上の手順が完了すると、"SQL Server エージェント" というリソース型が作成されたという更新メッセージを受け取ります。 次に、[フェールオーバー クラスタ管理] コンソールで、SQL Server エージェント リソースを作成します。

    なお、[フェールオーバー クラスタ管理] コンソールの [SQL Server エージェント] – [プロパティ] – [プロパティ] で、新しくリソースとして作成された SQL Server エージェントが virtualservername と Instancename を持っていることを確認する必要があります。 2つのパラメータ (virtualservername と Instancename) を見つけ、詳細を入力します。
    }
    4. SQL Server エージェント リソースを手動で作成します。
    5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQLServer\MSSQLX.MSSQLSERVER\ConfigurationState で、コンポーネントの reg_dword 値を 1 に変更する。

    [方法 2]
    1. 失敗したインストールを完全にアンインストールします。
    2. インストールする前に SPN を作成します。 (名前付きインスタンスで行なうことはできません。 これは、ポートが不明であり、事前に SPN を作成することはできないためです。)
        例: SETSPN -A MSSQLSVC/VSName.XX.XX.EDU:1433 <起動アカウント名>
              SETSPN -A MSSQLSVC/VSName.XX.XX.EDU <S起動アカウント名>
    3. 次に、SQL Server をクラスタにインストールします。

    [方法 3] (推奨)
    認証ループバック チェックを無効にします。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa というレジストリ サブキーにある DisableLoopbackCheck のレジストリ値を 1 に設定して、Windows Server 2008 の認証ループバック チェックを再度有効にします。 DisableLoopbackCheck レジストリ値を 1 に設定するには、クラスタのすべてのノードで以下の手順を実行してください。

    1. [スタート] から [ファイル名を指定して実行] で regedit と入力し、[OK] をクリックします。
    2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa というレジストリ サブキーを見つけてクリックします。
    3. Lsa を右クリックして [新規] から [DWORD 値] をクリックします。
    4. DisableLoopbackCheck と入力して [ENTER] を押します。
    5. DisableLoopbackCheck を右クリックして [修正] をクリックします。
    6. [値のデータ] ボックスに 1 と入力して [OK] をクリックします。
    7. コンピューターを再起動します。 完全なアンインストールを実行し、再度セットアップを行なうか、または [方法 1] のステップ 2 以降の手順に従います。

    ↑↑↑↑ ここまで ↑↑↑↑

    こちらの情報がお役に立てることを願っています。
    それでは、また! (^_^)/


    _______________________________________________
    マイクロソフト株式会社 フォーラム オペレーター 服部 清次

    2009年9月11日 3:02

すべての返信

  • yshiro さん、

    こんにちは!
    フォーラム オペレーターの服部 清次です。

    ご質問の件に関しまして、私の方で調べてみましたところ、以下のようなサポート技術情報が公開されていましたので、一度確認されてみてはいかがでしょうか?
    ● 「クラスタ サービス アカウントを手動で再作成する方法」: http://support.microsoft.com/kb/269229/ja

    また、いろいろ情報を探しているうちに、海の向こうのブログで紹介されている情報を見つけました。
    http://blogs.msdn.com/karthick_pk/archive/2009/03/27/installation-of-sqlserver2008-cluster-fails-on-windows2008-the-group-or-resource-is-not-in-the-correct-state-to-perform-the-requested-operation-exception-from-hresult-0x8007139f.aspx (英語)

    こちらでは、yshiro さんが遭遇されたエラー メッセージに関する原因と解決方法が紹介されており、ひょっとすると何かの役に立つかもしれませんので、参考までに和訳して紹介させていただきますね。
    量的にかなり多いので、[原因] と推奨されている [方法3] あたりからご確認いただくのが良いかもしれません。。。 (^^;)

    ↓↓↓↓ ここから ↓↓↓↓

    Windows Server 2008 上で SQL Server 2008 クラスタのインストールに失敗する。 (グループまたはリソースは要求した操作を実行するのに適切な状態ではありません。 HRESULT からの例外: 0x8007139F)

    [現象]
    Windows Server 2008 上で SQL Server 2008 クラスタのインストールに失敗する。

    [エラーの内容]
    クラスタ リソース 'SQL Server' をオンラインにできませんでした。
    エラー: グループまたはリソースは要求した操作を実行するのに適切な状態ではありません。 (HRESULT からの例外: 0x8007139F)

    [原因]
    Windows Server 2008 では、ローカル サーバーから NetBIOS 名や IP アドレスではない名前でサーバーにアクセスを試みる場合、NTLM 認証を使用することはできません。 SQL Server エージェント リソースは、バーチャル サーバー名を使用してサーバーにアクセスするため、NTLM を使用できません。 SPN がないために Is-Alive のチェックが失敗し、SQL Server リソースをオンラインにすることができなくなります。 つまり、Is-Alive チェックを行なうために SQL Server に接続すると、クラスタ サービス起動アカウントが NT AUTHORITY\ANONYMOUS LOGON として解決され、接続が失敗します。 インストールの失敗後、SQL Server リソースは作成されますが、SQL Server エージェント リソースは作成されません。 この問題を解決するには、3つの方法があります。

    [方法 1]
    1. インストールの失敗後、SETSPN ツールを使用して、手動で SPN を作成します (デフォルト インスタンスに対してのみ行なうことができます)。
        例: SETSPN -A MSSQLSVC/VSName.XX.XX.EDU:1433 <起動アカウント名>
              SETSPN -A MSSQLSVC/VSName.XX.XX.EDU <起動アカウント名>
    2. SQL Server リソースをオンラインにする。
    3. SQL Server エージェントのリソース型を作成する。
    {
    SQL Server エージェントを追加するには、以下のコマンドを実行します。
    cluster restype "SQL Server Agent" /create /DLL:sqagtres.dll

    以上の手順が完了すると、"SQL Server エージェント" というリソース型が作成されたという更新メッセージを受け取ります。 次に、[フェールオーバー クラスタ管理] コンソールで、SQL Server エージェント リソースを作成します。

    なお、[フェールオーバー クラスタ管理] コンソールの [SQL Server エージェント] – [プロパティ] – [プロパティ] で、新しくリソースとして作成された SQL Server エージェントが virtualservername と Instancename を持っていることを確認する必要があります。 2つのパラメータ (virtualservername と Instancename) を見つけ、詳細を入力します。
    }
    4. SQL Server エージェント リソースを手動で作成します。
    5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQLServer\MSSQLX.MSSQLSERVER\ConfigurationState で、コンポーネントの reg_dword 値を 1 に変更する。

    [方法 2]
    1. 失敗したインストールを完全にアンインストールします。
    2. インストールする前に SPN を作成します。 (名前付きインスタンスで行なうことはできません。 これは、ポートが不明であり、事前に SPN を作成することはできないためです。)
        例: SETSPN -A MSSQLSVC/VSName.XX.XX.EDU:1433 <起動アカウント名>
              SETSPN -A MSSQLSVC/VSName.XX.XX.EDU <S起動アカウント名>
    3. 次に、SQL Server をクラスタにインストールします。

    [方法 3] (推奨)
    認証ループバック チェックを無効にします。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa というレジストリ サブキーにある DisableLoopbackCheck のレジストリ値を 1 に設定して、Windows Server 2008 の認証ループバック チェックを再度有効にします。 DisableLoopbackCheck レジストリ値を 1 に設定するには、クラスタのすべてのノードで以下の手順を実行してください。

    1. [スタート] から [ファイル名を指定して実行] で regedit と入力し、[OK] をクリックします。
    2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa というレジストリ サブキーを見つけてクリックします。
    3. Lsa を右クリックして [新規] から [DWORD 値] をクリックします。
    4. DisableLoopbackCheck と入力して [ENTER] を押します。
    5. DisableLoopbackCheck を右クリックして [修正] をクリックします。
    6. [値のデータ] ボックスに 1 と入力して [OK] をクリックします。
    7. コンピューターを再起動します。 完全なアンインストールを実行し、再度セットアップを行なうか、または [方法 1] のステップ 2 以降の手順に従います。

    ↑↑↑↑ ここまで ↑↑↑↑

    こちらの情報がお役に立てることを願っています。
    それでは、また! (^_^)/


    _______________________________________________
    マイクロソフト株式会社 フォーラム オペレーター 服部 清次

    2009年9月11日 3:02
  • 服部 様

    yshiro です。

    情報ありがとうございます。
    (しかも和訳まで・・・)

    [方法3]を試してみたところ、正常にインストールが完了しました。
    本当に助かりました、どうもありがとうございました。

    yshiro
    2009年9月11日 5:30
  • こんにちは、フォーラムオペレーターの高橋春樹です。

    yshiroさん、こんにちは。

    MSDN/TechNetフォーラムのご利用ありがとうございます。

    弊社服部の投稿がお役に立ったようで本当によかったです。
    問題が解決したようなので、大丈夫と思いますが、勝手ながら弊社服部のアドバイスに、回答マークを付けさせてもらいました。
    回答マークを付けると、同じような問題で困っている方が、情報を見つけ易くなるので、
    次回からは、yshiroさんの方で、解決策に繋がった投稿に対して、回答マークを付けて頂ければと思います。

    今後ともMSDNフォーラムをよろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年9月18日 2:14