Възстановяване на PostgreSQL¶
Бекъпът на PostgreSQL, създаден чрез типа "Резултат от команда", съдържа SQL дъмп (например shop.sql). Най-бързият начин да го възстановите е типът "Програмен вход": системата подава файла от бекъпа директно на psql, без да го записва на диска.
Подготовка на целевата база¶
Препоръчваме да възстановявате в нова, празна база и да проверите данните, преди да я използвате на мястото на старата. Създайте потребител с права за запис и база, на която той е собственик:
Добавете паролата в /root/.pgpass, за да може psql да се свърже без интерактивно въвеждане:
Внимание
Ако възстановите дъмпа в база, в която вече има същите таблици, psql ще спре с грешка при първия конфликт. Не възстановявайте директно върху продукционната база. Използвайте нова база и след проверка я преименувайте или пренасочете приложението към нея.
Стъпки за възстановяване¶
Отворете раздел "Устройства", натиснете "Управление" до устройството и изберете "Възстановяване на архивирани данни".
Стъпки 1 и 2: Хранилище и моментно копие¶
Изберете мястото за съхранение, защитения елемент (например PostgreSQL - shop) и моментното копие, от което искате да възстановите. Най-новото копие е най-отгоре.
Стъпка 3: Тип на възстановяване¶
Изберете "Програмен вход".
Стъпка 4: Избор на обекти¶
Маркирайте файла с дъмпа (например shop.sql).
Стъпка 5: Опции за възстановяване¶
В полето "Команда" въведете:
/usr/bin/psql -h localhost -U restore -d shop_restored -q -v ON_ERROR_STOP=1 --single-transaction --no-password
Оставете "Начин на обработка на файловете" на "Подаване на файлове към stdin" и натиснете "Възстановяване".
Какво правят параметрите на psql:
-d shop_restored— базата, в която се зареждат данните.-q— по-кратък изход, без съобщение за всяка изпълнена команда.-v ON_ERROR_STOP=1—psqlспира при първата грешка и процесът завършва със статус "Неуспешно", вместо да продължи с непълни данни.--single-transaction— целият дъмп се зарежда в една транзакция. При грешка базата остава непроменена.--no-password— паролата се взима само от.pgpass.
Проверка¶
Процесът по възстановяване се появява в раздел Процеси с тип "Възстановяване". Статус "Успешно" означава, че psql е изпълнил целия дъмп без грешки. Ако статусът е "Предупреждение" или "Неуспешно", отворете детайлите на процеса. Там са съобщенията от psql.
След това проверете данните в новата база, например:
Други начини за възстановяване¶
- Файлове и папки — записва
shop.sqlв посочена директория на устройството. След това можете да го заредите ръчно сpsql -f /път/до/shop.sql, например ако искате първо да прегледате или редактирате дъмпа. - Компресиран архив — записва дъмпа като
zipилиtarархив, например за пренасяне на друга машина.
Добри практики¶
- Тествайте възстановяването периодично, а не само когато е спешно.
- Възстановявайте в отделна база или на тестов сървър, преди да замените продукционни данни.
- Използвайте
psqlсъс същата или по-нова версия от тази наpg_dump, с който е направен бекъпът.



