kazmax - Linux で自宅サーバー

PostgreSQL 8.1.5 へバージョンアップ

2006年10月16日にPostgreSQL 8.1.4 が PostgreSQL 8.1.5 へバージョンアップしました。

不具合の修正だけのようです。詳細は、ダウンロードしたファイルの中に「 HISTORY 」というファイルがあるのでそこで確認できます。

ここでは、PostgreSQLのバージョンアップの方法を説明します。 バージョンアップに伴い、backupなどの作業もでてくるので、バックアップの取得~バージョンアップ~リストアの順番で説明します。

Last Update : 2006年12月05日

PostgreSQL 8.1.5 へバージョンアップの手順

  1. バックアップ
  2. PostgreSQL 停止
  3. 元PostgreSQL関係ファイルのリネーム
  4. PostgreSQL 8.1.5 インストール~initdb
  5. リストア

1. バックアップ

まず、データベース全体のBackupを取得します。 Backup用のコマンドが用意されていますので、それを使用します。

また、Backupコマンドをする前にデータベースが更新されない状況にしておきましょう。 WEBからDBに更新がかかるならWEBサービスなどは停止させておきます。

Backup コマンド

$ pg_dumpall > ファイル名

全DBのロール、テーブルなど全てBackupとってくれます。

例 )

[postgres@localhost ~]$ whoami
postgres
[postgres@localhost ~]$ pwd
/home/postgres
[postgres@localhost ~]$ mkdir backup
[postgres@localhost ~]$ cd backup
[postgres@localhost ~]$ pg_dumpall > dumpall.db ← Backup コマンド

2. PostgreSQL 停止

Backupがとれたら、データベースに更新がかかる前にデータベースを停止します。

[postgres@localhost ~]$ pg_ctl stop ← DB コマンド

3. 元PostgreSQL関係ファイルのリネーム

PostgreSQL 8.1.5 へバージョンアップできた~と思っても既存のアプリが動かなくなったりしたら困ります。
いざという時の為に、元のファイル群は消去するよりリネームしてよけといた方が無難です。 なにかあったら戻せますから。

元PostgreSQLのファイルですが、「 /usr/local/pgsql 」内のものと、別の場所に「 data 」ディレクトリを作成していたら「 data 」、 あとログくらいだと思います。

$ su - ← root になる
# mv /usr/local/pgsql /usr/local/pgsql_061205 ← リネーム
# mv /var/log/postgresql.log /var/log/postgresql.log_061205 ← リネーム

4. PostgreSQL 8.1.5 インストール

インストール方法は、

  1. PostgreSQL 8.1.4 インストール
  2. PostgreSQL 8.1.4 初期設定
  3. PostgreSQL 8.1.4 起動と自動起動設定

と同じです。

ユーザ作成などの手順は、すでにユーザーがいるはずですのでいりません。 詳細は上記リンク参照してください。とりあえずダイジェストで。

$ su - ← root になる
# cd /usr/local/src
# wget ftp://ftp.jp.postgresql.org/source/v8.1.5/postgresql-8.1.5.tar.gz
# tar zxvf postgresql-8.1.5.tar.gz
・・・
# cd postgresql-8.1.5
# ./configure
# gmake
# gmake install
# mkdir /usr/local/pgsql/data
# chown -R postgres.postgres /usr/local/pgsql
# touch /var/log/postgresql.log
# chown postgres.postgres /var/log/postgresql.log
# su - psotgres ← postgres ユーザーにスイッチ
$ initdb -D /usr/local/pgsql/data --no-locale ← データベースクラスタの作成
・・・
$ exit
# /etc/init.d/pgsql start ← PostgreSQL起動

これで、バージョンアップ自体は終了です。ちゃんとバージョンアップされたか確認しましょう。

[postgres@localhost ~]$ psql --version
psql (PostgreSQL) 8.1.5
contains support for command-line editing

よし!って事でバージョンアップ完了。

5. データのリストア

データベースをバージョンアップしたら、データを戻さなければなりません。
以下のコマンドでデータを戻します。

psql -f バックアップファイル postgres

実際にデータを戻します。
postgres ユーザーで行います。

[postgres@localhost ~]$ cd backup
[postgres@localhost backup]$ psql -f dumpall.db postgres
・・・

データの確認や、アプリケーションの動作などを確認します。 問題がなければバージョンアップ終了です。

PostgreSQL 関連記事