Copierea de rezervă a bazelor de date postgresql

Copierea de rezervă a bazelor de date postgresql
Nu vă vom aminti de importanța copierii datelor, s-au spus multe despre acest lucru, dar să vorbim despre implementarea practică a unuia dintre scenarii. Astăzi, accentul atenției noastre va fi popularul DBMS PostgreSQL gratuit. Faptul că PostgreSQL este utilizat în mod activ pentru stocarea bazelor de informații ale sistemului 1C: Enterprise adaugă la această problemă.







În acest articol, vom lua în considerare implementarea unei copii de rezervă utilizând exemplul unui server de bază de date pentru 1C: Enterprise, pe care l-am descris în acest articol. De asemenea, rețineți că tot ceea ce va fi discutat mai jos este la fel de aplicabil atât platformei Linux, cât și platformei Windows, cu rafinamente minore.

Deschideți fișierul pg_hba.conf. acesta este localizat în / var / lib / pgsql / data și este afișată următoarea linie:

Pentru a crea o copie de siguranță, utilizați utilitarul pg_dump. care vă permite să creați un depozit pentru baza de date specificată. Dumpul este creat fără a bloca tabelele și prezintă un instantaneu al bazei de date în momentul executării comenzii. Ie puteți crea depozite în timp ce utilizatorii lucrează, în timp ce pentru a crea o copie de siguranță prin intermediul 1C aveți nevoie de acces exclusiv la baza de date.

Copierea de rezervă a bazelor de date postgresql
În plus față de lista de baze de date, ieșirea conține un număr de informații utile, de exemplu codarea bazei de date, aceste informații ne vor fi utile atunci când restauram baza de date pe un alt server.

Acum, după specificarea numelor bazelor de date de pe server, vom crea o copie de rezervă a lui unf14:

Dacă este necesar, putem crea o haldă comprimată:

Compresia vă permite să reduceți dimensiunea haldelor cu aproximativ jumătate, deci ar trebui să le utilizați atunci când transferați copiile de siguranță pe Internet sau pentru o dimensiune limitată de stocare.

Acum, ia în considerare procedura de recuperare. De exemplu, vom folosi un server care rulează Windows. Nu există caracteristici semnificative pentru lucrul cu PostgreSQL pe diferite platforme. Cu toate acestea, în Windows, ar trebui să utilizați psql.bat în loc de psql și să specificați calea completă la versiunea DBMS \ bin C: \ Program Files \ PostgreSQL \. sau adăugați această cale la variabila de sistem PATH.

Copierea de rezervă a bazelor de date postgresql
O remarcă mai importantă. Codificarea serverelor de destinație și sursă trebuie să se potrivească, altfel veți primi o bază de date care nu funcționează după restaurare. Pe o platformă Linux, DBMS rulează de obicei în codare UTF8, în timp ce asamblarea PostgreSQL de la 1C la Windows este instalată în mod implicit în codificarea WIN1251.

Acum, completați dumpul rezultat în baza nou creată unf14:

Pe platforma Linux această comandă va arăta astfel:

În exemplul nostru, fișierul cu memorie este în C: \ backup, iar directorul de domiciliu este corect.

Tot ce este lăsat acum este prin modulul de administrare 1C: Enterprise Server Administration pentru a crea un IB nou sau pentru a schimba setările celui existent prin îndreptarea către un nou server de baze de date și o nouă bază de date.

Copierea de rezervă a bazelor de date postgresql

Cu comenzile de bază, ne-am dat seama și ne-am asigurat că nu există nimic complicat în procesul de backup și restaurare a bazelor de date PostgreSQL. Dar să nu creăm copii de siguranță manual. Deci, să mergem la automatizare. Vom crea un script care va crea copii de rezervă ale bazelor de date specificate și le va plasa pe serverul FTP. Datorită anumitor diferențe dintre platforme, nu va fi posibil să creați un script universal pentru Windows și Linux, așa că vom examina fiecare platformă separat.







Să începem cu Linux, în cazul nostru este Ubuntu Server. Creați un fișier de script:

și puneți în el următoarele conținuturi:

În acest articol, vom lua în considerare implementarea unei copii de rezervă utilizând exemplul unui server de bază de date pentru 1C: Enterprise, pe care l-am descris în acest articol. De asemenea, rețineți că tot ceea ce va fi discutat mai jos este la fel de aplicabil atât platformei Linux, cât și platformei Windows, cu rafinamente minore.

Deschideți fișierul pg_hba.conf. acesta este localizat în / var / lib / pgsql / data și este afișată următoarea linie:

