Microsoft SQL バックアップ・リストア

 

Symantec Backup Exec Microsoft SQL Server エージェントを使うメリット


「Symantec Backup Exec Microsoft SQL Server エージェント」ライセンスには
「Symantec Backup Exec Windows システムエージェント」の機能も含みます。

Microsoft SQL Server Management Studioで可能なSQL Server のバックアップ機能とほぼ同等なことが出来ます。
メリットはリストア時にあります。

Backup Execのリストアジョブ1ウィザードで
  • システムデータベース(master、msdb、model)が簡単にリストア出来る
  • 完全バックアップ+差分バックアップのリストアが1ウィザードで出来る
  • 完全バックアップ+ログバックアップのリストアが1ウィザードで出来る
  • 完全バックアップ+差分バックアップ+ログバックアップのリストアが1ウィザードで出来る。

つまり、リストアが1ウィザードのみで可能でリストアが簡単になります。
ユーザーデータベースの「完全バックアップと複数ログバックアップ」からのリストアする場合の選択ソース。

※ 「master データベースのリストアを自動化する」を選択した場合、リストアするソース「選択リスト」のリストア対象データベースは「master」のみしか選択出来ません。

SQLデータベース、リストア対象(選択リスト)の選択項目の確認

SQLデータベースのリストア対象(選択リスト)で複数のリソース(SQL/完全、SQL/差分、SQL/ログ)を選択した場合、間違ったシーケンス(バックアップセット)でもリストアが実行されます。
間違ったシーケンス(バックアップセット)でリストアを実行した場合は、リストア先のデータベースが「復元しています」となり壊れてしまいます。

間違ったシーケンスを確認するために、[リストアジョブのプロパティ]-設定の[Microsoft SQL]を選択し、[選択項目の確認]ボタンを押すことによりバックアップセット(例えば、完全バックアップ+複数ログバックアップ)に間違えがないことをリストア実行前にチェックすることが出来ます。

「SQL Server のリストアの選択内容とオプションに問題は見つかりませんでした。」メッセージが出ればシーケンスに問題ありません。

「SQL Server におけるデータベース TEST-DB01\database のリストアの選択内容は、完全-差分-ログ-ログという必須シーケンスに従っていません。」メッセージが出ればバックアップセットに問題があり、リストアは失敗(エラー)となります。

自動ではリストア対象の選択に問題あるかどうかチェックしてくれず、チェックにはこの「選択項目の確認」チェックの実行が必要です。
ただし、ある時点に戻したいといった場合は、このチェックはリストア要件に対し正しくない場合があります。

リストアエラー

「master」データベースと他のデータベースを一括でリストアしようとした場合のエラー

完了状態: 失敗
最終エラー: 0xe00084a3 - [master データベースのリストアを自動化する]を選択した場合は、SQL サーバー master データベースしか選択できません。
最終エラーカテゴリ: ジョブエラー

このエラーについて詳しくはリンクを参照してください。 V-79-57344-33955
テストで確かめるには
master・・・SQLログインユーザー作成
msdb・・・SQLジョブ作成

「master データベースのリストアを自動化する」を選択せずに、一括でデータベースをリストアしようとした場合のエラー
完了状態: 失敗
最終エラー: 0xe0008492 - データベースの照会に失敗しました。詳しくはジョブログを参照してください。
最終エラーカテゴリ: リソースエラー

このエラーについて詳しくはリンクを参照してください。 V-79-57344-33938

V-79-65323-3108 - 
データベース master の照会中にエラーが発生しました。
V-79-65323-3108 - master データベースを復元するには、サーバーをシングル ユーザー モードで実行する必要があります。シングル ユーザー モードでの起動の詳細については、オンライン ブックの「SQL Server のインスタンスを開始する方法 (sqlservr.exe) (How to: Start an Instance of SQL Server (sqlservr.exe))」を参照してください。
V-79-65323-4330 - 
データベース database の照会中にエラーが発生しました。
V-79-65323-4330 - このバックアップ セットを適用できません。このバックアップ セットは、データベースと一貫性のない復旧パスに存在します。復旧パスは、データベースを特定の復旧ポイントの状態に戻す、データ バックアップとログ バックアップのシーケンスです。互換性のあるバックアップを見つけて復元するか、データベースの残りを復元してこのバックアップ セット内の復旧ポイントと一致させてください。これにより、異なる特定の時点にデータベースが復元されます。復旧パスの詳細については、SQL Server オンライン ブックを参照してください。

「ログバックアップ」のみをリストアした場合のエラー

そもそもログバックアップのみのリストアはありえないが、backup exec のSQL エージェント操作的には実行可能。
リストアするとデータベースが壊れてしまう恐れあり。

