スポンサーリンク

PostgreSQLをバックアップする手順【pg_dumpコマンドの利用】

PostgreSQLをバックアップする手順【pg_dumpコマンドの利用】

 

★悩み★
・PostgreSQLをバックアップする手順を知りたいな。
・PostgreSQLのバックアップにはpg_dumpコマンドを使えばいいのかな?
・pg_dumpコマンドとpg_dumpallコマンドの違いって何だろうか?



こういった「悩み」に答えます。
 

★本記事の内容★
① PostgreSQLのバックアップコマンド「pg_dump」の概要をご紹介
② PostgreSQLをpg_dumpコマンドでバックアップするための準備をご紹介
③ PostgreSQLをpg_dumpコマンドでバックアップする手順をご紹介



これからご紹介する「PostgreSQLをバックアップする手順【pg_dumpコマンドの利用】」を実践したことで、30分以内で「pg_dumpコマンドを用いてPostgreSQLをバックアップ」できました。

記事の前半では「PostgreSQLのバックアップコマンドであるpg_dumpの概要」を解説しつつ、記事の後半では「pg_dumpコマンドを用いたPostgreSQLのバックアップ手順」を紹介します。

この記事を読み終えることで、「PostgreSQLをバックアップできる」状態になります。
 

ちなみに、pg_restoreコマンドやpsqlコマンドを利用したPostgreSQLのリストア手順を知りたい方は、以下の記事をご覧ください。
 


 

PostgreSQLのバックアップコマンド「pg_dump」の概要

PostgreSQLのバックアップコマンド「pg_dump」の概要


「PostgreSQLのバックアップコマンド「pg_dump」の概要」に関してご紹介します。

★PostgreSQLのバックアップコマンド「pg_dump」に関するご紹介事項★
・PostgreSQLのバックアップコマンド「pg_dump」とは?
・pg_dumpコマンドとpg_dumpallコマンドの違いについて



以降で、上記「PostgreSQLのバックアップコマンド「pg_dump」に関するご紹介事項」の各項目に関してご説明します。
 

PostgreSQLのバックアップコマンド「pg_dump」とは?

「PostgreSQLのバックアップコマンド「pg_dump」とは?」に関してご説明します。
 

pg_dumpは、PostgreSQL専用のコマンドです。PostgreSQLをインストールすることで、利用できるコマンドです。



PostgreSQL内に作成したデータベースをバックアップするコマンドとして、「pg_dump」コマンドがあります。

PostgreSQLをインストールすることで、下記のPATHに「pg_dump」コマンドが格納されます。

【Windowsの場合】
 C:\Program Files\PostgreSQL\XX\bin\pg_dump.exe
 ※PostgreSQLのインストール先をデフォルト状態にした場合(XXは、PostgreSQLのバージョン名)
  

【Linux系の場合】
 /usr/pgsql-13/bin/pg_dump
 ※PostgreSQLのインストール先をデフォルト状態にした場合(13は、PostgreSQLのバージョン名)



pg_dumpコマンドのコマンドリファレンス(引数などのオプション)は、以下の公式サイトをご覧ください。
PostgreSQLのバックアップコマンド「pg_dump」のコマンドリファレンス


以上が、「PostgreSQLのバックアップコマンド「pg_dump」とは?」となります。
 

pg_dumpコマンドとpg_dumpallコマンドの違いについて

「pg_dumpコマンドとpg_dumpallコマンドの違いについて」に関してご説明します。
 

pg_dumpコマンドと似たコマンドとして、「pg_dumpall」があります。



PostgreSQLをインストールすることで、下記のPATHに「pg_dumpall」コマンドが格納されます。

【Windowsの場合】
 C:\Program Files\PostgreSQL\XX\bin\pg_dumpall.exe
 ※PostgreSQLのインストール先をデフォルト状態にした場合(XXは、PostgreSQLのバージョン名)
  

【Linux系の場合】
 /usr/pgsql-13/bin/pg_dumpall
 ※PostgreSQLのインストール先をデフォルト状態にした場合(13は、PostgreSQLのバージョン名)



pg_dumpallコマンドを利用することで、PostgreSQL内に作成された全てのデータベースとユーザーをバックアップできます。
 

★pg_dumpコマンドとpg_dumpallコマンドの違いのまとめ★
・pg_dump
 → PostgreSQL内に作成した1つのデータベースをバックアップする
・pg_dumpall
 → PostgreSQL内に存在する全データベースとユーザをバックアップする



pg_dumpallコマンドのコマンドリファレンス(引数などのオプション)は、以下の公式サイトをご覧ください。
PostgreSQLのバックアップコマンド「pg_dumpall」のコマンドリファレンス
 

ちなみにpg_dumpallコマンドのソースコードを確認したところ、pg_dumpallの内部処理では、「pg_dump」コマンドを複数回実行しています。
pg_dumpallコマンドのソースコード


以上が、「pg_dumpコマンドとpg_dumpallコマンドの違いについて」となります。
 

PostgreSQL内に作成したデータベースをバックアップする場合、pg_dumpコマンド、または、pg_dumpallコマンドを使用しましょう。


 

PostgreSQLをpg_dumpコマンドでバックアップするための準備

PostgreSQLをpg_dumpコマンドでバックアップするための準備


「PostgreSQLをpg_dumpコマンドでバックアップするための準備」に関してご紹介します。

★PostgreSQLをpg_dumpコマンドでバックアップするための準備★
手順1:PostgreSQLのインストール
手順2:インストールしたPostgreSQLにデータを挿入



