データベースが破損したときのトランザクション ログのバックアップ (SQL Server)

このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、データベースが損傷しているときにトランザクション ログをバックアップする方法について説明します。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    推奨事項

    セキュリティ

  • データベースが損傷したときのトランザクション ログのバックアップ方法:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

  • BACKUP ステートメントは、明示的または暗黙的なトランザクションでは使用できません。

推奨事項

  • データベースで完全復旧モデルまたは一括ログ復旧モデルを使用している場合は、通常、データベースの復元を開始する前に、ログの末尾をバックアップする必要があります。 また、ログ配布構成をフェールオーバーする前に、プライマリ データベースのログの末尾もバックアップする必要があります。 データベースを復旧する前にログ末尾のバックアップを最後のログ バックアップとして復元すると、障害発生後の作業損失を防ぐことができます。 ログ末尾のバックアップの詳細については、「ログ末尾のバックアップ (SQL Server)」を参照してください。

セキュリティ

権限

BACKUP DATABASE 権限と BACKUP LOG 権限は、既定では、sysadmin 固定サーバー ロール、db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられています。

バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。 SQL Server では、デバイスに対して読み書きを実行できる必要があります。SQL Server サービスが実行されているアカウントには書き込み権限が必要です。 ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdevice では、ファイル アクセスの権限は確認されません。 バックアップ デバイスの物理ファイルに関するこのような問題は、バックアップや復元が試行され、物理リソースがアクセスされるまで、表面化しない可能性があります。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

SQL Server Management Studio の使用

トランザクション ログの末尾をバックアップするには

  1. オブジェクト エクスプローラーで適切な Microsoft SQL Server データベース エンジンのインスタンスに接続した後、サーバー名をクリックしてサーバー ツリーを展開します。

  2. [データベース] を展開します。さらに、そのデータベースに応じて、ユーザー データベースを選択するか、または [システム データベース] を展開してシステム データベースを選択します。

  3. データベースを右クリックして [タスク] をポイントし、[バックアップ] をクリックします。 [データベースのバックアップ] ダイアログ ボックスが表示されます。

  4. [データベース] ボックスに、適切なデータベース名が表示されていることを確認します。 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。

  5. 復旧モデルが [FULL] または [BULK_LOGGED] であることを確認します。

  6. [バックアップの種類] ボックスの一覧で、[トランザクション ログ] を選択します。

  7. [バックアップのみコピーする] はオフのままにしておきます。

  8. [バックアップ セット] で、表示された既定のバックアップ セット名をそのまま使用するか、または [名前] ボックスに別のバックアップ セット名を入力します。

  9. [説明] ボックスに、ログ末尾のバックアップの説明を入力します。

  10. バックアップ セットの有効期限を指定します。

    • バックアップ セットが指定の日数後に期限切れになるようにするには、[期間指定] (既定のオプション) をクリックし、セットを作成してからセットが期限切れになるまでの日数を入力します。 設定できる値は 0 ~ 99,999 日です。値に 0 日を指定した場合は、バックアップの有効期限は無期限となります。

      既定値は、[サーバーのプロパティ] ダイアログ ボックス ([データベースの設定] ページ) の [バックアップ メディアの既定の保有期間 (日)] オプションで設定されています。 このダイアログ ボックスを開くには、オブジェクト エクスプローラーでサーバー名を右クリックし、[プロパティ] をクリックして、[データベースの設定] ページを選択します。

    • バックアップ セットが特定の日付に期限切れになるようにするには、[日時指定] をクリックし、セットが期限切れになる日付を入力します。

  11. [ディスク] または [テープ] をクリックして、バックアップ先を選択します。 1 つのメディア セットを含んでいる最大 64 個のディスク ドライブまたはテープ ドライブのパスを選択するには、[追加] をクリックします。 選択したパスは、[バックアップ先] ボックスの一覧に表示されます。

    バックアップ先を削除するには、バックアップ先を選択して [削除] をクリックします。 バックアップ先の内容を表示するには、バックアップ先を選択して [内容] をクリックします。

  12. [オプション] ページで、次のいずれかをクリックして [メディアに上書きします] オプションを選択します。

    • [既存のメディア セットにバックアップする]

      このオプションでは、[既存のバックアップ セットに追加する] または [既存のすべてのバックアップ セットを上書きする] のいずれかをクリックします。

      必要に応じて、[メディア セット名とバックアップ セットの有効期限を確認する] チェック ボックスをオンにします。これにより、バックアップ操作で、メディア セットとバックアップ セットの有効期限が切れる日付と時刻の確認が行われます。

      必要に応じて、[メディア セット名] ボックスに名前を入力します。 名前を指定しなかった場合、空の名前でメディア セットが作成されます。 メディア セット名を指定した場合は、メディア (テープまたはディスク) の実際の名前がここで入力した名前と一致しているかどうかが確認されます。

      メディア名を指定せずに、このチェック ボックスをオンにしてこのメディアを確認するよう指定した場合は、実際のメディア名も空でないとエラーになります。

    • [新しいメディア セットにバックアップし、すべての既存のバックアップ セットを消去する]

      このオプションでは、[新しいメディア セット名] ボックスに名前を入力し、必要に応じて [新しいメディア セットの説明] ボックスにメディア セットの説明を入力します。

    メディア セット オプションの詳細については、「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。

  13. [信頼性] セクションで、必要に応じて次の項目をオンにします。

    • [完了時にバックアップを検証する]

    • [メディアに書き込む前にチェックサムを行う]

    • [チェックサム エラーのまま続行する]

    チェックサムの詳細については、「バックアップ中および復元中に発生する可能性があるメディア エラー (SQL Server)」を参照してください。

  14. [トランザクション ログ] セクションで、[ログの末尾をバックアップし、データベースを復元中の状態にしておく] をオンにします。

    これは、次の BACKUP ステートメントを指定することと同じです。

    BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY

    重要な注意事項重要

    復元時には、[データベースの復元] ダイアログ ボックスに、ログ末尾のバックアップの種類が [トランザクション ログ (コピーのみ)] として表示されます。

  15. [全般] ページの [バックアップ先] セクションで、テープ ドライブにバックアップするように指定した場合は、[バックアップ後にテープをアンロードする] チェック ボックスがアクティブになります。 このオプションをオンにすると、[アンロードの前にテープを巻き戻す] オプションがアクティブになります。

  16. SQL Server 2008 Enterprise 以降では、バックアップの圧縮がサポートされています。 既定では、バックアップが圧縮されるかどうかは、backup-compression default サーバー構成オプションの値によって決まります。 ただし、現在のサーバー レベルの既定の設定にかかわらず、[バックアップを圧縮する] をオンにしてバックアップを圧縮することも、[バックアップを圧縮しない] をオンにして圧縮しないようにすることもできます。

    現在の backup compression default 値を表示するには

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