ログバックアップよりも、リストア先のデータベースの方が新しい場合
完了状態: 失敗
最終エラー: 0xe0008492 - データベースの照会に失敗しました。詳しくはジョブログを参照してください。
最終エラーカテゴリ: リソースエラー

このエラーについて詳しくはリンクを参照してください。 V-79-57344-33938

データベース database の照会中にエラーが発生しました。
V-79-65323-4305 - このバックアップ セットのログは LSN 6567000001186400001 から始まります。これはデータベースに適用するには新しすぎます。LSN 6567000001182900001 を含むバックアップよりも前のログ バックアップを復元できます。

ログバックアップよりも、リストア先のデータベースが古い場合
完了状態: 失敗
最終エラー: 0xe0008492 - データベースの照会に失敗しました。詳しくはジョブログを参照してください。
最終エラーカテゴリ: リソースエラー

このエラーについて詳しくはリンクを参照してください。 V-79-57344-33938

V-79-65323-3117 - 
データベース database の照会中にエラーが発生しました。
V-79-65323-3117 - ロールフォワードできる状態のファイルがないので、ログまたは差分バックアップは復元できません。
そもそも、普通にはログバックアップのみからのリストアは出来ません。

「差分バックアップ」のみをリストアした場合のエラー

「ログバックアップ」のみをリストアした場合のエラーと同じですね。
完了状態: 失敗
最終エラー: 0xe0008492 - データベースの照会に失敗しました。詳しくはジョブログを参照してください。
最終エラーカテゴリ: リソースエラー

このエラーについて詳しくはリンクを参照してください。 V-79-57344-33938

V-79-65323-3117 - 
データベース database の照会中にエラーが発生しました。
V-79-65323-3117 - ロールフォワードできる状態のファイルがないので、ログまたは差分バックアップは復元できません。


リストアエラー、データベースと一貫性のない

バックアップジョブとしてジョブ状態「成功」のバックアップログデータを使用し、リストアを試みたところ以下のエラーが出た。
完了状態: 失敗
最終エラー: 0xe0008492 - データベースの照会に失敗しました。詳しくはジョブログを参照してください。
最終エラーカテゴリ: リソースエラー

このエラーについて詳しくはリンクを参照してください。 V-79-57344-33938


リストア- DBSERVER V-79-65323-4330 - 
データベース database の照会中にエラーが発生しました。
V-79-65323-4330 - このバックアップ セットを適用できません。このバックアップ セットは、データベースと一貫性のない復旧パスに存在します。復旧パスは、データベースを特定の復旧ポイントの状態に戻す、データ バックアップとログ バックアップのシーケンスです。互換性のあるバックアップを見つけて復元するか、データベースの残りを復元してこのバックアップ セット内の復旧ポイントと一致させてください。これにより、異なる特定の時点にデータベースが復元されます。復旧パスの詳細については、SQL Server オンライン ブックを参照してください。

バックアップジョブのMicrosoft SQLオプションで、「一貫性チェックでエラーが検出された場合でもバックアップを続行する」のチェックを外し、バックアップしてみたところ、バックアップジョブ結果は「失敗」となった。
つまり、バックアップ対象自体が、もともとデータベースで「一貫性チェックでエラーが検出された」状態のものをリストアしていたようだ。

エラーを検出してもバックアップ出来るということは、何かしらの方法でリストア出来るのかも知れない。

・「一貫性チェックでエラーが検出された場合でもバックアップを続行する」のヘルプ情報
一貫性チェックでエラーが検出された場合でもバックアップを続行するには、このオプションを選択します。
現在の状態のデータベースのバックアップでもデータベースのバックアップが存在しないよりはよいと考えられる場合、または大規模のデータベースで問題は小さく、テーブルにあると考えられる場合には、一貫性チェックでエラーが検出された場合でもバックアップを続行することができます。


バックアップ前(バックアップ後)のデータベースの一貫性チェック

 バックアップを開始する前に実行する一貫性チェックを、次のいずれかから選択します。

・実行しない:バックアップを行う前に一貫性チェックを実行しない場合には、このオプションを選択します。バックアップの前または後に、一貫性チェックを実行することを強くお勧めします。デフォルトでは、このオプションが選択されています。
# SQL Server標準バックアップ機能ではなく、DBCCツールを使用したデータベースチェック

・完全チェック、インデックスを除く:一貫性チェックからインデックスを除外する場合は、このオプションを選択します。インデックスをチェックしないと、一貫性チェックに要する時間を大幅に短縮できますが、チェックの完全度は低下します。各ユーザーテーブルのデータページとクラスタ化されたインデックスページのみがチェックされます。クラスタ化されていないインデックスページの一貫性はチェックされません。
# SQL Server標準バックアップ機能ではなく、DBCCツールを使用したデータベースチェック

