このトピックでは、SQL Server Management Studio、Transact-SQL、または PowerShell を使用して SQL Server 2014 のトランザクション ログをバックアップする方法について説明します。
このトピックについて
作業を開始する準備:
トランザクション ログをバックアップするには、次を使用します。
注
または、メンテナンス プラン ウィザードを使用してバックアップを作成することもできます。
開始する前に
制限事項と制約条件
- 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 バックアップです。 詳細については、「 Copy-Only バックアップ (SQL Server)」を参照してください。
注
[差分] オプションを選択した場合、コピーのみのバックアップを作成することはできません。
[名前] ボックスに表示された既定のバックアップ セット名をそのまま使用するか、または別のバックアップ セット名を入力します。
オプションで、 [説明] ボックスに、バックアップ セットの説明を入力します。
バックアップ セットの有効期限を指定します。
特定の日数後にバックアップ セットの有効期限を切にするには、[ 後 ] (既定のオプション) をクリックし、セットの作成後にセットの有効期限が切れる日数を入力します。 この値は 0 ~ 99999 日です。値が 0 日の場合は、バックアップ セットの有効期限が切れないことを意味します。
既定値は、[サーバーのプロパティ] ダイアログ ボックス ([データベースの設定] ページ) の [既定のバックアップ メディアリテンション期間 (日数)] オプションで設定されます。 このダイアログ ボックスにアクセスするには、オブジェクト エクスプローラーでサーバー名を右クリックし、プロパティを選択します。をクリックし 、[データベース設定] ページを 選択します。
バックアップ セットの有効期限を特定の日付に設定するには、[ オン] をクリックし、セットの有効期限を入力します。
[ディスク、URL、またはテープ] をクリックして、バックアップ先の種類を選択します。 1 つのメディア セットを含む最大 64 台のディスク ドライブまたはテープ ドライブのパスを選択するには、[ 追加] をクリックします。 選択したパスは、 [バックアップ先] ボックスの一覧に表示されます。
バックアップ先を削除するには、バックアップ先を選択して [ 削除] をクリックします。 バックアップ先の内容を表示するには、バックアップ先を選択して [ コンテンツ] をクリックします。
詳細オプションを表示または選択するには、[ページの選択] ウィンドウの [オプション] をクリックします。
次のいずれかをクリックして、[ メディアの上書き ] オプションを選択します。
既存のメディア セットにバックアップする
このオプションでは、[既存の バックアップ セットに追加] または [ 既存のすべてのバックアップ セットを上書きする] をクリックします。 詳細については、「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
必要に応じて、[ メディア セット名とバックアップ セットの有効期限の確認 ] を選択して、バックアップ操作でメディア セットとバックアップ セットの有効期限が切れる日時を確認します。
必要に応じて、[ メディア セット 名] テキスト ボックスに名前を入力します。 名前が指定されていない場合は、空白の名前を持つメディア セットが作成されます。 メディア セット名を指定すると、メディア (テープまたはディスク) がチェックされ、実際の名前がここで入力した名前と一致するかどうかが確認されます。
メディア名を空白のままにしてメディアに対してチェックボックスをオンにした場合、成功はメディア上のメディア名も空白であることを意味します。
新しいメディア セットにバックアップし、既存のすべてのバックアップ セットを消去する
このオプションでは、[ 新しいメディア セット 名] テキスト ボックスに名前を入力し、必要に応じて、[ 新しいメディア セットの説明 ] テキスト ボックスにメディア セットを記述します。 詳細については、「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
[ 信頼性 ] セクションで、必要に応じて次のことを確認します。
完了したら、バックアップを確認します。
メディアに書き込む前にチェックサムを実行し、必要に応じてチェックサム エラーで続行します。 チェックサムの詳細については、「 バックアップと復元中に発生する可能性のあるメディア エラー (SQL Server)」を参照してください。
[ トランザクション ログ ] セクションで、次の手順を実行します。
定期的なログ バックアップの場合は、既定の選択をそのまま使用し、 非アクティブなエントリを削除してトランザクション ログを切り捨てます。
ログの末尾 (つまり、アクティブなログ) をバックアップするには、 ログの末尾をバックアップし、データベースを復元状態のままにします。
ログ末尾のバックアップは、作業の損失を防ぐためにログの末尾をバックアップできなかった後に行われます。 障害が発生した後、データベースの復元を開始する前、またはセカンダリ データベースにフェールオーバーする場合の両方で、アクティブ ログ (ログ末尾のバックアップ) をバックアップします。 このオプションを選択することは、Transact-SQL の BACKUP LOG ステートメントで NORECOVERY オプションを指定することと同じです。 ログ末尾のバックアップの詳細については、「 Tail-Log バックアップ (SQL Server)」を参照してください。
テープ ドライブにバックアップする場合 ([全般] ページの [宛先] セクションで指定されているとおり)、[バックアップ後にテープをアンロードする] オプションがアクティブになります。 このオプションをクリックすると、[ アンロードする前にテープを巻き戻す ]オプションが有効になります。
SQL Server 2008 Enterprise 以降では、 バックアップ圧縮がサポートされています。 既定では、バックアップが圧縮されるかどうかは、 バックアップ圧縮の既定 のサーバー構成オプションの値によって異なります。 ただし、現在のサーバー レベルの既定値に関係なく、[バックアップの圧縮] をオンにしてバックアップを圧縮できます。また、[ バックアップを 圧縮しない] をオンにすることで圧縮を防ぐことができます。
現在のバックアップ圧縮の既定値を表示するには
暗号化
バックアップ ファイルを暗号化するには、[ バックアップの暗号化 ] チェック ボックスをオンにします。 バックアップ ファイルの暗号化に使用する暗号化アルゴリズムを選択し、証明書または非対称キーを指定します。 暗号化に使用できるアルゴリズムは次のとおりです。
AES 128
AES 192
AES 256
トリプル 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
コマンドレットを使用し、-BackupAction
パラメーターの値にLog
を指定します。
次の例では、 MyDB
データベースのログ バックアップを、サーバー インスタンス Computer\Instance
の既定のバックアップ場所に作成します。
```powershell
Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Log
```
SQL Server PowerShell プロバイダーを設定して使用するには、「 SQL Server PowerShell プロバイダー」を参照してください。
関連タスク
こちらもご覧ください
BACKUP (Transact-SQL)
トランザクション ログ バックアップの適用 (SQL Server)
メンテナンス プラン
完全ファイル バックアップ (SQL Server)