Kako namestiti PostgreSQL 10 z uporabo izvorne kode v Linuxu


PostgreSQL, imenovan tudi Postgres, je zmogljiv in odprtokodni objektno-relacijski sistem baze podatkov. To je zbirka podatkov na ravni podjetja, ki ima funkcije, kot so vnaprejšnje beleženje za toleranco napak, asinhrono podvajanje, nadzor nad več različicami (MVCC), spletne/vroče varnostne kopije, obnovitev v času, načrtovalnik poizvedb/optimizator, tabelni prostori, ugnezdene transakcije (točke shranjevanja) ) itd.

Postgres ima zadnjo različico 10, ki jo je 5. oktobra 2017 izdala globalna razvojna skupina postgres.

Značilnosti nove različice so naslednje:

  • Logično podvajanje: Ta funkcija omogoča podvajanje posameznih objektov zbirke podatkov (bodisi vrstic, tabel ali selektivnih zbirk podatkov) po strežnikih v pripravljenosti. Zagotavlja večji nadzor nad podvajanjem podatkov. Izvedeno z uporabo modela izdajatelj-naročnik.
  • Zaveza sklepčnosti za sinhrono podvajanje: v tej funkciji lahko dba zdaj določi število pripravljenosti, ki potrjujejo, da so bile spremembe v bazi podatkov izvedene, tako da se lahko podatki štejejo za varno zapisane.
  • Preverjanje pristnosti SCRAM-SHA-256: Izboljšana varnost obstoječega preverjanja pristnosti in shranjevanja na podlagi MD5.
  • Izboljšano izvajanje vzporednih poizvedb.
  • Deklarativno razdelitev tabel.
  • Podpora za iskanje po celotnem besedilu za JSON in JSONB.

V tem članku bomo razložili, kako namestiti PostgreSQL 10 z uporabo namestitve izvorne kode v sisteme Linux. Tisti, ki iščejo enostavno namestitev iz upravitelja distribucijskih paketov, lahko upoštevajo spodnja navodila.

  1. Kako namestiti PostgreSQL 10 na CentOS/RHEL in Fedora
  2. Kako namestiti PostgreSQL 10 v Debian in Ubuntu

Namestite PostgreSQL z uporabo izvorne kode

Ker je postgres odprtokodna zbirka podatkov, jo je mogoče sestaviti iz izvorne kode glede na potrebe/zahteve. postopek gradnje in namestitve lahko prilagodimo tako, da ponudimo eno ali več možnosti ukazne vrstice za različne dodatne funkcije.

Glavna prednost uporabe izvorne kode je, da jo lahko med namestitvijo zelo prilagodimo.

1. Najprej z upraviteljem paketov namestite zahtevane predpogoje, kot so gcc, readline-devel in zlib-devel, kot je prikazano.

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

2. Prenesite tar datoteko izvorne kode iz uradnega ukaza wget neposredno v sistemu.

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

3. Z ukazom tar izvlecite preneseno datoteko tarball. Ustvaril se bo nov imenik z imenom postgresql-10.0.

# 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. Naslednji korak namestitvenega postopka je konfiguriranje prenesene izvorne kode tako, da izberete možnosti glede na vaše potrebe.

# cd postgresql-10.0

uporabite ./configure --help za pomoč pri različnih možnostih.

# ./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. Zdaj ustvarite imenik, kamor želite namestiti datoteke postgres, in uporabite možnost predpone s konfiguracijo.

# 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. Po konfiguraciji bomo naslednjič začeli graditi postgreSQL z naslednjim ukazom make.

# make

Ko je postopek izdelave končan, namestite postgresql z naslednjim ukazom.

# make install

Postgresql 10 je bil nameščen v imeniku /opt /PostgreSQL-10.

7. Zdaj ustvarite uporabnika in imenik postgres, ki bosta uporabljena kot imenik podatkov za inicializacijo gruče baz podatkov. Lastnik tega imenika podatkov mora biti uporabnik postgres, dovoljenja pa morajo biti 700, za lažjo nastavitev pa tudi pot za binarne datoteke postgresql.

# 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. Zdaj inicializirajte bazo podatkov z naslednjim ukazom kot uporabnik postgresa, preden uporabite katere koli ukaze postgres.

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

Kjer je -D lokacija za to gručo baz podatkov ali pa lahko rečemo, da je to podatkovni imenik, kjer želimo inicializirati gručo baze podatkov, -U za ime super-uporabnika baze podatkov in - W za poziv gesla za super -uporabnika db.

Za več informacij in možnosti se lahko obrnete na initdb –help.

9. Po inicializaciji baze podatkov zaženite gručo baz podatkov ali če morate spremeniti vrata ali naslov poslušanja strežnika, uredite datoteko postgresql.conf v podatkovnem imeniku strežnika baz podatkov.

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

10. Po zagonu zbirke podatkov z naslednjimi ukazi preverite stanje strežniškega procesa postgres.

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

Vidimo lahko, da se gruča baz podatkov dobro izvaja, dnevnike ob zagonu pa lahko najdete na lokaciji, ki je navedena z možnostjo -l , medtem ko zaženete gručo zbirke podatkov.

11. Zdaj se povežite z gručo baz podatkov in ustvarite bazo podatkov z naslednjimi ukazi.

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

To je To! v naših prihodnjih člankih bom obravnaval konfiguracijo, nastavitev podvajanja in namestitev orodja pgAdmin, do takrat pa spremljajte Tecmint.