・完全チェック、インデックスを含む:一貫性チェックにインデックスを含める場合は、このオプションを選択します。発生したエラーはログに記録されます。

物理チェックのみ:オーバーヘッドの少ないデータベースの物理的な一貫性をチェックする場合は、このオプションを選択します。ページヘッダーとレコードヘッダーの物理的構造の整合性、ページのオブジェクト ID とインデックス ID およびその割り当て構造の一貫性のみをチェックします。
# SQL Server 標準バックアップ機能の[信頼性][メディアに書き込む前にチェックサムを行う]に該当します。

[物理チェックのみ]オプションは、SQL Server 7.0 ではサポートされていません。
 


異なるサーバーホストのSQL Server バックアップをリストア

・masterはリストアしてはだめ。(windows 認証でデータベースエンジンにログインできなくなる)


Backup Exec でバックアップしたbkfファイルを使用してSQL Server データベースのリストアは出来る?

masterデータベースのリストアを試してみた。

シングルユーザーモードでSQL Serverを起動
>cd "c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn"

>sqlservr.exe -m

sqlcmdを実行し、masterデータベースのリストアを試みた
>sqlcmd
1> use master
2> go
データベース コンテキストが 'master' に変更されました。
1>
2>
3> RESTORE DATABASE master FROM DISK = 'c:\tmp\B2D000001.bkf' WITH REPLACE;
4> go
メッセージ 3239、レベル 16、状態 3、サーバー JCM-JOCAR-DB11、行 3
デバイス 'c:\tmp\B2D000006.bk1' のバックアップ セットでは、SQL Server でサポート
されない Microsoft Tape Format の機能が使用されています。
メッセージ 3013、レベル 16、状態 1、サーバー TEST-SQL-SERVER、行 3
RESTORE DATABASE が異常終了しています。
1>

Backup Exec のテープフォーマット(bkfファイル)は、SQL Server でサポートされない Microsoft Tape Format の機能が使用されています


Backup Exec SQL Serverエージェントとは


Symantec Backup Exec Agent for Microsoft SQL Server (SQL Agent) を使用すると、ネットワークに接続された SQL Server のバックアップおよびリストア操作を実行できます。SQL データベースのバックアップを、特別な管理を行ったり専用のハードウェアを使用せずに、ネットワークバックアップに統合することができます。

SQL Agent でサポートされる内容を次に示します。

  • データベース、トランザクションログ、差分とファイルグループのバックアップおよびデータベースのリカバリと置換
  • master データベースの自動リストア
  • SQL Server 2000 または SQL Server 7.0 (インストールされている SQL のバージョンによって異なる) のディザスタリカバリプロセスを自動化する Intelligent Disaster Recovery Option のサポート
  • 代替の場所への SQL データベースのリストア
  • リストア選択項目およびオプションの自動確認。リストアジョブを実行する前に現在の SQL Server のリストア選択項目およびジョブオプションの有効性をテストします。
  • バックアップ処理での SQL データベースのホットバックアップコピー。SQL データベースからメディアに送信される実際のデータストリームを、後で使用できるようにローカルディレクトリにコピーできます。
  • 複数のインスタンスのバックアップ
  • Symantec Backup Exec for Windows Servers Advanced Disk-based Backup Option (ADBO) および Advanced Open File Option (AOFO) との統合。ADBO および AOFO は、Backup Exec の独立したアドオンコンポーネントです。ADBO および AOFO を使用すると、リストアに要する時間およびサーバーへのバックアップの影響を軽減できます。
  • スタンバイデータベースのサポート。プライマリ SQL サーバーに障害が発生したり、保守のためにシャットダウンした場合は、スタンバイデータベースと呼ばれるデータベースがオンラインになります。スタンバイデータベースにはプライマリサーバーのデータベースのコピーが存在するため、プライマリサーバーが利用できない場合でも、ユーザーはデータベースへのアクセスを続行することができます。プライマリサーバーが再び利用できるようになった場合は、スタンバイデータベースの変更内容をプライマリサーバーにリストアする必要があります。リストアしないと、変更内容が失われます。その後で、再びプライマリサーバーのデータベースをバックアップして、スタンバイデータベースにリストアします。
  • Backup Exec には、ログファイルバックアップの完了時にデータベースをスタンバイモードにするためのバックアップオプションや、スタンバイデータベースを作成して保持するために、リストア後のデータベースの状態として[データベースは読み取り専用モード]が用意されています。
  • 各バックアップジョブおよびリストアジョブの一貫性チェック (DBCC)。データベースの物理的一貫性チェックによる高速データベース一貫性チェックを含みます。
  • フル (完全)、一括ログ記録およびシンプル (単純) 復旧モデル。シンプル復旧モデルは、SQL Server 7.0 の[チェックポイントでのログの切り捨て]オプションの設定と類似しています。シンプル復旧モデルでは、トランザクションのコピーがログファイルに保存されないため、トランザクションログによるバックアップは実行できません。したがって、データベースを最後のバックアップの時点にリカバリすることはできますが、障害の発生した時点または特定の時点の状態にリストアすることはできません。
  • ログマークを使用した特定の時点または名前付きトランザクションまでのトランザクションログのリストア

