Jinsi ya Kuhifadhi nakala na Kurejesha Hifadhidata ya PostgreSQL
Katika mazingira ya uzalishaji, haijalishi hifadhidata yako ya PostgreSQL inaweza kuwa kubwa au ndogo kiasi gani, kurudi mara kwa mara ni kipengele muhimu cha usimamizi wa hifadhidata. Katika nakala hii, utajifunza jinsi ya kuweka nakala rudufu na kurejesha hifadhidata ya PostgreSQL.
Tunadhania kuwa tayari una usakinishaji unaofanya kazi wa mfumo wa hifadhidata wa PostgreSQL. Ikiwa sivyo, soma nakala zetu zifuatazo ili kusakinisha PostgreSQL kwenye usambazaji wako wa Linux.
- Jinsi ya kusakinisha PostgreSQL na pgAdmin4 katika Ubuntu 20.04
- Jinsi ya kusakinisha PostgreSQL na pgAdmin katika CentOS 8
- Jinsi ya kusakinisha PostgreSQL na pgAdmin katika RHEL 8
Tuanze…
Hifadhi Hifadhidata Moja ya PostgreSQL
PostgreSQL hutoa pg_dump matumizi ili kukusaidia kuhifadhi hifadhidata. Inazalisha faili ya hifadhidata yenye amri za SQL katika umbizo ambalo linaweza kurejeshwa kwa urahisi katika siku zijazo.
Ili kuhifadhi nakala, hifadhidata ya PostgreSQL, anza kwa kuingia kwenye seva yako ya hifadhidata, kisha ubadilishe hadi akaunti ya mtumiaji ya Postgres, na uendeshe pg_dump kama ifuatavyo (badilisha tecmitdb
na jina la hifadhidata unayotaka kuweka nakala rudufu) . Kwa chaguo-msingi, umbizo la towe ni faili ya hati ya SQL yenye maandishi wazi.
$ pg_dump tecmintdb > tecmintdb.sql
Pg_dump inasaidia umbizo zingine za towe pia. Unaweza kubainisha umbizo la towe kwa kutumia chaguo la -F
, ambapo c
inamaanisha faili ya kumbukumbu ya umbizo maalum, d
inamaanisha hifadhi ya umbizo la saraka, na t
inamaanisha faili ya kumbukumbu ya umbizo la tar: fomati zote zinafaa kuingizwa kwenye pg_restore.
Kwa mfano:
$ pg_dump -F c tecmintdb > tecmintdb.dump OR $ pg_dump -F t tecmintdb > tecmintdb.tar
Ili kutupa pato katika umbizo la towe la saraka, tumia alama ya -f
(ambayo hutumiwa kubainisha faili ya towe) ili kubainisha saraka lengwa badala ya faili. Saraka ambayo itaundwa na pg_dump lazima isiwepo.
$ pg_dump -F d tecmintdb -f tecmintdumpdir
Ili kuhifadhi hifadhidata zote za PostgreSQL, tumia pg_dumpall zana kama inavyoonyeshwa.
$ pg_dumpall > all_pg_dbs.sql
Unaweza kurejesha utupaji kwa kutumia psql kama inavyoonyeshwa.
$ pgsql -f all_pg_dbs.sql postgres
Kurejesha Hifadhidata ya PostgreSQL
Ili kurejesha hifadhidata ya PostgreSQL, unaweza kutumia huduma za psql au pg_restore. psql inatumika kurejesha faili za maandishi zilizoundwa na pg_dump database ya PostgreSQL kutoka kwenye kumbukumbu iliyoundwa na pg_dump
Hapa kuna mfano wa jinsi ya kurejesha utupaji wa faili ya maandishi wazi:
$ psql tecmintdb < tecmintdb.sql
Kama ilivyotajwa hapo juu, utupaji wa umbizo maalum si hati ya pgsql, kwa hivyo ni lazima urejeshwe kwa pg_restore kama inavyoonyeshwa.
$ pg_restore -d tecmintdb tecmintdb.dump OR $ pg_restore -d tecmintdb tecmintdb.tar OR $ pg_restore -d tecmintdb tecmintdumpdir
Hifadhi Hifadhidata Kubwa za PostgreSQL
Ikiwa hifadhidata unayohifadhi ni kubwa na unataka kutoa faili ndogo ya pato, basi unaweza kuendesha utupaji ulioshinikizwa ambapo lazima uchuje matokeo ya pg_dump kupitia zana ya kushinikiza kama vile gzip au yoyote unayopenda:
$ pg_dump tecmintdb | gzip > tecmintdb.gz
Ikiwa hifadhidata ni kubwa sana, unaweza kutupa sambamba kwa kutupa majedwali ya number_of_jobs kwa wakati mmoja kwa kutumia alama ya -j
, kama inavyoonyeshwa.
$ pg_dump -F d -j 5 -f tecmintdumpdir
Ni muhimu kutambua kwamba chaguo la utupaji sambamba hupunguza muda wa kutupa, lakini kwa upande mwingine, pia huongeza mzigo kwenye seva ya database.
Hifadhi Hifadhidata ya Mbali ya PostgreSQL
pg_dump ni zana ya mteja ya PostgreSQL ya kawaida, inasaidia utendakazi kwenye seva za hifadhidata za mbali. Ili kubainisha seva ya hifadhidata ya mbali ambayo pg_dump inapaswa kuwasiliana nayo, tumia chaguo za mstari wa amri -h
kubainisha seva pangishi ya mbali na -p
inabainisha mlango wa mbali ambao seva ya hifadhidata inasikiliza. . Kando na hilo, tumia alama ya -U
ili kubainisha jina la jukumu la hifadhidata ili kuunganisha kama.
Kumbuka kubadilisha 10.10.20.10 na 5432 na tecmintdb na anwani yako ya IP ya seva pangishi ya mbali au jina la mpangishaji, kituo cha hifadhidata, na jina la hifadhidata mtawalia.
$ pg_dump -U tecmint -h 10.10.20.10 -p 5432 tecmintdb > tecmintdb.sql
Hakikisha kwamba mtumiaji anayeunganisha kwa mbali ana haki zinazohitajika kufikia hifadhidata, na mbinu inayofaa ya uthibitishaji wa hifadhidata imesanidiwa kwenye seva ya hifadhidata, vinginevyo, utapata hitilafu kama ile iliyoonyeshwa kwenye skrini ifuatayo.
Inawezekana pia kutupa hifadhidata moja kwa moja kutoka kwa seva moja hadi nyingine, tumia huduma za pg_dump na psql kama inavyoonyeshwa.
$ pg_dump -U tecmint -h 10.10.20.10 tecmintdb | pqsl -U tecmint -h 10.10.20.30 tecmintdb
Hifadhi Nakala Kiotomatiki Hifadhidata ya PostgreSQL Kwa Kutumia Kazi ya Cron
Unaweza kufanya chelezo kwa vipindi vya kawaida kwa kutumia kazi za cron. Kazi za Cron ni njia inayotumika sana kuratibu aina mbali mbali za kazi za kufanya kazi kwenye seva.
Unaweza kusanidi kazi ya cron ili kugeuza nakala rudufu ya hifadhidata ya PostgreSQL kama ifuatavyo. Kumbuka kuwa unahitaji kutekeleza amri zifuatazo kama mtumiaji mkuu wa PostgreSQL:
$ mkdir -p /srv/backups/databases
Ifuatayo, endesha amri ifuatayo ili kuhariri crontab ili kuongeza kazi mpya ya cron.
$ crontab -e
Nakili na ubandike mstari ufuatao mwishoni mwa crontab. Unaweza kutumia miundo yoyote ya utupaji iliyoelezwa hapo juu.
0 0 * * * pg_dump -U postgres tecmintdb > /srv/backups/postgres/tecmintdb.sql
Hifadhi faili na uondoke.
Huduma ya cron itaanza kufanya kazi hii mpya kiotomatiki bila kuanzisha upya. Na kazi hii ya cron itaendesha kila siku usiku wa manane, ni suluhisho la chini kwa kazi ya chelezo.
Kwa habari zaidi juu ya jinsi ya kupanga kazi za cron, ona: Jinsi ya Kuunda na Kusimamia Kazi za Cron kwenye Linux
Ni hayo kwa sasa! Ni wazo zuri kufanya kuhifadhi nakala kuwa sehemu ya utaratibu wako wa usimamizi wa hifadhidata. Ili kuwasiliana nasi kwa maswali au maoni yoyote, tumia fomu ya maoni iliyo hapa chini. Kwa habari zaidi, angalia pg_rejesha kurasa za marejeleo.