blog.it-kb.ru
Резервное копирование баз данных Firebird SQL с помощью PowerShell в контексте управляемой учётной записи Group Managed Service Account (gMSA) - Блог IT-KB
Имеется сервер на базе ОС Windows Server 2012 R2 с несколькими экземплярами СУБД Firebird 2.5, выполняющимися в режиме службы Windows от имени разных учётных записей Group Managed Service Account (gMSA). Для некоторых баз данных (БД), выполняемых в экземпляре Firebird, необходимо настроить периодическое резервное копирование. При этом к разным БД выдвигаются разные требования по срокам хранения количества последних полных резервных копий. В этой заметке мы рассмотрим вариант решения поставленной задачи с помощью PowerShell и штатных инструментов Firebird. Предварительные условия Учитывая то, что для решения поставленной задачи нам желательно использовать штатные средства, поставляемые в составе СУБД Firebird, мы встанем перед выбором между использованием утилиты nbackup и gbak. Каждый из этих инструментов имеет свои особенности, но, учитывая ограничения nbackup, выбор остановлен на утилите gbak. Получить онлайн-справку об этой утилите можно, например, по ссылке: Firebird Manual - GBAK - Firebird Backup and Restore. Описанное далее решение в виде PowerShell-скрипта отталкивается от ряда имеющихся в исходной среде дополнительных условий, связанных с усилением мер безопасности по работе с экземплярами Firebird, а именно: Каждый экземпляр Firebird выполняется от имени отдельной учётной записи gMSA и имеет выделенный дисковый том с файловой системой NTFS и с определённой структурой каталогов. Каждый экземпляр Firebird настроен в режиме обязательного использования алиасов БД с невозможностью подключаться к БД с указанием абсолютного пути к файлу БД. Операции резервного копирования не должны выполняться от имени администратора всего экземпляра Firebird, то есть не должна использоваться учётная запись системного супер-пользователя SYSDBA. Скрипт резервного копирования или его вспомогательный конфигурационный файл не должны содержать в себе никаких сведений об учётных записях (имя пользователя и пароль) для доступа к БД. Третий и четвёртый пункты будут решены за счёт того, что выполнять скрипт резервного копирования мы будем от имени той же учётной записи gMSA, от имени которой выполняется сам экземпляр Firebird. Помимо этого, вызываемое в скрипте подключение к БД Firebird с