Biztonsági mentés és visszaállítás adatbázisok postgresql, tudásbázis

Készítsen biztonsági másolatot a PostgreSQL adatbázisok

Az ötlet mögött a dump, egy SQL parancsot, hogy létrehoz egy szöveges fájl, amely, ha a kiszolgálón fut, peresozdadut adatbázis ugyanabban az állapotban, amelyben akkoriban a lerakó. PostgreSQL biztosít erre a célra egy segédprogram pg_dump. Az alapvető formája a parancs így néz ki:

azaz, pg_dump írja az eredményeket a standard kimenetre. Következő kell tekinteni, mivel ez hasznára válhat.

pg_dump Szokásos PostgreSQL kliens alkalmazás. mentési eljárást el lehet végezni bármely távoli számítógépről, amely hozzáférést biztosít a szükséges adatbázist. Ez a segédprogram kell olvasási jogot az összes táblát az adatbázisban, a mentés, hogy szeretne megtenni annak gyakorlatban szinte mindig rootként fut tárol.

Annak megadásához, hogy melyik szerveren pg_dump kell csatlakoztatni, akkor kell használni a parancssori -h és -p szerver port. Alapértelmezésben a kiszolgáló kiválasztott localhost, vagy a szerver, meg van adva a környezeti változó PGHOST. Hasonlóképpen, az alapértelmezett port van megadva a környezeti változó PGPORT, vagy ha a változó nem előre meghatározott, a megadott portot alapértelmezés összeállításakor.

Mint bármely más ügyfél PostgreSQL alkalmazás pg_dump alapértelmezés szerint kapcsolódni az adatbázishoz, a felhasználó nevét, amely megegyezik a neve az aktuális felhasználó az operációs rendszer. A felhasználó megváltoztatásához kell használni a -U beállítani, vagy a változó értéke PGUSER környezetet.

Valamint, csak pg_dump egy módszer, hogy működni fog, ha az adatbázis átkerül egy másik gépre építészet, például akkor, amikor mozog a 32-bites és 64-bites változata a szerver.

Guba generált pg_dump a belső integritás, ami azt jelenti, hogy a lerakó egy pillanatkép az adatbázis elején futás pg_dump. pg_dump nem blokkolja más adatbázis-műveletből idején munkájukat.

Ha az adatbázis séma támaszkodik OID (például idegen kulcsokat), meg kell mondani pg_dump, dump is szerepelnek OID. Ehhez használja a parancssori -o.

pg_dump parancs készítsen biztonsági másolatot az adatbázisról két formátumban: szöveges fájl formátumban, amely egy sor SQL parancsokat és egy különleges lerakó formátumban. Ha PostgreSQL-ban összeállított telepített rendszer zlib könyvtár a speciális billenő formátum adatok tömörítésére, melyeket a kimeneti fájlba. Ez vezet létrehozását a kiírási fájl mérete hasonló lenne egy szeméttelep, a gzip tömörített, de ez a méret lesz az előnye, mert lehetővé teszi a szelektív helyreállítási táblát. A következő parancs adatbázis dump, egy szeméttelep egy speciális formátum:

Elvileg lehetséges, hogy tömöríteni és hát szöveges formátumban standard Linux eszközöket - ipolzovat tömörítő program, például a gzip:

majd kicsomagolás a sűrített lerakó parancsot:

A nagy adatbázisok, és nem hajlandó használni tömörítés, akkor használja az osztott parancsot. A split parancs lehetővé teszi, hogy osztott szöveges fájlok kisebb fájlokat, amelyek nem tartoznak a korlátozás maximális mérete egy fájlt a fájlrendszerben. Például kiírási darabokra vágjuk 1 megabájt:

Fájlok letöltése később megkapta a parancsot:

Biztonsági mentések PostgreSQL adatbázis

Text fájlok biztonsági PostgreSQL adatbázis, amely az SQL parancsok vannak szánva, hogy olvassa el a psql programmal, azaz végrehajtása a generált script sorozatot. Általános nézet parancs visszaállítja a lerakó:

ahol CoreFile - tartalmazó fájl kimenete pg_dump parancs. Az adatbázis megadott paraméter adatbázis nevét nem hozták létre ezt a parancsot, ezért szükséges, hogy hozzon létre egy sablont az adatbázisból futtatása előtt psql template0 például a következő paranccsal:

-jét támogatja lehetőségeket határozza meg a kiszolgálót, amelyhez csatlakozni szeretne, és a felhasználó neve hasonlít pg_dump.

Mielőtt visszaállítaná SQL dump, minden felhasználó számára, akik a saját tárgyak, vagy a jogot, hogy az objektumok az adatbázisban, hogy már feltöltött a lerakó már léteznie kell. Ha ezt nem teszik, a hibák csökkentése lesz újra a tárgyakat az eredeti tulajdonosok és / vagy jogokat.

Alapértelmezés szerint, ha az SQL hiba lép fel, a psql program folytatódik annak végrehajtását. Meg lehet futtatni a PostgreSQL-ben változó készlet ON_ERROR_STOP, hogy a PostgreSQL-ben, amikor az SQL hiba előfordulása befejezni a munkát a 3-as kód:

Mindenesetre, az adatbázis csak részben felújított. Azt is megteheti, kérje valamit az egész lerakó helyre kell állítani egy tranzatsii úgy, hogy a hasznosítás, vagy teljes mértékben végrehajtásra kerül, vagy nem teljes mértékben végre. Ez a mód lehet adni a parancssori -1 vagy -Egy-tranzakció-jét.

Guba ami pg_dump Bizonyítsa template0. Ez azt jelenti, hogy bármely nyelv, eljárások, stb Hozzáadott keresztül template1 is esnek a lerakó teljesítményét pg_dump. Ennek eredményeként, amikor helyreállítása, ha a felhasznált egy speciálisan módosított template1, akkor létre kell hozni egy üres adatbázist template0, amint az a fenti példában.

Miután visszaállította a mentés, akkor ajánlott futtatni ANALYZE mindegyik adatbázis úgy, hogy a lekérdezés optimalizáló megkapta a szükséges statisztikákat.

Különleges billenő formátum nem egy script psql, és helyre kell állítani a pg_restore parancs, például:

A nagyon nagy adatbázisok, akkor szükség lehet kombinálni osztott az egyik a másik két módszer.

pg_dump teszi billenő csak egy adatbázis, és nem tartalmazza a lerakó a szerepek vagy táblatereket (mert ezek az adatok nagyobb valószínűséggel a szint a klaszter, mint maga az adatbázis). Ahhoz, hogy hozzon létre egy biztonsági másolatot a teljes adatbázis tartalmát a klaszter, ott pg_dumpall programot. pg_dumpall menti egyes klaszterek adatbázis, valamint a klaszter szolgáltatási szintű adatok, mint például a szerepe és meghatározása a táblázat helyet. Az alapvető formája a használata ezt a parancsot:

A kapott billenő visszaállítható-jét:

Ha visszaállítja a lerakó, tette a pg_dumpall, mindig szükséges elvégezni a helyreállítás root adatbázisok, mert szükség van rájuk, hogy állítsa vissza a szerepe az információs és asztali térben.

Bővebben a témáról PostgreSQL

Kapcsolódó cikkek