Wéi installéiere ech PostgreSQL 10 Mat Quellcode an Linux


PostgreSQL och genannt Postgres ass e mächtegen an Open Source Objekt-relational Datebank System. Et ass eng Enterprise-Niveau-Datebank mat Features wéi Schreiwe-Protokolléierung fir Feelertoleranz, asynchroner Replikatioun, Multi-Version Concurrency Control (MVCC), Online/Hot Backups, Punkt an der Zäit Erhuelung, Ufroplaner/Optimizer, Tablespaces, Nested Transaktiounen (Savepoints) ) usw.

Postgres huet seng lescht Versioun 10 verëffentlecht op 5th Oct 2017 vum Postgres Global Development Group.

Features vun der neier Versioun sinn wéi follegt:

  • Logesch Replikatioun: Dës Fonktioun erméiglecht d'Replikatioun vun eenzelnen Datebankobjekter (sief et Reihen, Tabellen oder selektiv Datenbanken) iwwer Standby-Server. Et bitt méi Kontroll iwwer Datereplikatioun. Ëmgesat duerch Verëffentlecher-Abonnent Modell.
  • Quorum Commit for Synchronous Repplication: An dëser Fonktioun kann dba elo d'Zuel vun de Standby'en spezifizéieren, déi unerkennen datt d'Ännerunge vun der Datebank gemaach goufen, sou datt d'Donnéeën als sécher geschriwwe kënne ginn.
  • SCRAM-SHA-256 Authentifikatioun: Verbesserte Sécherheet déi existent MD5-baséiert Passwuert Authentifikatioun a Lagerung.
  • verbessert parallel Ufro Ausféierung.
  • Deklarativ Tabellpartitionéierung.
  • Full Text Sich Ënnerstëtzung fir JSON an JSONB.

An dësem Artikel wäerte mir erkläre wéi Dir PostgreSQL 10 installéiere kënnt mat der Quellcodeinstallatioun an Linux Systemer. Déi, déi no enger einfacher Installatioun vum Verdeelungspaketmanager sichen, kënnen dës ënnert Guiden verfollegen.

  1. Wéi installéiere ech PostgreSQL 10 op CentOS/RHEL a Fedora
  2. Wéi installéiere ech PostgreSQL 10 op Debian an Ubuntu

Installéiert PostgreSQL Mat Quellcode

Wéi postgres eng Open Source Datebank ass, kann se aus Quellcode gebaut ginn no senge Bedierfnesser/Ufuerderunge. mir kënnen de Bau- an Installatiounsprozess personaliséieren andeems Dir eng oder méi Kommandozeiloptioune fir verschidden zousätzlech Funktiounen ubitt.

De grousse Virdeel vun der Quellcodeinstallatioun ass datt et während der Installatioun héich personaliséiert ka ginn.

1. Installéiere fir d'éischt erfuerderlech Viraussetzunge wéi gcc, readline-devel an zlib-devel mat Package Manager wéi gewisen.

# yum install gcc zlib-devel readline-devel     [On RHEL/CentOS]
# apt install gcc zlib1g-dev libreadline6-dev   [On Debian/Ubuntu]

2. Luet d'Quellcode tar-Datei vum offiziellen wget Kommando direkt op System erof.

# wget https://ftp.postgresql.org/pub/source/v10.0/postgresql-10.0.tar.bz2

3. Benotzt tar Kommando fir déi erofgeluede Tarball Datei ze extrahieren. Neie Verzeechnes mam Numm postgresql-10.0 gëtt erstallt.

# tar -xvf postgresql-10.0.tar.bz2
# ll
total 19236
-rw-------. 1 root root      933 Mar 18  2015 anaconda-ks.cfg
-rw-r--r--. 1 root root     8823 Mar 18  2015 install.log
-rw-r--r--. 1 root root     3384 Mar 18  2015 install.log.syslog
drwxrwxrwx  6 1107 1107     4096 Oct  3  2017 postgresql-10.0
-rw-r--r--  1 root root 19639147 Oct  3  2017 postgresql-10.0.tar.bz2

