Linux-da Çeşme koduny ulanyp, PostgreSQL 10-y nädip gurmaly


“PostgreSQL” “Postgres” diýlip hem atlandyrylýan güýçli we açyk çeşme obýekt-baglanyşyk bazasy ulgamydyr. Faalňyşlyklara çydamlylyk, asynkron köpeltmek, Köp wersiýaly ylalaşyk gözegçiligi (MVCC), onlaýn/gyzgyn ätiýaçlyk nusgalary, wagtyň dikeldiş nokady, gözleg meýilleşdiriji/optimizator, stol giňişlikleri, ýerleşdirilen amallar (ýat nokatlary) ýaly aýratynlyklary bolan kärhana derejesindäki maglumatlar binýady. ) we ş.m.

“Postgres” -iň soňky ösüş wersiýasy 2017-nji ýylyň 5-nji oktýabrynda postgres global ösüş topary tarapyndan çykaryldy.

Täze wersiýanyň aýratynlyklary aşakdakylar:

  • Logiki köpeltmek: Bu aýratynlyk, garaşylýan serwerlerde aýratyn maglumatlar binýadynyň obýektlerini (hatar, tablisa ýa-da saýlama maglumat bazasy bolsun) köpeltmäge mümkinçilik berýär. Maglumatlaryň köpeldilmegine has köp gözegçilik edýär. Neşirçi-abonent modelini ulanmak arkaly amala aşyrylýar.
  • Sinhron köpeltmek üçin kworum borçnamasy: Bu aýratynlykda, maglumatlar ygtybarly ýazylyp bilner ýaly, dba maglumatlar bazasyndaky üýtgeşmeleriň edilendigini tassyklaýan garaşýanlaryň sanyny kesgitläp biler.
  • SCRAM-SHA-256 tanamaklyk: MD5 esasly paroly tassyklamak we saklamak üçin bar bolan howpsuzlygy gowulandyrdy.
  • Paralel talaplaryň ýerine ýetirilişi gowulaşdy.
  • Jarnamanyň tablisa bölünişi.
  • JSON we JSONB üçin doly tekst gözleg goldawy.

Bu makalada Linux ulgamlarynda deslapky kod gurnamasyny ulanyp, PostgreSQL 10-y nädip gurmalydygyny düşündireris. Paýlaýyş bukjasynyň dolandyryjysyndan aňsat gurnama gözleýänler aşakdaky gollanmalara eýerip bilerler.

  1. CentOS/RHEL we Fedora-da PostgreSQL 10-y nädip gurmaly
  2. Debian we Ubuntu-da PostgreSQL 10-y nädip gurmaly

Çeşme koduny ulanyp, PostgreSQL guruň

“Postgres” açyk çeşme maglumatlar bazasy bolansoň, deslapky koddan biriniň islegine/talaplaryna görä gurlup bilner. dürli goşmaça aýratynlyklar üçin bir ýa-da birnäçe buýruk setirini hödürläp, gurmak we gurmak prosesini sazlap bileris.

Çeşme kody gurnamagyň esasy artykmaçlygy, gurnama wagtynda ýokary derejede düzülip bilner.

1. Ilki bilen görkezilişi ýaly paket dolandyryjysyny ulanyp gcc, readline-devel we zlib-devel ýaly zerur şertleri guruň.

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

2. Çeşme kody tar faýlyny resmi wget buýrugyndan göni ulgamda göçürip alyň.

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

3. Göçürilen tarbol faýlyny çykarmak üçin tar buýrugyny ulanyň. Postgresql-10.0 atly täze katalog dörediler.

# 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. Gurmak prosedurasy üçin indiki ädim, göçürilen çeşme koduny islegleriňize görä saýlamak arkaly düzmekdir.

# cd postgresql-10.0

Dürli opsiýalar barada kömek almak üçin ./configure --help ulanyň.

# ./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. Indi postgres faýllaryny gurmak we konfigurasiýa bilen prefiks opsiýasyny ulanmak isleýän katalogyňyzy dörediň.

# 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. Sazlanylandan soň, indiki make buýrugyny ulanyp, postgreSQL gurup başlarys.

# make

Gurmak prosesi gutarandan soň, indiki buýrugy ulanyp postgresql guruň.

# make install

Postgresql 10/opt/PostgreSQL-10 katalogynda gurnaldy.

7. Indi maglumatlar bazasy toparyny başlamak üçin maglumat katalogy hökmünde ulanyljak postgres ulanyjysyny we katalogyny dörediň. Bu maglumat katalogynyň eýesi postgres ulanyjysy bolmaly we rugsatlar 700 bolmaly, şeýle hem aňsatlyk üçin postgresql ikilikleri üçin ýol kesgitlemeli.

# 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. Indi postgres buýruklaryny ulanmazdan ozal aşakdaky buýrugy ulanyp, maglumat bazasyny işe giriziň.

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

-D bu maglumat bazasy klasteriniň ýerleşýän ýeri ýa-da maglumat bazasynyň klasterini başlatmak isleýän ýerimizdäki maglumat katalogydygyny, maglumatlar bazasynyň superuser ady üçin -U we - Db superuser üçin parol soragy üçin W .

Has giňişleýin maglumat we opsiýalar üçin initdb –help salgysyna ýüz tutup bileris.

9. Maglumat bazasyny işe girizeniňizden soň, maglumat bazasy toparyny işe giriziň ýa-da serwer üçin porty ýa-da diňlemek salgysyny üýtgetmeli bolsaňyz, postgresql.conf faýlyny maglumat bazasynyň serweriniň maglumat katalogynda redaktirläň.

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

10. Maglumat bazasyny açanyňyzdan soň, aşakdaky buýruklary ulanyp, postgres serweriniň ýagdaýyny barlaň.

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

Maglumat bazasy toparynyň gowy işleýändigini görüp bileris we başlangyç surnallaryny maglumatlar bazasy toparyna başlanda -l opsiýasy bilen görkezilen ýerde tapyp bilersiňiz.

11. Indi maglumatlar bazasy toparyna birikdiriň we aşakdaky buýruklary ulanyp maglumat bazasyny dörediň.

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

Bu! Geljekki makalalarymyzda pgAdmin guralynyň konfigurasiýasyny, köpeltmegi we gurnamagy, şol wagta çenli Tecmint-e çenli dowam ederin.