★悩み★
・PostgreSQLをバックアップするためのコマンドや方法を知りたいな。
・コマンドでPostgreSQLをバックアップする方法って何があるのだろうか?
・PostgreSQLをpg_dumpコマンドでバックアップする手順を知りたい。
こういった「悩み」に答えます。
★本記事の内容★
① PostgreSQLのバックアップとは?方法は?
② PostgreSQLのバックアップ運用方法
③ PostgreSQLをpg_dumpコマンドでバックアップする手順
これからご紹介する「PostgreSQLのバックアップコマンドのまとめ【pg_dumpの紹介】」を実践したことで、30分以内で「PostgreSQLが提供しているバックアップコマンドの理解」と「pg_dumpコマンドを用いてPostgreSQLをバックアップ」できました。
記事の前半では「PostgreSQLをバックアップする方法とその際に利用するコマンド」を解説します。
記事の後半では「pg_dumpコマンドを用いたPostgreSQLのバックアップ手順」を紹介します。
この記事を読み終えることで、「PostgreSQLのバックアップ方法の種類の把握」と「PostgreSQLをバックアップできる」状態になります。
ちなみに、pg_restoreコマンドやpsqlコマンドを利用したPostgreSQLのリストア手順を知りたい方は、以下の記事をご覧ください。
PostgreSQLのバックアップとは?方法は?
「PostgreSQLのバックアップとは?方法は?」に関してご紹介します。
★PostgreSQLのバックアップ方法に関するご紹介事項★
・PostgreSQLのバックアップとは?
・PostgreSQLをバックアップする方法とは?コマンドでできる?
以降で、上記「PostgreSQLのバックアップ方法に関するご紹介事項」の各項目に関してご説明します。
PostgreSQLのバックアップとは?
「PostgreSQLのバックアップとは?」に関して説明します。
データは大事な資産です。その資産をいつでも復旧できるようにPostgrSQLでは、「バックアップ機能」を提供しています。
PostgreSQLには、以下の「3つ」のバックアップの種類があります。
バックアップの種類 | メリット | デメリット |
オフライン 物理バックアップ | ・手順が簡単 | ・運用中にバックアップ不可 ・復旧時点はバックアップ時点 |
オンライン 物理バックアップ | ・運用中にバックアップ可能 ・任意の時点にリカバリ可能 | ・手順が複雑 |
オンライン 論理バックアップ | ・運用中にバックアップ可能 ・手順が簡単 | ・復旧時点はバックアップ時点 |
それぞれのバックアップの特徴(メリット/デメリット)を把握した上で、適切なPostgreSQLのバックアップ機能を利用しましょう。
適切なバックアップ種類の選び方に関しては、以降でご説明します。
以上が、「PostgreSQLのバックアップとは?」となります。
PostgreSQLをバックアップする方法とは?コマンドでできる?
「PostgreSQLをバックアップする方法とは?コマンドでできる?」に関して説明します。
「オフライン/オフライン物理バックアップ」「オンライン 論理バックアップ」で利用するコマンドやツールをご紹介しますね。
以下のコマンドやツールを使うことで、PostgreSQLの「オフライン/オフライン物理バックアップ」「オンライン 論理バックアップ」を実現できます。
バックアップの種類 | 利用コマンド | 利用ツール |
オフライン 物理バックアップ | cpなどのOSコマンド | ー |
オンライン 物理バックアップ | ・pg_basebackup ・pg_start_backup/pg_stop_backup | ー |
オンライン 論理バックアップ | ・pg_dump ・pg_dumpall ・SQLのCOPYコマンド | ・pgAdmin ・WebAdmin |
以上が、「PostgreSQLをバックアップする方法とは?コマンドでできる?」となります。
ちなみに、PostgreSQLのバックアップの詳細を知りたい方には、以下の公式サイトがおすすめです。
参照:PostgreSQLのバックアップについて(公式サイト)
「PostgreSQLのバックアップには3種類あること」や「バックアップをする方法として、コマンドやツールがあること」を覚えておきましょう。
PostgreSQLのバックアップ運用方法
「PostgreSQLのバックアップ運用方法」に関してご紹介します。
★PostgreSQLのバックアップ運用方法に関するご紹介事項★
・PostgreSQLのバックアップ方法の選び方
・PostgreSQLのバックアップコマンドを定期的に実行する方法
以降で、上記「PostgreSQLのバックアップ運用方法に関するご紹介事項」の各項目に関してご説明します。
PostgreSQLのバックアップ方法の選び方
「PostgreSQLのバックアップ方法の選び方」に関して説明します。
PostgreSQLの3つのバックアップのうち、「どのバックアップ方法を選べば良いか?」に関して説明しますね。
「PostgreSQLが停止可能か」や「どの時点まで復旧したいのか」の観点で、PostgreSQLのバックアップ方法を選択します。(下図参照)
以上が、「PostgreSQLのバックアップ方法の選び方」となります。
PostgreSQLのバックアップコマンドを定期的に実行する方法
「PostgreSQLのバックアップコマンドを定期的に実行する方法」に関して説明します。
PostgreSQLの「オフライン物理バックアップ(cpコマンドなど)」と「オンライン論理バックアップ(pg_dumpなど)」を定期的に実行する方法を説明しますね。
「オフライン物理バックアップ」や「オンライン論理バックアップ」を定期的に実行したい場合、「Cron」を利用しましょう。
「Cronの使い方」に関しては、以下の記事をご覧ください。
以上が、「PostgreSQLのバックアップコマンドを定期的に実行する方法」となります。
PostgreSQLのバックアップ運用方法として、「バックアップの選び方」や「定期的にコマンドを実行する方法」をご紹介いたしまさいた。以降で、「pg_dump」を使ったPostgreSQLのバックアップ手順に関して説明しますね。
PostgreSQLをpg_dumpコマンドでバックアップする手順
「PostgreSQLをpg_dumpコマンドでバックアップする手順」に関してご紹介します。
★PostgreSQLをpg_dumpコマンドでバックアップに関するご紹介事項★
・PostgreSQLのバックアップコマンド「pg_dump」の概要
・PostgreSQLをpg_dumpコマンドでバックアップするための準備
・PostgreSQLをpg_dumpコマンドでバックアップする手順
以降で、上記「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コマンドと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コマンドでバックアップするための準備★
手順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のインストール手順」に関しては、以下の記事をご覧ください。
>>【Ubuntu向け】PostgreSQL15を4手順でインストールする方法
>>【コピペOK】PostgreSQL15を5手順でインストールする方法
>>【5分でわかる】Windows版PostgreSQLのインストール方法
>> PostgreSQL Operator(Zalando)をKubernetesで使う手順
以上で、「手順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コマンドでバックアップするまでの流れ★
手順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のバックアップ手順」を解説し、以下の悩みを解決しました。
★悩み★
・PostgreSQLをバックアップするためのコマンドや方法を知りたいな。
・コマンドでPostgreSQLをバックアップする方法って何があるのだろうか?
・PostgreSQLをpg_dumpコマンドでバックアップする手順を知りたい。
ぜひあなたも本記事を参考に「コマンドを用いて、PostgreSQLのバックアップ」を実践してみてください。
コメント