上記の流れで、「PostgreSQLをpg_dumpコマンドでバックアップするための準備」ができます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年7月18日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)



以降で、上記「PostgreSQLをpg_dumpコマンドでバックアップするための準備」の各手順に関してご説明します。
 

手順1:PostgreSQLのインストール

「手順1:PostgreSQLのインストール」に関してご説明します。
 

PostgreSQLのバックアップコマンド「pg_dump」を実行するためにも、PostgreSQLをインストールしましょう。



「PostgreSQLのインストール手順」に関しては、以下の記事「5ステップでPostgreSQL13をインストールする方法」をご覧ください。
 



また、Kubernetes上にPostgreSQLをインストールしたい場合、以下の記事をご覧ください。


以上で、「手順1:PostgreSQLのインストール」は完了です。
 

手順2:インストールしたPostgreSQLにデータを挿入

「手順2:インストールしたPostgreSQLにデータを挿入」に関してご説明します。
 

pg_dumpコマンドでバックアップするためにも、PostgreSQL内にデータベースを作成しデータを登録しましょう。



「インストールしたPostgreSQLにデータを挿入する手順」に関しては、以下の記事「PostgreSQL 13でデータ登録と参照をする方法」をご覧ください。
 


以上で、「手順2:インストールしたPostgreSQLにデータを挿入」は完了です。
 

上記の流れで、「PostgreSQLをpg_dumpコマンドでバックアップするための準備」が完了しました。


 

PostgreSQLをpg_dumpコマンドでバックアップする手順

PostgreSQLをpg_dumpコマンドでバックアップする手順


「PostgreSQLをpg_dumpコマンドでバックアップする手順」に関してご紹介します。

★PostgreSQLをpg_dumpコマンドでバックアップするまでの流れ★
手順1:pg_dumpコマンドを実行
手順2:pg_dumpコマンドの実行結果を確認



上記の流れで、「PostgreSQLをpg_dumpコマンドでバックアップ」できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年7月18日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)



以降で、上記「PostgreSQLをpg_dumpコマンドでバックアップするまでの流れ」の各手順に関してご説明します。
 

手順1:pg_dumpコマンドを実行【PostgreSQLのバックアップ】

「手順1:pg_dumpコマンドを実行」に関してご説明します。
 

PostgreSQL内に作成したデータベースをpg_dumpコマンドでバックアップしてみましょう。



「端末」または「コマンドプロンプト」を起動し、以下のpg_dumpコマンドを実行してください。コマンド内の「<>」と書いてある部分は、自分用に書き換えてください。

# /usr/pgsql-13/bin/pg_dump \
  -U <PostgreSQL内のユーザ名> <バックアップしたいデータベース名> \
  -h <PostgreSQLが稼働しているマシンのIPアドレス> \
  -p <PostgreSQLが利用しているポート番号> > <保存先のPATH>/postgresql_backup.sql
# echo $?
0
# 



コマンド実行後、「0」が表示された場合、「pg_dumpコマンドを利用してPostgreSQLのバックアップが正常にできた」と判断できます。

以上で、「手順1:pg_dumpコマンドを実行」は完了です。
 

手順2:pg_dumpコマンドの実行結果を確認【バックアップファイルの確認】

「手順2:pg_dumpコマンドの実行結果を確認」に関してご説明します。
 

pg_dumpコマンドで作成されたPostgreSQLのバックアップファイルの中身を確認しましょう。



pg_dumpコマンドで作成されたPostgreSQLのバックアップファイルを確認するために、以下のコマンドを実行してください。ちなみに、ファイルのサイズが数MB以上である場合、メモ帳やvimなどで開けないことがあります。

# head -n 100 postgresql_backup.sql
--
-- PostgreSQL database dump
--

-- Dumped from database version 12.4
-- Dumped by pg_dump version 12.3

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: get_sum; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS get_sum WITH SCHEMA public;


--
-- Name: EXTENSION get_sum; Type: COMMENT; Schema: -; Owner: 
--

COMMENT ON EXTENSION get_sum IS 'simple sum of two integers for postgres extension using c';


SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: album; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.album (
    album_id text NOT NULL,
    title text NOT NULL,
    latitude text,
    longitude text,
    address_full_text text,
    description text
);



上記のようなSQLが羅列されている場合、「正常にpg_dumpコマンド経由でPostgreSQLのバックアップファイルを作成できた」と判断できます。

以上で、「手順2:pg_dumpコマンドの実行結果を確認」は完了です。
 

上記の流れで、PostgreSQLに作成したデータベースをpg_dumpコマンドでバックアップできました。



ちなみに、「PostgreSQLのアーキテクチャを体系的に学びたい」や「その他のPostgreSQLのコマンドを知りたい」方は、以下の参考書がオススメです。


 

【まとめ】PostgreSQLをバックアップする手順【pg_dumpコマンドの利用】

PostgreSQLをバックアップする手順【pg_dumpコマンドの利用】


今回の記事を通して、「PostgreSQLをバックアップする手順【pg_dumpコマンドの利用】」をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・PostgreSQLをバックアップする手順を知りたいな。
・PostgreSQLのバックアップにはpg_dumpコマンドを使えばいいのかな?
・pg_dumpコマンドとpg_dumpallコマンドの違いって何だろうか?



PostgreSQLをバックアップする手順?」や「pg_dumpコマンドとpg_dumpallの違いは?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント

タイトルとURLをコピーしました