次の方法で共有


Azure への SQL Server マネージド バックアップのトラブルシューティング

このトピックでは、SQL Server Managed Backup から Microsoft Azure への操作中に発生する可能性があるエラーのトラブルシューティングに使用できるタスクとツールについて説明します。

概要

Microsoft Azure への SQL Server マネージド バックアップにはチェックとトラブルシューティングが組み込まれているため、多くの場合、内部エラーは、MICROSOFT Azure プロセス自体への SQL Server マネージド バックアップによって処理されます。

このような場合の 1 つの例として、バックアップ ファイルが削除され、ログ チェーンが中断され、回復性に影響が及びます。Microsoft Azure への SQL Server マネージド バックアップでは、ログ チェーンの中断が特定され、バックアップが直ちに実行されるようにスケジュールされます。 ただし、状態を監視し、手動による介入が必要なエラーに対処することをお勧めします。

Microsoft Azure への SQL Server マネージド バックアップでは、システム ストアド プロシージャ、システム ビュー、および拡張イベントを使用してイベントとエラーがログに記録されます。 システム ビューとストアド プロシージャは、SQL Server Managed Backup を Microsoft Azure の構成情報、バックアップスケジュールされたバックアップの状態、および拡張イベントによってキャプチャされたエラーに提供します。 Microsoft Azure への SQL Server マネージド バックアップでは、拡張イベントを使用して、トラブルシューティングに使用するエラーをキャプチャします。 SQL Server スマート管理者ポリシーは、イベントのログ記録に加えて、電子メール通知ジョブによって通知またはエラーや問題を提供するために使用される正常性状態を提供します。 詳細については、「 Azure への SQL Server マネージド バックアップの監視」を参照してください。

Microsoft Azure への SQL Server マネージド バックアップでは、Azure ストレージへの手動バックアップ (SQL Server Backup to URL) で使用されるのと同じログ記録も使用されます。 URL へのバックアップに関連する問題の詳細については、「SQL Server Backup to URL のベスト プラクティスとトラブルシューティング」のトラブルシューティング セクションを参照してください。

一般的なトラブルシューティング手順

  1. [電子メール通知] を有効にして、エラーと警告の電子メールの受信を開始します。

    また、 smart_admin.fn_get_health_status を定期的に実行して、集計されたエラーとカウントを確認することもできます。 たとえば、 number_of_invalid_credential_errors は、スマート バックアップがバックアップを試行したが、無効な資格情報エラーが発生した回数です。 Number_of_backup_loopsnumber_of_retention_loops はエラーではありませんが、バックアップ スレッドと保持スレッドがデータベースの一覧をスキャンした回数を示します。 通常、 @begin_time と @end_time が指定されていない場合、関数は過去 30 分間の情報を表示します。通常、これら 2 つの列に対して 0 以外の値が表示されます。 0 の場合は、システムがオーバーロードされているか、システムが応答しないことを意味します。 詳細については、このトピックで後述 する「システムの問題のトラブルシューティング 」セクションを参照してください。

  2. 拡張イベント ログを確認して、エラーとその他の関連イベントの詳細を確認します。

  3. ログの情報を使用して問題を解決します。 システムの問題またはエラーが発生した場合は、サービスまたは SQL Server エージェントの再起動が必要になる場合があります。

エラーの一般的な原因

