Kuidas varundada ja taastada PostgreSQL andmebaasi

Tootmiskeskkonnas, olenemata sellest, kui suur või väike teie olete PostgreSQL andmebaas võib olla regulaarne tagasi on andmebaasi haldamise oluline aspekt. Sellest artiklist saate teada, kuidas PostgreSQL andmebaasi varundada ja taastada.

Eeldame, et teil on PostgreSQL andmebaasisüsteemi juba töötav install. Kui ei, lugege installimiseks meie järgmisi artikleid PostgreSQL teie Linuxi levitamisel.

  • PostgreSQL ja pgAdmin4 installimine Ubuntu 20.04
  • Kuidas installida PostgreSQL ja pgAdmin CentOS 8 -sse
  • Kuidas installida PostgreSQL ja pgAdmin RHEL 8 -sse

Alustame…

Varundage üks PostgreSQL andmebaas

PostgreSQL pakub pg_dump utiliit, mis aitab teil andmebaase varundada. See loob andmebaasifaili SQL -käskudega vormingus, mida saab tulevikus hõlpsasti taastada.

Varundamiseks a PostgreSQL andmebaasi, logige sisse oma andmebaasiserverisse ja seejärel lülitage Postgres kasutajakontot ja käivitage pg_dump järgmiselt (asendage tecmintdb andmebaasi nimega, mida soovite varundada). Vaikimisi on väljundvorming lihttekstiline SQL-skriptifail.

$ pg_dump tecmintdb > tecmintdb.sql

pg_dump toetab ka teisi väljundvorminguid. Väljundvormingu saate määrata nupu abil -F variant, kus c tähendab kohandatud vormingus arhiivifaili, d tähendab kataloogivormingu arhiivi ja t tähendab tõrvavormingu arhiivifaili: kõik vormingud sobivad sisestamiseks pg_restore.

Näiteks:

$ pg_dump -F c tecmintdb> tecmintdb.dump. VÕI. $ pg_dump -F t tecmintdb> tecmintdb.tar. 

Väljundi tühjendamiseks kataloogi väljundvormingus kasutage -f lipp (mida kasutatakse väljundfaili määramiseks), et määrata faili asemel sihtkataloog. Kataloog, mille loob pg_dump ei tohi eksisteerida.

$ pg_dump -F d tecmintdb -f tecmintdumpdir 

Kõigi varundamiseks PostgreSQL andmebaase, kasutage pg_dumpall tööriist nagu näidatud.

$ pg_dumpall> all_pg_dbs.sql. 

Prügila saate taastada, kasutades psql nagu näidatud.

$ pgsql -f all_pg_dbs.sql postgres. 

PostgreSQL andmebaasi taastamine

Taastamiseks a PostgreSQL andmebaasi, saate kasutada psql või pg_restore kommunaalteenused. psql kasutatakse loodud tekstifailide taastamiseks pg_dump arvestades, et pg_restore kasutatakse PostgreSQL andmebaasi taastamiseks loodud arhiivist pg_dump ühes mitte-lihtteksti vormingus (kohandatud, tõrv või kataloog).

Siin on näide lihttekstifaili prügi taastamiseks:

$ psql tecmintdb < tecmintdb.sql

Nagu eespool mainitud, ei ole kohandatud vormingus prügila skript pgsql, seega tuleb see taastada koos pg_restore nagu näidatud.

$ pg_restore -d tecmintdb tecmintdb.dump. VÕI. $ pg_restore -d tecmintdb tecmintdb.tar. VÕI. $ pg_restore -d tecmintdb tecmintdumpdir 

Varundage suured PostgreSQL andmebaasid

Kui varundatav andmebaas on suur ja soovite luua üsna väiksema väljundfaili, saate käivitada tihendatud prügikasti, kus peate filtreerima pg_dump tihendustööriista kaudu, näiteks gzip või mõni teie lemmik:

$ pg_dump tecmintdb | gzip> tecmintdb.gz

Kui andmebaas on äärmiselt suur, saate paralleelselt dumpinguhinnaga prügikasti saata tööde arv tabeleid samaaegselt kasutades -j lipp, nagu näidatud.

$ pg_dump -F d -j 5 -f tecmintdumpdir. 

Oluline on märkida, et paralleelse dumpingu võimalus vähendab prügilaega, kuid teisest küljest suurendab see ka andmebaasiserveri koormust.

Varundage PostgreSQL -i kaugandmebaasid

pg_dump on tavaline PostgreSQL klienditööriist, see toetab toiminguid kaugandmebaasiserverites. Kaugandmebaasi serveri määramiseks pg_dump peaks ühendust võtma, kasutage käsurea valikuid -h kaughosti määramiseks ja -lk määrab kaugporti, mida andmebaasiserver kuulab. Lisaks kasutage -U lipp, et määrata andmebaasi rolli nimi, millega ühendada.

Ärge unustage asendada 10.10.20.10 ja 5432 ja tecmintdb oma serveri IP -aadressi või hostinime, andmebaasi pordi ja andmebaasi nimega.

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

Veenduge, et kaugühendusega kasutajal on andmebaasile juurdepääsuks vajalikud õigused ja sobiv andmebaas autentimismeetod on andmebaasiserveris konfigureeritud, vastasel juhul kuvatakse järgmine tõrge ekraanipilt.

PostgreSQL andmebaasi ühenduse viga
PostgreSQL andmebaasi ühenduse viga

Andmebaasi on võimalik ka otse ühest serverist teise visata, kasutage pg_dump ja psql kommunaalteenused nagu näidatud.

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

Automaatne varundamine PostgreSQL andmebaas, kasutades Croni tööd

Varundamist saate teha regulaarsete ajavahemike järel, kasutades cron töökohti. Cron tööd on tavaliselt kasutatav vahend mitmesuguste ülesannete ajastamiseks serveris.

Saate konfigureerida croni töö automatiseerimiseks PostgreSQL andmebaasi varundamine järgmiselt. Pange tähele, et peate PostgreSQL superkasutajana käivitama järgmised käsud:

$ mkdir -p/srv/varukoopiad/andmebaasid. 

Järgmisena käivitage järgmine käsk, et muuta crontab uue croni töö lisamiseks.

$ crontab -e. 

Kopeerige ja kleepige järgmine rida crontabi lõppu. Võite kasutada mis tahes ülalkirjeldatud dump -vormingut.

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

Salvestage fail ja väljuge.

Cron -teenus hakkab seda uut tööd automaatselt käivitama ilma taaskäivitamiseta. Ja see croni töö käib iga päev keskööl, see on varundusülesande minimaalne lahendus.

Croni tööde ajastamise kohta lisateabe saamiseks vaadake: Kuidas luua ja hallata Croni töid Linuxis

See selleks korraks! On hea mõte muuta andmete varundamine oma andmebaasihaldusrutiini osaks. Küsimuste või kommentaaride saamiseks meiega ühenduse saamiseks kasutage allolevat tagasiside vormi. Lisateabe saamiseks vaadake pg_dump ja pg_restore viitelehed.

Teachs.ru