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 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_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->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
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.
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.
# 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
createuser --pwprompt --encrypted --no-createrole --no-createdb username
Příkaz pro vytvoření databáze
createdb --encoding=UTF8 --owner=username databasename
8. Spuštění a kontrola PostgreSQL služby
Spuštění PosgreSQL serveru
- 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
Komentáře