PostgreSQL maglumat bazasyny nädip ätiýaçlamaly we dikeltmeli


Önümçilik gurşawynda, PostgreSQL maglumat bazasy näçe uly ýa-da kiçi bolsa-da, yzygiderli yza gaýdyp gelmek maglumat bazasyny dolandyrmagyň möhüm tarapydyr. Bu makalada PostgreSQL maglumat bazasynyň ätiýaçlyk nusgasyny nädip dikeltmelidigini we dikeldilmegini öwrenersiňiz.

PostgreSQL maglumat bazasy ulgamynda eýýäm işleýän gurnama bar diýip çaklaýarys. Notok bolsa, Linux paýlanyşyňyza PostgreSQL gurmak üçin indiki makalalarymyzy okaň.

  • Ubuntu 20.04-de PostgreSQL we pgAdmin4 nädip gurmaly
  • CentOS 8-de PostgreSQL we pgAdmin-i nädip gurmaly
  • RHEL 8-de PostgreSQL we pgAdmin nädip gurmaly

Geliň başlalyň ...

Posteke PostgreSQL maglumat bazasynyň ätiýaçlyk nusgasyny alyň

PostgreSQL maglumat bazalarynyň ätiýaçlyk nusgasyny almaga kömek etmek üçin pg_dump peýdalylygyny üpjün edýär. Geljekde aňsatlyk bilen dikeldilip bilinjek formatda SQL buýruklary bilen maglumat bazasy faýly döredýär.

“PostgreSQL” maglumat bazasynyň ätiýaçlyk nusgasyny almak üçin, maglumatlar bazasynyň serwerine girip başlaň, soňra “Postgres” ulanyjy hasabyna geçiň we pg_dump-i aşakdaky ýaly işlediň ( tecmintdb ätiýaçlyk maglumat bazasynyň ady bilen çalşyň) . Düzgüne görä, çykyş formaty ýönekeý tekst SQL skript faýlydyr.

$ pg_dump tecmintdb > tecmintdb.sql

Pg_dump beýleki çykyş formatlaryny hem goldaýar. -F opsiýasyny ulanyp, çykyş formatyny kesgitläp bilersiňiz, bu ýerde c ýörite format arhiw faýly, d katalog format arhiwini we t tar format arhiw faýlyny aňladýar: ähli formatlar pg_restore girizmek üçin amatly.

Mysal üçin:

$ pg_dump -F c tecmintdb > tecmintdb.dump
OR
$ pg_dump -F t tecmintdb > tecmintdb.tar

Çykyşlary katalog çykyş formatyna taşlamak üçin, faýlyň ýerine maksatly katalogy kesgitlemek üçin -f baýdagyny (çykyş faýlyny kesgitlemek üçin ulanylýar) ulanyň. Pg_dump tarapyndan dörediljek katalog ýok bolmaly.

$ pg_dump -F d tecmintdb -f tecmintdumpdir	

PostgreSQL maglumat bazalarynyň hemmesini ätiýaçlandyrmak üçin pg_dumpall guralyny görkezilişi ýaly ulanyň.

$ pg_dumpall > all_pg_dbs.sql

Görkezilişi ýaly psql ulanyp, zibili dikeldip bilersiňiz.

$ pgsql -f all_pg_dbs.sql postgres

PostgreSQL maglumat bazasyny dikeltmek

PostgreSQL maglumat bazasyny dikeltmek üçin psql ýa-da pg_restore kömekçi enjamlaryny ulanyp bilersiňiz. psql pg_dump tarapyndan döredilen tekst faýllaryny dikeltmek üçin ulanylýar, pg_restore bolsa pg_dump tarapyndan döredilen arhiwden PostgreSQL maglumat bazasyny aç-açan tekst formatlarynyň birinde (adaty, tar ýa-da katalog) dikeltmek üçin ulanylýar.

Ine, ýönekeý tekst faýl zibilini nädip dikeltmegiň mysaly:

$ psql tecmintdb < tecmintdb.sql

Aboveokarda belläp geçişimiz ýaly, adaty formatdaky zibil pgsql üçin skript däl, şonuň üçin görkezilişi ýaly pg_restore bilen dikeldilmeli.

$ pg_restore -d tecmintdb tecmintdb.dump
OR
$ pg_restore -d tecmintdb tecmintdb.tar
OR
$ pg_restore -d tecmintdb tecmintdumpdir	

Uly PostgreSQL maglumat bazalarynyň ätiýaçlyk nusgasy

