Bii o ṣe le ṣe Afẹyinti ati Mu pada data data PostgreSQL kan pada


Ni agbegbe iṣelọpọ, bii bi o ti tobi tabi kekere ti aaye data PostgreSQL rẹ le jẹ, ipadabọ deede jẹ abala pataki ti iṣakoso data data. Ninu nkan yii, iwọ yoo kọ bi o ṣe le ṣe afẹyinti ati mimu-pada sipo ibi ipamọ data PostgreSQL kan.

A ro pe o ti ni fifi sori ẹrọ ṣiṣẹ tẹlẹ ti eto ipamọ data PostgreSQL. Ti kii ba ṣe bẹ, ka awọn nkan atẹle wa lati fi sori ẹrọ PostgreSQL lori pinpin Linux rẹ.

    Bii a ṣe le Fi PostgreSQL sori ẹrọ ati pgAdmin4 ni Ubuntu 20.04 Bii a ṣe le Fi PostgreSQL sori ẹrọ ati pgAdmin ni CentOS 8 Bii a ṣe le Fi PostgreSQL sori ẹrọ ati pgAdmin ni RHEL 8

Jẹ ki a bẹrẹ…

Ṣe afẹyinti aaye data PostgreSQL Kan Kan

PostgreSQL pese ohun elo pg_dump lati ṣe iranlọwọ fun ọ lati ṣe afẹyinti awọn apoti isura data. O ṣe ipilẹ faili data pẹlu awọn aṣẹ SQL ni ọna kika ti o le ni rọọrun pada ni ọjọ iwaju.

Lati ṣe afẹyinti, ibi ipamọ data PostgreSQL kan, bẹrẹ nipa wíwọlé sinu olupin data rẹ, lẹhinna yipada si akọọlẹ olumulo Postgres, ki o ṣiṣẹ pg_dump gẹgẹbi atẹle (rọpo tecmintdb pẹlu orukọ ibi ipamọ data ti o fẹ ṣe afẹyinti) . Nipa aiyipada, ọna kika o wu jẹ faili afọwọkọ SQL faili.

$ pg_dump tecmintdb > tecmintdb.sql

Pg_dump naa ṣe atilẹyin awọn ọna kika o wu miiran bakanna. O le ṣafihan ọna kika o wu nipa lilo aṣayan -F , nibiti c tumọ si faili iwe kika aṣa, d tumọ si iwe kika kika itọsọna, ati t tumọ si faili iwe pamosi kika: gbogbo awọn ọna kika ni o yẹ fun titẹsi sinu pg_restore.

Fun apere:

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

Lati da iṣẹjade silẹ ni ọna kika itọsọna liana, lo Flag -f (eyiti o lo lati ṣafihan faili o wu) lati ṣafihan itọsọna ibi-afẹde dipo faili kan. Ilana ti yoo ṣẹda nipasẹ pg_dump ko gbọdọ wa tẹlẹ.

$ pg_dump -F d tecmintdb -f tecmintdumpdir	

Lati ṣe afẹyinti gbogbo awọn apoti isura data PostgreSQL, lo ọpa pg_dumpall bi o ti han.

$ pg_dumpall > all_pg_dbs.sql

O le mu idapada pada sipo nipa lilo psql bi o ti han.

$ pgsql -f all_pg_dbs.sql postgres

Pada sipo aaye data PostgreSQL kan

Lati mu iwe ipamọ data PostgreSQL pada, o le lo awọn psql tabi awọn ohun elo pg_restore. psql ni a lo lati mu awọn faili ọrọ pada sipo ti a ṣẹda nipasẹ pg_dump lakoko ti a lo pg_restore lati mu iwe-ipamọ PostgreSQL kan pada lati inu iwe-akọọlẹ ti a ṣẹda nipasẹ pg_dump ninu ọkan ninu awọn ọna kika ọrọ ti kii ṣe pẹtẹlẹ (aṣa, oda, tabi itọsọna).

Eyi ni apẹẹrẹ ti bii o ṣe le mu idapada faili ọrọ lasan pada sipo:

$ psql tecmintdb < tecmintdb.sql

Gẹgẹbi a ti sọ loke, idalẹnu ọna kika aṣa kii ṣe iwe afọwọkọ fun pgsql, nitorinaa o gbọdọ mu pada pẹlu pg_restore bi o ti han.

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

