トランザクション ログのバックアップ (SQL Server)
このトピックでは、SQL Server Management Studio、Transact-SQL、または PowerShell を使用して、SQL Server 2014 でトランザクション ログをバックアップする方法について説明します。
このトピックの内容
作業を開始する準備:
トランザクション ログをバックアップする方法:
Note
または、メンテナンス プラン ウィザードを使用して、バックアップを作成することもできます。
はじめに
制限事項と制約事項
- BACKUP ステートメントは、明示的または暗黙的なトランザクションでは使用できません。
推奨事項
データベースで完全復旧モデルまたは一括ログ復旧モデルのいずれかを使用している場合は、データを保護し、トランザクション ログがいっぱいになるのを防止するために、十分な頻度で定期的にトランザクション ログをバックアップする必要があります。 これによってログが切り捨てられ、特定の時点へのデータベースの復元がサポートされます。
既定では、バックアップ操作が成功するたびに、 SQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。 ログを頻繁にバックアップすると、これらの成功メッセージがすぐに蓄積され、他のメッセージを探すのが困難になるほどエラー ログが大きくなることがあります。 そのような場合、これらのエントリに依存するスクリプトがなければ、トレース フラグ 3226 を使用することによってこれらのログ エントリを除外できます。 詳細については、トレース フラグ (Transact-SQL)に関する記事を参照してください。
セキュリティ
アクセス許可
BACKUP DATABASE 権限と BACKUP LOG 権限は、既定では、 sysadmin 固定サーバー ロール、 db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられています。
バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。 SQL Server では、デバイスに対して読み書きを実行できる必要があります。 SQL Server サービスが実行されているアカウントには書き込み権限が必要です。 ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdeviceでは、ファイル アクセスの権限は確認されません。 バックアップ デバイスの物理ファイルに関するこのような問題は、バックアップや復元が試行され、物理リソースがアクセスされるまで、表面化しない可能性があります。
SQL Server Management Studio を使用する
トランザクション ログをバックアップするには
適切な SQL Server データベース エンジンのインスタンスへの接続後、オブジェクト エクスプローラーでサーバー名をクリックしてサーバー ツリーを展開します。
[データベース] を展開します。さらに、そのデータベースに応じて、ユーザー データベースを選択するか、または [システム データベース] を展開してシステム データベースを選択します。
データベースを右クリックして [タスク] をポイントし、 [バックアップ] をクリックします。 [データベースのバックアップ] ダイアログ ボックスが表示されます。
[データベース] ボックスに、適切なデータベース名が表示されていることを確認します。 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。
復旧モデルが [FULL] または [BULK_LOGGED] であることを確認します。
[バックアップの種類] ボックスの一覧で、 [トランザクション ログ] を選択します。
必要に応じて、 [コピーのみのバックアップ] を選択して、コピーのみのバックアップを作成します。 コピーのみのバックアップは、従来の SQL Server バックアップのシーケンスから独立した SQL Server バックアップです。 詳細については、「コピーのみのバックアップ (SQL Server)」を参照してください。
Note
[差分] オプションが選択されている場合、コピーのみのバックアップは作成できません。
[名前] ボックスに表示された既定のバックアップ セット名をそのまま使用するか、または別のバックアップ セット名を入力します。
必要に応じて、 [説明] ボックスに、バックアップ セットの説明を入力します。
バックアップ セットの有効期限を指定します。
バックアップ セットが指定の日数後に期限切れになるようにするには、 [期間指定] \(既定のオプション) をクリックし、セットを作成してからセットが期限切れになるまでの日数を入力します。 0 ~ 99,999 日の値を指定できます。0 日を指定すると、バックアップ セットの有効期限は無期限になります。
既定値は、 [サーバーのプロパティ] ダイアログ ボックス ( [データベースの設定] ページ) の [バックアップ メディアの既定の保有期間 (日)] オプションで設定されています。 このダイアログ ボックスを開くには、オブジェクト エクスプローラーでサーバー名を右クリックし、[プロパティ] をクリックして、 [データベースの設定] ページを選択します。
バックアップ セットが特定の日付に期限切れになるようにするには、 [日時指定] をクリックし、セットの有効期限が切れる日付を入力します。
[ディスク] 、 [URL] 、または [テープ] をクリックして、バックアップ先を選択します。 1 つのメディア セットを含んでいる最大 64 個のディスク ドライブまたはテープ ドライブのパスを選択するには、 [追加] をクリックします。 選択したパスは、 [バックアップ先] ボックスの一覧に表示されます。
バックアップ先を削除するには、バックアップ先を選択して [削除] をクリックします。 バックアップ先の内容を表示するには、バックアップ先を選択して [内容] をクリックします。
詳細設定オプションを表示または選択するには、 [ページの選択] ペインの [オプション] をクリックします。
次のいずれかをクリックして、 [メディアに上書きします] オプションを選択します。
[既存のメディア セットにバックアップする]
このオプションでは、 [既存のバックアップ セットに追加する] または [既存のすべてのバックアップ セットを上書きする] をクリックします。 詳細については、このトピックの「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
必要に応じて、 [メディア セット名とバックアップ セットの有効期限を確認する] チェック ボックスをオンにします。これにより、バックアップ操作で、メディア セットとバックアップ セットの有効期限が切れる日付と時刻の確認が行われます。
必要に応じて、 [メディア セット名] ボックスに名前を入力します。 名前を指定しなかった場合、空の名前でメディア セットが作成されます。 メディア セット名を指定した場合は、メディア (テープまたはディスク) の実際の名前がここで入力した名前と一致しているかどうかが確認されます。
メディア名を指定せずに、このチェック ボックスをオンにしてこのメディアを確認するよう指定した場合は、実際のメディア名も空でないとエラーになります。
[新しいメディア セットにバックアップし、すべての既存のバックアップ セットを消去する]
このオプションでは、 [新しいメディア セット名] ボックスに名前を入力し、必要に応じて [新しいメディア セットの説明] ボックスにメディア セットの説明を入力します。 詳細については、このトピックの「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
[信頼性] セクションで、必要に応じて次の項目をオンにします。
[完了時にバックアップを検証する] 。
[メディアに書き込む前にチェックサムを行う] 、および、必要に応じて、 [チェックサム エラーのまま続行する] 。 チェックサムの詳細については、「バックアップと復元中に発生する可能性のあるメディア エラー (SQL Server)」を参照してください。
[トランザクション ログ] セクションで、次の手順を実行します。
定期的なログ バックアップの場合は、既定の選択肢の [アクティブでないエントリを削除してトランザクション ログを切り捨てる] のままにします。
ログ末尾 (アクティブなログ) をバックアップするには、 [ログの末尾をバックアップし、データベースを復元中の状態にしておく]をオンにします。
ログ末尾のバックアップは、作業内容が消失しないようにログの末尾をバックアップするために、エラー後に実行されます。 アクティブなログのバックアップ (ログ末尾のバックアップ) は、エラーの後とデータベースの復元開始前の両方か、またはセカンダリ データベースへのフェールオーバー時に行われます。 このオプションを選択すると、Transact-SQL の BACKUP LOG ステートメントで NORECOVERY オプションを指定した場合と同じ結果になります。 ログ末尾のバックアップの詳細については、「ログ末尾のバックアップ (SQL Server)」を参照してください。
[全般] ページの [バックアップ先] セクションで、テープ ドライブにバックアップするように指定した場合は、 [バックアップ後にテープをアンロードする] チェック ボックスがアクティブになります。 このオプションをオンにすると、 [アンロードの前にテープを巻き戻す] オプションがアクティブになります。
SQL Server 2008 Enterprise 以降では、 バックアップの圧縮がサポートされています。 既定では、バックアップが圧縮されるかどうかは、 [バックアップ圧縮の既定] サーバー構成オプションの値によって決まります。 ただし、現在のサーバー レベルの既定の設定にかかわらず、 [バックアップを圧縮する] をオンにしてバックアップを圧縮することも、 [バックアップを圧縮しない] をオンにして圧縮しないようにすることもできます。
現在の backup compression default 値を表示するには
暗号化
バックアップ ファイルを暗号化するには、 [バックアップ ファイルを暗号化する] チェック ボックスをオンにします。 バックアップ ファイルの暗号化に使用する暗号化アルゴリズムを選択し、証明書または非対称キーを指定します。 暗号化に使用できるアルゴリズムは次のとおりです。
AES 128
AES 192
AES 256
Triple DES
Transact-SQL の使用
トランザクション ログをバックアップするには
BACKUP LOG ステートメントを実行して、トランザクション ログをバックアップします。ここでは、以下を指定します。
バックアップするトランザクション ログが属しているデータベースの名前。
トランザクション ログのバックアップが書き込まれるバックアップ デバイス。
例 (Transact-SQL)
重要
この例では、単純復旧モデルを使用する AdventureWorks2012 データベースを使用しています。 ただし、ログ バックアップを可能にするために、データベースの完全バックアップを行う前に、データベースが完全復旧モデルを使用するように設定されています。 詳細については、「データベースの復旧モデルの表示または変更 (SQL Server)」を参照してください。
この例では、 AdventureWorks2012 データベースのトランザクション ログ バックアップを、以前作成した名前付きバックアップ デバイスである MyAdvWorks_FullRM_log1
に作成します。
BACKUP LOG AdventureWorks2012
TO MyAdvWorks_FullRM_log1;
GO
PowerShell の使用
Backup-SqlDatabase
コマンドレットを使用して、Log
パラメーターの値に -BackupAction
を指定します。
次の例では、 MyDB
データベースのログのバックアップを、サーバー インスタンス Computer\Instance
の既定のバックアップ場所に作成します。
```powershell
Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Log
```
SQL Server PowerShell プロバイダーを設定して使用するには、「SQL Server PowerShell プロバイダー」を参照してください。
Related Tasks
参照
BACKUP (Transact-SQL)
トランザクション ログ バックアップの適用 (SQL Server)
メンテナンス プラン
ファイルの完全バックアップ (SQL Server)