【ろんりばっくあっぷ】

論理バックアップ とは?

💡 中身をレシピとして書き出す!別の環境でも再現可能
📌 このページのポイント
論理バックアップ vs 物理バックアップ 論理バックアップ DB テーブル pg_dump CREATE TABLE... INSERT INTO... INSERT INTO... ✓ 人間が読める ✓ 異なるDBMSに移行可 ✓ 部分バックアップ可 ✗ 取得・復元が遅い ✗ 大規模DBに不向き 物理バックアップ DB ファイル コピー 0x48 0x2F... バイナリ まるごと ✓ 高速な取得・復元 ✓ PITR対応 ✓ 大規模DBに最適 ✗ 同じDBMSでのみ復元 ✗ 人間には読めない
論理バックアップと物理バックアップの比較
ひよこ ひよこ

論理バックアップって何が「論理」なの?

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

データベースの中身をSQL文やCSVなど「意味が分かる形式」で書き出すことだよ。CREATE TABLEやINSERT文の形で保存するから、中身を見れば何のデータか分かるんだ

ひよこ ひよこ

物理バックアップとはどう違うの?

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

物理バックアップはデータファイルをそのままコピーする方法だよ。こっちは人間には読めないバイナリ形式だけど、取得も復元も高速なんだ。論理バックアップは柔軟だけど時間がかかるというトレードオフがあるんだよ

ひよこ ひよこ

具体的にはどんなツールを使うの?

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

PostgreSQLならpg_dump、MySQLならmysqldumpが定番だよ。これらのコマンドを実行すると、テーブルの構造やデータがSQL文として出力されるんだ

ひよこ ひよこ

どんなときに論理バックアップを選ぶの?

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

異なるバージョンのDBMSに移行するとき、MySQLからPostgreSQLに乗り換えるとき、特定のテーブルだけバックアップしたいとき、などに便利だよ。物理バックアップでは同じDBMSの同じバージョンでないと復元できないことが多いからね

ひよこ ひよこ

注意することってある?

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

大規模なデータベースだと取得にも復元にも数時間かかることがあるよ。あと、バックアップ中にデータが変更されると整合性が崩れるから、一貫性のあるスナップショットを取る設定が重要だね。pg_dumpはデフォルトトランザクションを使って一貫性を保証してくれるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「論理バックアップ」って出てきたら「SQLCSVの形でデータを書き出すバックアップ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Logical Backup」 = 論理バックアップ
💬 logical(論理的な)形式、つまりデータの意味が分かる形で保存するバックアップだよ
← 用語集にもどる