エラーが発生する一般的な原因の一覧を次に示します。

  1. SQL 資格情報の変更: MICROSOFT Azure への SQL Server Managed Backup で使用される資格情報の名前が変更された場合、または削除された場合、Microsoft Azure への SQL Server マネージド バックアップはバックアップを作成できません。 この変更は、SQL Server Managed Backup から Microsoft Azure の構成設定に適用する必要があります。

  2. ストレージ アクセス キーの値の変更: Azure アカウントのストレージ キーの値が変更されても、SQL 資格情報が新しい値で更新されない場合、Microsoft Azure への SQL Server Managed Backup はストレージへの認証時に失敗し、このアカウントを使用するように構成されたデータベースのバックアップに失敗します。

  3. Azure ストレージ アカウントの変更: SQL 資格情報に対応する変更を加えずにストレージ アカウントを削除または名前変更すると、Microsoft Azure への SQL Server マネージド バックアップが失敗し、バックアップは作成されません。 ストレージ アカウントを削除する場合は、データベースが有効なストレージ アカウント情報で再構成されていることを確認します。 ストレージ アカウントの名前が変更された場合、またはキー値が変更された場合は、これらの変更が、SQL Server Managed Backup から Microsoft Azure に対して使用される SQL 資格情報に反映されていることを確認します。

  4. データベース プロパティの変更: 復旧モデルを変更したり、名前を変更したりすると、バックアップが失敗する可能性があります。

  5. 復旧モデルの変更: データベースの復旧モデルが完全ログまたは一括ログから単純に変更された場合、バックアップは停止し、データベースは SQL Server マネージド バックアップによって Microsoft Azure にスキップされます。 詳細については、「Azure への SQL Server マネージド バックアップ: 相互運用性と共存」を参照してください。

最も一般的なエラー メッセージと解決策

  1. Microsoft Azure への SQL Server マネージド バックアップの有効化または構成時のエラー:

    エラー: "ストレージ URL にアクセスできませんでした....有効な SQL 資格情報を指定してください。..." : SQL 資格情報を参照すると、このエラーやその他の同様のエラーが表示される場合があります。 このような場合は、指定した SQL 資格情報の名前と、SQL 資格情報に格納されている情報 (ストレージ アカウント名、ストレージ アクセス キー) を確認し、それらが最新で有効であることを確認します。

    エラー: "...データベースを構成できません....システム データベースであるため": システム データベースに対して Microsoft Azure への SQL Server Managed Backup を有効にしようとすると、このエラーが表示されます。 Microsoft Azure への SQL Server マネージド バックアップでは、システム データベースのバックアップはサポートされていません。 システム データベースのバックアップを構成するには、メンテナンス プランなどの他の SQL Server バックアップ テクノロジを使用します。

    エラー:" ...保持期間を指定してください。..." : これらの値を初めて構成するときに、データベースまたはインスタンスの保持期間を指定していない場合、保持期間に関するエラーが表示されることがあります。 1 から 30 の間の数値以外の値を指定すると、エラーが表示される場合もあります。 保持期間に使用できる値は、1 ~ 30 の数値です。

  2. 電子メール通知エラー:

    エラー: "Database Mail is not enabled..." - 電子メール通知を有効にしたが、データベース メールがインスタンスで構成されていない場合、このエラーが表示されます。 SQL Server マネージド バックアップの正常性状態の通知を Microsoft Azure に受信できるように、インスタンスのデータベース メールを構成する必要があります。 データベース メールを有効にする方法については、「データベース メールの 構成」を参照してください。 通知にデータベース メールを使用するように SQL Server エージェントを有効にする必要もあります。 詳細については、「 開始する前に」を参照してください。

    電子メール通知に関連付けられているエラー番号の一覧を次に示します。

    • ErrorNumber: 45209

    • ErrorNumber: 45210

    • ErrorNumber: 45211

  3. 接続エラー:

    • SQL 接続に関連するエラー: これらのエラーは、SQL Server インスタンスへの接続に問題がある場合に発生します。 拡張イベントは、管理者チャネルを介してこれらの種類のエラーを公開します。 この種類の接続の問題に関連するエラーで発生する可能性がある 2 つの拡張イベントを次に示します。

      FileRetentionAdminXEvent と event_type = SqlError。 このエラーの詳細については、そのイベントのerror_code、error_message、およびstack_traceを参照してください。 error_codeは、SqlException のエラー番号です。

      SmartBackupAdminXevent の次のメッセージおよびメッセージ接頭辞:

      "たとえば、SQL Server マネージド バックアップを Azure の既定の設定に構成しているときに内部エラーが発生しました。 エラーは一時的なものである可能性があります。

      "SQL Server で接続の問題が発生している可能性があります。 現在のイテレーションでデータベースをスキップしています。"

      "ログ使用状況情報のクエリに失敗しました。 エラーは一時的なものである可能性があります。 現在のイテレーションでデータベースをスキップしています。"

      "SSMBackup2WA エージェント メタデータの読み込み中に SQL 例外が発生しました。 エラーは一時的なものである可能性があります。 操作が再試行されます。

      "SSMBackup2WA で SQL 例外が発生しました。..."

    • ストレージ アカウントへの接続エラー:

      ストレージ例外は、event_type = XstoreError を使用して FileRetentionAdminXEvent で報告されます。 エラーの詳細については、そのイベントのerror_messageとstack_traceを参照してください。

      SQL Server マネージド バックアップでは基になる Backup to URL テクノロジが使用されるため、ストレージ接続に関連するエラーは両方の機能に適用されます。 トラブルシューティング手順の詳細については、SQL Server Backup to URL のベスト プラクティスとトラブルシューティングに関する記事のトラブルシューティングセクションを参照してください。

