PowerGres

第 3 回 バックアップとリカバリをしてみる – PowerGres Plus を使ってみよう

第 3 回 バックアップとリカバリをしてみる
『簡単なバックアップと安心リカバリ』

はじめに

先日、あるお客様からこんなお話を聞きました。 「PowerGres Plus は運用に優しいですね。」 私が「どんなところでしょうか?」とお聞きしたところ、「バックアップする機能が GUI とコマンド両方揃っているじゃないですか。 GUI は確かに便利で欲しい機能ですけど、システムを構築する側にとってみればコマンドが無いとスクリプトが書けないんですよ!」、私は「なるほど!」と今さらながら、そのお客様の話に聞き入ってしまいました。

PowerGres Plus では、Administrator によるワンタッチバックアップや、コマンドによるバックアップを行うことができます。 このバックアップデータを使って、どんな場合でも最新状態にリカバリすることができます。

第 3 回では、バックアップとリカバリを実際に行い、PowerGres Plus のバックアップとリカバリの仕組みをご紹介します。

バックアップとリカバリの概要

PowerGres Plus では、バックアップデータに加え、行った処理を記録するログ情報があります。 リカバリを行うときは、バックアップデータとログ情報を利用して最新の状態に復旧することができます。

PowerGres Plus のバックアップ
図 1: PowerGres Plus のバックアップ

バックアップの方法

PowerGres Plus では、Administrator のメニューから実行する方法と、pgx_dmpall コマンドを実行する方法があります。

リカバリの方法

PowerGres Plus では、pgx_rcvall コマンドで、インスタンスを格納するディレクトリおよびデータベーススペースを復旧します。

それでは、実際にバックアップをしながら、PowerGres Plus のバックアップの仕組みをご紹介します。

バックアップの実践

第 2 回目で紹介したデータベースを例に説明します。 バックアップの実践では、Administrator を利用したバックアップを中心に説明します。 pgx_dmpall コマンドを利用したバックアップの方法は後で説明します。

バックアップがどのように行われているかを見るために、各ポイントで、バックアップディレクトリ (/PlusBackup/postgres) の中を見ることにします。

データベース作成後のバックアップディレクトリ

以下はデータベース作成後のバックアップディレクトリを表示したものです。 データベースに対する処理が記録されるログファイル (arclogxxx) とインスタンスの環境設定ファイルが格納されるディレクトリ (bkup1) があります。

books 表を作成して、データを挿入した後のバックアップディレクトリ
図 2: books 表を作成して、データを挿入した後のバックアップディレクトリ

ここで 1 回バックアップをしてみましょう。

Administrator の起動

ブラウザで、以下の URL を入力し Administrator を起動します。

https://hostname:13000/admin/postgres.html

備考: 上記 URL の、「postgres」は、PostgreSQL Plus Setup で指定したインスタンス名です。 「hostname」は、PostgreSQL Plus をインストールしたサーバのホスト名です。

最初に日本語表示か、英語表示かを選択する画面が表示されるので、日本語表示画面の方を選びます。

初期画面が表示されるので、インスタンス管理者用のユーザ ID とパスワードを入力します。

バックアップの実行

Administrator のメニューから、データベースのバックアップ を選択します。 表示されているバックアップの情報は、データベースを作成したときに自動的に行われるものです。

バックアップ画面
図 3: バックアップ画面

バックアップ ボタンをクリックして、バックアップを行います。 画面を更新し、最後にバックアップを行った日時に変更されていれば、バックアップは完了です。

Administrator によるバックアップ
図 4: Administrator によるバックアップ

ここでもバックアップディレクトリの中を見てみましょう。

バックアップ直後のバックアップディレクトリ

バックアップを行うとそれまでのログファイルから、新しいログファイルに切り替わります。 図 5 をご覧ください。 arclog007 の日付が変更され新たに使用されるログ情報となったことがわかります。

バックアップ直後のバックアップディレクトリ
図 5: バックアップ直後のバックアップディレクトリ

リカバリの結果を確認するために、PowerGres Plus を使ってみよう。 第 2 回 データベース作成とアプリケーション実行 で作成した books 表の図書情報を 1 件削除してみます。

