====== PostgreSQL ======
[[wpde>PostgreSQL]] ist eine der ältesten und fortgeschrittenen objektrelationalen Datenbankverwaltungssysteme (ORDBMS) und ist unter einer [[wpde>BSD-Lizenz]] freigegeben. Es ist SQL92/SQL99/SQL2003-Standard-konform.
===== Links =====
* [[http://ulm.ccc.de/ChaosSeminar/2006/11_PostgreSQL|CCC Ulm Vortrag - PostgreSQL - Ein Elephant vergisst nie]]
* [[http://www.postgresql.org/docs/|Documentation]]
* [[http://www.pgug.de/index.php|PostgreSQL Usergroup Germany]]
* [[http://www.it-academy.cc/article/271/Datenbanken.html|Datenbankbegriffe]]
* [[http://searchopensource.techtarget.com/originalContent/0,289142,sid39_gci1231930,00.html|Postgres slides in between Oracle, MySQL]]
* [[http://www.phpfreaks.com/tutorials/60/0.php|Using PostgreSQL With PHP]]
* [[http://www.go4expert.com/forums/showthread.php?t=96|Tutorials and Learning Materials for PostgreSQL]]
===== Verwaltung =====
* [[http://pgadmin.org/|phppgadmin]] [[wpde>PhpPgAdmin]]
* [[http://sourceforge.net/projects/pgaccess/|pgaccess]]
===== Installation =====
[[software:Ansible]]-rolle: https://github.com/geerlingguy/ansible-role-postgresql
===== Admin-tätigkeiten =====
Verbindung von der Shell:
PGPASSWORD=Geheim123 psql -U $admin -h $Hostname -p $Port -d $datenbank --set=sslmode=require
* zu Datenbank $Datenbank verbinden: \c Datenbank1
* Tabellen auflisten: \dt
==== upgrade debian9 zu debian 10 ====
Debian 9 hat Version 9.6.x, debian 10 hat Version 11.x.
Vorgehensweise bei disz-upgrade:
- leeren pg11 cluster entfernen: pg_dropcluster --stop 11 main
- pg_upgradecluster -v 11 9.6 main
- su postgres
- pg_ctlcluster 11 main start
- systemctl status postgresql
- 9.6-Pakete entfernen
==== backup ====
# oder su -l postgres
sudo postgres pg_dump DB > DB.sql
CURRENT_DATE=$(date +%Y%m%d_%H%M)
export PGPASSWORD="GEHEIM"
pg_dumpall -h localhost -U postgres > $CURRENT_DATE.sql
===== Fehlerbehebung =====
==== Konfguration interaktiv prüfen ====
''sudo -u postgres /usr/lib/postgresql/15/bin/postgres --config-file=/etc/postgresql/15/main/postgresql.conf -D /var/lib/postgresql/15/main; echo $?''
==== SSL Cert nicht lesbar ====
FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Debian12 postgres ist sollte bereits Mitglied der Gruppe "ssl-cert" sein: usermod -aG ssl-cert postgres
Problem: /etc/ssl/private ist chmod 700 mit root.root:
chgrp ssl-cert /etc/ssl/private
chmod g+rx /etc/ssl/private