Faceți backup și restaurați baza de date interbază

Backup și recuperarea bazei de date Interbase / Firebird

Faptul că procedura periodică de salvare de date și recuperarea ulterioară a datelor are un efect pozitiv asupra dimensiunii și performanței bazei de date Interbase / Firebird este scrisă în multe întrebări frecvente. Sunt total de acord cu asta. Voi încerca să vă spun cum este organizat acest proces pentru mine.







În prezent, sunt administratorul unei mici baze de date (aproximativ 300 Mb), care este destul de activă (aproximativ 1 milion de tranzacții pe zi). Ciclul de backup / restaurare este efectuat zilnic. În ultimii ani, nu s-au observat eșecuri grave și defalcări ale bazei.

Pentru backup automat și recuperare, este scris un fișier de tip bat. Utilizați utilitarul gbak pentru linia de comandă și câteva programe autodesalute.

În mod obișnuit, atunci când faceți backup / restaurarea bazei de date, trebuie să faceți următoarele:
  1. Deconectați toți utilizatorii de la baza de date;
  2. Dacă toate sunt dezactivate, porniți procedura de backup în fișierul BACKUP.GBK;
  3. Dacă a trecut copia de rezervă, porniți procedura pentru restaurarea BACKUP.GBK în noul fișier din baza de date NEW.GDB;
  4. Dacă restaurarea este reușită, redenumiți fișierul WORK.GDB din tabelul de lucru la OLD.GDB;
  5. Dacă redenumirea are succes, atunci redenumiți noul fișier NEW.GDB la WORK.GDB;
  6. Copiați BACKUP.GBK la o altă unitate sau mai bine la alt computer adăugând data și ora copiei de rezervă la numele fișierului.

Acum, pentru mai multe detalii despre pași.

Pasul 1. Înlăturarea utilizatorilor din baza de date poate fi bună, închizând toate programele care lucrează cu baza de date. Pentru a afla dacă există utilizatori conectați și cine sunt, am scris utilitarul IbCheck.exe. Exemplu de apel: IbCheck
dacă errorlevel 1 a ieșit1







opțiuni:
  • WORK.GDB - calea completă la baza de date de lucru;
  • USER_IB - numele utilizatorului Interbase / Firebird, de obicei este SYSDBA sau creatorul bazei de date;
  • PASSWORD_IB - parola de utilizator.
Utilitarul returnează codul 0 dacă nu există conexiuni la baza de date sau codul 2 și o listă de utilizatori conectați. Sau pentru rău, după ce ați tăiat conexiunile rămase cu comanda gfix -shut -force 10 -user -trece
în cazul în care errorlevel 1 a ieșit la ieșire1 chei:
  • -forța de închidere - modul forțat de oprire;
  • 10 - așteptați 10 secunde pentru a deconecta utilizatorii, apoi tăiați.
În același timp, m-am confruntat cu o astfel de problemă. Uneori, când ați tăiat cu forța pe utilizatori, Windows nu v-a dat posibilitatea de a redenumi fișierul bazei de date de lucru la pasul 4. A trebuit să opriți și să reporniți Interbase pentru a "elibera" fișierul. Pasul 2. Faceți copii de rezervă pentru WORK.GDB în fișierul BACKUP.GBK gbak -b -user -trece -v-g
în cazul în care errorlevel 1 goto exit2 chei:
  • -b - backup;
  • -g - nu colectați gunoi, o cheie foarte utilă poate reduce în mod semnificativ timpul de backup;
  • -v - afișează jurnalul de operațiuni, este bine că e bine când etichetele rulează pe ecran.
Pasul 3. Restaurați baza de date în fișierul NEW.GDB. Gbak -r -user -trece -v
dacă errorlevel 1 a ieșit la ieșire3 chei:
  • -r - restaurarea bazei;
  • -v - ieșiți jurnalul de operațiuni.

Pasul 4. Redenumiți WORKBASE WORK.GDB în OLD.GDB. Nu uitați să eliminați mai întâi OLD.GDB, acest fișier a rămas din copia de rezervă anterioară! del
ren
în cazul în care errorlevel 1 a ajuns la exit4

Pasul 5. Redenumiți baza de date NEW.GDB recent restaurată la WORK.GDB ren
dacă eroarea de eroare 1 a ieșit5

Apropo, puteți comprima imediat fișierul de backup de către un arhivator. Dar aceasta este o altă poveste.

După cum puteți vedea, totul este destul de simplu.

În concluzie, aș dori să propun un fișier bat și utilități cu codul sursă: br.bat - fișierul bat pentru backup automat / restaurare. Toate numele de baze de date, căi, parole etc. sunt configurate. Scriptul trebuie executat pe aceeași mașină ca baza de date. Utilitare IbCheck și InsDatew sunt mai bine de pus lângă fișierul bat.
IbCheck este un utilitar consola pentru verificarea utilizatorilor conectați (163K, cu cod sursă pe Delphi).
InsDateW este un utilitar consola pentru pastrarea datei si a timpului in variabilele de mediu (28.2K, cu cod sursa pe Delphi).

Evaluați articolul







Articole similare

Trimiteți-le prietenilor: