Azure への SQL Server マネージド バックアップのトラブルシューティング
このトピックでは、Microsoft Azure へのマネージド バックアップ操作中に発生する可能性があるエラーのトラブルシューティングに使用できるタスクとツールSQL Server説明します。
概要
SQL Server Microsoft Azure へのマネージド バックアップには、チェックとトラブルシューティングが組み込まれているため、多くの場合、Microsoft Azure プロセス自体へのマネージド バックアップSQL Serverによって内部エラーが発生します。
このような場合の 1 つの例は、バックアップ ファイルを削除すると、回復可能性に影響を与えるログ チェーンの中断が発生します。SQL Server Microsoft Azure へのマネージド バックアップでは、ログ チェーンの中断が識別され、バックアップが直ちに実行されるようにスケジュールされます。 ただし、状態を監視して、手動による介入を必要とするエラーには対処することをお勧めします。
Microsoft Azure へのマネージド バックアップSQL Server、システム ストアド プロシージャ、システム ビュー、拡張イベントを使用してイベントとエラーをログに記録します。 システム ビューとストアド プロシージャでは、Microsoft Azure へのマネージド バックアップSQL Server構成情報、バックアップスケジュールされたバックアップの状態、および拡張イベントによってキャプチャされたエラーが提供されます。 SQL Server Microsoft Azure へのマネージド バックアップでは、拡張イベントを使用して、トラブルシューティングに使用するエラーをキャプチャします。 SQL Server Smart Admin ポリシーは、イベントのログ記録に加え、正常性状態も提供します。正常性状態は、通知またはエラーや問題を示すために電子メール通知ジョブで使用されます。 詳細については、「Azure へのマネージド バックアップSQL Server監視する」を参照してください。
SQL Server Microsoft Azure へのマネージド バックアップでは、Azure ストレージに手動でバックアップするときに使用されるのと同じログも使用されます (SQL Server URL へのバックアップ)。 URL へのバックアップに関連する問題の詳細については、「URL へのバックアップのベスト プラクティスとトラブルシューティングSQL Serverトラブルシューティング」セクションを参照してください。
一般的なトラブルシューティング手順
電子メール通知を有効にして、エラーと警告に関する電子メールの受信を開始します。
また、定期的に
smart_admin.fn_get_health_status
を実行して集計されたエラーおよび数を確認することもできます。 たとえば、number_of_invalid_credential_errors
は、スマート バックアップでバックアップを試行して "無効な資格情報" エラーが発生した回数です。Number_of_backup_loops
とnumber_of_retention_loops
はエラーではなく、バックアップ スレッドと保有期間スレッドがデータベースの一覧をスキャンした回数を示します。 通常、 と @end_time が指定されていない場合@begin_time、関数は過去 30 分間の情報を表示します。通常、これら 2 つの列には 0 以外の値が表示されます。 これらの値がゼロの場合は、システムがオーバーロードされたかシステムが応答していないことを意味します。 詳細については、このトピックで後述 する「システムの問題のトラブルシューティング 」セクションを参照してください。拡張イベント ログを確認して、エラーと関連するその他のイベントの詳細を理解します。
ログの情報を使用して、問題を解決します。 システムに関する問題またはエラーが発生した場合は、サービスまたは SQL Server エージェントの再起動が必要になることがあります。
エラーの一般的な原因
エラーの一般的な原因の一覧を次に示します。
SQL 資格情報の変更:Microsoft Azure へのマネージド バックアップによって使用される資格情報の名前SQL Server変更された場合、または削除された場合は、Microsoft Azure へのマネージド バックアップSQL Serverバックアップを作成できません。 この変更は、Microsoft Azure へのマネージド バックアップの構成設定SQL Server適用する必要があります。
ストレージ アクセス キー値の変更:Azure アカウントのストレージ キーの値が変更されても、SQL 資格情報が新しい値で更新されない場合、Microsoft Azure へのマネージド バックアップSQL Serverはストレージへの認証時に失敗し、このアカウントを使用するように構成されたデータベースのバックアップに失敗します。
Azure Storage アカウントの変更:SQL 資格情報に対応する変更を加えずにストレージ アカウントを削除または名前変更すると、Microsoft Azure へのマネージド バックアップSQL Server失敗し、バックアップは作成されません。 ストレージ アカウントを削除する場合は、有効なストレージ アカウント情報を使用してデータベースを再構成してください。 ストレージ アカウントの名前が変更された場合、またはキー値が変更された場合は、Microsoft Azure へのマネージド バックアップで使用される SQL 資格情報にこれらの変更SQL Server反映されていることを確認します。
データベース プロパティの変更: 復旧モデルを変更したり、名前を変更したりすると、バックアップが失敗する可能性があります。
復旧モデルの変更:データベースの復旧モデルが完全または一括ログから単純に変更された場合、バックアップは停止し、Microsoft Azure へのマネージド バックアップSQL Serverによってデータベースがスキップされます。 詳細については、「Azure へのマネージド バックアップのSQL Server: 相互運用性と共存」を参照してください。
最も一般的なエラー メッセージと解決方法
Microsoft Azure へのマネージド バックアップSQL Server有効または構成するときのエラー:
エラー: "ストレージ URL にアクセスできませんでした....有効な SQL 資格情報を指定してください。.": SQL 資格情報に関するこのエラーやその他の同様のエラーが表示される場合があります。 このような場合は、指定した SQL 資格情報の名前と、SQL 資格情報 (ストレージ アカウント名、ストレージ アクセス キー) に格納されている情報を確認し、それらが最新で有効であることを確認します。
エラー: "...データベースを構成できません....システム データベースであるため": システム データベースに対して Microsoft Azure へのマネージド バックアップSQL Server有効にしようとすると、このエラーが表示されます。 SQL Server Microsoft Azure へのマネージド バックアップでは、システム データベースのバックアップはサポートされていません。 システム データベースのバックアップを構成するには、メンテナンス プランなどの別の SQL Server バックアップ テクノロジを使用してください。
エラー:" ...保持期間を指定してください。..." : これらの値を初めて構成するときに、データベースまたはインスタンスに保持期間を指定していない場合、保持期間に関するエラーが表示される場合があります。 また、1 ~ 30 の数値以外の値を指定した場合にもエラーが表示されることがあります。 保有期間に許可される値は 1 ~ 30 の数値です。
電子メール通知エラー:
エラー: "データベース メールは有効になっていません。." - 電子メール通知を有効にしても、データベース メールがインスタンスで構成されていない場合、このエラーが表示されます。 Microsoft Azure へのマネージド バックアップの正常性状態の通知を受け取ることができるように、インスタンスのデータベース メールSQL Server構成する必要があります。 データベース メールを有効にする方法については、「データベース メールの構成」を参照してください。 また、通知にデータベース メールを使用するには、SQL Server エージェントを有効にする必要があります。 詳細については、「 始める前に」を参照してください。
電子メール通知に関連するエラー番号を次に示します。
ErrorNumber: 45209
ErrorNumber: 45210
エラー番号: 45211
接続エラー:
SQL 接続に関連するエラー:これらのエラーは、SQL Server インスタンスへの接続に問題がある場合に発生します。 拡張イベントは、管理チャネルを介してこの種のエラーを公開します。 次の 2 つの拡張イベントにより、この種の接続の問題に関連するエラーを確認できます。
event_type が SqlError である FileRetentionAdminXEvent。 このエラーの詳細については、このイベントの error_code、error_message、および stack_trace を確認してください。 error_codeは、SqlException のエラー番号です。
次のメッセージまたはメッセージ プレフィックスが含まれた SmartBackupAdminXevent。
"たとえば、Azure の既定の設定SQL Serverマネージド バックアップの構成中に内部エラーが発生しました。 これは一時的なエラーである可能性があります。"
"SQL Server で接続の問題が発生している可能性があります。 現在の繰り返し処理ではデータベースをスキップします。"
"ログの使用量情報の照会に失敗しました。 これは一時的なエラーである可能性があります。 現在の繰り返し処理ではデータベースをスキップします。"
"SSMBackup2WA エージェントのメタデータの読み込み中に SQL 例外が発生しました。 これは一時的なエラーである可能性があります。 操作が再試行されます。"
"SSMBackup2WA で 、... の間に SQL 例外が発生しました。"
ストレージ アカウントへの接続時のエラー:
event_type が XstoreError である FileRetentionAdminXEvent では、ストレージ例外が報告されます。 このエラーの詳細については、このイベントの error_message と stack_trace を確認してください。
SQL Server マネージド バックアップでは基になる Backup to URL テクノロジを使用するため、ストレージ接続に関連するエラーは両方の機能に適用されます。 トラブルシューティング手順の詳細については、「SQL Server URL へのバックアップのベスト プラクティスとトラブルシューティング」記事の「トラブルシューティング」セクションを参照してください。
システムに関する問題のトラブルシューティング
システム (SQL Server、SQL Server エージェント) に問題があり、Microsoft Azure へのマネージド バックアップに対するその影響SQL Server発生するシナリオをいくつか次に示します。
Microsoft Azure へのマネージド バックアップSQL Server実行中に応答を停止または停止するSqlservr.exe: SQL Serverが動作を停止すると、SQL エージェントは正常にシャットダウン SQL Serverされ、Microsoft Azure へのマネージド バックアップも停止し、イベントは SQL Agent.out ファイルに記録されます。
SQL Server が応答を停止した場合は、イベント ログが管理チャネルに記録されます。 イベント ログの例を次に示します。
Sql エラー (エンジンが応答していないか、sqlException が発生しています: SqlException:
エラー コード、メッセージ、およびスタック トレースが、次のような追加情報と共に、xevent 管理チャネルに表示されます:
"SQL Server で接続の問題が発生している可能性があります。 現在の繰り返し処理ではデータベースをスキップします"Microsoft Azure へのマネージド バックアップが実行されているときに、SQL エージェントSQL Server応答が停止するか、動作が停止します。
SQL エージェントの動作が停止すると、Microsoft Azure へのマネージド バックアップSQL Serverも停止し、イベントが管理チャネルに記録されます。 これは、SQL Server が応答を停止した場合のシナリオに似ています。
SQL エージェントの応答が停止した場合、Microsoft Azure へのマネージド バックアップSQL Serverはバックアップ操作を続行できず、イベントは管理チャネルに記録されます。 イベント ログの例を次に示します。
ジョブを停止します: xevent 管理チャネルを参照してください
" + Constants.DBBackupInfoMsgMaxWaitTime + " 時間を超えるデータベース バックアップで、SQL Serverから進行状況の更新が受信されていません。 SSM クラウド バックアップは引き続き待機します"。
電子メール通知を有効にした場合は、 バックアップ ループの数 と 保持ループの数を含む通知を受け取ります。 これらの列の一方または両方について、通知に示されている値がゼロであれば、システムが応答していない可能性があります。
警告
レポートの結果を生成する内部プロセスは、エンジンの診断ログが SQL エージェント エラー ログと同じ場所に存在することを想定します。SQL エージェント エラー ログは、既定では SQL Server インスタンスのエラー ログと同じフォルダーにあります。 エンジンの診断ログを、SQL エージェント エラー ログとは異なる場所に移動した場合は、システムはスマート バックアップの診断ログを見つけることができなくなるため、電子メール通知内のレポートが正しくなくなる可能性があります。 たとえば、[バックアップ ループの数] や [保持ループの数] など、報告されるすべてのフィールドに 値 0 が表示される場合があります。 この場合、診断ログを別の場所に移動した状況で、システムが応答しなくなるわけではなく、システムがログを見つけられなくなることを意味します。 最初に、診断ログと SQL エージェント エラー ログが同じ場所にあることを確認してください。 診断ログの現在の場所を確認するには、 sys.dm_os_server_diagnostics_log_configurationsを使用できます。 この列は path
、エンジン診断ログの現在の場所を返します。 SQL エージェントのエラー ログと同じフォルダーに存在する必要があります。 dbo.sp_get_sqlagent_properties
ストアド プロシージャを使用して、SQL エージェント エラー ログのパスを取得できます。
拡張イベント ログでエラーの詳細を確認してください。 エラーを修正するか、SQL Server エージェントを再起動して状況を修正します。