software:postgresql
Spis treści
PostgreSQL
Tworzenie bazy i użytkownika
CREATE DATABASE dbname; CREATE USER username WITH PASSWORD 'user_password'; GRANT ALL PRIVILEGES ON DATABASE "dbname" to username;
Dodatkowo dla PostgreSQL 15.x i nowszych:
ALTER DATABASE dbname OWNER TO username;
Źródło: https://stackoverflow.com/questions/74110708/postgres-15-permission-denied-for-schema-public
Killowanie połączeń do bazy
PostgreSQL 9.2 i nowsze:
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'TARGET_DB' AND pid <> pg_backend_pid();
PostgreSQL 9.1 i starsze:
SELECT pg_terminate_backend(pg_stat_activity.procpid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'TARGET_DB' AND procpid <> pg_backend_pid();
Przeładowanie konfiguracji
Dwie metody:
sudo -u postgres -i pg_ctl reload
sudo -u postgres -i psql SELECT pg_reload_conf();
Źródło: https://www.heatware.net/databases/postgresql-reload-config-without-restarting/
ZFS
Optymalizacja datasetu pod ZFS powinna zawierać ustawienia:
recordsize=8kcompression=zstdatime=offxattr=salogbias=throughputashift=12
Wklejka:
zfs create -o recordsize=8k -o compression=zstd -o atime=off -o xattr=sa -o mountpoint=/var/db/postgres zroot/postgres
Dodatkowo konfiguracja do postgresql.conf:
- /var/db/postgres/data18/postgresql.conf
full_page_writes = off
TimescaleDB
Instalacja:
pkg install timescaledb
W postgresql.conf ustawiamy:
- /var/db/postgres/data18/postgresql.conf
shared_preload_libraries = 'timescaledb'
Aktywacja rozszerzenia na bazie:
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Sprawdzenie czy rozszerzenie aktywne:
db_name=# \dx List of installed extensions Name | Version | Default version | Schema | Description -------------+---------+-----------------+------------+--------------------------------------------------------------------------------------- plpgsql | 1.0 | 1.0 | pg_catalog | PL/pgSQL procedural language timescaledb | 2.25.2 | 2.25.2 | public | Enables scalable inserts and complex queries for time-series data (Community Edition) (2 rows)
Polecenia diagnostyczne:
SELECT * FROM timescaledb_information.hypertables; SELECT COUNT(*) FROM timescaledb_information.chunks; SELECT * FROM timescaledb_information.jobs; SELECT * FROM timescaledb_information.jobs WHERE proc_name='policy_compression';
software/postgresql.txt · ostatnio zmienione: przez mky
