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.
- CentOS/RHEL we Fedora-da PostgreSQL 10-y nädip gurmaly
- 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.