Устранение неполадок резервного копирования базы данных PostgreSQL с помощью Azure Backup

В этой статье содержатся сведения об устранении неполадок при резервном копировании баз данных PostgreSQL в Azure с помощью Azure Backup.

UserErrorMSIMissingPermissions

Предоставьте MSI хранилища Azure Backup доступ на чтение на сервере PG, для которого требуется выполнить резервное копирование или восстановление.

Чтобы установить безопасное подключение к базе данных PostgreSQL, служба Azure Backup использует модель проверки подлинности Управляемое удостоверение службы (MSI). Это означает, что хранилище резервных копий будет иметь доступ только к тем ресурсам, к которым пользователь явно предоставил разрешение.

MSI системы автоматически назначается хранилищу во время его создания. Необходимо предоставить этому MSI для хранилища доступ к серверам PostgreSQL, с которых будет выполняться резервное копирование баз данных.

Пошаговые инструкции

  1. На сервере Postgres перейдите на панель Контроль доступа (IAM).

    Access Control pane

  2. Выберите команду Добавить назначение ролей.

    Screenshot to add role assignment.

  3. В открывшейся правой контекстной области контекста введите значения, описанные ниже.

    • Роль: выберите роль Читатель из раскрывающегося списка.
    • Назначение доступа: из раскрывающегося списка выберите параметр User, group, or service principal (Пользователь, группа или субъект-служба).
    • Выбрать: введите имя хранилища резервных копий, в которое надо поместить резервную копию этого сервера и его баз данных.

    Screenshot showing how to select role.

UserErrorBackupUserAuthFailed

Создайте пользователя резервного копирования базы данных, который может пройти проверку подлинности с помощью идентификатора Microsoft Entra:

Эта ошибка может возникнуть из-за отсутствия администратора Microsoft Entra для сервера PostgreSQL или отсутствия пользователя резервного копирования, который может пройти проверку подлинности с помощью идентификатора Microsoft Entra.

Пошаговые инструкции

Добавление администратора Active Directory на сервер OSS

Этот шаг необходим для подключения к базе данных с помощью пользователя, который может пройти проверку подлинности с помощью идентификатора Microsoft Entra, а не пароля. Пользователь Microsoft Entra Администратор в База данных Azure для PostgreSQL будет иметь роль azure_ad_admin. Только роль azure_ad_admin может создавать новых пользователей базы данных, которые могут проходить проверку подлинности с помощью идентификатора Microsoft Entra.

  1. Перейдите на вкладку "Администратор Active Directory" в левой части области навигации в представлении сервера и добавьте себя (или другого пользователя) в качестве администратора Active Directory.

    Screenshot showing how to set Active Directory admin.

  2. Обязательно сохраните параметры административного пользователя AD.

    Screenshot showing how to save Active Directory admin user setting.

В этом документе приведен перечень действий, которые необходимо выполнить для предоставления разрешений.

UserErrorMissingNetworkSecurityPermissions

Установите сетевую линию путем активации флага Разрешить доступ к службам Azure в представлении сервера. В представлении сервера в разделе Безопасность подключения для параметра Разрешить доступ к службам Azure установите значение Да.

Примечание.

Прежде чем включить этот флаг, переведите флаг Запрет доступа к общедоступной сети в положение Нет.

Screenshot showing how to allow access to Azure services.

UserErrorContainerNotAccessible

Разрешение на восстановление в контейнере учетной записи хранения при восстановлении в форме файлов

  1. Предоставьте MSI хранилища Azure Backup разрешение на доступ к контейнерам учетной записи хранения с помощью портала Azure.

    1. Перейдите в Учетную запись хранения ->Служба контроля доступа Microsoft Azure ->Добавить назначение ролей.
    2. Назначение роли Участник хранилища BLOB-объектов для MSI хранилища резервных копий.

    Screenshot showing the process to assign Storage Blob Data Contributor role.

  2. В ином случае предоставьте более детализированные разрешения для конкретного восстанавливаемого контейнера с помощью команды Azure CLI az role assignment create.

    az role assignment create --assignee $VaultMSI_AppId  --role "Storage Blob Data Contributor"   --scope $id
    
    1. Замените параметр уполномоченного идентификатором приложения MSI хранилища и параметром области, так чтобы он ссылался на конкретный контейнер.

    2. Чтобы получить идентификатор приложения MSI хранилища, выберите параметр Все приложения в разделе Тип приложения.

      Screenshot showing how to select All Applications.

    3. Найдите имя хранилища и скопируйте идентификатор приложения.

      Screenshot showing how to search for vault name.

UserErrorDBUserAuthFailed

Служба Azure Backup использует учетные данные, упомянутые в хранилище ключей, для доступа к базе данных в качестве пользователя базы данных. Соответствующее хранилище ключей и секрет предоставляются во время настройки резервного копирования. Убедитесь, что учетные данные, хранящиеся в составе значения секрета в хранилище ключей, допустимы. Убедитесь, что указанный пользователь базы данных имеет доступ для входа.

UserErrorInvalidSecret

Служба Azure Backup использует учетные данные, упомянутые в хранилище ключей, для доступа к базе данных в качестве пользователя базы данных. Соответствующее хранилище ключей и секрет предоставляются во время настройки резервного копирования. Убедитесь, что в хранилище ключей присутствует указанное имя секрета.

UserErrorMissingDBPermissions

Служба Azure Backup использует учетные данные, упомянутые в хранилище ключей, для доступа к базе данных в качестве пользователя базы данных. Соответствующее хранилище ключей и секрет предоставляются во время настройки резервного копирования. Хранилище ключей, связанное с этим экземпляром резервного копирования, можно найти, доступ к экземпляру резервного копирования и выбору представления JSON. Вы увидите имя и секрет хранилища ключей, перечисленные в разделе datasourceAuthCredentials , как показано на снимке экрана ниже.

Screenshot showing how to search for key vault by using secret name.

UserErrorSecretValueInUnsupportedFormat

Служба Azure Backup использует учетные данные, упомянутые в хранилище ключей, для доступа к базе данных в качестве пользователя базы данных. Соответствующее хранилище ключей и секрет предоставляются во время настройки резервного копирования. Однако значение секрета приведено в формате, не поддерживаемом службой Azure Backup. Проверьте поддерживаемый формат, как описано здесь.

UserErrorInvalidSecretStore

Служба Azure Backup использует учетные данные, упомянутые в хранилище ключей, для доступа к базе данных в качестве пользователя базы данных. Соответствующее хранилище ключей и секрет предоставляются во время настройки резервного копирования. Убедитесь, что указанное хранилище ключей существует, а службе резервного копирования предоставлен доступ в описанном здесь порядке.

UserErrorMissingPermissionsOnSecretStore

Служба Azure Backup использует учетные данные, упомянутые в хранилище ключей, для доступа к базе данных в качестве пользователя базы данных. Соответствующее хранилище ключей и секрет предоставляются во время настройки резервного копирования. Убедитесь, что MSI хранилища резервных копий получает доступ к хранилищу ключей, как описано здесь.

UserErrorDBNotFound

Убедитесь, что база данных и соответствующий сервер существуют.

UserErrorDatabaseNameAlreadyInUse

Имя, заданное для восстановленной базы данных, уже существует, и, следовательно, операция восстановления завершается сбоем. Повторите операцию восстановления с другим именем.

UserErrorServerConnectionClosed

Операция завершилась сбоем, так как сервер неожиданно закрыл подключение. Повторите операцию, и если ошибка по-прежнему возникает, обратитесь в службу поддержки Майкрософт.

Следующие шаги

Резервное копирование базы данных Azure для PostgreSQL