Skip to content

PostgreSQL 11 - die Neuerungen, sowie Installation und Upgrade unter Ubuntu 18.04 LTS

Letzte Woche war es soweit, nach einen Jahr wurde PostgreSQL 11 veröffentlicht.

Die neue Version 11 hat im Vergleich zur letzten viele Änderungen erhalten. Neben Performance wurde auch an der Usability gearbeitet.

PostgreSQL 11 Neuerungen

Die vielleicht beste Neuerung für den Wald und Wiesen Datenbanknutzer betrifft die Postgres Konsole psql. Diese kann nun mit quit und exit verlassen werden, in Ergänzung zu \q oder Strg+D

postgres

Weitere Änderungen sind:

Die Parallelisierung wurde auf Hash Joins, Append, Index Erstellung, UNION-Abfragen und weitere Elemente erweitert.

JIT (Just in Time ) Kompilierung wurde integriert, was nach eigenen Aussagen 30% Geschwindigkeitszuwachs bringt . JIT muss manuell aktiviert werden.

Die Partitionierung wurde verbessert (z.B. hash partitioning) und PRIMARY KEY und FOREIGN KEY Anweisungen sind nun auch auf Partitionen möglich.

Neue Rollen wurden eingeführt (pg_read_server_files, pg_write_server_files, pg_execute_server_program).

Und ALTER TABLE beherrscht nun ADD COLUMN mit NOT NULL als Standardwert. 

 

Dies ist nur ein minimaler Auszug der neuen Features des aktuellen Releases. Daher verweise ich auf die Release Notes.

Nun zur Installation

Installation PostgreSQL 11 unter Ubuntu 18.04 LTS

sudo wget -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main 11" >> /etc/apt/sources.list.d/postgresql-11.list'
sudo apt update
sudo apt install postgresql-11

The following additional packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-client-11 postgresql-client-common postgresql-common sysstat
Suggested packages:
  lm-sensors locales-all postgresql-doc-11 libjson-perl isag
The following NEW packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-11 postgresql-client-11 postgresql-client-common postgresql-common sysstat
0 upgraded, 9 newly installed, 0 to remove and 1 not upgraded.
Need to get 30.7 MB of archives.
After this operation, 115 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Upgrade auf PostgreSQL 11 von PostgreSQL 10

Bei einem Upgrade muss die neue Version (wie oben beschrieben) installiert werden. Danach kann überprüft werden, ob beide aktiv sind. Vorher aber das Backup nicht vergessen.

pg_dumpall > Sicherung
pg_lsclusters

Danach wird das neue Cluster vorerst angehalten damit das alte auf das neue migriert werden kann.

sudo pg_dropcluster 11 main --stop
sudo pg_upgradecluster 10 main

  Stopping old cluster...
  Disabling connections to the old cluster during upgrade...
  Restarting old cluster with restricted connections...
  Creating new PostgreSQL cluster 11/main ...
  /usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5 
  --encoding UTF8 --lc-collate en_US.UTF-8 --lc-ctype en_US.UTF-8
  The files belonging to this database system will be owned by user "postgres".
  This user must also own the server process.

  The database cluster will be initialized with locale "en_US.UTF-8".
  The default text search configuration will be set to "english".

  Data page checksums are disabled.

  fixing permissions on existing directory /var/lib/postgresql/11/main ... ok
  creating subdirectories ... ok
  selecting default max_connections ... 100
  selecting default shared_buffers ... 128MB
  selecting dynamic shared memory implementation ... posix
  creating configuration files ... ok
  running bootstrap script ... ok
  performing post-bootstrap initialization ... ok
  syncing data to disk ... ok

pg_lscluster

Im nächsten Schritt kann die korrekte Funktion des Systems und der Datenbanken überprüft werden.

Ist alles in Ordnung kann das alte Cluster entfernt werden.

sudo pg_dropcluster 10 main

 

pgAdmin 4.x für Ubuntu, Debian, Mint und Co via Repository verfügbar

Kurze Meldung für PostgreSQL Freunde unter euch. Das bereits vorgestellte pgAdmin 4.x zur grafischen PostgreSQL Datenbank Server Verwaltung kann nun auch aus dem Postgres Repository installiert werden.

Bisher war unter Ubuntu oder Debian nur eine Installation via Python Wheel oder Docker möglich.

pgadmin4

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt-get update

sudo apt-get install pgadmin4

 

Anleitung: PostgreSQL 9.x Installation auf Postgres 10 aktualisieren

PostgreSQL 10 ist nun seit ein paar Monaten auf dem Markt. Somit kann an ein Update der bestehenden Infrastruktur gedacht werden.

Diese kurze Anleitung soll zeigen, wie ein Update einer 9.x Installation auf die aktuelle Version 10 unter Ubuntu Server gelingt.

