# Резервное копирование и восстановление базы данных PostgreSQL

Для обслуживания базы данных PostgreSQL наиболее удобным инструментом является программа [pgAdmin](https://www.pgadmin.org). Скачать программу можно бесплатно с [сайта производителя](https://www.pgadmin.org/download/).

Инструкция по созданию резервной копии и восстановлению базы данных доступна [тут](https://www.pgadmin.org/docs/pgadmin4/latest/backup_and_restore.html).

1. **Резервное копирование (backup) и восстановление БД**

При установке **PostgreSQL** создается задание автоматического backup (PostgreSQL backup task) в Планировщике заданий Windows.

В папке bin/ запустить файл *pg\_backup.bat*. При запуске он должен вызвать стандартные инструменты backup PostgreSQ (pg\_dumpall и pg\_dump) и создать 2 файла по пути: `C:\Users\<имя пользователя>\AppData\Roaming\AAM Systems\PassOffice\backup`, например,

```
passofficedb_18.12.2023.all.backup
```

```
passofficedb_18.12.2023.backup
```

{% hint style="info" %}
Рекомендуется при резервном копировании указывать кодировку:

```
pg_dump --encoding utf8
```

{% endhint %}

Восстановление выполняется файлом *pg\_restore.bat*, которому нужно передать имена файлов с backup в качестве аргументов.

В pgAdmin, находящегося по пути `C:\Program Files\PostgreSQL\12\pgAdmin 4\bin`, проверяем восстановленные таблицы.

2. **Создание резервной копии (бэкапа) при помощи pgAdmin4**

pgAdmin4 использует для резервирования и восстановления БД те же самые утилиты pg\_dump и pg\_restore, что и при работе из командной строки.

Перед использованием pgAdmin4 для этих целей необходимо указать пути до этих утилит в настройках:

1. Выберите пункт меню File, далее Preference.
2. В открывшемся окне найдите пункт Paths - Binary Paths, далее кликните на иконку папки в строчке с установленной версией PostgreSQL и укажите путь до папки bin PostgreSQL.
3. Нажмите на кнопку Validate и сохраните настройки.
4. Нажмите правой кнопкой мыши по БД, для которой требуется выполнить резервное копирование и в контекстном меню выберите пункт Backup.
5. В открывшемся окне в поле Filename введите полный путь до директории, в которой необходимо создать бэкап БД и имя файла (обязательно укажите расширение .backup). В поле Format следует оставить значение Custom. Далее нажмите кнопку Backup.
6. При успешном резервировании по указанному пути появится файл с копией базы данных.

**Восстановление из бэкапа при помощи pg\_Admin4**

1. Удалите старую базу (если она была создана)
2. Нажмите правой кнопкой мыши на Databases и выберите пункт Create - Database
3. В модальном окне задайте имя базы данных
4. Далее выберите созданную новую базу данных и кликните правой кнопкой мыши по ней, далее - пункт Restore
5. После нажмите на значок папки и выберите файл с бэкапом и далее - Restore
6. Если все прошло успешно, то резервная копия восстановится в выбранную базу.
7. **Резервное копирование базы данных в Passoffice.**

1\. В Мониторинге задач в «Доступных» выберите «Резервное копирование БД»

2\. Выберите будет ли задача *Разовая* или *По расписанию*

3\. В параметрах укажите *Путь для сохранения БД* и *Путь до папки bin PostgreSQL*

4\. Далее укажите *формат*, например, Custom и *кодировку*.

После запуска файл с бэкапом базы будет находиться по указанному пути.

**Восстановление из бэкапа при помощи pg\_Admin4**

1. Удалите старую базу (если она была создана)
2. Нажмите правой кнопкой мыши на Databases и выберите пункт Create - Database
3. В модальном окне задайте имя базы данных
4. Далее выберите созданную новую базу данных и кликните правой кнопкой мыши по ней, далее - пункт Restore
5. В поле «Формат» укажите тот же формат, который был указан в Passoffice при запуске задачи «Резервное копирование базы данных»
6. После нажмите на значок папки и выберите файл с бэкапом и далее - Restore
7. Если все прошло успешно, то резервная копия восстановится в выбранную базу.

**Обновление версии PostgreSQL**

*Ручной способ*

1. Необходимо сделать резервную копию базы данных с помощью утилиты pg\_dump
2. Загрузить новую версию PostgreSQL с официального сайта или с сайта российского дистрибьютера - <https://postgrespro.ru/>
3. Установить новую версию PostgreSQL
4. Восстановить базу данных из резервной копии с помощью утилиты pg\_restore

*Автоматический способ*

Автоматический способ подразумевает использование утилиты pg\_upgrade. <https://postgrespro.ru/docs/postgresql/15/pgupgrade>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/ustanovka-passoffice/obsluzhivanie-passoffice/rezervnoe-kopirovanie-i-vosstanovlenie-bazy-dannykh-postgresql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
