+7 495 230 03 03 8 800 222 50 03
DevOps

Восстановление базы PostgreSQL 1С из резервной копии

Рассмотрим задачу восстановления базы PostgreSQL из резервной копии.

Вариант 1

Создаем резервную копию в PostgreSQL

  1. Переключаемся на пользователя postgres:
    su postrges
    
  2. Создать бэкап:
    pg_dump -U postgres base1c | gzip > /tmp/base1c.sql.gz
    
  3. Или одной командой:
    su postgres -c pg_dump -U postgres base1c | gzip > /tmp/base1c.sql.gz
    

Восстановление базы из резервной копии

  1. Распаковка базы без сохранения ее архивированной копии
    gunzip /tmp/base1c.sql.gz
    
  2. Если нужно сохранить и архив и распакованный файл, то делаем так:
    gunzip -c /tmp/base1c.sql.gz > /tmp/base1c.sql
    
  3. Переключаемся на пользователя postgres:
    su postrges
    
  4. Создаем базу:
    createdb --username postgres -T template0 restoredbase1c
    
  5. Восстановление базы из режима – su postgres:
    psql -U postgres restoredbase1c < /tmp/base1c.sql
    

Идем в консоль кластера 1С и добавляем новую базу, указывая в качестве базы PostgreSQL только что созданную базу, которую восстановили с архива.

Вариант 2

Сделать бэкап базы в PostgreSQL

Утилита pg_dump может также сделать сжатый файл в цифровом пользовательском формате при добавлении опции -Fc.

  1. Переключаемся на пользователя postgres:
    su postgres
    
  2. Создаем базу:
    createdb --username postgres -T template0 restoredbase1c
    
  3. Создаем бекап:
    pg_dump -U postgres -Fc base1c > /tmp/base1c.dmp
    

Восстановление базы из бекапа в PostgreSQL в новую базу

Для восстановления базы из бекапа в цифровом пользовательском формате используется утилита pg_restore:

  1. Переключаемся на пользователя postgres:
    su postgres
    
  2. Создаем базу:
    createdb --username postgres -T template0 restoredbase1c
    
  3. Восстановление базы:
    pg_restore -d restoredbase1c -U postgres /tmp/base1c.dmp
    

Восстановление базы из бэкапа в PostgreSQL в существующую базу

  1. Переключаемся на пользователя postgres:
    su postgres
    
  2. Восстановление базы:
    pg_restore -d restoredbase1c -U postgres /tmp/base1c.dmp
    

В данном случае восстановление бэкапа осуществляется в существующую базу с предварительной очисткой всех объектов (ключ -c, или —clean - сначала удаляет все объекты).

Восстановление базы из бэкапа в PostgreSQL в новую базу

  1. Переключаемся на пользователя postgres:
    su postgres
    
  2. Восстановление базы:
    pg_restore -d restoredbase1c -U postgres /tmp/base1c.dmp
    
  3. Ключ -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 только что созданную базу, которую восстановили с архива. Если восстановление было осуществленно в существующую базу, то этот шаг можно пропустить.

Дата публикации: 30 ноября 2023
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.