Pentru a crea o copie de siguranță, utilizați utilitarul pg_dump. care vă permite să creați un depozit pentru baza de date specificată. Dump-ul este creat fără a bloca tabelele și reprezintă un instantaneu al bazei de date în momentul executării comenzii. Ie puteți crea depozite în timp ce utilizatorii lucrează, în timp ce pentru a crea o copie de siguranță prin intermediul 1C aveți nevoie de acces exclusiv la baza de date.

Copierea de rezervă a bazelor de date postgresql
În plus față de lista de baze de date, ieșirea conține un număr de informații utile, de exemplu codarea bazei de date, aceste informații ne vor fi utile atunci când restauram baza de date pe un alt server.

Acum, după specificarea numelor bazelor de date de pe server, vom crea o copie de rezervă a lui unf14:

Dacă este necesar, putem crea o haldă comprimată:

Compresia vă permite să reduceți dimensiunea haldelor cu aproximativ jumătate, deci ar trebui să le utilizați atunci când transferați copiile de siguranță pe Internet sau pentru o dimensiune limitată de stocare.

Acum, ia în considerare procedura de recuperare. De exemplu, vom folosi un server care rulează Windows. Nu există caracteristici semnificative pentru lucrul cu PostgreSQL pe diferite platforme. Cu toate acestea, în Windows, ar trebui să utilizați psql.bat în loc de psql și să specificați calea completă la versiunea DBMS \ bin C: \ Program Files \ PostgreSQL \. sau adăugați această cale la variabila de sistem PATH.

Copierea de rezervă a bazelor de date postgresql
O remarcă mai importantă. Codificarea serverelor de destinație și sursă trebuie să se potrivească, altfel veți primi o bază de date care nu funcționează după restaurare. Pe o platformă Linux, DBMS rulează de obicei în codare UTF8, în timp ce asamblarea PostgreSQL de la 1C la Windows este instalată în mod implicit în codificarea WIN1251.

Acum, completați dumpul rezultat în baza nou creată unf14:

Pe platforma Linux această comandă va arăta astfel:

În exemplul nostru, fișierul cu memorie se află în C: \ backup, respectiv în directorul home.

Tot ce este lăsat acum este prin modulul de administrare 1C: Enterprise Server Administration pentru a crea un IB nou sau pentru a schimba setările celui existent prin îndreptarea către un nou server de baze de date și o nouă bază de date.

Copierea de rezervă a bazelor de date postgresql

Cu comenzile de bază, ne-am dat seama și ne-am asigurat că nu există nimic complicat în procesul de backup și restaurare a bazelor de date PostgreSQL. Dar să nu creăm copii de siguranță manual. Deci, să mergem la automatizare. Creați un script care va crea copii de rezervă ale bazelor de date specificate și le va plasa pe serverul FTP. Datorită anumitor diferențe dintre platforme, nu va fi posibil să creați un script universal pentru Windows și Linux, așa că vom examina fiecare platformă separat.

Să începem cu Linux, în cazul nostru este Ubuntu Server. Creați un fișier de script:

și puneți în el următoarele conținuturi:

Scenariul este destul de simplu și nu îl vom dezasambla în detaliu. Vom salva și vom da dreptul să o executăm:

De asemenea, nu uitați să creați directorul / root / backup

După verificarea performanței scenariului, îl vom configura în mod regulat prin cron.

Pentru platforma Windows totul este oarecum mai complicat, deoarece nu există un built-in archiver, atunci ar trebui să utilizați o soluție terță parte, în cazul nostru, 7zip va fi folosit. de asemenea, trebuie să specificați calea completă la fișierele binare sau să le adăugați la variabila PATH, vom seta această variabilă dinamic în script. O altă complicație este folosirea clientului ftp încorporat, setul de comenzi pentru acesta trebuie să fie pregătit ca un fișier separat.

Creați un fișier nou în Notepad și plasați următorul text:

Scriptul este destul de simplu de înțeles și repetă scriptul Ubuntu pentru structură și logică. Stabiliți variabilele, instalați directorul de lucru și încărcați depozitul acolo, apoi creați arhiva. Următorul pas este să creați un fișier cu comenzile pentru conexiunea FTP, să încărcați arhiva în FTP și să efectuați curățarea.

Fișierul ar trebui salvat ca pgsql-backup.bat și plasat într-o locație convenabilă. Apoi, configurați-l să ruleze în funcție de program prin Planificatorul de sarcini Windows. De asemenea, nu uitați să creați directorul C: \ backup (sau orice doriți să îl utilizați ca director de lucru).

Desigur, exemplele noastre nu acoperă toate scenariile posibile de salvare, dar suntem siguri că exemplele de mai sus vă vor ajuta să creați propriile script-uri pentru a automatiza acest proces.







Articole similare

Trimiteți-le prietenilor: