EC2 Windows インスタンスで発生する Microsoft SQL の問題をトラブルシューティングする方法を教えてください。

所要時間2分
0

Microsoft SQL Server を実行している Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでエラーが表示されます。または、SQL Server の速度が遅いため、アプリケーションログのタイムアウトエラーが発生します。

簡単な説明

SQL Server で発生する可能性のある一般的なエラーは次のとおりです。

  • SQL Server インスタンスは、プライマリレプリカからセカンダリレプリカにフェールオーバーしました。
  • イベントビューアーは、イベント 1196「クラスターネットワーク名リソース「クラスター名」が、次の理由により 1 つ以上の関連する DNS 名の登録に失敗しました」を 15 分ごとに記録します。
  • SQL リスナーは作成できません。
  • SQL Server の動作が遅く、アプリケーションにタイムアウトエラーが記録されます。
  • SQL セットアップで別のサーバーの設定を検出すると、ノードの追加が「無効な認証情報」エラーで失敗します。

解決策

SQL Server インスタンスがプライマリレプリカからセカンダリレプリカにフェイルオーバーした

フェイルオーバーは、基盤となるクラスターグループで頻繁に発生します。問題がクラスターレベルにあるかどうかを判断するには、次の手順を使用して イベントビューアーシステムログ を確認します。

  1. [実行] アプリケーションを開き、eventvwr と入力して、[OK] を選択します。
  2. [Windows ログ][システム] を選択します。ログにイベント 1069、1146、1230、または 1135 が表示される場合は、クラスターログを生成してクラスターレベルで調査を開始します。
    **注:**イベント 1135 が表示される場合は、クラスタノードのフェイルオーバーが発生しています。この問題の解決方法については、Microsoft のウェブサイトの「イベント ID 1135 のクラスター問題のトラブルシューティング」 を参照してください。

クラスターログを生成して取得するには、次の手順に従います。

  1. Windows PowerShell で get-clusterlogs コマンドを実行して、最新のクラスターログセットを生成します。
  2. C:\ windows\ cluster\ reports のデフォルトの場所からクラスターログを取得します。

クラスターログに SQL リソースが原因でクラスターがフェールオーバーしたことが示されている場合は、Event Viewer アプリケーションログに SQL エラーがないかどうかを確認してください。

詳細については、Microsoft ウェブサイトの「Always On 可用性グループのリース、クラスタ、およびヘルスチェックのタイムアウトの仕組みとガイドライン」を参照してください。

SQL Server サービスの障害に関する具体的な詳細については、SQL Server エラーログを確認してください。詳細については、Microsoft ウェブ サイトの「SQL Server Management Studio (SSMS) で SQL Server エラーログを表示する」を参照してください。

イベントビューアーは、イベント 1196「クラスターネットワーク名リソース「クラスター名」が、次の理由により 1 つ以上の関連する DNS 名の登録に失敗しました」を 15 分ごとに記録する

デフォルトでは、クラスター名オブジェクト (CNO) は 15 分ごとに DNS に送信され、必要なレコードがまだ存在するかどうかを確認します。チェックに失敗すると、「クラスターネットワーク名リソース「クラスター名」が失敗しました」という登録エラーが表示されます。このエラーは、CNO がクラスター内のネットワーク名のクラスター DNS レコードにアクセスできない場合によく発生します。

これを解決するには、DNS レコードの CNO にフルコントロールを付与してください。デフォルトでは、クラスターは通常、作成時にこれらの権限を付与します。

静的 DNS レコードを使用している場合、またはクラスターが DNS レコードを更新し続けないようにするには、次の手順に従ってください。

  1. [ncpa.cpl][NIC カードのプロパティ][Ipv4 のプロパティ][詳細設定][DNS] に移動します。
  2. [この接続のアドレスを DNS に登録する] のチェックを外します。

SQL リスナーを作成できない

SQL リスナーを作成できない場合は、追加のトラブルシューティングが必要になる場合があります。詳細については、Microsoft のウェブサイトの「リスナーの作成が失敗し、WSFC クラスターがネットワーク名リソースをオンラインにできませんでしたいうメッセージが表示されます」を参照してください。