図書情報の削除
図 6: 図書情報の削除

この状態で、異常が発生したと仮定してリカバリをしてみます。 ここでは、インスタンス情報を格納するディレクトリ (/PlusData/postgres) の情報とデータベーススペース (/PlusDbspace/postgres/dbsamplespace) を削除して、異常をシミュレーションしてみましょう。

最初に Administrator でインスタンスを停止してください。 次に以下のようにコマンドで、インスタンスディレクトリの情報とデータベーススペースを削除します。

インスタンスディレクトリとデータベーススペースの削除
図 7: インスタンスディレクトリとデータベーススペースの削除

この状態でリカバリを行ってみましょう。

リカバリの実践

リカバリは、インスタンス管理者が pgx_rcvall コマンドを利用して行います。 使い方は、-D でインスタンスを格納するディレクトリを指定し、-B でバックアップディレクトリを指定します。

リカバリ
図 8: リカバリ

ここで、先ほど消したはずのインスタンスディレクトリや、データベーススペースが復旧されているか確認してみましょう。

リカバリ後のインスタンス情報を格納するディレクトリとデータベーススペース
図 9: リカバリ後のインスタンス情報を格納するディレクトリとデータベーススペース

正しくファイルは復元されています。 ではデータはどこまで復元されているでしょうか。 インスタンスを起動して、books 表を見てみましょう。 バックアップをした後の DELETE コマンドの処理までがきちんと復旧されています。 このように、PowerGres Plus では、バックアップをしたタイミングに関係なく、異常が発生した直前の状態までデータベースを復旧することができます。

リカバリ後のデータ
図 10: リカバリ後のデータ

リカバリコマンドの詳細は、PowerGres Plus のマニュアルをご覧ください。

ポイント

このように、最新の状態に復旧するためには、バックアップデータを格納するディレクトリが、インスタンスを格納するディレクトリやデータベーススペースとは別のディスクに配置されることが必要です。 もし、すべてのディレクトリが同一のディスクに配置されていて、ディスクの故障が発生したらどうなるでしょう。 データベースは壊れてしまい、データベースを復旧するためのバックアップデータもなくなってしまうので、データベースを復旧することができなくなります。

それでは、最後にバックアップコマンドを OS の自動化ソフトウェアに組み込んで実行する方法を説明します。

バックアップコマンドを OS の自動化ソフトウェアに組み込んで実行する

Linux システムでは、定期的にコマンドを実行するために cron を使用します。 cron の設定は、crontab コマンド に編集オプション -e をつけて行います。 以下の例では、毎週日曜日の 1 時にバックアップを行うようにします。

$ crontab -e

システム標準のエディタが起動されるので、以下のように入力します。

SHELL=/bin/sh
00 01 * * 0 postgres /usr/local/pgsqlplus/bin/pgx_dmpall -D /PlusData/postgres

フォーマットは、以下のようになっています。

分 時 日 月 曜日 実行ユーザ 実行コマンド

曜日は、日曜日から土曜日までを、0 から 6 の数字で表します。

pgx_dmpall は、バックアップを行うコマンドです。 -D オプションでインスタンスを格納するディレクトリを指定します。

crontab コマンドに表示オプション -l をつけて内容を確認できます。

$ crontab -l

cron の設定確認
図 11: cron の設定確認

cron や pgx_dmpall コマンドの詳細は、マニュアルを参照してください。

最後に

今回は、PowerGres Plus のバックアップとリカバリをご紹介しました。 PowerGres Plus では、GUI とコマンドの両方が用意されているので、Administrator によるワンタッチバックアップも、OS の自動化ソフトウェアへの登録によるバックアップも行えます。 バックアップディレクトリ、インスタンスを格納するディレクトリ、データベーススペースを別ディスクに配置することが、最新の状態にデータベースを復旧するポイントです。 今回ご紹介した内容を応用したシステムの構築と運用につきましては、高信頼化ソリューションでご紹介しておりますので、そちらもご覧ください。

製品・サービスに関するお問い合わせ
03-5979-2701

お問い合せ受付時間 月 - 金 10:00 - 17:00

メールフォームでのお問い合わせ

ページトップへ