Afẹyinti Awọn aaye data PostgreSQL Nla

Ti ibi-ipamọ data ti o n ṣe afẹyinti tobi ati pe o fẹ ṣe ina faili o wuyi ti o kere julọ, lẹhinna o le ṣiṣe fifa fifa ibi ti o ni lati ṣe àlẹmọ abajade ti pg_dump nipasẹ ohun elo ifunpọ bii gzip tabi eyikeyi ti ayanfẹ rẹ:

$ pg_dump tecmintdb | gzip > tecmintdb.gz

Ti ibi-ipamọ data ba tobi pupọ, o le da silẹ ni afiwe nipasẹ fifọ awọn tabili nọmba_of_jobs nigbakanna lilo asia -j , bi a ṣe han.

$ pg_dump -F d -j 5 -f tecmintdumpdir

Pataki

Afẹyinti RemgreSQL Awọn apoti isura infomesonu

pg_dump jẹ irinṣẹ alabara PostgreSQL deede, o ṣe atilẹyin awọn iṣẹ lori awọn olupin ibi ipamọ data latọna jijin. Lati ṣalaye olupin olupin data latọna jijin pg_dump yẹ ki o kan si, lo awọn aṣayan laini pipaṣẹ -h lati ṣalaye alejo latọna jijin ati -p ṣalaye ibudo latọna jijin ti olupin data n tẹtisi lori . Yato si, lo Flag -U lati ṣafihan orukọ ipa ipa data lati sopọ bi.

Ranti lati rọpo 10.10.20.10 ati 5432 ati tecmintdb pẹlu adirẹsi IP olupin rẹ latọna jijin tabi orukọ olupin, ibudo data, ati orukọ ibi ipamọ data lẹsẹsẹ.

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

Rii daju pe olumulo ti n sopọ latọna jijin ni awọn anfaani ti a beere lati wọle si ibi ipamọ data, ati ọna ijerisi ibi ipamọ data ti o yẹ ni tunto lori olupin data, bibẹkọ, iwọ yoo gba aṣiṣe bii eyi ti o han ni sikirinifoto atẹle.

O tun ṣee ṣe lati da data data silẹ taara lati ọdọ olupin si omiiran, lo awọn pg_dump ati awọn ohun elo psql bi o ti han.

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

Aifọwọyi Afẹyinti PostgreSQL Database Lilo Job Cron kan

O le ṣe awọn afẹyinti ni awọn aaye arin deede nipa lilo awọn iṣẹ cron. Awọn iṣẹ Cron jẹ awọn ọna ti a lo wọpọ fun siseto ọpọlọpọ awọn iru awọn iṣẹ ṣiṣe lati ṣiṣe lori olupin kan.

O le tunto iṣẹ cron kan lati ṣe adaṣe afẹyinti database PostgreSQL bi atẹle. Akiyesi pe o nilo lati ṣiṣe awọn ofin wọnyi bi olutọju PostgreSQL:

$ mkdir -p /srv/backups/databases

Nigbamii, ṣiṣe aṣẹ atẹle lati satunkọ crontab lati ṣafikun iṣẹ cron tuntun kan.

$ crontab -e

Daakọ ati lẹẹ mọ ila atẹle ni opin crontab. O le lo eyikeyi awọn ọna kika jiju ti salaye loke.

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

Fipamọ faili naa ki o jade.

Iṣẹ cron yoo bẹrẹ laifọwọyi ṣiṣẹ tuntun yii laisi tun bẹrẹ. Ati pe iṣẹ cron yii yoo ṣiṣẹ ni gbogbo ọjọ larin ọganjọ, o jẹ ojutu to kere julọ si iṣẹ-ṣiṣe afẹyinti.

Fun alaye diẹ sii lori bii o ṣe le seto awọn iṣẹ cron, wo: Bii o ṣe Ṣẹda ati Ṣakoso awọn Awọn iṣẹ Cron lori Lainos

Iyẹn ni fun bayi! O jẹ imọran ti o dara lati ṣe fifipamọ data jẹ apakan kan ti ilana ilana iṣakoso data rẹ. Lati de ọdọ wa fun eyikeyi awọn ibeere tabi awọn asọye, lo fọọmu esi ni isalẹ. Fun alaye diẹ sii, wo awọn oju-iwe itọkasi pg_restore.