ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
DB ダンプファイルは、データベースの内容をまるごと書き出したバックアップファイルの総称です。拡張子は .dump・.bak・.backup・.tar など DBMS と運用慣習で異なり、ファイル内部の形式も製品固有のバイナリだったり SQL 文だったり様々です。前項の SQL ダンプ(.sql) がテキストの汎用形式なのに対し、ここで扱うのは 製品固有のバイナリ形式 を中心とした「運用バックアップ」のファイルです。
大きく分けて 2 系統あります。論理バックアップは CREATE TABLE / INSERT のような SQL や独自エンコードでデータの「意味」を保存する方式で、DB バージョンを跨いで移行しやすい代わりに大規模になるとリストアが遅い。物理バックアップは DB が使うデータファイル(PostgreSQL なら base/ ディレクトリ、SQL Server なら .mdf・.ldf)をそのままコピーする方式で、リストアが圧倒的に速い代わりに同じバージョン・同じプラットフォームでしか復元できないのが基本です。
典型的なファイルとして、PostgreSQL の pg_dump -Fc が出力するカスタムフォーマット .dump、SQL Server の BACKUP DATABASE が出力する .bak、Oracle RMAN のバックアップピース、Percona XtraBackup の xbstream 出力などが挙げられます。いずれも そのままテキストエディタで開いても読めない バイナリで、専用のリストアコマンドを通す必要があります。
内部構造とよくある中身
| 形式 | DBMS | 系統 | 圧縮 | 並列 | PITR 連携 |
|---|---|---|---|---|---|
カスタム -Fc | PostgreSQL | 論理 | ○(gzip) | ○(リストア時 -j) | △(WAL 併用) |
ディレクトリ -Fd | PostgreSQL | 論理 | ○ | ◎(ダンプ・リストア両方) | △ |
.bak | SQL Server | 物理 | ○ | ○ | ◎(ログバックアップ) |
| RMAN | Oracle | 物理 | ○ | ◎ | ◎ |
| XtraBackup | MySQL / MariaDB | 物理 | ○ | ◎ | ○(binlog 併用) |
| mysqldump | MySQL / MariaDB | 論理 | ×(要 gzip) | × | △(binlog 併用) |
たとえば PostgreSQL のカスタム形式は、ヘッダに「PGDMP」のマジックを持ち、続いてテーブル定義・データ・インデックス・トリガなどがブロック単位で並びます。pg_restore -l でブロック一覧(TOC)を出力でき、-L で必要なブロックだけ選んで戻すことができます。SQL Server の .bak は MTF(Microsoft Tape Format)をベースに、データページとログをまとめた形式で、RESTORE HEADERONLY で中身のメタ情報を読み出せます。
主な用途
- 定期バックアップ: 毎日フルバックアップを取り、世代を 7〜30 日分保持。週次のフルと日次の差分・増分を組み合わせるのが定石
- 本番→検証環境のデータ複製: 物理バックアップで全データを一気に移し、その上に個人情報マスキングを適用する
- 災害復旧(DR): 別リージョンにバックアップを転送し、リージョン障害時にそこから DB を再構築する
- 監査・コンプライアンス: 一定期間(金融なら 7〜10 年)のバックアップ保管が法令で求められる業界がある
- ポイントインタイムリカバリ(PITR): フルバックアップ + トランザクションログで「3 日前 14:23:45 の状態」に巻き戻す
- 本番リプレース: ハードウェア更改で旧マシンの
.bakを新マシンに RESTORE するのが SQL Server の伝統的な移行手順
関連形式との比較
SQL ダンプ(.sql) がテキストで「移植性 ◎・速度 ×」だったのに対し、.dump / .bak は「移植性 ×・速度 ◎」という反対の特性を持ちます。両者を組み合わせて、週次の物理バックアップ + 月次の論理バックアップ + 毎時のトランザクションログ という三段構成にすると、復旧スピードと長期可搬性の両方を確保できます。
| 項目 | 論理(.sql / mysqldump) | 物理(.bak / XtraBackup) |
|---|---|---|
| サイズ | 中(テキスト) | 大〜中(バイナリ) |
| 取得時間 | 長い | 短い |
| リストア時間 | 長い(SQL 再実行) | 短い(ファイル戻すだけ) |
| バージョン跨ぎ | ○ | ×(基本不可) |
| PITR | △ | ◎ |
| テーブル単位 | ○ | ×(DB 全体) |
コマンド・ツール
# PostgreSQL: カスタム形式
pg_dump -U postgres -F c -f shop.dump shop
pg_restore -U postgres -d shop_new -j 4 shop.dump
# 中身の TOC を確認
pg_restore -l shop.dump | head
# 部分リストア(特定テーブルだけ)
pg_restore -U postgres -d shop_new -t users shop.dump
# SQL Server: T-SQL 内で
BACKUP DATABASE shop TO DISK = N'D:\\bk\\shop.bak'
WITH COMPRESSION, INIT, NAME = N'shop-full';
RESTORE DATABASE shop_new FROM DISK = N'D:\\bk\\shop.bak'
WITH MOVE 'shop' TO 'D:\\data\\shop_new.mdf',
MOVE 'shop_log' TO 'D:\\data\\shop_new.ldf',
REPLACE;
# Percona XtraBackup(MySQL)
xtrabackup --backup --target-dir=/bk/full/
xtrabackup --prepare --target-dir=/bk/full/
xtrabackup --copy-back --target-dir=/bk/full/
# 並列圧縮(zstd)でアーカイブ
pg_dump -F c shop | zstd -T0 > shop.dump.zst
クラウドのマネージド DB(RDS・Cloud SQL・Azure SQL)では、これらのバックアップが 自動スナップショット として隠蔽されており、ユーザは「7 日前 14:00 に戻す」というボタンだけで PITR ができるようになっています。内部的には WAL / binlog / トランザクションログを継続的に S3 等へ転送している実装です。
注意点
- 「バックアップは取れているがリストアできない」事故: 月 1 回は 本番と同じ手順でリストア訓練 を行う。検証していないバックアップは存在しないのと同じ
- バージョン互換:
.bakは古いバージョンの SQL Server で取ったものを新版に戻すのは可能だが 逆は不可。PostgreSQL のカスタム形式も同じ。移行計画で必ず確認 - 暗号化: バックアップファイルは平文の機密情報を含む。LUKS / BitLocker でディスク暗号化するか、
BACKUP ... WITH ENCRYPTION(SQL Server)等で暗号化する - 3-2-1 ルール: 3 つの複製を、2 種類のメディアに、うち 1 つはオフサイト。クラウド時代でも基本は変わらず、リージョン跨ぎの転送で対応する
- 整合性: 物理バックアップはホットコピー中の整合性確保が肝。XtraBackup / VSS(Windows)/ snapshot(ZFS・LVM・EBS)を活用する
- ファイル名と世代管理:
shop-2026-06-22.bakのように日付を含め、古い世代は自動削除 する運用にする。手動管理だとディスクが溢れる - リストア時のディスク容量: 圧縮された
.dumpは展開すると数倍〜十数倍に膨らむ。リストア先の空き容量を事前確認
関連リンク
- 親カテゴリ: データベース・データ交換
- 概論: ファイル拡張子とは
- カテゴリ: データベース(カテゴリ)
- 関連: SQL ダンプ(.sql)(論理バックアップ)
- 同 Wave: SQLite / NDJSON / BSON
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?