Sådan installeres PostgreSQL 10 ved hjælp af kildekode i Linux


PostgreSQL også kaldet Postgres er et kraftfuldt og open source objekt-relationsdatabasesystem. Det er en database på virksomhedsniveau, der har funktioner såsom logning af skridt fremad for fejltolerance, asynkron replikering, Multi-Version Concurrency Control (MVCC), online/hot-backup, point-time-opsving, forespørgsel planner/optimizer, tabeller, indlejrede transaktioner (savepoints ) etc.

Postgres har sin seneste version 10 udgivet 5. oktober 2017 af postgres global udviklingsgruppe.

Funktionerne i den nye version er som følger:

  • Logisk replikering: Denne funktion muliggør replikering af individuelle databaseobjekter (det være sig rækker, tabeller eller selektive databaser) på tværs af standby-servere. Det giver mere kontrol over datareplikering. Implementeret ved hjælp af model for udgiver-abonnent.
  • Kvorum forpligter sig til synkron replikering: I denne funktion kan dba nu specificere antallet af standby'er, der anerkender, at ændringerne i databasen er udført, så data kan betragtes som sikkert skrevet.
  • SCRAM-SHA-256-godkendelse: Forbedret sikkerhed, som eksisterende MD5-baseret adgangskodegodkendelse og -lagring.
  • Forbedret parallel udførelse af forespørgsler.
  • Deklarativ tabelopdeling.
  • Fuldtekstsøgningssupport til JSON og JSONB.

I denne artikel vil vi forklare, hvordan du installerer PostgreSQL 10 ved hjælp af installation af kildekode i Linux-systemer. De, der leder efter nem installation fra distributionspakkehåndtering, kan følge nedenstående vejledninger.

  1. Sådan installeres PostgreSQL 10 på CentOS/RHEL og Fedora
  2. Sådan installeres PostgreSQL 10 på Debian og Ubuntu

Installer PostgreSQL ved hjælp af kildekode

Da postgres er open source-database, kan den bygges ud fra kildekoden i henhold til ens behov/krav. Vi kan tilpasse bygge- og installationsprocessen ved at levere en eller flere kommandolinjemuligheder til forskellige yderligere funktioner.

Den største fordel ved at bruge kildekodeinstallation er, at den kan tilpasses meget under installationen.

1. Installer først de nødvendige forudsætninger som gcc, readline-devel og zlib-devel ved hjælp af pakkehåndteringen som vist.

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

2. Download kildekode tar-filen fra den officielle wget-kommando direkte på systemet.

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

3. Brug tar-kommandoen til at udtrække den downloadede tarball-fil. Ny mappe med navnet postgresql-10.0 oprettes.

# 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æste trin til installationsproceduren er at konfigurere den downloadede kildekode ved at vælge indstillingerne efter dine behov.

# cd postgresql-10.0

brug ./configure --help for at få hjælp til forskellige muligheder.

# ./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. Opret nu et bibliotek, hvor du vil installere postgres-filer, og brug prefix-indstillingen med configure.

# 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. Efter konfiguration begynder vi derefter at opbygge postgreSQL ved hjælp af følgende make-kommando.

# make

Når byggeprocessen er færdig, skal du nu installere postgresql ved hjælp af følgende kommando.

# make install

Postgresql 10 er installeret i/opt/PostgreSQL-10-biblioteket.

7. Opret nu en postgres bruger og mappe, der skal bruges som datakatalog til initialisering af databaseklynge. Ejeren af dette datakatalog skal være postgres-bruger og tilladelser skal være 700 og også angive sti til postgresql-binære filer for vores lethed.

# 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. Initialiser nu databasen ved hjælp af følgende kommando som postgres-bruger, inden du bruger postgres-kommandoer.

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

Hvor -D er placering for denne databaseklynge, eller vi kan sige, at det er datakatalog, hvor vi vil initialisere databaseklyngen, -U for databasens superbrugernavn og - W for adgangskode til db superbruger.

For mere info og muligheder kan vi henvise til initdb –help.

9. Efter initialisering af databasen skal du starte databaseklyngen, eller hvis du har brug for at ændre port eller lytteadresse til serveren, skal du redigere postgresql.conf-filen i databaseserverens databibliotek.

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

10. Efter start af database skal du kontrollere status for postgres-serverprocessen ved hjælp af følgende kommandoer.

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

Vi kan se, at databaseklyngen kører fint, og startlogfiler kan findes på det sted, der er angivet med indstillingen -l , mens du starter databaseklyngen.

11. Opret nu forbindelse til databaseklyngen, og opret database ved hjælp af følgende kommandoer.

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

Det er det! i vores kommende artikler vil jeg dække konfiguration, replikeringsopsætning og installation af pgAdmin-værktøjet, indtil da holder øje med Tecmint.