操作 †
復旧モデル †
- ログファイルをバックアップに活かす方式が、完全復旧モデルと一括ログ復旧モデル
完全復旧モデル †
一括ログ復旧モデル †
単純復旧モデル †
コマンドによるバックアップ †
完全バックアップ(BACKUP DATABASE) †
- コマンドは「BACKUP DATABASE [DB名] TO DISK = N'[バックアップファイルのPATH]'」
- SQL Server のバックアップは、1つのバックアップファイルに複数のバックアップを入れることができる
- オプション(WITH optionA, optionB, ...)
- INIT ... 1つのバックアップファイルに、1つのバックアップのみを作成
- COMPRESSION ... 圧縮
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;
- オプション(WITH optionA, optionB, ...)
- INIT ... 1つのバックアップファイルに、1つのバックアップのみを作成
- COMPRESSION ... 圧縮
- NO_TRUNCATE ... ログ末尾をバックアップするとともに、ログを切り捨てない
コマンドによる復元 †
- RESTORE LOG ステートメントで WITH STOPAT、STOPATMARK、または STOPBEFOREMARK を指定して、バックアップ内の特定の時間またはトランザクションにログバックアップを復元できる
- 次の復元シナリオが実行可能
- 完全データベース バックアップからデータベース全体を復元する (完全復元)
- データベースの一部を復元する (部分復元)
- 特定のファイルまたはファイル グループをデータベースに復元する (ファイル復元)
- 特定のページをデータベースに復元する (ページ復元)
- トランザクション ログをデータベースに復元する (トランザクション ログ復元)
- データベース スナップショットでキャプチャされた時点にデータベースを戻す
- オプション(WITH optionA, optionB, ...)
- NORECOVERY
- まだリストアすべきバックアップがある場合に使用するオプション
- NORECOVERY を指定してリストアを行った場合は、データベースが「復旧中」(リストア中)となり、ユーザーからの接続を一切できないようにブロックする
- RECOVERY
- リストア後にデータベースを完全復旧した状態にする
- リストアが完了したことの合図になり、残りのバックアップをリストアすることはできない
- REPLACE ... 指定したデータベースと同じ名前のデータベースが既に存在している場合でも、データベースとその関連ファイルが作成される。その場合、既存のデータベースは削除される。
バックアップセット †
バックアップファイル †
ヘッダ情報 †
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