【でーたべーすだんぷ】

データベースダンプ とは?

💡 データベースの中身をファイルにドバッと書き出す!
📌 このページのポイント
データベースダンプとリストア 本番DB users orders ダンプ backup.sql CREATE TABLE... INSERT INTO... INSERT INTO... リストア 開発DB users orders ダンプコマンド PostgreSQL: pg_dump MySQL: mysqldump MongoDB: mongodump 主な用途 バックアップ・災害復旧 開発環境の構築 データ移行・テスト
データベースダンプのイメージ
ひよこ ひよこ

データベースダンプってバックアップと何が違うの?

ペンギン先生 ペンギン先生

ダンプは「データを書き出す操作」そのもので、バックアップはその目的の一つだよ。ダンプバックアップ以外にも、開発環境の構築やデータ移行など色々な用途に使われるんだ

ひよこ ひよこ

具体的にはどうやるの?

ペンギン先生 ペンギン先生

PostgreSQLなら pg_dump mydb > backup.sql、MySQLなら mysqldump mydb > backup.sql というコマンドだよ。実行するとCREATE TABLEやINSERT文がファイルに出力されるんだ

ひよこ ひよこ

復元はどうやるの?

ペンギン先生 ペンギン先生

PostgreSQLなら psql mydb < backup.sql、MySQLなら mysql mydb < backup.sql で復元できるよ。ダンプと復元(リストア)はセットで覚えておこうね

ひよこ ひよこ

開発環境の構築にも使うんだね!

ペンギン先生 ペンギン先生

そう!本番のデータベースダンプして開発環境にリストアすれば、実データでテストできるんだ。ただし個人情報が含まれる場合はマスキング(匿名化)してから使うのが鉄則だよ

ひよこ ひよこ

ダンプファイルってどのくらいのサイズになるの?

ペンギン先生 ペンギン先生

テキスト形式(SQL文)だとデータベースの実サイズより大きくなることもあるよ。pg_dumpには-Fc(カスタム形式)オプションがあって、圧縮されたバイナリ形式で出力できるんだ。大規模DBではこっちを使うのが一般的だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「データベースダンプ」って出てきたら「DBの中身をファイルに書き出す操作」と思えればだいたいOK!
📖 おまけ:英語の意味
「Database Dump」 = データベースの書き出し
💬 dump(ドサッと降ろす)という意味で、データベースの中身をファイルにどさっと出すイメージだよ
← 用語集にもどる