バックアップ・リストア ばっくあっぷ・りすとあ
災害対策RPORTOフルバックアップ増分バックアップ可用性
バックアップ・リストアについて教えて
バックアップ・リストアとは
バックアップ(Backup)とは、データベースのデータを別の場所(別ストレージ・別サーバー・クラウドなど)にコピーして保存する操作です。リストア(Restore)とは、バックアップから元の状態にデータを復元する操作です。
バックアップが必要な理由は主に4つです。①障害(ハードウェア故障・ストレージ破損)、②オペレーションミス(誰かが重要データをDELETE・テーブルをDROP)、③ランサムウェアなどのサイバー攻撃、④論理的データ破損(バグによるデータ不整合)です。
バックアップ設計の核心は**RPO(Recovery Point Objective:目標復旧時点)とRTO(Recovery Time Objective:目標復旧時間)**の2指標です。「最悪いつのデータまで失っても許容できるか(RPO)」「いつまでに復旧しなければならないか(RTO)」をビジネス側と合意し、それを満たすバックアップ方式を選択します。
バックアップの種類
| 種類 | 内容 | 特徴 |
|---|---|---|
| フルバックアップ | DBの全データをコピー | シンプルだがデータ量が多く時間・容量がかかる |
| 差分バックアップ | 前回フルバックアップ後の変更分 | 増分よりリストアが速い |
| 増分バックアップ | 前回バックアップ後の変更分のみ | 小さく取得が速い。リストア時に全増分を順番に適用が必要 |
| WALアーカイブ | PostgreSQLのWALログを継続保存 | ポイントインタイムリカバリ(PITR)の基盤 |
| スナップショット | DBボリューム全体のポイントインタイムコピー | クラウドで簡単に取得可。一瞬で完了 |
主要DBのバックアップコマンド
| DB製品 | コマンド | 説明 |
|---|---|---|
| PostgreSQL | pg_dump / pg_dumpall | 論理バックアップ(SQL形式) |
| PostgreSQL | pg_basebackup | 物理バックアップ(PITR可能) |
| MySQL | mysqldump | 論理バックアップ |
| MySQL | mysqlbackup(Enterprise) | 物理バックアップ |
| クラウドDB | コンソール / CLI から自動スナップショット | マネージドサービスが自動実行 |
歴史と背景
- 1970年代:大型汎用機時代からテープへのフルバックアップが標準的運用として確立
- 1990年代:CD-ROM・磁気ディスクの普及でバックアップの高速化・低コスト化が進む
- 2000年代:増分・差分バックアップ技術が一般化。データ量の爆発的増加でフルバックアップのみでは対応困難に
- 2010年代:クラウドストレージ(S3等)へのバックアップが主流化。自動スナップショット機能が普及
- 現在:クラウドマネージドDB(RDS・Cloud SQL等)は自動バックアップ・PITRをデフォルトで提供。ただし保存期間・整合性の設定はシステム要件に合わせて管理者が設定する必要がある
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| ISO 27001 | 情報セキュリティ管理でバックアップ手順の整備・テストを要求 |
| FISC 安全対策基準 | 金融機関向けバックアップ・リカバリ要件 |
関連用語
- ポイントインタイムリカバリ — WALを活用した任意時点への復元技術
- レプリケーション — データを複数サーバーに複製して可用性を高める仕組み
- トランザクション — 一連のDB操作をひとまとめに扱う仕組み
- ACID特性 — 耐久性(Durability)はバックアップで補完される
- バキューム・VACUUM — VACUUM前後でバックアップサイズが変わることがある
- シャーディング — 分散構成でのバックアップ戦略
- NoSQL — NoSQLのバックアップ方式はRDBと異なる場合がある