Резервное копирование данных
Резервное копирование — это процесс создания копии данных и их последующего хранения на резервных носителях. Резервно сохранять можно различные типы данных, такие как файлы, настройки, приложения или целиком системы. Резервное копирование призвано защитить данные от потери, порчи или шифрования и дать возможность восстановить их в случае необходимости.
При работе с системой Pilot рекомендуется регулярно осуществлять резервное копирование файловых архивов и баз данных в соответствии с принятым на предприятии регламентом. В частности перед осуществлением миграции базы данных, перед обновлением, переносом файловых архивов в другое расположение и других подобных случаях, а также с определённой регулярностью.
Резервное копирование файловых архивов
Об особенностях файловых архивов в системе Pilot можно прочитать в разделе Файловые архивы. Резервное копирование файловых архивов осуществляется вручную.
Поскольку файловые архивы системы Pilot обладают свойством иммутабельности, то для оптимизации процесса резервного копирования можно сохранять только дельту изменений между текущим состоянием и прошлой резервной копией. Для определения изменений в разных операционных системах существует свой набор утилит.
Резервное копирование базы данных PostgreSQL
Для создания резервной копии базы данных PostgreSQL на любой ОС можно воспользоваться следующими способами:
- средствами операционной системы;
- с помощью специализированного программного обеспечения. Примерами такого ПО для резервного копирования баз данных PostgreSQL являются утилиты pg_dump, pg_basebackup и другие.
Резервное копирование серверной базы данных
На ОС Windows
Для создания резервной копии основного файла серверной базы данных *.dbp и файла переписки *.messages.dbp на ОС Windows можно воспользоваться одним из следующих способов:
- консольной утилитой pServerAdmin;
- средствами операционной системы;
- с помощью специализированного программного обеспечения.
Резервное копирование утилитой pServerAdmin
Консольная утилита pServerAdmin позволяет осуществлять резервное копирование основного файла базы данных *.dbp, файла переписки *.messages.dbp без остановки службы Pilot-Server. Для работы c программой запустите командную строку и введите:
pserveradmin -b [database name] [destination]
[database name] — имя подключенной к серверу базы данных, для которой будет создана резервная копия.
[destination] — полный путь с именем резервной копии основного файла базы данных с расширением *.dbp.
Например, для резервного копирования подключенной к серверу базы pilot-ice_ru создайте папку C:\backup, запустите консоль и введите:
pserveradmin -b pilot-ice_ru c:\backup\base-backup.dbp
В случае успешного копирования в папке C:\backup появятся файлы base-backup.dbp и base-backup.messages.dbp, а консоль выдаст сообщение "Backup Completed".
Полный список команд см. Утилита pServerAdmin
Настройка автоматического резервного копирования по расписанию
При обновлении системы Pilot с помощью Pilot-myAdmin автоматически создаётся копия основного файла базы данных, журнала и сообщений. Они хранятся в папке snapshot, расположенной внутри папки базы данных. Имена имеют вид base.backup20251029, base.journal.backup20251029, base.messages.backup20251029, где цифры обозначают версию базы данных. Файловые архивы автоматически не копируются. Чтобы восстановить базу данных из автоматически созданных резервных файлов, переименуйте их, заменив окончание base[версия] на расширение .dbp.
Однако такой способ не заменяет собой необходимости создания полноценной резервной копии файлов базы данных и файловых архивов с определённой регулярностью.
Резервное копирование по расписанию серверных баз данных системы Pilot может быть настроено средствами Windows Server c помощью Планировщика заданий, утилит wbadmin и pServerAdmin.
- На Windows Server 2012 R2 включите компонент Windows Server Backup:
- Запустите Диспетчер серверов в меню Пуск.
- Во вкладке Панель мониторинга нажмите Добавить роли и компоненты.
- Следуйте инструкциям Мастера добавлений ролей и компонентов.
- На шаге Установка ролей и компонентов выберите Установка ролей или компонентов.
- На шаге Компоненты отметьте галочкой Windows Server Backup.
- Дождитесь окончания установки и перезапустите компьютер.
- На Windows Server 2008 R2 включите компонент Windows Server Backup Features (Возможности системы архивации данных Windows Server):
- Для этого откройте Диспетчер сервера, перейдите в раздел Компоненты и выполните команду Добавить компоненты.
- Осуществите выбор компонентов Windows Server Backup Features c вложенными Windows Server Backup и Command Line Tools.
- Дождитесь окончания установки и перезапустите компьютер.
- Для политики выполнения скриптов установите значение RemoteSigned (скрипты, подготовленные на локальном компьютере, можно запускать без ограничений, загруженные скрипты — только при наличии цифровой подписи). Запустите Windows PowerShell с правами администратора и выполните команду:
Set-ExecutionPolicy RemoteSigned -force
- Создайте папку, куда утилита pServerAdmin будет размещать резервные копии файлов базы данных. Например C:/Backup.
- Создайте файл sheduledBackup.ps1 и разместите его в удобном Вам месте, например в С:/Scripts. Поместите в созданный файл следующий скрипт:
pServerAdmin -b pilot-ice_ru c:\Backup\backup.dbp
Copy-Item -Path "C:\ProgramData\ASCON\Pilot Server\Databases\pilot-ice_ru\FileArchive" -Destination "C:\Backup" -Recurse -Force
wbadmin start backup -backupTarget:"E:" -include:"C:\Backup"
Скрипт запускает утилиту pServerAdmin, которая сделает резервную копию основного файла и файла сообщений подключенной к серверу базы данных pilot-ice_ru и поместит их в папку C:\Backup. Затем скрипт скопирует содержимое папки FileArchive из C:\ProgramData\ASCON\Pilot Server\Databases\pilot-ice_ru\ в C:\Backup\FileArchive. После этого запускает утилиту wbadmin, которая производит резервное копирование всех файлов из папки C:\Backup на диск E:. При необходимости измените пути и названия базы данных, файлов и папок.
- Запустите Планировщик заданий. Например, командой taskschd.msc в PowerShell.
- Выделите папку Библиотека планировщика заданий и нажмите кнопку действия Создать задачу.
- Во вкладке Общие введите имя, например Pilot Recovery.
- Перейдите во вкладку Триггеры и нажмите кнопку Создать. Настройте нужное расписание триггера и нажмите Ок.
- Перейдите во вкладку Действия и нажмите кнопку Создать.
- В окне Создание действия укажите действие Запуск программы.
- В поле Программа или сценарий введите powershell.exe.
- В поле Добавить аргументы введите -File "C:\Scripts\sheduledBackup.ps1". Нажмите Ок для завершения создания действия. Нажмите Ок для завершения создания задания. Закройте планировщик.
На ОС Linux
| На ОС семейства Linux резервное копирование следует осуществлять от того же пользователя, от которого запущен Pilot-Server. |
Перейдите в расположение Pilot-Server. Например, для расположения по умолчанию введите:
$ cd /opt/pilot-server
Резервное копирование осуществляется командой:
# ./Ascon.Pilot.Daemon -b [database name] [backup destination]
Где:
[database name] — имя подключенной к серверу базы данных, для которой будет создана резервная копия основного файла базы данных *.dbp и файла переписки *.messages.dbp
[backup destination] — полный путь с именем резервной копии основного файла базы данных с расширением *.dbp.
Пример такой команды:
./Ascon.Pilot.Daemon -b pilot-bim_ru /usr/share/ascon/databases/backup/pilot-bim_ru.dbp
С этой и другими командами сервера можно ознакомиться в разделе Консольные команды Pilot-Server, установленном на Linux или в docker-контейнере.