docker PostgreSQL バックアップを実行する

docker PostgreSQL バックアップを実行する

dockerで構築したPostgreSQLで、バックアップを実行する手順を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • docker 20.10.7
  • PostgreSQL 11.12

バックアップを実行

すべてのDBをバックアップする場合は、以下のコマンドを「root」ユーザーで実行します。

## rootになって実行
su

## 
docker exec <コンテナ名 or コンテナid> pg_dumpall -U postgres > db.spl

「db.spl」が作成されます。

コンテナ名 or コンテナidは、以下で確認可能です。

docker ps

<出力結果>
CONTAINER ID   IMAGE            COMMAND                  CREATED      STATUS      PORTS                                                                                                                          NAMES
e98361b86c93   postgres:11.12   "docker-entrypoint.s…"   5 days ago   Up 5 days   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp                                                                                      postgres

リストア

バックアップしたDBを、別のコンテナにリストアする場合は、以下のコマンドで可能です。

cat db.sql | docker exec -i <コンテナ名 or コンテナid> psql -U postgres