====== 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=8k'' * ''compression=zstd'' * ''atime=off'' * ''xattr=sa'' * ''logbias=throughput'' * ''ashift=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'': full_page_writes = off ====== TimescaleDB ====== Instalacja: pkg install timescaledb W ''postgresql.conf'' ustawiamy: 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';