インストール
sudo yum install postgresql-server
sudo postgresql-setup initdb
sudo systemctl start postgresql.service
sudo passwd postgres
su - postgres
psql -l
alter role postgres with password 'postgres';
pg_hba.conf
host all all 127.0.0.1/32 password
Linux コマンド
- データベース作成
createdb gatein-idm_portal; createdb gatein-jcr_portal; createdb gatein-idm_ecmdemo; createdb gatein-jcr_ecmdemo; dropdb gatein-idm_portal; dropdb gatein-jcr_portal; dropdb gatein-idm_ecmdemo; dropdb gatein-jcr_ecmdemo;
psqlでは
create database test_database; drop database test_database;
ユーザ作成
CREATE ROLE testuser WITH LOGIN PASSWORD 'password'; GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO testuser; GRANT SELECT,UPDATE ON ALL SEQUENCES IN SCHEMA public TO testuser;
psql コマンド
- データベース確認
- \l
- テーブル確認
- \d
- ユーザ確認
- \du
- データベース変更
- \c
- \c
ファイル実行
A) psql内で
$ psql mydatabase # \i myscript.sql
B) コマンド直で
$ psql -f myscript.sql
dropdb bpms640_02059913 createdb bpms640_02059913 psql bpms640_02059913 \i ddl/BPMS640/quartz_tables_postgres.sql
foreign key 制約を一時無効化
SET session_replication_role = 'replica'; ... 作業 .. SET session_replication_role = 'origin';
https://stackoverflow.com/questions/38112379/disable-postgresql-foreign-key-checks-for-migrations
トラブルシューティング
Fedora15(postgresql9.0.6)にアップグレードしたらpostgresqlが起動しなくなった
# service postgresql start Starting postgresql (via systemctl): Job failed. See system logs and 'systemctl status' for details. [FAILED]
yum install postgresql-upgrade
service postgresql upgrade
Fedora16のクリーンインストール時も同様のエラー。以下で解決した
sudo postgresql-setup initdb
Fedora 22
sudo postgresql-setup upgrade
サイズ
SELECT relname AS table_name, pg_size_pretty(pg_relation_size(oid)) AS table_size, pg_size_pretty(pg_total_relation_size(oid)) AS total_size FROM pg_class WHERE relkind in ('r','i') ORDER BY pg_relation_size(oid) DESC;
SELECT relname AS table_name, pg_size_pretty(pg_relation_size(oid)) AS table_size, pg_size_pretty(pg_total_relation_size(oid)) AS total_size FROM pg_class WHERE relname = 'pg_largeobject';
VACUUM
vacuumlo
sudo yum install postgresql-contrib
VACUUM FULL
BLOB のクリーンアップ
vacuumlo -h localhost -p 5432 -U postgres -W -v testbpms630
vacuumdb --dbname testbpms630 --full --table 'pg_largeobject' --analyze --host localhost --port 5432 -U postgres -W --verbose
reindexdb --dbname testbpms630 --table 'pg_largeobject' --host localhost --port 5432 -U postgres -W
トリガー
SELECT event_object_schema, event_object_table, trigger_schema, trigger_name FROM information_schema.triggers
pg_largeobject の bytea をテキストに変換
select encode(data, 'escape') from pg_largeobject where loid = 60994;