Linux Install

Android

Linux Tools

Linux AV

Linux Memo

WINDOWS

PROGRAM

動画 Memo

音楽 Memo

モバイルアプリ Memo

FILE FORMAT

PROTOCOL

DEVICE

BookMark

その他


postgres-old   

移植前準備

旧バージョン postgres が立ち上がっている状態で
pg_dump 【dbname】 > dbname.dump

install

yum install postgresql postgresql-server postgresql-devel

自動起動設定

chkconfig --level 345 postgresql on

初期設定

いったんデータベースの初期化のために起動してすぐとめる
/etc/rc.d/init.d/postgres start
/etc/rc.d/init.d/postgres stop

8では

/etc/rc.d/init.d/postgresql initdb

ver7用 TCPアクセス用コンフィグ

emacs /var/lib/pgsql/data/pg_hba.conf
host  all 127.0.0.1 255.255.255.255 trust

ver8用 TCPアクセス用コンフィグ

emacs /var/lib/pgsql/data/pg_hba.conf
host  all 127.0.0.1/32 trust

/var/lib/pgsql/data/postgresql.conf

listen_addresses = '*'
port = 5432

再起動

/etc/rc.d/init.d/postgresql start
su postgres
ユーザ作成(不要の場合あり)
createdb postgres 

psql コマンドを使いたいユーザ分の回数実行

$ psql
postgres=# create user 【username】 createdb;

自分ユーザ

createdb -E EUC-JP【dbname】
psql -d 【dbname】-f dbname.dump

新旧両方を別サーバや別ポートで立ち上げてパイプで繋ぐのもアリらしい

php モジュール

# apt-get install php-pgsql

perl モジュール

yum install perl-DBI-Pg

pgcommand

pg_dump -Fc -b データベース名 > db_archive.dump
これで、db_archive.dump にデータが出力されます。このファイルはバイナリですが、圧縮されているので、大きなデータベースをバックアップするときには効率的です。また、このデータから復元させるには、次のように行います。

createdb -T template0 データベース名

pg_restore -d データベース名 db_archive.dump
これで、データベースが復元されます。-T template0 は必ず指定してください(理由を知りたい場合は、マニュアルを参照してください)。また pg_dumpall は、全てのデータベースのバックアップを行います。したがって、データベース名を指定する必要はありません。これらのコマンドは、データベースのバージョンアップを行うときにも使用できます。PostgreSQL の場合、バージョンアップを行うと、データベースファイルの互換性がなくなる場合があります。その場合は、これらのコマンドを使ってデータを移行する必要があります。

場合によっては、テーブル単位でバックアップとを取り、テーブル単位でデータを復元したい場合もあるかと思います。テストしてるときとかは、重宝します。それには次のようにします。

バックアップ

pg_dump -t テーブル データベース名 > dump.out
復元

psql データベース名 < dump.out

windows 版

export PGHOST=localhost

pg_hba

windows

/cygdrive/c/Program Files/PostgreSQL/9.4/data