.
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

PostgreSQL Server データベースの復元 (リストア)

前のページでダンプしたデータの復元手順を示します。特に初めて復元作業を行われる方は、pg_dump や pg_dumpall で誤ったオプションが指定されれているとデータ消滅といった最悪の結果を招きます。

本格的な運用を前に、これらの作業を確認しておくことは大変重要です。データベースサーバを構築したら、事前にバックアップ、リストア作業に関してしっかり検証される事をおすすめします。

万が一の時の保険.

PostgreSQLが実行するバックアップ、リストア作業はサービスを停止させないで実行できるメリットがありますが、前述したように初めての方は誤った操作で取り返しのつかない結果を招く可能性があります。

既に重要な情報がデータベース内に構築されている場合は、細心の注意が必要ですが、万が一の保険に備えてディレクトリ毎バックアップする方法もあります。原始的な方法ですが確実です。

PostgreSQL ディレクトリのバックアップと復元作業

CentOS-4.5 でパッケージ管理を行っている場合、PostgreSQL の情報が格納されているディレクトリは /var/lib/pgsql/data です。ここに全ての情報が記録されてます。このディレクトリをバックアップします。

PostgreSQL サーバーの停止 (必ず停止させます)

# /sbin/service postgresql stop

/tmp/backup ディレクトリ(任意) に /var/lib/pgsql/data を圧縮保存

# tar zcf /tmp/backup/PostgreSQL.tar.gz /var/lib/pgsql/data

/tmp/backup/PostgreSQL.tar.gz がバックアップファイルになります。復元する際は PostgreSQL のバージョンに注意する必要があります。

PostgreSQL サーバーの開始

# /sbin/service postgresql start

復元作業

復元は、元のディレクトリの差し替える作業になります。必ず、PostgreSQL サーバーを停止してから行う必要があります。

# /sbin/service postgresql stop

念のため元のディレクトリをリネイムしておきます。

# mv /var/lib/pgsql/data /var/lib/pgsql/data_ori

/var/lib/pgsql ディレクトリに data ディレクトリを解凍します。

# cd /
# tar zxf /tmp/backup/PostgreSQL.tar.gz

PostgreSQL サーバーを開始し、問題がないか確認します。

# /sbin/service postgresql start

pg_dumpall で出力した dump ファイルの復元

こちらの方法で作成したダンプファイルを復元します。pg_dumpall ではクラスタ全てを一つのダンプファイルに出力するため、PostgreSQL ユーザ情報を含め全てを復元する事が出来ます。(pg_dumpallオプションによる)

復元するためには、スーパーユーザー権限をもつ PostgreSQL ユーザー、一般的には potgres で実行する必要があります。尚、復元には psql コマンドを使用します。

こちらで作成した dump ファイルを復元する例です。

$ psql -h localhost -U postgres -d template1 < pg_dumpall-now.dump

-h は復元先ホスト名(IPアドレス) -U は実行ユーザー、 -d は接続するデータベースを指定しています。psql コマンドはデータベースに接続する必要があります。CentOS-4.5 では template0 / template1 が用意されているのでそれを指定しています。

もし、pg_dumpall のオプションで間違いがあった場合など復元に問題があれば、保険としてリネイムしておいたディレクトリを戻せばよいことになります。

pg_dumpl で出力した dump ファイルの復元

こちらはデータベースのみの復元となります。pg_dump を実行したユーザー、或いはそのデータベースに権限をもつユーザーで実行する必要があります。

こちらで作成したデータベースを復元する例です。

$ psql -h localhost -U phpgw -d phpGroupWare < pg_dump-phpGroupWare.dump

参考

データベースの規模や運用目的によっても適切なバックアップ、リストア方法を考える必要があります。日本語ドキュメントが充実していますのでバージョンにあったドキュメントを熟読されることをお勧めします。

参照 => PostgreSQL日本語ドキュメント

bottom_mark
ページ最上部
ページ最上部 前のページ