バックアップ / リストア

pg_dump によるバックアップ・リストアを行います。

これらの作業を行うためにはメインメニューから「バックアップ / リストア」を選択します。

バックアップ

サーバ・データベース・テーブルの単位でバックアップを取得します。

  1. サブメニューにある「バックアップ」をクリックします。

  2. バックアップ情報を入力します。

    1. 「出力ファイル」を入力 / 選択します。

      ディレクトリが存在していれば、すでに存在するファイルであっても構いません (上書きされます)。

      相対パスで入力した場合は、Windows では インストール先ディレクトリの中の admin ディレクトリに、Linux では管理ツールを起動しているディレクトリに保存されます。

    2. 出力する単位によってそれぞれ入力します。

      • サーバ単位でバックアップを取る場合は、「対象データベース」、「対象テーブル」を空欄のままにしておきます。

      • データベース単位でバックアップを取る場合は、「対象データベース」に入力し、「対象テーブル」を空欄のままにしておきます。

      • テーブル単位でバックアップを取る場合は、「対象データベース」、「対象テーブル」に入力します。

    3. 必要に応じて「データベース作成文を含める」にチェックを入れます。 データベースのみのバックアップかつ出力形式がテキスト (SQL) の場合のみ有効です。

    4. 「データとスキーマ」から出力するものを選択します。

    5. 「出力形式」を選択します。

      データベースを指定せずサーバ単位のバックアップを取る場合は、どれを選択しても必ずテキスト形式 (SQL) で出力されます。 圧縮形式とは、pg_dump コマンドに「-F c」を指定したときの形式です。

    6. 「ダンプデータ形式」を選択します。

  3. 「バックアップを作成」ボタンをクリックします。

リストア

「バックアップ」で取得したバックアップファイルを用いてリストアを行います。

  1. サブメニューにある「リストア」をクリックします。

  2. リストア情報を入力します。

    1. 「バックアップファイル」に、管理ツールの「バックアップ」で作成したファイルを入力 / 選択します。

      「バックアップの内容を表示」ボタンをクリックすると、tar 形式 / pgz 形式のファイルであれば、内容が表示されます。

    2. データベースを指定します。

      データベースクラスタ単位でバックアップしたものをリストアするには、データベースクラスタの初期化直後のデータベースが作成されていない状態で、template1 または postgres データベースを指定します。

      データベース単位でバックアップしたものをリストアするには、あらかじめリストア先のデータベースを作成しておいて、そのデータベースを指定します。 なお、テキスト形式で「データベース作成文を含める」として作成したバックアップファイルであれば対象データベースが自動的に作成されますので template1 または postgres データベースを指定してください。

  3. 「リストアを実行」ボタンをクリックします。

スケジュール

スケジュールを登録

OS の機能を用いて、バックアップのスケジューリングを行います。 指定した時刻で、毎日バックアップを行ったり、曜日を指定してバックアップを取ることが可能です。

  1. サブメニューにある「バックアップ」をクリックします。

  2. スケジュールするバックアップの情報を入力して、「バックアップ設定を保存」ボタンをクリックします。 (入力方法は、「バックアップ」を参照してください。)

    ヒント

    出力ファイル名を固定すると、バックアップの度に毎回上書きされます。 世代管理を行いたい場合は、ファイル名にコマンドや環境変数を利用すると便利です。

    Linux ではコマンド「date」、Windows では環境変数「%DATE%」などがお勧めです。

    年月日をファイル名にして、毎日バックアップする場合の例は以下のとおりです。

    Windows の場合

    backup-%date:~-10,4%%date:~-5,2%%date:~-2,2%

    Linux の場合

    backup-`date "+%Y%m%d"`

    実際に作成されるファイル名は以下のようになります。

    backup-20100120lbackup-20100121

  3. 設定ファイルの出力先を入力して、バックアップの設定ファイルを作成します。

    ファイル名の注意

    Windows では、ファイルの拡張子を「.bat」にして保存してください。 指定の拡張子をつけないとバックアップが実行されません。

  4. サブメニューにある「スケジュール」をクリックします。

  5. 「追加」ボタンをクリックします。

  6. スケジュールの内容を入力します。

    1. バックアップ頻度を指定します。

      • 毎日バックアップしたい場合は、「毎日」を選択してください。

      • 曜日でバックアップしたい場合は、「曜日指定」を選択してから「月」〜「金」にチェックを入れてください。 曜日は複数指定できます。

    2. 時刻を入力します。 時は 0 〜 23、分は 0 〜 59 の範囲で指定してください。 範囲を超えた値を入力した場合は、自動的に最大値 / 最小値に修正されます。

    3. 「バックアップ設定ファイル」の「選択」ボタンをクリックして、バックアップの設定ファイルを選んでください。 「オンラインバックアップ」の「ベースバックアップの作成」で作成したファイルを指定することもできます。

  7. 「適用」ボタンをクリックします。

  8. (Windows の場合のみ) バックアップを実行するユーザを指定します。 管理者権限をもったユーザの中から選ぶ必要があります。

  9. スケジュールが追加されます。 (スケジュールの一覧にすぐに反映されない場合は、「表示を更新」をクリックしてください。)

  10. スケジュールで指定した時刻になると、バックアップが開始されます。

認証設定の注意

PowerGres の認証設定は、デフォルトではパスワードを求める md5 であるため、そのままではスケジュールバックアップが実行されません。 そのため、ローカルホストからの接続を認証なし (trust) に変更してしまうか、パスワードファイルを利用する必要があります。

ローカルホストからの接続の認証方式を trust にする

バックアップ設定の内容に合わせて、「接続認証 (pg_hbba.conf)」の確認と変更を行ってください。

パスワードファイルを利用する

接続認証に必要なパスワードをファイルに記述して与えることができます。 以下のように : で区切ったテキストデータを記述します。

ホスト名:ポート番号:データベース名:ユーザ名:パスワード

先頭の 4 つのフィールドはそれぞれリテラル値にすることも、あるいはすべてに一致する * を使用することもできます。 複数行記述した場合には、上の行から判定し最初に現在の接続パラメータと一致した行のパスワードが使用されます。

値として : または \ を入力する場合は、\ でこれらの文字をエスケープする必要があります。 ホスト名に localhost を指定した場合には、ローカルホストからの TCP/IP 接続と Unix ドメインソケット接続の両方に一致します。

Windows の場合

実行する Windows ユーザのアプリケーションデータディレクトリ以下に postgresql\pgpass.conf を上記の書式で配置してください。

Linux の場合

実行する Linux ユーザのホームディレクトリに .pgpass を配置、または環境変数 PGPASSFILE で指定したパスに上記の書式で配置してください。

.pgpass の権限はグループ、他への全てのアクセスを拒否しなければなりません。 これは chmod 0600 ~/.pgpass といったコマンドによって行ってください。

スケジュールを削除

登録されたスケジュールを削除することができます。

  1. サブメニューにある「スケジュール」をクリックします。

  2. 削除したいスケジュールを選択して、「削除」をクリックします。 スケジュールが削除されます。 (スケジュールの一覧にすぐに反映されない場合は、「表示を更新」をクリックしてください。)

アンインストール時の注意

登録されたスケジュールは、PowerGres をアンインストールしても自動的に削除されません。 上記の手順で削除して下さい。