|
|||||||||
postgres-old の変更点
* 移植前準備 [#q71a103c]
旧バージョン postgres が立ち上がっている状態で
pg_dump 【dbname】 > dbname.dump
* install [#nb7e7697]
yum install postgresql postgresql-server postgresql-devel
** 自動起動設定 [#id80f275]
chkconfig --level 345 postgresql on
//*** ver7 自動起動設定 (ver8 では不要)[#ac4e21a7]
// emacs /etc/rc.d/init.d/postgres
// # TCP アクセス用オプション -i を追加
// su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaste//r -o '-i -p ${PGPORT}' start > /dev/null 2>&1" < /dev/null
** 初期設定 [#mb897a6a]
いったんデータベースの初期化のために起動してすぐとめる
/etc/rc.d/init.d/postgres start
/etc/rc.d/init.d/postgres stop
8では
/etc/rc.d/init.d/postgresql initdb
*** ver7用 TCPアクセス用コンフィグ [#v4661d40]
emacs /var/lib/pgsql/data/pg_hba.conf
host all 127.0.0.1 255.255.255.255 trust
*** ver8用 TCPアクセス用コンフィグ [#n3b5532b]
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;
*** 自分ユーザ [#wbc28894]
createdb -E EUC-JP【dbname】
psql -d 【dbname】-f dbname.dump
新旧両方を別サーバや別ポートで立ち上げてパイプで繋ぐのもアリらしい
*** php モジュール [#k12c3527]
# apt-get install php-pgsql
*** perl モジュール [#p6831ff8]
yum install perl-DBI-Pg
*** pgcommand [#ab882926]
> 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 版 [#r0698710]
export PGHOST=localhost
*** pg_hba [#t9a0d1f9]
windows
/cygdrive/c/Program Files/PostgreSQL/9.4/data
|
|||||||||