Installation von EDB Postgres Advanced Server 13 auf Debian 10

Database

Im Folgenden wird die Installation und Basiskonfiguration des EDB Postgres Advanced Server 13 (EPAS) auf Debian 10 beschrieben. Die Installationsanleitung ist nicht ausschließlich für Debian 10 erstellt, sondern kann natürlich auch für Ubuntu verwendet werden. Die offizielle Dokumentation von EDB kann ergänzend hinzugezogen werden.

Wer sich über Postgresql- und Datenbankthemen austauschen oder beraten möchte, kann gerne direkt Kontakt mit mir aufnehmen. >>Zum Kontaktformular

 

Systemanforderungen

Für die Installation wird ein Server oder eine VM benötigt. Das System weist in diesem Fall folgende Spezifikation auf:

Prozessor:

  • 2 CPU Cores
  • Arbeitsspeicher: 8 GB
  • Speicherplatz: 20 GB
  • Betriebssystem: Debian 10
  • PostgreSQL Version: EDB Postgres Advanced Server 13 (latest)

Hinweis: Für die Installation ist entweder Root-Zugriff oder sudo-Rechte notwendig.

EDB Account

Zur Nutzung des EDB Repositories für die Installation ist ein kostenloser EDB Account notwendig. Dieser stellt USERNAME und PASSWORD für den Zugang bereit.

www.enterprisedb.com/repository-access-request

Installation OpenJDK 8

Ist der Einsatz des EDB Migration Toolkits oder von EDB*Plus geplant, muss Java auf der VM verfügbar sein. Dafür wird das entsprechende Repository sowie das verfügbare Package für OpenJDK 8 installiert.

 

sudo su -
apt update
apt install -y apt-transport-https ca-certificates wget dirmngr gnupg softwareproperties-common
wget -qO - adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo
apt-key add -
add-apt-repository --yes adoptopenjdk.jfrog.io/adoptopenjdk/deb/
apt update
apt install -y adoptopenjdk-8-hotspot

 

Nach der Installation kann die Java Version geprüft werden.

 

java -version

Installation

Installation Zuerst wird das EDB Repository installiert. Dabei müssen die Platzhalter für den <USERNAME> und das <PASSWORT> durch die Zugangsdaten aus dem EDB Account ersetzt werden.

 

sudo su -
sh -c 'echo "deb [arch=amd64] apt.enterprisedb.com/$(lsb_release -cs)-edb/
$(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
sh -c 'echo "machine apt.enterprisedb.com login <USERNAME> password <PASSWORD>" >
/etc/apt/auth.conf.d/edb.conf'
apt-get -y install apt-transport-https
wget -q -O - apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
apt-get update

 

Nun kann der EPAS installiert werden. Bei Bedarf kann das EDB Migration Toolkit und EDB*Plus hinzugefügt werden.

 

apt-get -y install edb-as13-server #edb-as13-edbplus edb-migrationtoolkit

 

Die Installation legt den User enterprisedb an. Dieser wird für die weiteren Schritte verwendet.

 

exit
sudo su - enterprisedb

Cluster initialisieren

Bei der Installation wird automatisch ein Clusterverzeichnis unter /var/lib/edb-as/13/main angelegt. Die Dabei verwendeten Parameter für initdb sind in der Datei /etc/edb-as-common/createcluster.conf einsehbar.

Im hier gezeigten Beispiel werden aber die Parameter direkt beim Cluster erzeugen mitgegeben. Dazu wird als erstes der alte Cluster entfernt.

 

epas_dropcluster --stop 13 main

 

Nun kann ein neuer Cluster mit den folgenden Parametern erstellt werden:

  • Deutsche Lokalisation
  • UTF-8 Encoding
  • Standard Authentifizierungsmethode scram-sha-256 für IP-basierte und peer für Unix-domain Socket Verbindungen
  • Datendateien-Prüfsummen aktiviert

Über den Parameter --start wird der Cluster direkt nach dem Initialisieren gestartet.

 

epas_createcluster --locale de_DE.UTF-8 -e UTF-8 --start 13 main -- --auth=scramsha-256 --auth-local=peer --data-checksums

 

Anzeigen lässt sich der neue Cluster per ls-Befehl.

 

epas_lsclusters

Konfiguration

Als nächstes wird die Konfiguration auf die Ausstattung der VM angepasst. Dazu wird der Bequemheit halber pgconfig verwendet. Unter Debian ist die postgresql.conf im Verzeichnis /etc/edb-as// abgelegt. Dort können die Änderungen eingepflegt werden. Alternativ kann auch per ALTER SYSTEM Befehl die Konfiguration geändert werden. In diesem Beispiel wird eine dritte Variante verwendet. Diese lässt sich in der postgresql.conf einsehen.

 

grep --context=1 include_dir postgresql.conf
include_dir = 'conf.d' # include files ending in '.conf' from
 # a directory, e.g., 'conf.d'

 

Es wird eine separate .conf-Datei für die Konfigurationsparameter verwendet

 

vi conf.d/myconf-20210527.conf

 

In der Datei werden die Konfigurationsparameter gespeichert.

 

# Memory Configuration
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 82MB
maintenance_work_mem = 512MB
# Checkpoint Related Configuration
min_wal_size = 1GB
max_wal_size = 3GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
# Network Related Configuration
listen_addresses = '*'
max_connections = 100
# Storage Configuration
random_page_cost = 1.1
effective_io_concurrency = 200
# Logging configuration for pgbadger
logging_collector = on
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
lc_messages = 'C'
# Adjust the minimum time to collect data
log_min_duration_statement = '10s'
log_autovacuum_min_duration = 0
# 'stderr' format configuration
log_destination = 'stderr'
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h

 

Als nächstes wird der Zugang zum Cluster beschränkt. Hierzu wird die pg_hba.conf angepasst. Diese Datei liegt im gleichen Verzeichnis wie die postgresql.conf.

 

vi pg_hba.conf

 

Für dieses Beispiel werden die Verbindungen für Streaming Replication auskommentiert und ein neuer Eintrag für das Subnet 192.168.56.0/24 der VM hinzugefügt.

 

# 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 scram-sha-256
host all all 192.168.56.0/24 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication all peer
#host replication all 127.0.0.1/32 scram-sha-256
#host replication all ::1/128 scram-sha-256

 

Damit die gemachten Änderungen in den beiden Konfigurationsdateien übernommen werden, ist zum Schluss noch ein Neustart notwendig.

 

exit
sudo systemctl restart edb-as@13-main

 

Der Postgres Cluster ist jetzt einsatzbereit und kann genutzt werden.

Ich berate schon seit vielen Jahren erfolgreich Firmen im Bereich der Datenbanken. Steht auch Ihr Unternehmen momentan, zum Beispiel, vor der Herausforderung einer Migration? Ich unterstütze Sie gerne dabei. Kontaktieren Sie mich gerne unverbindlich:  >>Zum Kontaktformular

Dirk Aumueller Autor

Dirk Aumueller arbeitet als Associate Partner für die Proventa AG. Sein technologischer Schwerpunkt liegt bei Datenbankarchitekturen mit PostgreSQL sowie Data Management Lösungen mit Pentaho. Zusätzlich zu seinen Datenbanktransformations-Projekteinsätzen ist er regelmäßig als PostgreSQL Trainer unterwegs und betreut Studenten bei ihren Abschlussarbeiten. Seine fachlichen Erfahrungen erstrecken sich über die Branchen Telco und Financial Services.

Tags