【postgres】コマンドラインでのダンプとリストアの方法

ポスグレのダンプとリストアのコマンドって忘れちゃうことあるよねー

あるあるー

書きます

ダンプの方法

コマンドライン
pg_dump -h <ホスト名> -p <ポート番号> -U <ユーザー名> -d <DB名> -F c -f <ファイル名>

-h: データベースに接続するホストを指定します。

-p : データベースに接続するポート番号を指定します。

-U: データベースに接続するユーザー名を指定します。

-d: ダンプを作成するデータベース名を指定します。

-F c: ダンプファイルの形式を指定します。c はカスタム形式を表します。

-f: 出力ファイルの名前を指定します。

↓実際の値を入れるとこんな感じ(自分のテストデータベース用)

コマンドライン
pg_dump -h db -p 5432 -U postgres -d django_sample -F c -f backup_1201.dump

リストアの方法

pg_restoreは、PostgreSQLのデータベースバックアップファイルからデータを復元するための強力なコマンドラインツールです。pg_restoreには多数の便利なオプションが用意されています。これらのオプションを活用することで、データの復元プロセスをより柔軟に、効率的に行うことが可能です。ここでは、pg_restoreの主要なオプションについて、その機能と使い方を紹介します。

まず基本的なものはこちら

コマンドライン
pg_restore --clean -h <ホスト名> -p <ポート番号> -U <ユーザー名> -d <DB名> <ファイル名>

--clean: リストア前に、対象のデータベースをクリーンアップします。これにより、データベースがリストアされる前に、既存のデータベースオブジェクトが削除されます。

-h: データベースに接続するホストを指定します。

-p : データベースに接続するポート番号を指定します。

-U: データベースに接続するユーザー名を指定します。

-d: リストアするデータベース名を指定します。



↓実際の値を入れるとこんな感じ(自分のテストデータベース用)

コマンドライン
pg_restore --clean -h db -p 5432 -U postgres -d django_sample backup_1220.dump

おまけ pg_restoreのその他のオプション

-C / --create

復元プロセスの開始前にデータベースを作成します。このオプションは、データベース自体がバックアップファイルに含まれている場合に特に有用です。

-c / --clean

指定されたデータベース内の既存オブジェクトを削除してから復元を行います。これにより、既存のデータとの衝突を避けることができます。

-L / --list

バックアップファイル内のオブジェクトのリストを表示します。実際の復元を行う前に、どのようなオブジェクトがバックアップファイルに含まれているかを確認するのに便利です。

-n / --schema

特定のスキーマ内のオブジェクトのみを復元します。これにより、必要なスキーマのデータのみを選択的に復元することができます。

Copy codepg_restore -d dbname -n schemaname backup_file

-t / --table

特定のテーブルのみを復元します。このオプションを使用すると、特定のテーブルだけを選択的に復元できます。

Copy codepg_restore -d dbname -t tablename backup_file

-v / --verbose

詳細な出力モードを有効にします。復元プロセス中に発生する各ステップの情報を表示します。

-j / --jobs

並行実行のジョブ数を指定します。このオプションを使用することで、復元プロセスを高速化することが可能です。

Copy codepg_restore -d dbname -j 4 backup_file