適用対象: WindowsのSQL Server
まとめ
この記事は、SQL Serverのインストール、アップグレード、サービスの起動、SQL Server エージェント、フェールオーバー クラスター インスタンス (FCI)、Kerberos、リンク サーバー、および可用性グループの障害のエントリ ポイントです。これは、SQL Server サービスがグループ管理サービス アカウント (gMSA) で実行されたときに発生します。 これらの症状のほとんどは、gMSA が関係するかどうかの根本原因が同じであるため、各シナリオの記事では gMSA 固有のチェックと、残りの部分の正規のトラブルシューティング記事へのリンクを分離します。
クイック検証チェックリストから始めます。 次に、観察されたエラーに一致する トラブルシューティング パスを 使用して、診断と解決の手順を含むシナリオの記事を見つけます。 マネージド サービス アカウントや gMSA など、SQL Serverのサービス アカウントの選択と構成の背景については、「Windowsサービス アカウントとアクセス許可の構成」を参照してください。 Active Directoryでの gMSA の作成と管理については、「グループ管理サービス アカウントの管理」を参照してください。
前提条件
- 影響を受ける各SQL Serverホスト ノードまたはクラスター ノードへのローカル管理アクセス。
- SQL Serverセットアップ ブートストラップ ログ、SQL Server エラー ログ、SQL Server エージェント エラー ログ、およびWindows アプリケーションとシステム ログへのアクセス。
-
Get-ADServiceAccountとTest-ADServiceAccount用の Active Directory PowerShell モジュール。 モジュールが存在しない場合は、Windowsのリモート サーバー管理ツールのインストールと管理に関するページを参照してください。 - パスワードの取得、サービス プリンシパル名 (SPN)、委任、および承認されたホストを検証するための適切なActive Directoryアクセス許可、またはActive Directory管理者からの支援。
- データベース エンジンが使用可能な場合 Transact-SQL 診断クエリを実行するアクセス許可。 この記事およびシナリオの記事の診断クエリでは、サーバー スコープの動的管理ビューとカタログ ビューを読み取ります。 バージョンによって異なる必要なアクセス許可については、「 システム動的管理のビューと機能」を参照してください。
Important
サービス アカウント、セキュリティ ポリシー、レジストリ値、SPN、またはフェールオーバー クラスターの設定を変更する前に、証拠を収集します。 障害時刻とサーバーのタイム ゾーンを記録します。 影響を受けるすべてのスタンドアロン サーバー、クラスター ノード、またはレプリカでホスト検証コマンドをローカルで実行し、結果を比較します。 アカウント、サービス、インスタンス、ドメイン名の例を、実際の環境の値に置き換えます。
クイック検証チェックリスト
シナリオ固有の記事を開く前に、影響を受けるすべてのホストでこれらのチェックを実行します。 FCI または可用性グループの場合は、可能なすべての所有者ノードまたはレプリカで実行し、結果を比較します。
SQL Server 構成マネージャー で ログオン アカウント の値と、
SERVICE_START_NAMEからのsc.exe qc出力を確認して、構成されている SQL Server サービスおよび SQL Server エージェント サービスのアカウントを確認します。既定のインスタンスの場合は、次のコマンドを実行します。
sc.exe qc MSSQLSERVER sc.exe qc SQLSERVERAGENT予期される結果:
SERVICE_START_NAMEは、目的の gMSA を識別します。 名前付きインスタンスの場合は、MSSQL$<InstanceName>とSQLAgent$<InstanceName>を使用します。<InstanceName>をインスタンス名に置き換えます。Get-ADServiceAccountを実行し、目的のアカウントが返されることを確認して、Active Directoryが gMSA を見つけることができることを確認します。管理者特権の PowerShell セッションで次のコマンドを実行します。
Get-ADServiceAccount -Identity 'SQLgMSA' -Properties PrincipalsAllowedToRetrieveManagedPassword予期される結果:
Get-ADServiceAccountは目的のアカウントを返し、ホストを一覧表示します。ホスト コンピューター アカウント、またはそのアカウントを含むグループが、
PrincipalsAllowedToRetrieveManagedPasswordに一覧表示されていることを確認します。Test-ADServiceAccountをローカルで実行し、Trueが返されることを確認して、影響を受けるすべてのホストまたは所有者ノードからのパスワード取得をテストします。管理者特権の PowerShell セッションで次のコマンドを実行します。
Test-ADServiceAccount -Identity 'SQLgMSA'予期される結果:
Test-ADServiceAccountは、SQL Server サービスを実行できるすべてのホストでTrueを返します。sc.exe qmanagedaccountを正確な SQL Server または SQL Server エージェント のサービス名を指定して実行し、TRUEと報告されることを確認して、Service Control Manager がそのサービス アカウントを管理対象として扱っていることを確認します。既定のインスタンスの場合は、次のコマンドを実行します。
sc.exe qmanagedaccount MSSQLSERVER sc.exe qmanagedaccount SQLSERVERAGENT予期される結果:
qmanagedaccountレポートTRUE。DNS、ドメイン コントローラーの検出、セキュリティで保護されたチャネルの正常性、時刻同期を確認します。
次のコマンドを実行します。
contoso.comをActive Directoryドメイン名に置き換えます。nltest /dsgetdc:contoso.com nltest /sc_verify:contoso.com w32tm /query /status予期される結果: ドメイン コントローラーが検出され、セキュリティで保護されたチャネルが成功し、時刻の状態が正常です。
SQL Serverが開始された場合は、リモートのWindows認証セッションから
sys.dm_exec_connectionsにクエリを実行して、現在の認証スキームを確認します。
SQL Serverに固有ではない追加のホスト レベルの gMSA チェックについては、「Windows コンテナーの gMSA のトラブルシューティング」を参照してください。
トラブルシューティング パスを選択する
| 確認された現象 | 以下を参照してください。 |
|---|---|
| セットアップが gMSA を拒否するか、検証できない | gMSA を使用したセットアップとアップグレードの失敗のトラブルシューティング |
| 0x84BB0001または "アクセスが拒否されました" でセットアップが失敗する | エラー 0x84BB0001でセットアップが失敗する |
| エラー 1069、イベント ID 7041、またはイベント ID 7038 | gMSA を使用したサービスの起動エラーのトラブルシューティング |
| 起動時にのみサービスが失敗する | gMSA を使用したサービスの起動エラーのトラブルシューティング |
IsManagedAccount または qmanagedaccount が FALSE |
gMSA を使用したサービスの起動エラーのトラブルシューティング |
| SQL Server エージェント は起動するが、ジョブが失敗する | gMSA を使用する SQL Server エージェント ジョブの失敗をトラブルシューティングする |
| FCI セットアップ、追加ノード、スタートアップ、またはフェールオーバーが失敗する | gMSA を使用したフェールオーバー クラスター インスタンスのエラーのトラブルシューティング |
| NTLM フォールバック、SPN エラー、ANONYMOUS LOGON、または可用性グループ エンドポイントの認証失敗 | gMSA を使用した Kerberos と認証エラーのトラブルシューティング |
| エラー 29569 でアップグレードが失敗する | SQL Serverアップグレードがエラー 29569 で失敗する |
診断データの収集
クイック検証チェックリストとシナリオ固有のチェックで原因が特定されない場合は、調査を続行する前に次の診断データを収集するか、サポート ケースを開きます。 証拠が相互に関連付けられるように、同じエラー間隔からすべての成果物を収集します。
影響を受けるすべてのホスト、ノード、またはレプリカから、次の gMSA 固有の証拠を収集します。
-
Get-ADServiceAccount出力(PrincipalsAllowedToRetrieveManagedPasswordを含む)。 -
Test-ADServiceAccount結果。 - SQL Server および SQL Server エージェント サービスの
sc.exe qcとsc.exe qmanagedaccountの出力 -
nltest /dsgetdc、nltest /sc_verify、およびw32tm /query /status出力。 - 有効なユーザー権限の割り当てと
gpresult出力。 - gMSA の SPN 所有権と重複チェック。
- FCI の場合、リソース遷移をカバーするクラスター ログ。
次の標準SQL Server診断データを同じ間隔で収集します。
-
Summary.txt、Detail.txt、機能固有のログを含むセットアップ ログ。 SQL Server セットアップ ログ ファイルの表示と読み取りを参照してください。 - 現在およびアーカイブされたSQL Serverエラー ログ、SQL Server エージェント ログ、失敗したジョブ履歴。
- システム、アプリケーション、および関連するセキュリティ イベント ログ。
ツールの選択と自動収集については、SQL Serverのトラブルシューティングツールと診断ツールを参照してください。 SQL LogScout を使用して、調査に適した収集を自動化できます。