タグ
  ANSI (1)
  ASP.NET (10)
  Active Directory (55)
  BAT (16)
  Backup (2)
  CSharp (11)
  CentOS (4)
  C言語 (4)
  DNS (4)
  Excel (3)
  FFmpeg (1)
  Fedora (4)
  FreeBSD (6)
  IPv6 (3)
  Java (11)
  JavaScript (8)
  LAN (1)
  Link (4)
  Linux (15)
  Mac (1)
  Mail (2)
  Microsoft (3)
  NIS (1)
  Node.js (6)
  OpenIndiana (1)
  OpenLDAP (2)
  OpenSSL (1)
  OpenSolaris (4)
  PHP (2)
  Perl (2)
  Postfix (1)
  PostgreSQL (2)
  PowerShell (34)
  RFC (3)
  SQL Server (5)
  Solaris (10)
  Ubuntu (9)
  VBScript (73)
  VCpp (2)
  VMware (3)
  Visual Basic (1)
  WMI (17)
  WSF (5)
  WSH (10)
  Windows (19)
  bash (1)
  bind (1)
  iSCSI (1)
  おまけ (3)
  作成中 (8)
  慣用句 (3)
  正規表現 (6)
  運用 (8)
作成 2010.01.08
更新 2011.06.04
PostgreSQL バージョンアップ作業のメモ
Fedora 11 から 12 へアップグレードした際に、PostgreSQL を 8.3.8 から 8.4.1 へアップグレードしたメモ
アップグレード前の作業
データベースのバックアップ

ユーザー postgres で実行する。1GiBに分割されたテキストデータで保存される。

$ pg_dumpall | split --bytes=1024m - db.dump
サービス停止

アップグレード後、自動起動しないように変更する。

# service postgresql stop
# chkconfig postgresql off
データベース再構築用の準備

既存DBのディレクトリを移動する。

# mv /var/lib/postgresql/data /var/lib/postgresql/data.back
# mkdir /var/lib/postgresql/data
# chmod 700 /var/lib/postgresql/data
# chown postgres:postgres /var/lib/postgresql/data
アップグレード後の作業
データベースのイニシャライズ

initdb の際に --locale オプションを追加する。
--locale オプションに指定可能なロケールは以下のコマンドで取得する。

$ locale -a

/etc/rc.d/init.d/postgresql 257行目

$SU -l postgres -c "$PGENGINE/initdb --encoding='UTF8' --locale='ja_JP.utf8' --pgdata='$PGDATA' --auth='ident'" >> "$PGLOG" 2>&1 < /dev/null

イニシャライズ

# service postgresql initdb
サービス起動
# service postgresql restart
エンコードが正しいか確認する

ユーザー postgres で実行する
\l (円 小文字エル)でデータベースの一覧とエンコード、ロケールが確認できる

$ psql template1
\l
/var/lib/postgresql/data/pg_hba.conf

ローカルユーザーは認証なし

host    template1   all         192.168.93.0/24       ident
/var/lib/postgresql/data/postgresql.conf
listen_addresses = '*'
shared_buffers = 256MB
temp_buffers = 64MB
/etc/sysctl.conf
shared_buffers はデフォルト32MB なので変更しないと起動しない
kernel.shmmax = 536870912
サービス再起動
# service postgresql restart
# chkconfig postgresql on
データベースのリストア
postgres ユーザーで実行
$ cat db.dump* | psql template1
[リロード] [記事修正] [新規作成] [使用方法]
©2004-2012 UPKEN IPv4