操作 †
復旧モデル †
- ログファイルをバックアップに活かす方式が、完全復旧モデルと一括ログ復旧モデル
完全復旧モデル †
一括ログ復旧モデル †
単純復旧モデル †
コマンドによるバックアップ †
完全バックアップ(BACKUP DATABASE) †
- コマンドは「BACKUP DATABASE [DB名] TO DISK = N'[バックアップファイルのPATH]'」
- SQL Server のバックアップは、1つのバックアップファイルに複数のバックアップを入れることができる
BACKUP DATABASE Test
TO DISK = N'C:\temp\TestDB.bak'
WITH INIT, COMPRESSION;
ログバックアップ(BACKUP LOG) †
- コマンドは「BACKUP LOG [DB名] TO DISK = N'[バックアップファイルのPATH]'」
- トランザクションログのみをバックアップ
BACKUP LOG Test
TO DISK = N'C:\temp\TestDB_log.bak'
WITH INIT, COMPRESSION;
BACKUPコマンドのオプション †
EXPIREDATE, RETAINDAYS †
- 注意点
- これらのオプションは SQL Server でのファイルの上書きを防ぐことのみを目的としている(仮に2日間と指定しても2日経過後にバックアップセットがファイルから消えるわけではない)
- 不要になったバックアップファイルはオペレーティングシステムから削除する
- RETAINDAYS
WITH RETAINDAYS = 3
NOINIT/INIT †
- 1つのバックアップファイルに、1つのバックアップのみを作成
- NOINIT ... バックアップメディア上の既存のバックアップセットに追加
- INIT ... バックアップ メディア上の既存のバックアップセットに上書き
NOSKIP/SKIP †
- NOSKIP ... 書きを許可する前に、メディア上のすべてのバックアップ セットの有効期限を確認する
- SKIP ... バックアップ セットの有効期限と名前の確認を無効にする
NOFORMAT/FORMAT †
- NOFORMAT ... バックアップ操作において、このバックアップ操作に使用するメディア ボリューム上の既存のメディア ヘッダーとバックアップ セットを保持するように指定
- FORMAT ... 新しいメディア セットを作成するように指定
- FORMAT が指定されると、バックアップ操作において、バックアップ操作に使用されるすべてのメディア ボリューム上に、新しいメディア ヘッダーを書き込む
- 既存のメディア ヘッダーとバックアップ セットが上書きされるので、そのボリュームの既存のコンテンツは無効になる
- FORMAT を指定することは SKIP を実行することを意味する(SKIP を明示的に指定する必要はない)
COMPRESSION †
NO_TRUNCATE †
- ログ末尾をバックアップするとともに、ログを切り捨てない
コマンドによる復元 †
- RESTORE LOG ステートメントで WITH STOPAT、STOPATMARK、または STOPBEFOREMARK を指定して、バックアップ内の特定の時間またはトランザクションにログバックアップを復元できる
- 次の復元シナリオが実行可能
- 完全データベース バックアップからデータベース全体を復元する (完全復元)
- データベースの一部を復元する (部分復元)
- 特定のファイルまたはファイル グループをデータベースに復元する (ファイル復元)
- 特定のページをデータベースに復元する (ページ復元)
- トランザクション ログをデータベースに復元する (トランザクション ログ復元)
- データベース スナップショットでキャプチャされた時点にデータベースを戻す
- オプション(WITH optionA, optionB, ...)
- NORECOVERY
- まだリストアすべきバックアップがある場合に使用するオプション
- NORECOVERY を指定してリストアを行った場合は、データベースが「復旧中」(リストア中)となり、ユーザーからの接続を一切できないようにブロックする
- RECOVERY
- リストア後にデータベースを完全復旧した状態にする
- リストアが完了したことの合図になり、残りのバックアップをリストアすることはできない
- REPLACE ... 指定したデータベースと同じ名前のデータベースが既に存在している場合でも、データベースとその関連ファイルが作成される。その場合、既存のデータベースは削除される。
バックアップセット †
バックアップファイル †
ヘッダ情報 †
RESTORE HEADERONLY FROM DISK = N'C:\var\backup\DB\test001.bak'
LSN : Log Sequence Number †
- FirstLSN – Log sequence number of the first transaction in the backup set
- LastLSN – Log sequence number of the next log record after the backup set
- CheckpointLSN – Log sequence number of the last checkpoint
- DatabaseBackupLSN – Log sequence number of the last full database backup