Рассмотрим задачу восстановления базы PostgreSQL из резервной копии.
Вариант 1
Создаем резервную копию в PostgreSQL
-
Переключаемся на пользователя postgres:
su postrges
-
Создать бэкап:
pg_dump -U postgres base1c | gzip > /tmp/base1c.sql.gz
-
Или одной командой:
su postgres -c pg_dump -U postgres base1c | gzip > /tmp/base1c.sql.gz
Восстановление базы из резервной копии
-
Распаковка базы без сохранения ее архивированной копии
gunzip /tmp/base1c.sql.gz
-
Если нужно сохранить и архив и распакованный файл, то делаем так:
gunzip -c /tmp/base1c.sql.gz > /tmp/base1c.sql
-
Переключаемся на пользователя postgres:
su postrges
-
Создаем базу:
createdb --username postgres -T template0 restoredbase1c
-
Восстановление базы из режима – su postgres:
psql -U postgres restoredbase1c < /tmp/base1c.sql
Идем в консоль кластера 1С и добавляем новую базу, указывая в качестве базы PostgreSQL только что созданную базу, которую восстановили с архива.
Вариант 2
Сделать бэкап базы в PostgreSQL
Утилита pg_dump может также сделать сжатый файл в цифровом пользовательском формате при добавлении опции -Fc.
-
Переключаемся на пользователя postgres:
su postgres
-
Создаем базу:
createdb --username postgres -T template0 restoredbase1c
-
Создаем бекап:
pg_dump -U postgres -Fc base1c > /tmp/base1c.dmp
Восстановление базы из бекапа в PostgreSQL в новую базу
Для восстановления базы из бекапа в цифровом пользовательском формате используется утилита pg_restore:
-
Переключаемся на пользователя postgres:
su postgres
-
Создаем базу:
createdb --username postgres -T template0 restoredbase1c
-
Восстановление базы:
pg_restore -d restoredbase1c -U postgres /tmp/base1c.dmp
Восстановление базы из бэкапа в PostgreSQL в существующую базу
-
Переключаемся на пользователя postgres:
su postgres
-
Восстановление базы:
pg_restore -d restoredbase1c -U postgres /tmp/base1c.dmp
В данном случае восстановление бэкапа осуществляется в существующую базу с предварительной очисткой всех объектов (ключ -c, или —clean - сначала удаляет все объекты).
Восстановление базы из бэкапа в PostgreSQL в новую базу
-
Переключаемся на пользователя postgres:
su postgres
-
Восстановление базы:
pg_restore -d restoredbase1c -U postgres /tmp/base1c.dmp
-
Ключ -C, или --create, попытается создать базу данных base1c. Если она существует, вы получите ошибку, поэтому можно модифицировать команду pg_restore:
pg_restore -d postgres -U postgres -C -c /tmp/restoredbase1c.dmp
Восстановление бэкапа происходит в существующую базу с одновременным её удалением и созданием(одновременное указание ключей --clean (-c) и--create (-C) приведет к тому, что pg_restore удалит и заново создаст вашу базу данных).
В данном случае подключение просиходит к другой базе данных с опцией -d, а затем восстановление будет использовать имя базы данных из файла дампа.
Идем в консоль кластера 1С и добавляем новую базу, указывая в качестве базы postgresql только что созданную базу, которую восстановили с архива. Если восстановление было осуществленно в существующую базу, то этот шаг можно пропустить.