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.
- Kako namestiti PostgreSQL 10 na CentOS/RHEL in Fedora
- 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.