SQL データベースの差分/ログバックアップが失敗し、「Backup Exec SQL Agent...

book

Article ID: 100036879

calendar_today

Updated On:

Description

問題

SQL データベースの差分/ログバックアップが失敗し、「Backup Exec SQL Agent は、このデータベースの最後の完全バックアップを作成する際に使用されませんでした。差分バックアップまたはトランザクションログバックアップを実行するには、SQL Agent を使用して完全バックアップを実行する必要があります。」というエラーが表示される

エラーメッセージ

データベース TESTDB の照会中にエラーが発生しました。Backup Exec SQL は、このデータベースの最後の完全バックアップを作成する際に使用されませんでした。差分バックアップまたはトランザクションログバックアップを実行するには、SQL Agent を使用して完全バックアップを実行する必要があります。

または

最終エラー: 0xe0000363 - このデータベースの最後の完全バックアップ、差分バックアップ、ログバックアップの作成に Backup Exec SQL Agent が使用されませんでした。差分バックアップまたはトランザクションログバックアップを実行するには、SQL Agent を使用して完全バックアップを実行する必要があります。

または
 
V-79-57344-37937 - データベース は最近リストアされました。増分バックアップ、差分バックアップ、トランザクションログバックアップを実行するには、新しい完全バックアップが必要です。

V-79-57344-867 - データベース の最後の完全バックアップは、このアプリケーションで作成されていません。新しい完全バックアップを実行した後、このジョブを再度実行してください。

原因

完全/差分ログバックアップ戦略を使用している Backup Exec で SQL のバックアップ実行時に、SQL データベースの差分/ログバックアップが上記のエラーが発生して失敗します。

任意のバックアップアプリケーションと Backup Exec とを組み合わせて使用している場合 (BESR 7.0 や SQL の内部バックアップユーティリティなど)、差分バックアップやログバックアップが正常に完了したとジョブログに報告されていても、SQL Server の差分バックアップやログバックアップが復旧不能として表示される可能性があります。

この問題は、SQL のログシーケンス番号 (LSN) が他のバックアップアプリケーションによってリセットされることが原因で起こります。そのため、BEWS によって実行される次回の差分バックアップまたはログバックアップは、元の BEWS 完全バックアップとではなく、別のバックアップアプリケーションのバックアップと関連付けられます。別のバックアップアプリケーションが作成したバックアップセットは使用不可能なため、それ以降の差分バックアップまたはログバックアップは修復不能であると BEWS で表示されます。

Backup Exec 11D (Hotfix 38 適用後) 以降のバージョンでは、Backup Exec Agent for Microsoft SQL Server に変更が加えられました。Backup Exec は Microsoft SQL インスタンスに対して参照チェックを実行して、最後のデータベースバックアップが Backup Exec SQL Agent により作成されたかどうか確認するようになりました。この変更により、SQL バックアップの整合性を維持できます。

SQL データベースのバックアップを実行するときには、次の重要事項について考慮する必要があります。

1. SQL データベースを単純復旧モデルに設定している場合、トランザクションログバックアップは必要ありません。単純復旧モデルに設定されている SQL データベースのトランザクションログをバックアップしようとすると、失敗します。

2. SQL データベースを完全復旧モデルに設定している場合、リカバリポイントを使用したリカバリを実行するためにトランザクションログバクアップを実行することをお勧めします。リカバリポイントを使用したリカバリが必要ない場合やデータベースの重要性が高くない場合は、個別のジョブを実行してトランザクションログをバックアップする必要はありません。

3. SQL トランザクションログバクアップを実行するためには、SQL 組み込みのバックアップユーティリティを無効にする必要があります。SQL データベースと SQL トランザクションログのバックアップには、Backup Exec SQL Agent 以外のアプリケーションは使用しないでください。サイトの SQL 管理者に問い合わせて、SQL 組み込みのバックアップユーティリティを使用していないことを確認してください。

4. master、model、msdb のデータベースは完全バックアップのみ実行できます。master データベースの差分バックアップまたは増分バックアップはサポートされていません。

解決方法

1. Backup Exec のスケジュール内の SQL バックアップの継続性が中断されジョブが失敗することを避けるため、Backup Exec の制御外で (SQL 組み込みのバックアップユーティリティのバックアップ操作とリストア操作を含む) SQL バックアップが実行されないようにしてください。

SQL インスタンスの MSDB データベースに対して次のクエリを実行します。 
 
select name, backup_start_date 
from msdb..backupset
where database_name = 'dbname'
order by backup_start_date desc

「dbname」は、上記のエラーでジョブが失敗する実際のデータベース名で置き換える必要があります。

注意
 
上記のクエリは、以下のいずれかの方法で実行できます。
 
1. SQL の一部としてインストールされる SQL コマンドプロンプト。
 
2. Windows コマンドプロンプトで osql コマンドを使用。
 
例: OSQL -E -S Servername\InstanceName
 
3. Microsoft 社の Web サイトからダウンロード可能な SQL Management Studio ツール。
 
出力において最上部のエントリが「Backup Exec SQL Agent」以外の値、たとえば「NULL」を返す場合、最後の完全バックアップは別のアプリケーションによって実行されています。 
 
 
この場合、Backup Exec による差分バックアップまたはログバックアップは失敗します。(図 1)

図 1
 
 
2. 一部のケースでは、Backup Exec の制御外で実行されたバックアップがない場合でも、上記のエラーが発生して差分バックアップまたはログバックアップが失敗する可能性があります。この問題は、対象のデータベースが以前に復元されたか、接続を切断した後接続された場合に発生することが考えられます。 
 
これを確認するには、手順 1 に記述されているクエリを実行します。
 
3. 最上部のエントリに「Backup Exec SQL Agent」が表示されるにもかかわらず差分バックアップまたはログバックアップが失敗する場合、Backup Exec が実行した最後の「完全」SQL バックアップの「バックアップ方式」を確認します。バックアップ方式が[完全コピーのみ (SQL 2005 以降) - 選択したデータベースまたはファイルグループをバックアップする]を使用するように設定されている場合にバックアップを実行すると、将来の差分バックアップまたはログバックアップへの影響なし、データベース全体またはファイルグループ全体がバックアップされます。バックアップ方式を[完全 - 選択したデータベースまたはファイルグループをバックアップする]に変更すると、「差分」SQL バックアップを正常に完了できます。(図 2)
 
図 2
最上部エントリが「Backup Exec SQL Agent」であり、バックアップ方式が[完全 - 選択したデータベースまたはファイルグループをバックアップする]に設定されているにもかかわらず差分バックアップまたはログバックアップが失敗する場合、その問題を解決するためには、使用している Backup Exec のバージョンに応じて関連する HotFix を適用してください。詳しくは、以下の関連文書のセクションを参照してください。 
 

 

Issue/Introduction

SQL データベースの差分/ログバックアップが失敗し、「Backup Exec SQL Agent は、このデータベースの最後の完全バックアップを作成する際に使用されませんでした。差分バックアップまたはトランザクションログバックアップを実行するには、SQL Agent を使用して完全バックアップを実行する必要があります。」というエラーが表示される