PostgreSQL konfigurace

1. Požadavky

  • FreeBSD 9.2.1.6+
  • Trvalé úložiště (nejlépe ZFS svazek)

2. Odkazy

3. Vytvoření PostgreSQL jail a instalace PostgreSQL serveru

Vytvořte nový jail (s názvem např. sql) a připojte k němu ZFS svazek, na který se budou ukládat data PostgreSQL serveru. V návodu připojujeme svazek jako '/mnt/sql' uvnitř jail.

Připojte se pomocí SSH k FreeBSD serveru, připojte se k vytvořenému jail (jexec sql tcsh) a nainstalujte PostgreSQL balíček pomocí správce balíčků pkg.

pkg update && pkg upgrade
pkg autoremove
pkg install postgresql94-server postgresql94-contrib
  • Poznámka: Při prvním spuštění se musí aktualizovat repositáře a nainstalované balíčky, takže nebuďte překvapeni množstvím stahovaným dat.
  • Nahraďte číslo verze serveru poslední/preferovanou verzí

Nastavte IP addresu a port (výchozí hodnoty jsou localhost:5432) v souboru '/mnt/sql/pgsql/data/postgresql.conf' pokud požadujete jiné výchozí hodnoty. Následně upravte soubor /etc/rc.conf pro automatické spouštění PostgreSQL serveru při startu jail.

echo 'postgresql_enable="YES"' >> /etc/rc.conf
echo 'postgresql_data="/mnt/sql/pgsql/data"' >> /etc/rc.conf
echo 'postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C"' >> /etc/rc.conf

4. Úprava konfigurace NAS serveru

Pro správný běh PostgreSQL serveru v rámci jail je nutné upravit hlavní konfiguraci NAS serveru a vytvořeného jail pomocí WWW rozhraní NAS serveru.

System->Sysctls - vložte novou proměnnou security.jail.sysvipc_allowed s hodnotou 1
System->Tunables - vložte novou proměnnou kern.ipc.semmni s hodnotou 256
System->Tunables - vložte novou proměnnou kern.ipc.semmns s hodnotou 512
System->Tunables - vložte novou proměnnou kern.ipc.semmnu s hodnotou 256
System->Tunables - vložte novou proměnnou kern.ipc.seumr s hodnotou 40
Jail->Sysctls - vložte novou proměnnou allow.sysvipc=true

5. Příprava a inicializace databáze

Vytvořte adresář pro databázové soubory a na tomto adresáři nastavte jako vlastníka uživatele pgsql. Poslední příkaz pak inicializuje výchozí databázi.

mkdir -p /mnt/sql/pgsql/data
chown -R pgsql:pgsql /mnt/sql/pgsql/data
service postgresql initdb
  • Poznámka: Vytvářený adresář musí být stejný, jako je uveden v konfiguračním souboru rc.conf (viz. bod 1).

6. Nastavení autentizace

V souboru '/mnt/sql/pgsql/data/pg_hba.conf' se nastavuje, ze které IP adresy se mohou připojovat jednotliví uživatelé k vytvořeným databázím. Tento soubor by měl být aktualizován po každém přidání/odebrání databáze nebo uživatele.

#      TYPE  DATABASE  USER  ADDRESS      METHOD
# e.g. host  all       all   10.0.0.0/24  md5
  • Poznámka: Nezapoměňte po každé změně znovu načíst konfiguraci PostgreSQL - 'service postgresql reload'.

7. Konfigurace uživatelů a databází

Příkaz pro vytvoření uživatele

su pgsql
createuser --pwprompt --encrypted --no-createrole --no-createdb username

Příkaz pro vytvoření databáze

su pgsql
createdb --encoding=UTF8 --owner=username databasename

8. Spuštění a kontrola PostgreSQL služby

Spuštění PosgreSQL serveru

service postgresql start
  • Poznámka: V případě chyby: * Error 'FATAL: could not create shared memory segment: Function not implemented' zkotrolujte nastavení jail a NAS serveru v rámci bodu 2).

Kontrola spojení pro vytvořeného uživatele a databáze

psql -h listen_addresses -p port -U username databasename

Komentáře