4. Nächste Schrëtt fir d'Installatiounsprozedur ass den erofgeluede Quellcode ze konfiguréieren andeems Dir d'Optiounen no Äre Besoinen auswielt.

# cd postgresql-10.0

benotzt ./configure --help fir Hëllef iwwer verschidden Optiounen ze kréien.

# ./configure --help

Defaults for the options are specified in brackets.
Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local/pgsql]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

5. Erstellt elo e Verzeechnes wou Dir postgres Dateien installéiere wëllt a Präfixoptioun benotze mat Konfiguratioun.

# mkdir /opt/PostgreSQL-10/
# ./configure --prefix=/opt/PostgreSQL-10
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
checking for WAL segment size... 16MB
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc supports -Wdeclaration-after-statement... yes
checking whether gcc supports -Wendif-labels... yes
checking whether gcc supports -Wmissing-format-attribute... yes
checking whether gcc supports -Wformat-security... yes
checking whether gcc supports -fno-strict-aliasing... yes
checking whether gcc supports -fwrapv... yes
checking whether gcc supports -fexcess-precision=standard... no
....

6. No der Konfiguratioun, nächst wäerte mir ufänken postgreSQL ze bauen andeems Dir folgend maachen Kommando benotzt.

# make

Nodeems de Bauprozess fäerdeg ass, installéiert elo postgresql mam folgenden Kommando.

# make install

Postgresql 10 gouf am /opt/PostgreSQL-10 Verzeichnis installéiert.

7. Erstellt elo e Postgres Benotzer a Verzeechnes fir als Dateverzeichnis fir d'Initialiséierung vun der Datebank Cluster ze benotzen. Besëtzer vun dësem Dateverzeichnis soll postgres Benotzer sinn an Permissiounen sollen 700 sinn an och Wee fir postgresql Binäre fir eis Liichtegkeet setzen.

# useradd postgres
# passwd postgres
# mkdir /pgdatabase/data
# chown -R postgres. /pgdatabase/data
# echo 'export PATH=$PATH:/opt/PostgreSQL-10/bin' > /etc/profile.d/postgres.sh

8. Elo initialiséiert d'Datebank mat dem folgenden Kommando als Postgres Benotzer ier Dir all Postgres Kommandoen benotzt.

# su postgres
$ initdb -D /pgdatabase/data/ -U postgres -W

Wou -D Location fir dësen Datebankcluster ass oder mir kënne soen datt et Dateverzeichnis ass wou mir den Datebankcluster initialiséieren wëllen, -U fir Datebank Superuser Numm an - Wfir Passwuertprompt fir db Superuser.

Fir méi Informatioun an Optiounen kënne mir initdb -help referenzéieren.

9. Nodeems Dir d'Datebank initialiséiert hutt, fänkt d'Datebankcluster un oder wann Dir musst den Hafen änneren oder d'Adress fir Server lauschteren, änneren d'postgresql.conf Datei am Dateverzeichnis vum Datebankserver.

$ pg_ctl -D /pgdatabase/data/ -l /pglog/db_logs/start.log start

10. Nodeems Dir d'Datebank gestart hutt, kontrolléiert de Status vum Postgres Serverprozess andeems Dir folgend Kommandoen benotzt.

$ ps -ef |grep -i postgres
$ netstat -apn |grep -i 51751

Mir kënne gesinn datt den Datebankcluster gutt leeft, an d'Startprotokoller kënnen op der Plaz fonnt ginn, déi mat der -l Optioun spezifizéiert gëtt beim Start vum Datebankcluster.

11. Connectéiert elo mam Datebankcluster a erstellt Datebank andeems Dir folgend Kommandoen benotzt.

$ psql -p 51751
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

Dat ass et! an eisen zukünfteg Artikelen wäert ech d'Konfiguratioun, d'Replikatiounssetup an d'Installatioun vum pgAdmin-Tool ofdecken, bis dann op Tecmint ofgeschloss bleiwen.