SQL Server 7.0 の場合の SQL Agent でサポートされる内容を次に示します。
  • バックアップジョブ前後の、データベース一貫性チェック (DBCC)
  • トランザクションログの指定した時点へのリストア
SQL Server 2005 の場合の SQL Agent でサポートされる内容を次に示します。
  • データベースのスナップショット
  • 新しいコピーバックアップジョブ。SQL データベースの完全バックアップジョブを実行せずに SQL Server 2005 データベースをコピーできます。
  • リストア先を変更する場合の複製設定の保持
  • 「Verify Only」リストアジョブ。リストアジョブでデータベースが削除または上書きされる前に、メディア上での SQL データの有効性、および宛先の SQL データベースでこのデータの受け入れが可能かどうかを判断できます。
  • チェックサムの生成を使用したバックアップ。冗長検査として使用します。このオプションを使用するには、「Verify Only」リストアジョブオプションが必要です。
  • エラーが検出された場合のリストアジョブの継続。破損したデータベースのバックアップからできるだけ多くのデータをリストアできます。

SQL Server 2008 Enterprise Edition の場合の SQL Agent でサポートされる内容を次に示します。
  • SQL Server 2008 Enterprise Edition では、バックアップジョブに対して SQL ソフトウェア圧縮を使うことができます。

[バックアップジョブのプロパティ]-[設定]-[Microsoft SQL]の設定項目一覧


Microsoft SQL

データベースのバックアップ方式(&M):
完全 - 選択したデータベースまたはファイルグループをバックアップする
ログ - トランザクションログをバックアップする
ログ - トランザクションログをバックアップする (ログを切り捨てない)
差分 - データベースまたはファイルグループの変更内容のみをバックアップする
データベーススナップショット (SQL 2005以降) - 読み取り専用の、別のデータベースの特定時点のコピー
完全コピーのみ (SQL 2005 以降) - 今後の差分またはログバックアップに影響することなく、データベースまたはファイルグループ全体をバックアップします


保持するデータベースのスナップショット(&K):
4

バックアップ前のデータベースの一貫性チェック(&O):
なし
インデックスを含まない完全チェック
インデックスを含む完全チェック
物理チェックのみ

一貫性チェックでエラーが検出された場合でもバックアップを続行する(&F)

バックアップ後のデータベースの一貫性チェック(&C):
なし
インデックスを含まない完全チェック
インデックスを含む完全チェック
物理チェックのみ

トランザクションログバックアップ後のデータベースの状態を設定する(&E)
NORECOVERY - データベースをローディング状態にする(&V)
STANDBY - データベースをスタンバイ状態にする(&T)

バックアップでチェックサムを使用する(&U) (SQL 2005 以降)

ディスク上に SQL バックアップのコピーを作成して、データベースが存在する SQL Server に格納する(&D)
保存先パス(&P):
C:\TEMP

SQL Server 2008 Enterprise Edition ソフトウェア圧縮(&S):
なし
圧縮

[リストアジョブのプロパティ]-[設定]-[Microsoft SQL]の設定項目一覧

Microsoft SQL

リストア後のデータベースの状態
データベースは使用可能な状態、トランザクションログまたは差分バックアップのリストアは不可能(&V)
データベースは操作不可能な状態、トランザクションログまたは差分バックアップのリストアは可能(&D)
データベースは読み取り専用モード(&O)

既存の保存先データベースをオフラインにする(&T)
既存のデータベースを上書きする(&W)
master データベースのリストアを自動化する(&A)
リストア中にエラーが発生した場合にリストアを続行する(&E) (SQL 2005 以降)
検証のみ実行し、データをリストアしない(&U)

リストア後のデータベースの一貫性チェック(&C):
インデックスを含まない完全チェック
インデックスを含む完全チェック
物理チェックのみ
なし

ログリカバリオプション
ログ全体のリカバリ(&G)
時刻を指定してリストアする  リストアする時点(&P):
トランザクションを指定してリストアする  トランザクション名(&L):
指定したトランザクションをリストアに含める(&I)
指定したトランザクションを次の日時以降から検索する(&F):



更新日:2010/02/02