Transact-SQL の使用

現在アクティブなトランザクション ログのバックアップを作成するには

  • BACKUP LOG ステートメントを実行し、現在アクティブなトランザクション ログをバックアップします。このとき、次の指定を行います。

    • バックアップするトランザクション ログが属しているデータベースの名前。

    • トランザクション ログ バックアップが書き込まれるバックアップ デバイス。

    • NO_TRUNCATE 句。

      この句を使用すると、データベースにアクセスできない場合でも、トランザクション ログ ファイルにアクセスでき、損傷していなければ、トランザクション ログのアクティブな部分をバックアップできます。

例 (Transact-SQL)

注意

この例では、単純復旧モデルを使用する AdventureWorks2012 を使用しています。 ただし、ログ バックアップを可能にするために、データベースの完全バックアップを行う前に、データベースが完全復旧モデルを使用するように設定されています。 詳細については、「データベースの復旧モデルの表示または変更 (SQL Server)」を参照してください。

この例では、データベースが破損していてアクセスできないときでも、トランザクション ログ ファイルが破損しておらずアクセスできる場合は、現在アクティブなトランザクション ログをバックアップします。

BACKUP LOG AdventureWorks2012
   TO MyAdvWorks_FullRM_log1
   WITH NO_TRUNCATE;
GO

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

関連項目

参照

[データベースのバックアップ] ([オプション] ページ)

[データベースのバックアップ] ([全般] ページ)

BACKUP (Transact-SQL)

概念

トランザクション ログ バックアップの復元 (SQL Server)

SQL Server データベースを特定の時点に復元する方法 (完全復旧モデル)

トランザクション ログ バックアップの適用 (SQL Server)

ファイルの復元 (単純復旧モデル)

ファイル復元 (完全復旧モデル)