システムの問題のトラブルシューティング

システム (SQL Server、SQL Server エージェント) に問題があり、その影響が Microsoft Azure への SQL Server マネージド バックアップに及ぼす影響を次に示します。

  • sql Server Managed Backup to Microsoft Azure が実行されているときに、Sqlservr.exe が応答を停止するか、動作を停止 します。SQL Server の動作が停止すると、SQL エージェントは正常にシャットダウンされ、Microsoft Azure への SQL Server マネージド バックアップも停止し、イベントは SQL Agent.out ファイルに記録されます。

    SQL Server が応答を停止した場合、イベントは管理チャネルに記録されます。 イベント ログの例:

    Sql エラー (エンジンが応答しない、または sqlException を取得する: SqlException:
    エラー コード、メッセージ、およびスタックトレースは、管理者チャネル xevent に、次のような追加情報と共に表示されます。
    "SQL Server で接続の問題が発生している可能性があります。 現在のイテレーションではデータベースをスキップします。

  • SQL エージェントは、Microsoft Azure への SQL Server マネージド バックアップの実行中に応答を停止するか、動作を停止します。

    SQL エージェントの動作が停止すると、Microsoft Azure への SQL Server Managed Backup も停止し、イベントは管理チャネルに記録されます。 これは、SQL Server が応答を停止するシナリオに似ています。

    SQL エージェントの応答が停止した場合、Microsoft Azure への SQL Server Managed Backup はバックアップ操作を続行できず、イベントは管理チャネルに記録されます。 イベント ログの例:

    ジョブがハングします: 管理者チャネルの xevents を参照してください
    データベースのバックアップに関して、" + Constants.DBBackupInfoMsgMaxWaitTime + " 時間以上、SQL Server から進捗状況の更新が受信されていません。 SSM Cloud Backup は引き続き待機します。"

電子メール通知を有効にした場合は、 バックアップ ループの数保持ループの数を含む通知を受け取ります。 これら 2 つの列の一方または両方の通知で返される値が 0 の場合は、システムが応答していない可能性があります。

警告

レポートの結果を生成する内部プロセスでは、エンジン診断ログが SQL エージェント エラー ログと同じ場所にあることを前提としています。既定では、SQL Server インスタンスのエラー ログと同じフォルダーにあります。 エンジン診断ログが SQL エージェントのエラー ログの場所以外の場所に移動された場合、システムはスマート バックアップ診断ログを見つけられないため、電子メール通知のレポートが正しくない可能性があります。 たとえば、[バックアップ ループの数] や [保持ループの数] など、報告されるすべてのフィールドに値 0 が表示される場合があります。 この場合、診断ログが別の場所に移動される場合、システムが応答していないが、システムがログを見つけることができないことを意味する可能性があります。 診断ログと SQL エージェント エラー ログの場所が、最初に同じ場所にあることを確認します。 診断ログの現在の場所を確認するには、 sys.dm_os_server_diagnostics_log_configurationsを使用できます。 path列は、エンジン診断ログの現在の場所を返します。 SQL エージェントのエラー ログと同じフォルダーに存在する必要があります。 dbo.sp_get_sqlagent_properties ストアド プロシージャを使用して、SQL エージェントのエラー ログ パスを取得できます。

拡張イベント ログを確認して、エラーの詳細を確認します。 エラーを修正するか、SQL Server エージェントを再起動して状況を修正します。