Linux Install

Android

Linux Tools

Linux AV

Linux Memo

WINDOWS

PROGRAM

動画 Memo

音楽 Memo

モバイルアプリ Memo

FILE FORMAT

PROTOCOL

DEVICE

BookMark

その他


postgres   

旧記事

postgres-old

移植前準備

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

install

本体

yum install postgresql postgresql-server postgresql-devel

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

COPY の代わりに INSERT 文

dump

pg_dump -U 【ユーザ】 【DB】 -t 【テーブル名】 --column-inserts > tablename.sql

restore

psql -U 【ユーザ】 【DB】 < tablename.sql

windows 版

export PGHOST=localhost

pg_hba

windows

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

pg_hba

host    all             all             127.0.0.1/32            md5

postgres.conf

listen_addresses = '*'

postgres.conf

max_connection=400
lc_messages = 'en_US'

psql コマンド

\dtable一覧
\d 【table名】tableカラム定義一覧
\ldatabase 一覧
current_date

csv

psql TESTDB -c "COPY (select * from foo) TO '/tmp/foo.csv' (FORMAT csv)"

別サーバから繋ぐ

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

listen_addresses = 'localhost,【自分のIPアドレス】'

/var/lib/pgsql/9.6/data/pg_hba.conf

host    all             all             【アクセス元】/32        password
createuser -U postgres 【ユーザ名】
psql -U postgres -c "alter role 【ユーザ名】 with password '【パスワード】';"

通信路は暗号化した方が良い

http://shinsuke789.hatenablog.jp/entry/2017/10/17/100000

psql cygwin

wget https://ftp.postgresql.org/pub/source/v9.6.3/postgresql-9.6.3.tar.gz
wget https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz
tar xzfp postgres*tar.gz
cd postgres*
./configure --enable-nls --enable-thread-safety
cd src/bin
make; make install

sql snipet

timestamp から時間を取得

extract(hour from datetime)