Backtiýaçlandyrýan maglumatlar binýadyňyz uly bolsa we has kiçi çykyş faýly döretmek isleseňiz, pg_dump-iň çykyşyny gzip ýa-da halaýanlaryňyz ýaly gysyş guralynyň üsti bilen süzmeli bolýan gysylan zibili işledip bilersiňiz:

$ pg_dump tecmintdb | gzip > tecmintdb.gz

Maglumat bazasy gaty uly bolsa, görkezilişi ýaly -j baýdagyny ulanyp, bir wagtyň özünde number_of_jobs tablisalaryny taşlap paralel taşlap bilersiňiz.

$ pg_dump -F d -j 5 -f tecmintdumpdir

Paralel zyňmak opsiýasynyň zyňylýan wagtyny gysgaldýandygyny bellemek möhümdir, beýleki tarapdan bolsa maglumatlar bazasynyň serwerindäki ýükleri hem artdyrýar.

Uzakdan PostgreSQL maglumat bazalarynyň ätiýaçlyk nusgasy

pg_dump adaty PostgreSQL müşderi guralydyr, uzakdaky maglumatlar bazasynyň serwerlerinde amallary goldaýar. Uzakdaky maglumat bazasynyň serweri pg_dump bilen habarlaşmalydygyny kesgitlemek üçin, uzakdaky öý eýesini kesgitlemek üçin -h buýruk setirini ulanyň we -p maglumat bazasynyň serweriniň diňleýän uzak portuny kesgitleýär . Mundan başga-da, maglumat bazasynyň rol adyny kesgitlemek üçin -U baýdagyny ulanyň.

10.10.20.10 we 5432 we tecmintdb-i uzakdaky IP adresi ýa-da host ady, maglumat bazasy porty we maglumat bazasynyň ady bilen çalyşmagy ýatdan çykarmaň.

$ pg_dump -U tecmint -h 10.10.20.10 -p 5432 tecmintdb > tecmintdb.sql

Uzakdan birikýän ulanyjynyň maglumat bazasyna girmek üçin zerur artykmaçlyklaryň bardygyna we maglumatlar bazasynyň serwerinde degişli maglumat bazasyny tassyklamak usulynyň düzülendigine göz ýetiriň, ýogsam, aşakdaky skrinshotda görkezilişi ýaly ýalňyşlyk alarsyňyz.

Şeýle hem maglumat bazasyny gönüden-göni bir serwerden beýlekisine taşlamak, görkezilişi ýaly pg_dump we psql kömekçi enjamlaryny ulanmak mümkindir.

$ pg_dump -U tecmint -h 10.10.20.10 tecmintdb | pqsl -U tecmint -h 10.10.20.30 tecmintdb

“Cron” işini ulanyp, “PostgreSQL” maglumat bazasynyň awtomatiki ätiýaçlyk nusgasy

Kron işlerini ulanyp, ätiýaçlyk nusgalaryny yzygiderli ýerine ýetirip bilersiňiz. Kron işleri serwerde işlemek üçin dürli görnüşli işleri meýilleşdirmek üçin köplenç ulanylýan serişdedir.

PostgreSQL maglumat bazasynyň ätiýaçlyk nusgasyny aşakdaky ýaly awtomatlaşdyrmak üçin kron işini düzüp bilersiňiz. PostgreSQL superuseri hökmünde aşakdaky buýruklary işletmelidigiňize üns beriň:

$ mkdir -p /srv/backups/databases

Ondan soň, täze kron işini goşmak üçin krontaby redaktirlemek üçin aşakdaky buýrugy işlediň.

$ crontab -e

Aşakdaky setiri göçürip alyň. Aboveokarda düşündirilen zibil formatlarynyň islendigini ulanyp bilersiňiz.

0 0 * * *  pg_dump  -U postgres tecmintdb > /srv/backups/postgres/tecmintdb.sql

Faýly ýazdyryň we çykyň.

Kron hyzmaty bu täze işi täzeden başlamazdan awtomatiki usulda işläp başlar. Bu kron işi her gün ýary gije işlär, ätiýaçlyk meseläniň iň az çözgüdi.

Kron işlerini nädip tertipleşdirmelidigi barada has giňişleýin maglumat üçin serediň: Linux-da Kron işlerini nädip döretmeli we dolandyrmaly

Häzirlikçe! Maglumatlaryň ätiýaçlyk nusgasyny maglumat bazasyny dolandyrmagyň bir bölegine öwürmek gowy pikir. Islendik sorag ýa-da düşündiriş üçin bize ýetmek üçin aşakdaky seslenme formasyny ulanyň. Has giňişleýin maglumat üçin pg_restore salgylanma sahypalaryna serediň.