PostgreSQL kopija yra. Ar iš jos atkurtumėte visą sistemą?
Duomenų bazės eksporto failas dar neatsako, ar po gedimo darbuotojai galės prisijungti prie programos. Atkūrimui reikia patikrinti duomenis, prieigos teises ir visą programos veikimo aplinką.
Failas išsaugotas, bet programa neveikia
Įsivaizduokime įmonę, kurios užsakymų sistema naudoja PostgreSQL. Kasnakt sukuriamas duomenų bazės eksporto failas, jis nukopijuojamas į saugyklą, o užduotis pažymima kaip sėkminga. Sugedus serveriui administratorius duomenis atkuria kitame kompiuteryje. Lentelės yra, tačiau programa neprisijungia arba negali atlikti dalies veiksmų.
Tai iliustracinis scenarijus, o ne konkretaus incidento aprašymas. Jis parodo svarbų skirtumą: išsaugoti duomenis ir atkurti veikiančią verslo paslaugą yra susijusios, bet nevienodos užduotys. Atsarginių kopijų planą verta vertinti pagal antrąją.
Ką išsaugo pg_dump?
Oficiali dokumentacija nurodo, kad pg_dump eksportuoja vieną duomenų bazę ir gali sukurti nuoseklų eksportą jai veikiant. Tačiau tai nėra visos PostgreSQL aplinkos kopija. SQL tekstinis eksportas atkuriamas su psql, o palaikomi archyvo formatai – su pg_restore. Pasirinkti parametrai taip pat gali apriboti eksportuojamą turinį, pavyzdžiui, palikti tik schemą.
Pačioje dokumentacijoje perspėjama, kad, išskyrus paprastus atvejus, pg_dump paprastai nėra tinkamiausias pagrindinis reguliarių produkcinės duomenų bazės kopijų sprendimas. Todėl jo naudojimą reikia derinti su konkrečiais atkūrimo poreikiais. Žr. PostgreSQL 18 pg_dump dokumentaciją.
Vartotojai ir teisės neturi likti už plano ribų
PostgreSQL vaidmenys ir lentelių erdvės yra bendri visam duomenų bazių klasteriui. Jų neeksportuoja vienos bazės pg_dump. Įrankis pg_dumpall gali eksportuoti šiuos bendrus objektus; parametras --globals-only skirtas būtent jiems, be pačių duomenų bazių. Šiame kontekste „klasteris“ reiškia vienos PostgreSQL serverio instancijos valdomas bazes, nebūtinai kelių serverių aukšto pasiekiamumo sistemą.
Tokiame eksporte, priklausomai nuo parametrų ir teisių, gali būti vaidmenų slaptažodžių maišos. Tai jautrus atkūrimo failas, kuriam reikia tinkamos prieigos apsaugos. Galimybės aprašytos pg_dumpall dokumentacijoje.
Ką dar turėtų apimti jūsų atkūrimo aprašas?
INsec rekomenduojame kartu su duomenų kopijomis turėti atkūrimo aplinkos aprašą: naudojamą PostgreSQL versiją, programos versiją, reikalingus papildinius ir jų diegimo būdą. Taip pat užrašykite, kur saugoma serverio konfigūracija, kaip atkuriami prisijungimo duomenys ir kas turi teisę juos gauti.
Atskirai patikrinkite, ar programa naudoja failus už duomenų bazės ribų. Sutarties įrašas gali būti bazėje, o pats PDF dokumentas – failų saugykloje. Bandymo metu reikėtų įsitikinti, kad atkurtas įrašas atveria teisingą priedą ir kad abiejų saugyklų atkūrimo momentai dera tarpusavyje.
Atkūrimo bandymas turi baigtis verslo veiksmu
Siūlome bandyti atskiroje aplinkoje, kuri negali netyčia siųsti tikrų sąskaitų, laiškų ar užsakymų į išorines sistemas. Iš anksto nustatykite, kas tikrins rezultatą. Vien administratoriaus patvirtinimo, kad importas baigėsi, gali nepakakti programos veikimui įvertinti.
Praktinis bandymas galėtų apimti darbuotojo prisijungimą, ankstesnio užsakymo paiešką, dokumento atidarymą ir naujo bandomojo įrašo sukūrimą. Patikrinkite ir teises: įprastas vartotojas turi atlikti savo darbą, tačiau neturi gauti administratoriaus galimybių vien dėl to, kad taip buvo lengviau užbaigti atkūrimą.
Užfiksuokite tikrą trukmę nuo bandymo pradžios iki programos patvirtinimo. Į ją įtraukite ne tik duomenų importą, bet ir serverio paruošimą, reikalingų failų gavimą bei patikrą. Būtent šis laikas padeda įmonei planuoti darbo sustojimą.
Kiek duomenų įmonė sutinka prarasti?
INsec rekomenduojame šį klausimą aptarti su verslo atsakingais žmonėmis, o ne spręsti vien pagal kopijavimo užduoties patogumą. Jei nauji užsakymai registruojami visą dieną, vakarykštė kopija gali neatitikti įmonės poreikio. Plane turi būti aiškiai įvardytas priimtinas atkūrimo taškas ir būdas jį pasiekti.
Taip pat paskirkite žmogų, kuris nagrinėja nepavykusias kopijavimo užduotis. Patikra turėtų apimti užduoties rezultatą, failo pristatymą į numatytą saugyklą ir periodinį atkūrimo bandymą. Vien failo pavadinimas su šiandienos data nėra pakankamas įrodymas.
Geras pirmas žingsnis: pasirinkite vieną svarbią PostgreSQL naudojančią programą ir suplanuokite pilną atkūrimo bandymą. Rezultatas – ne tik atkurtos lentelės, bet ir aiškus trūkstamų komponentų sąrašas bei išmatuotas grįžimo į darbą laikas.
INsec padeda prižiūrėti serverius ir planuoti atsarginių kopijų atkūrimo patikras. Aptarkime jūsų sistemos atkūrimo planą.
Šaltiniai
Įrankių savybės paremtos oficialia dokumentacija; atkūrimo bandymo eiga pateikiama kaip INsec praktinė rekomendacija.