PostgreSQL Server 9.x auf Version 10 aktualisieren

Zunächst wird das aktuelle Repository hinterlegt.

sudo echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc |   sudo apt-key add -

sudo apt-get update

Nun kann die aktuelleste Version installiert werden

sudo apt-get dist-upgrade

oder

sudo apt install postgresql-10

Zur Überprüfung ob auch beide Versionen vorhanden sind können die aktiven DB Cluster aufgelistet werden

pg_lsclusters

ls_clusterNun kann das neue 10er Cluster angehalten und das bestehende aktualisiert werden.

sudo pg_dropcluster 10 main --stop

sudo pg_upgradecluster 9.5 main

Danach sollte wieder ein kurzer Check gemacht werden, bevor das alte System entfernt wird. Ich prüfe hier nur den Prozess.

Am besten die Datenbanken oder Anwendungen direkt auf Funktion prüfen, bevor die alte Version entfernt wird.

ps aux

sudo pg_dropcluster 9.5 main

postgres

Wachmacher - Passwort knacken auf 0xf

Zum Montag bietet sich ein kleiner Wachmacher an. Heute kommt dieser von den österreichischen Nachbarn und wurde bestimmt schon von einigen im Internet gesichtet. Dennoch ist es immer wieder sinnvoll seine Programmier- oder Hackerskills zu testen.

Nichts anderes macht 0xf.at auf momentan 37 Leveln. Auf verschiedene Arten muss ein Passwort geknackt werden. Mit ein wenig Programmierkenntnissen und logischem Denken sollten viele Level kein Problem darstellen. Praktischerweise lässt sich jede Herausforderung einzeln auswählen.

 

0xf

0xf ist inzwischen auf github vorhanden und kann frei verwendet oder erweitert werden.

Download

pgAdmin 4 v2.0 - Bessere Performance und PostgreSQL 10 Unterstützung

Seit gut einem Jahr ist pgAdmin in Version 4 verfügbar. Die komplett überarbeitete Version wurde damals neu geschrieben und Stand zu anfangs noch auf etwas wackeligen Beinen. Keine Wunder nach einer komplett neu geschriebenen Variante.

Mit der aktuellen Version 2.0 wurden daher bis zu 70 Bugs gefixed. Die Performance des JQuery UI wurde massiv verbessert und eine SSL Unterstützung integriert. Natürlich ist auch die Unterstützung für das aktuelle PostgreSQL 10 mit an Bord. 

Eine Konfiguration im Vorfeld soll nun wegfallen und das PostgreSQL Tool "out of the box" starten.

Alle Änderungen lassen sich im Blog Beitrag nachlesen.

pgadmin4-logo

Installation pgAdmin 4 unter Ubuntu 16.04. LTS

Es gibt mehrere Varianten das Tool auf Ubuntu zu installieren. Leider wird bis jetzt noch kein Repository unterstützt. 

Es kann auf die Python Wheel Variante zurückgegriffen werden.

sudo apt-get install virtualenv python-pip libpq-dev python-dev
virtualenv pgadmin

cd
virtualenv pgadmin
cd pgadmin
source bin/activate
pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl

python ~/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Die Konfigurationsdatei dieser Installation ist unter lib/python2.7/site-packages/pgadmin4/config.py zu finden.

pgadmin-dashboard1

Installation pgAdmin 4 mit Docker Container

Wer lieber auf Docker setzt, der kann auch einen Container verwenden.

docker pull dpage/pgadmin4

docker run -p 80:80 -e "PGADMIN_DEFAULT_EMAIL=user@example.de" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4


oder mit einer SSL Variante

docker pull dpage/pgadmin4
docker run -p 443:443 \
-v "/private/var/lib/pgadmin:/var/lib/pgadmin" \
-v "/path/to/certificate.cert:/certs/server.cert" \
-v "/path/to/certificate.key:/certs/server.key" \
-e "PGADMIN_DEFAULT_EMAIL=user@example.de" \
-e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \
-e "PGADMIN_ENABLE_TLS=True" \
-e "PGADMIN_SERVER_NAME=pgadmin.domain.com" \
-d pgadmin4

 

Fazit

Leider konnte ich die neue Version bis jetzt noch nicht auf Herz und Nieren testen. Allerdings ist trotz der Performance Verbesserungen, immer noch Luft nach oben. Detaillierte Fehler wie beispielsweise mit Postgis (siehe alter Artikel), kann ich adhoc nicht beurteilen.

Die nicht vorhandene Installation via Repository wird einige Ubuntu Nutzer an der Verwendung des Tools hindern, immerhin stehen mit RPM, PIP und Docker Alternativen zur Verfügung. 

Die alte Version 3 wird zwar nicht mehr offiziell unterstützt, kann aber alternativ weiterhin verwendet werden.