Änderungen

Die Seite wurde neu angelegt: „= PostreSQL = Dies ist die Dokumentation zu unserem PostgreSQL-Server. Der PostgreSQL-Server wird auf db01.ffnw.de betrieben, alle Datenbanken sind von extern…“
= PostreSQL =
Dies ist die Dokumentation zu unserem PostgreSQL-Server. Der PostgreSQL-Server wird auf db01.ffnw.de betrieben, alle Datenbanken sind von extern erreichbar. Zur Administration empfielt sich https://www.pgadmin.org/.

Als Alternative zu PostgreSQL betreiben wir außerdem einen [[Administration/Dienste/MySQL|MySQL-Server]].

Referenzen:
* https://wiki.debian.org/PostgreSql
* https://vpsineu.com/blog/how-to-setup-and-configure-postgresql-9-4-on-debian-8/
* https://stackoverflow.com/questions/3278379/how-to-configure-postgresql-to-accept-all-incoming-connections

== Installation ==
<pre>
apt-get install postgresql postgresql-contrib postgresql-client autopostgresqlbackup
</pre>

== Erweiterungen ==
Liste aller installierten Erweiterungen anzeigen:
<pre>
su postgres
psql
SELECT * FROM pg_extension;
</pre>

Häufig benötigte Erweiterungen installieren
<pre>
su postgres
psql
# Statistiken für pgAdmin3
# https://www.postgresql.org/docs/9.5/static/adminpack.html
CREATE EXTENSION adminpack;
</pre>

Referenzen:
* https://www.postgresql.org/docs/9.4/static/sql-createextension.html

== Backup ==
Auf dem Server läuft autopostgresqlbackup und führt tägliche Backups durch. Diese liegen in /var/lib/autopostgresqlbackup/.

== Starten & Stoppen ==

== Logs ==
* tail -f /var/log/postgresql/postgresql-9.4-main.log
* systemctl -u postgresql

== Externe Verbindungen erlauben ==
/etc/postgresql/9.4/main/postgresql.conf
<pre>
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
</pre>

/etc/postgresql/9.4/main/pg_hba.conf
<pre>
# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all peer

# IPv4 local connections:
#host all all 127.0.0.1/32 md5
# IPv4 global connections:
#host all all 0.0.0.0/0 md5

# IPv6 local connections:
#host all all ::1/128 md5
#IPv6 global connections:
#host all all ::0/0 md5

# All IP-Adresses
host all all all md5
</pre>


== Neuen Benutzer und Datenbank anlegen ==
In most cases the following will be enough:
<pre>
su postgres
# -D The new user will not be allowed to create databases.
# -R The new user will not be allowed to create new roles.
# -S The new user will not be a superuser.
# -P Prompt for password
createuser -DRSP puppetdb
createdb -E UTF8 -O puppetdb puppetdb
exit
</pre>

For more individual setups use
<pre>
su postgres
createuser --interactive --pwprompt
</pre>

References:
* https://www.postgresql.org/docs/9.4/static/app-createuser.html
* https://www.postgresql.org/docs/9.4/static/app-createdb.html

== PhpPgAdmin ==
http://phppgadmin.ffnw.de/

== Update ==
Ein Update von einer minor-version auf die nächste muss manuell durchgeführt werden.

<pre>
sudo pg_dropcluster --stop NEWVERSION main
sudo pg_upgradecluster -v NEWVERSION OLDVERSION main
</pre>

Rederenzen:
* https://scottlinux.com/2015/11/14/upgrade-postgresql-on-debian-jessie-with-pg_upgradecluster/