SQL Server の動作が遅く、アプリケーションにタイムアウトエラーが記録される

SQL Server でメモリやCPUの使用量が多いか、ディスクのボトルネックが発生していないかを確認します。
OS のメモリ消費量が多いかどうかを確認してください。****[タスクマネージャー] を開き、[パフォーマンス] タブを選択します。メモリ消費量が多く、SQL メモリに上限が設定されていなければ、上限を設定してください。詳細については、Microsoft のウェブサイトの「サーバーメモリ構成オプション」を参照してください。

SQL メモリがすでに上限に達している場合は、Windows パフォーマンスモニター (perfmon) にアクセスして、どのアプリケーションがメモリを使用しているかを確認します。perfmon は、ローカルまたはリモートで設定できます。詳細については、Microsoft のウェブサイトの「Windows パフォーマンスモニターの概要」を参照してください。

OS の CPU 使用率が高いかどうかを確認します。****[タスクマネージャー] を開き、[パフォーマンス] タブを選択します。または、Amazon CloudWatch メトリクスを確認してください。Windows パフォーマンスモニターにアクセスして、どのアプリケーションがメモリを使用しているかを確認します。CPU 使用率が高くなるのは、通常、古いドライバーが原因です。最新の PV ドライバーバージョンにアップグレードしてください 。または、AWS NVMe ドライバ を最新バージョンにアップグレードしてください。

サーバーのディスク消費量が多いか、ボリュームが遅いか、I/O 頻度が高いかを確認します。CPU 使用率が高い場合と同様に、古いドライバが原因でディスクが消費される可能性があります。最新の PV ドライバーバージョンにアップグレードしてください 。または、AWS NVMe ドライバ を最新バージョンにアップグレードしてください。ドライバを更新しても問題が解決しない場合は、perfmon を設定してディスク I/O を消費しているものを特定します。

SQL Server または処理速度の遅いデータベースアプリケーションのトラブルシューティングについては、Microsoft のウェブサイトの「遅いと思われる SQL Server 全体またはデータベースアプリケーションのトラブルシューティング」 を参照してください。
SQL Server の I/O が遅い問題のトラブルシューティングについては、Microsoft Web サイトの「I/O の問題が原因で SQL Server のパフォーマンスが低下する場合のトラブルシューティング」を参照してください。

SQL セットアップで別のサーバーの設定を検出した後、ノードの追加が「無効な認証情報」エラーで失敗する

次のいずれかに該当することを確認します。

  • 2 番目のサーバの詳細を検出した後、セカンダリノードの SQL セットアップ で SQL エージェントアカウント名が空白になる。
  • レジストリキー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQL2014\ConfigurationState に、値 2 のキーが 1 つ以上ある。

上記のいずれかに当てはまる場合は、次の手順に従ってください。

  1. Windows PowerShell を開き、次のコマンドを実行します。
    $ClusterName = "YourClusterName"
    $FciClusterGroupName = "SQL Server (MSSQLSERVER)"
    Add-ClusterResourceType -Name "SQL Server Agent" -Dll "sqagtres.dll"
    
    **注:**上記のコマンド例の変数名 (YourClusterName など) を、環境に合わせて変更します。
  2. フェールオーバークラスターマネージャーを開き、[ロール][SQL ロール][リソースの追加][その他のリソース] の順に選択します。
  3. [新しい SQL Server エージェント][プロパティ] [依存関係] を選択します。
  4. [リソース] フィールドで、[SQL Server] を選択します。
  5. [プロパティ] タブを選択し、[InstanceName] フィールドに SQL Server インスタンスの名前を入力します。次に、[VirtualServerName] フィールドに SQL クラスターの名前を入力します。新しい SQL Server エージェントが起動します。
  6. 必ず HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQL2014\ConfigurationState のすべてのキーを値 1 に変更してください。
  7. セットアップをもう一度実行します。認証情報エラーを受け取ることなくノードを追加できるようになりました。

関連情報

EC2 Windows インスタンスで Microsoft SQL Server を起動する方法を教えてください。

EC2 Windows インスタンスで Microsoft SQL クラスターをアップグレードする方法を教えてください。

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