web-dev-qa-db-ja.com

2つのバックアップファイルを使用した完全および差分復元-SQL Server 2008

2つの個別のバックアップで保守計画を確立しようとしています。

週末に1回の完全バックアップ、週に1回の差分バックアップ。 [差分バックアップには、名前に「_diff」が追加されています]。

バックアップは、注文の処理に使用する外部エンティティから提供されます。私の問題は、データベースの復元です。

1:ここでメソッドを試しました: http://msdn.Microsoft.com/en-us/library/ms175510.aspx#TsqlProcedure 、しかし、バックアップファイルを「追加」できないようですフルバックアップを含むサーバー上の既存のバックアップデバイスに。

2:2つの個別のバックアップとして復元しようとしましたが、次のエラーが発生します。

バックアップセットは、既存の「DBXXX」データベース以外のデータベースのバックアップを保持します。 [おそらく.mdfファイルと.ldfファイルに関連付けられている_diff名が原因です]

このシナリオで差分バックアップを復元するにはどうすればよいですか。既存の完全バックアップデバイスに差分バックアップを追加できますか?別の方法がありますか?

編集:

追加されたT-SQLステートメント:

完全バックアップの復元

RESTORE DATABASE DB_TEST FROM DB_TEST_Device WITH REPLACE, NORECOVERY;    
GO 

差分を復元しています。バックアップ

RESTORE DATABASE DB_TEST FROM DB_TEST_Device_Delta WITH RECOVERY;     
GO

**Full Backup Device:** OM_00987_Backup_987 D:\SQLdata\OM_00987_Backup_987.mdf D PRIMARY 32852082688 3.51844E+13 1 0 0 BAC0AD62-9CB6-46FA-8600-7852009C638A 0 0 32850247680 512 1 NULL 1.33E+17 2B366F37-7D81-4BD1-AA3C-DD9757EFF075 0 1 NULL

OM_00987_Backup_987_log E:\SQLlogs\OM_00987_Backup_987_log.LDF L NULL 516096 2.19902E+12 2 0 0 F76787F2-521B-4A75-A2F6-8977DB88E0A9 0 0 0 512 0 NULL 0 00000000-0000-0000-0000-000000000000 0 1 NULL

**Delta Backup Device:** OM_00987_Backup_987_Delta D:\SQLdata\OM_00987_Backup_987_Delta.mdf D PRIMARY 9633464320 3.51844E+13 1 0 0 E75C765B-ECEC-46AC-B8AE-5F1EB7D3C724 0 0 9629138944 512 1 NULL 1.36E+17 8C66A6C8-DE57-4B57-B0E1-DE8F3C64E68A 0 1 NULL

OM_00987_Backup_987_Delta_log E:\SQLlogs\OM_00987_Backup_987_Delta_log.LDF L NULL 516096 2.19902E+12 2 0 0 FC843B68-BC7C-478A-BE4E-D4AA4D61B30E 0 0 0 512 0 NULL 0 00000000-0000-0000-0000-000000000000 0 1 NULL

4
user1003954

FULLとDIFF用に個別のバックアップデバイスをセットアップする必要があります。バックアップデバイスを作成すると、1つのファイルになります。同じバックアップデバイスにFULLとDIFFを保存することはできません。

バックアップデバイスの詳細については、こちらをご覧ください http://msdn.Microsoft.com/en-us/library/ms179313.aspx

既存のデータベースの上にデータベースを復元しようとしていて、データを置き換えたい場合は、復元でWITH REPLACEオプションを使用する必要があります。詳細については、こちらをご覧ください: http://msdn.Microsoft.com/en-us/library/ms186858.aspx

REPLACEはめったに使用しないでください。復元は通常、誤ってデータベースを別のデータベースで上書きすることを防ぎます。 RESTOREステートメントで指定されたデータベースが現在のサーバーに既に存在し、指定されたデータベースファミリーGUIDがデータベースファミリーと異なる場合GUIDバックアップセットに記録されている場合、データベースは復元されません。これは重要な保護手段です。

REPLACEオプションは、復元が通常実行するいくつかの重要な安全性チェックをオーバーライドします。オーバーライドされたチェックは次のとおりです。

別のデータベースで作成されたバックアップを使用して既存のデータベースを復元する。

REPLACEオプションを使用すると、指定したデータベース名がバックアップセットに記録されているデータベース名と異なる場合でも、復元を使用すると、既存のデータベースをバックアップセット内のデータベースで上書きできます。これにより、別のデータベースによってデータベースが誤って上書きされる可能性があります。

ログ末尾のバックアップが作成されておらず、STOPATオプションが使用されていない完全または一括ログ復旧モデルを使用したデータベースの復元。

REPLACEオプションを使用すると、最後に書き込まれたログがバックアップされていないため、コミットされた作業が失われる可能性があります。

既存のファイルを上書きします。

たとえば、ミスをすると、.xlsファイルなどの間違ったタイプのファイルを上書きしたり、オンラインではない別のデータベースで使用されたりする可能性があります。復元されたデータベースは完全ですが、既存のファイルが上書きされると、任意のデータが失われる可能性があります。

3
jgardner04