ПредишенСледващото

Създаване на резервно копие на PostgreSQL бази данни

Идеята на сметището, е SQL команда, за да генерира текстов файл, който, когато се изпълнява на сървъра, peresozdadut база данни в същото състояние, в което е било по времето на сметището. PostgreSQL предвижда за тази цел помощен софтуер pg_dump. Основната форма на командата изглежда така:

тоест, pg_dump пише своите резултати на стандартния изход. Следваща ще се считат за това може да се възползва.

pg_dump е обичайно за прилагане PostgreSQL клиент. архивиране процедура може да се извърши от всеки отдалечен компютър, който има достъп до необходимата база данни. Тази програма трябва да има достъп за четене на всички таблици в базата данни, архивирането, че искате да направите това по своя практика почти винаги трябва да се управлява като корен база данни.

За да определите кой сървър pg_dump трябва да бъде свързан, трябва да използвате командния ред опция -h и -p сървъра порт. По подразбиране на сървъра избран Localhost, или сървърът, който е посочен в променлива PGHOST на околната среда. По същия начин, по подразбиране порт е посочено в променлива PGPORT на околната среда или ако променливата не е предопределен, в съответния порт по подразбиране при съставянето.

Подобно на всяко друго приложение, клиент PostgreSQL, pg_dump ще по подразбиране свърже с базата данни, потребител с име, което съвпада с името на текущия потребител в операционната система. За да промените потребителят трябва да използвате опцията за -U или задайте стойността на променливата PGUSER среда.

Също така, само pg_dump е метод, който ще работи, когато базата данни се премести в друга архитектура машина, например, когато се движат от 32-битова и 64-битова версия на сървъра.

Извежда генерирани pg_dump са вътрешен интегритет, което означава, че сметището е моментна снимка на базата данни в началото на серия pg_dump. pg_dump не блокира други операции на базата данни по време на тяхната работа.

Ако схемата на базата данни разчита на OID (като външни ключове), трябва да се каже, pg_dump, да зареже също включени OID. За да направите това, използвайте команден ред опцията -o на.

pg_dump команда може да запазите копие на базата данни в два формата: текстов файл формат, съдържащ набор от SQL команди и специален сметище формат. Ако PostgreSQL беше съставена през инсталирана система Zlib библиотека, специалния формат сметище ще компресирате данни, които са дадени на изходния файл. Това ще доведе до създаването на копирания файл, този размер ще бъде подобна на сметището, на GZIP компресиран, но този формат ще има предимството, тъй като позволява на селективни маси за възстановяване. Следващата команда прави сметище база данни, се изсере с помощта на специален формат:

По принцип е възможно да се компресира и архивиране текстов формат с помощта на стандартни инструменти на Linux - ipolzovat програма за компресиране, например софтуерна:

след разопаковане на сгъстен сметище команда:

За по-големи бази данни, както и нежеланието да се използва компресия, можете да използвате сплит команда. Командата сплит ви позволява да се раздели на текстови файлове на по-малки файлове, които не попадат в рамките на ограничението за максималния размер на файла във файловата система. Например, за да зареже нарязани на парчета от 1 мегабайт:

Изтеглянето на файлове в последствие са получили команда:

Възстановяване на резервни копия PostgreSQL база данни

Текстови файлове архивиране PostgreSQL база данни, съдържаща SQL команди са предназначени да се прочете програмата psql, т.е. изпълнение на генерирания скрипт последователност. Общ вид на командата за възстановяване на сметището:

където CoreFile - файл, съдържащ изхода на pg_dump команда. Базата данни е посочено в името на параметъра база данни няма да бъдат създадени от тази команда, така че е необходимо да се създаде шаблон от базата данни, преди да пуснете psql template0, например, с командата:

psql поддържа опции за определяне на сървъра, към който се свързвате, и потребителското име, подобно на pg_dump.

Преди възстановяването SQL сметище, всички потребители, които притежават обекти или имат права за обекти в базата данни, които са качени на сметището трябва вече съществуват. Ако не го направят, за намаляване на грешките, ще пресъздаде обектите с първоначалните собственици и / или права.

По подразбиране, ако възникне SQL грешка, програмата ще продължи psql неговото прилагане. Можете да стартирате psql с променлива набор ON_ERROR_STOP, за да psql когато поява SQL грешка за завършване на работата с кода 3:

Във всеки случай, базата данни ще бъдат частично възстановени само. Като алтернатива можете да попитам нещо за цялата сметището трябва да се възстанови в една tranzatsii, така че възстановяването или ще бъдат изпълнени изцяло, или не се прилага изцяло. Този режим може да бъде определен от опции за командния ред -1 или затворен-сделка за psql.

Извежда което прави pg_dump са относителни template0. Това означава, че който и да е език, процедури и т.н. Добавен чрез template1, също попадат в сметището в изпълнението на pg_dump. В резултат на това, когато се възстановят, ако сте използвали специално модифицирана template1, трябва да създадете празна база данни от template0, както е показано в примера по-горе.

След възстановяване на резервно копие, се препоръчва да тече ANALYZE на всяка база данни, така че оптимизатора на заявки е получила необходимите статистически данни.

Специален формат сметище не е скрипт за psql, и трябва да бъдат възстановени с помощта pg_restore команда, например:

За много големи бази данни, може би трябва да се съчетаят сплит с един от другите два метода.

pg_dump прави изхвърлят само една база данни и не включва информация за сметище за ролите или tablespaces (тъй като тези данни са по-склонни към нивото на клъстера от самата база данни). За да създадете резервно копие на цялото съдържание на базата данни на клъстера, има pg_dumpall програма. pg_dumpall подкрепя всяка база данни клъстер, и данните за нивото на клъстери на услуги, като например ролята и дефинирането на пространството за таблици. Основната форма на използването на тази команда:

Получената сметището може да се възстанови с помощта psql:

Когато възстановявате сметище, направи pg_dumpall, винаги е необходимо да се извърши реставрацията като основните бази данни, защото те са длъжни да се възстанови ролята на информацията и пространство за таблици.

Повече за PostgreSQL тема

Свързани статии

Подкрепете проекта - споделете линка, благодаря!