Сообщение Re: postgre backup restore от 07.02.2024 12:01
Изменено 07.02.2024 12:01 Maniacal
УП>гугление и чатгпт не помогло
УП>как правильно сделать бекап и восстановить без ошибок?
Методом проб и ошибок удалось пакетные файлы запилить для этого.
У меня пара батников, один бэкапит с одного сервака, в формате директории с именем файла с текущей датой в составе названия. Второй накатывает базу на другой IP из папки с последней датой в названии.
Приведу самую главную часть.
Backup:
pg_dump --host=GRAPHICS-FT --username=postgres --role=postgres --dbname=atmosphere --blobs --encoding=UTF8 --format=d --file=backup
Restore:
psql --host=192.168.1.3 --dbname=atmosphere --username=postgres -c "DROP SCHEMA IF EXISTS public CASCADE" 2>nul 1>nul
psql --host=192.168.1.3 --dbname=atmosphere --username=postgres -c "CREATE SCHEMA public" 2>nul 1>nul
pg_restore -c --format=directory --host=192.168.1.3 --username=postgres --dbname=atmosphere --role=postgres --if-exists backup
Можно предварительно задать пароль, чтобы не спрашивало с клавиатуры:
SET PGPASSWORD=<пароль>
УП>гугление и чатгпт не помогло
УП>как правильно сделать бекап и восстановить без ошибок?
Методом проб и ошибок удалось пакетные файлы запилить для этого.
У меня пара батников, один бэкапит с одного сервака, в формате директории с именем файла с текущей датой в составе названия. Второй накатывает базу на другой IP из папки с последней датой в названии.
Приведу самую главную часть в упрощённом виде, без использования дат.
Backup:
pg_dump --host=GRAPHICS-FT --username=postgres --role=postgres --dbname=atmosphere --blobs --encoding=UTF8 --format=d --file=backup
Restore:
psql --host=192.168.1.3 --dbname=atmosphere --username=postgres -c "DROP SCHEMA IF EXISTS public CASCADE" 2>nul 1>nul
psql --host=192.168.1.3 --dbname=atmosphere --username=postgres -c "CREATE SCHEMA public" 2>nul 1>nul
pg_restore -c --format=directory --host=192.168.1.3 --username=postgres --dbname=atmosphere --role=postgres --if-exists backup
Можно предварительно задать пароль, чтобы не спрашивало с клавиатуры:
SET PGPASSWORD=<пароль>