PostgreSQL dokumentációban 9
Az ötlet mögött ez a módszer, hogy létrehoz egy szövegfájlt SQL parancsokat, hogy amikor a kiszolgálón fut peresozdadut adatbázis ugyanabban az állapotban, amelyben ez volt abban az időben a mentesítést. PostgreSQL biztosít erre a célra segédprogramot pg_dump. Legegyszerűbb a program a következőképpen néz ki:
Amint látod, pg_dump írja az eredményeket a szabványos kimenetre. Következő figyelembe kell venni, milyen hasznos lehet. Bár a fenti parancs létrehoz egy szöveges fájl, pg_dump létrehozhat fájlokat más formátumokban, amelyek lehetővé teszik a párhuzamos feldolgozás és rugalmasabb kezelését helyreállítási projektek.
pg_dump program szokásos PostgreSQL kliens alkalmazás (bár nagyon okos). Ez azt jelenti, hogy a biztonsági mentés eljárás bármely távoli számítógépen, ha rendelkezik a szükséges adatbázist. De ne feledjük, hogy pg_dump nem használ semmilyen különleges kiváltságokat munkájukért. Különösen azt általában csak olvasási hozzáférést biztosít az összes asztal, amit akar, hogy kirak, így másolni a teljes adatbázis szinte mindig akarja futtatni root tárol. (Ha nincs jogunk, hogy vissza az egész adatbázist, mégis lehet, hogy egy biztonsági másolatot, hogy az adatbázis egy részének, ahová a belépés van, például a következő paraméterek -n vagy -t tábla séma).
Határozza meg, mely szervereknek kell csatlakoztatni pg_dump programot. Használhatja a parancssori, -h és -p szerver port. Alapértelmezésben a kiszolgáló kiválasztott localhost, vagy a megadott érték a változó PGHOST környezetet. Hasonlóképpen, az alapértelmezett port van megadva a környezeti változó PGPORT. és ha nincs megadva, akkor a megadott portot alapértelmezés összeállításakor. (Az egyszerűség kedvéért összeállításában a szerver beállítás esetén általában ugyanolyan értékű, mint az alapértelmezett.)
Mint minden más PostgreSQL kliens alkalmazás. pg_dump alapértelmezés szerint kapcsolódni az adatbázis egy felhasználói nevet, amely megegyezik a neve az aktuális felhasználó az operációs rendszer. Hogy felülbírálja a nevét, vagy adja hozzá a -U. vagy állítsa be a változó PGUSER környezetet. Ne feledje, hogy pg_dump csatlakozik a szerverre a szokásos mechanizmusai ügyfélhitelesítés (amelyek leírása a 19. fejezetet).
Pg_dump fontos előnye, összehasonlítva más biztonsági módszerek, az alábbiakban leírt, azt, hogy a kimenő pg_dump általában betölthető újabb verzióiban PostgreSQL. míg a mentés a fájlrendszer szintű és folyamatos archiválás mereven függ a változata a szerver. Továbbá csak a módszer pg_dump fog futni, 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. Ezek belsőleg konzisztens, azaz a lerakó egy pillanatkép az adatbázis idején elindítása pg_dump. pg_dump nem blokkolja más adatbázis-műveletből idején munkájukat. (A kivételek műveleteket igénylő kizárólagos zár, mint a legtöbb fajta ALTER TABLE paranccsal.)
A szöveges fájlok által létrehozott pg_dump kívánják olvasni programot-jét. Általános nézet parancs visszaállítja a lerakó:
ahol bemeneti_fájl - tartalmazó fájl kimenete pg_dump parancs. Az adatbázis megadott database_name paramétert. nem jön létre, ezzel a paranccsal, ezért létre kell hozni magad egy adatbázisból template0 megkezdése előtt-jét (pl a createdb -T template0 csapat database_name). A PostgreSQL-program fogadja paraméterek jelzi a kiszolgáló, amelyhez csatlakozni szeretne, és a felhasználó nevét, mint pg_dump. További információkért tekintse meg a Segítség pg_restore. Kérésre a szöveg nem áll helyre pg_restore segédprogramot.
Mielőtt visszaállítaná a SQL-lerakó minden felhasználó számára, aki tulajdonosa tárgyak vagy joga van tiltakozni a terheletlen adatbázisban 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. (Néha ez a kívánt eredményt, de általában nem).
Alapértelmezés szerint, ha az SQL hiba lép fel, a psql program folytatódik. Ha fut a PostgreSQL-ben változó készlet ON_ERROR_STOP. ez a magatartás fog változni, és a PostgreSQL-ben ér véget a 3-as kód esetén egy SQL hiba:
Mindenesetre, akkor kap csak részben felújított tárol. Alternatívaként megadhatja, hogy az egész lerakó helyre kell állítani az egy tranzakció, így a helyreállítás a teljesedésbe vagy törölték teljesen. Engedélyezése mód aktív, halad az érv psql -1 vagy --single-tranzakciót. Ezt a lehetőséget választja, ne feledje, hogy még egy kis hiba is vezethet visszaállítását fellendülés, ami több óráig is eltarthat. Azonban ez még mindig jobb kézzel tisztítsák meg a komplex adatbázis után részlegesen felújított szeméttelep.
Fontos: guba, ami pg_dump. tartalmaznak meghatározzuk a relatív template0. Ez azt jelenti, hogy bármely nyelven, eljárásokat, és így tovább. N. adunk az adatbázis segítségével template1. pg_dump is kirak dump. Ennek eredményeként, ha egy módosított helyreállítási template1. létre kell hozni egy üres adatbázist template0. amint az a fenti példában.
Miután visszaállította a biztonsági érdemes futtatni ANALYZE minden adatbázist, így a lekérdezés optimalizáló kapott hasznos statisztikákat; A részleteket lásd az alpont 23.1.3 és 23.1.6 alfejezetben. További tippek a hatékony betöltése nagy mennyiségű adatot PostgreSQL megtalálható szakasz 14.4.
pg_dump programot tölt csak egy adatbázis egy időben, és nem tartalmazza a lerakó a szerepek és táblaterülete (mivel ez az információ klaszter szinten, nem pedig maga az adatbázis). A kényelem, hozzon létre egy lerakó minden tartalom adatbázisok klaszter pg_dumpall programot biztosított. ami egy biztonsági másolatot az összes klaszter adatbázisok és fenntartja a klaszter szintű adatokat, mint például a szerepe és meghatározása a táblázat helyet. Egyszerű használat ezt a parancsot:
A másolási is helyreállítható-jét.
(Elvileg itt a kezdeti adatbázis, akkor adja meg a nevét a meglévő adatbázist, de ha letölt egy példányát egy üres klaszter, általában kell használni a postgres). Helyreállítása a lerakó, amely kiadott pg_dumpall. Mindig legyen a rendszergazda, mivel azok helyreállításához szükséges információt a szerepek és táblatereket. Ha egy asztalnál helyet, biztosítja, hogy az utat a táblaterülethez a lerakó felel meg az új környezetet.
pg_dumpall utasításokat ad, hogy újra megteremtse a szerepét, asztal terek és üres adatbázist, majd meghívja pg_dump minden adatbázis. Így, bár az egyes adatbázis lesz belsőleg konzisztens, az állam a különböző adatbázisok nem lesz szinkronban.
Csak a globális klaszter adatok letölthetők, át --globals csak pg_dumpall gombot. Meg kell másolni az egész fürt amikor pg_dump végre az egyes adatbázisok.
Egyes operációs rendszerek szabhat határt a maximális fájlméretet, ami problémákhoz vezet létrehozásakor nagy fájlokat pg_dump. Szerencsére pg_dump írhat a standard kimenetre, így a Unix standard eszközökkel, hogy elkerülje az esetleges problémákat. Íme néhány lehetséges módszer:
Sűrített guba. Használhatja a preferált tömörítő program, például a gzip.
Ezután töltse le a tömörített lerakó a következő paranccsal:
Használja osztott. osztott csapat tönkreteheti a kimenő adatok kisebb fájlokra, amelynek mérete megfelel a kényszer, az alapul szolgáló fájlrendszer. Például, hogy a részek 1 megabájt:
Helyreállítani azokat, akkor:
Használja a speciális formátum pg_dump dump. Amennyiben a szerelvény volt kötve PostgreSQL könyvtár zlib. lerakó egy speciális formátumban kerül egy fájlba tömörített formában. Ebben a formában a kiírási fájl mérete közel lesz a mérete kapott gzip. de jobb, mert lehetővé teszi, hogy visszaállítsa az asztalra szelektíven. A következő parancs eltávolítja az adatbázis egy speciális formátumban:
Dump egy speciális formátum nem egy script psql, és helyre kell állítani a pg_restore parancsot. például:
A részleteket lásd a Súgó a parancsok pg_dump és pg_restore.
A nagyon nagy adatbázisok szükség lehet kombinálni osztott az egyik a másik két módszer.
Használja a lehetőséget párhuzamos mentesítést pg_dump. Ahhoz, hogy gyorsítsák fel a kirakodás egy nagy adatbázis, akkor a párhuzamos kisülés mód pg_dump. Ez el fogja távolítani egyidejűleg több asztalon. Irányítsd a több egyidejű feladatok lehetővé teszi a paraméterek -j. Párhuzamos feltöltés csak a támogatott fájl formátum a könyvtárban.
Úgy is visszaállíthatja a másolat párhuzamos alkalmazásával pg_restore -j. Ezt alátámasztja az összes fájlt egy könyvtárba formátumban vagy a speciális formátum, akkor is, ha a fájl nem jött létre pg_dump -j parancsot.