Бөлісу құралы:


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

Azure Backup и службы Баз данных Azure объединены, чтобы создать решение корпоративного класса для резервного копирования для серверов базы данных Azure для PostgreSQL, где резервные копии сохраняются до 10 лет. Помимо долгосрочного хранения, решение предлагает следующие возможности:

  • Плановое резервное копирование по запросу, управляемое клиентом, на уровне отдельной базы данных.
  • Восстановление на уровне базы данных осуществляется на любой сервер PostgreSQL или в хранилище BLOB-объектов.
  • Централизованный мониторинг всех операций и заданий.
  • Резервные копии хранятся на отдельных доменах безопасности и сбоя. Если исходный сервер или подписка при каких-либо обстоятельствах скомпрометирована, резервные копии остаются в хранилище Azure Backup (в управляемых учетных записях хранилища Azure Backup).
  • Использование pg_dump обеспечивает большую гибкость при восстановлении. Это позволяет восстанавливать все версии базы данных

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

Примечание.

База данных Azure для PostgreSQL — отдельный сервер находится на пути выхода на пенсию и планируется выйти на пенсию 28 марта 2025 года.

Если в настоящее время у вас есть База данных Azure для PostgreSQL — односерверная служба, на котором размещены рабочие серверы, мы рады сообщить вам, что вы можете перенести База данных Azure для PostgreSQL - один сервер на База данных Azure для PostgreSQL — гибкий сервер.

База данных Azure для PostgreSQL. Гибкий сервер — это полностью управляемая служба базы данных, готовая к работе с рабочей средой>, предназначенная для более детального контроля и гибкости функций управления базами данных и параметров конфигурации с решением корпоративного уровня резервного копирования с помощью Azure Backup. Дополнительные сведения о База данных Azure для PostgreSQL — гибкий сервер см. в База данных Azure для PostgreSQL — гибкий сервер.

Процесс резервного копирования

  1. Как администратор резервной копии вы можете указать базы данных Azure PostgreSQL, которые предполагается создать резервную копию. Кроме того, вы также можете указать сведения о хранилище ключей Azure, в котором хранятся учетные данные, необходимые для подключения к указанным базам данных. Эти учетные данные надежно внесены администратором базы данных в хранилище ключей Azure.
  2. Затем служба резервного копирования проверяет, есть ли у нее соответствующие разрешения на проверку подлинности с указанным сервером PostgreSQL и резервное копирование его баз данных.
  3. Azure Backup запускает роль сотрудника (VM) с установленным в ней расширением резервной копии для связи с защищенным сервером PostgreSQL. Это расширение состоит из координатора и подключаемого модуля PostgreSQL. Этот модуль инициирует рабочий процесс для различных операций, таких как резервное копирование и восстановление, а подключаемый модуль управляет фактическим потоком данных.
  4. В назначенное время координатор связывается с подключаемым модулем, чтобы начать потоковую передачу данных резервного копирования с сервера PostgreSQL с помощью pg_dump (настраиваемого).
  5. Подключаемый модуль отправляет данные непосредственно в учетные записи управляемого хранилища Azure Backup (замаскированного под хранилище Azure Backup), не устранив необходимость в промежуточном расположении. Данные шифруются с помощью ключей под управлением Майкрософт и хранятся службой Azure Backup в учетных записях хранения.

Схема, показывающая процесс резервного копирования.

Проверка подлинности Azure Backup Azure с помощью сервера PostgreSQL

Azure Backup соблюдает строгие правила безопасности, изложенные в Azure; разрешения для ресурса, для которого выполняется резервное копирование, не подразумеваются и должны быть явно заданы пользователем.

Модель проверки подлинности на основе хранилища ключей

Служба Azure Backup должна подключаться к Azure PostgreSQL при их резервном копировании. Хотя для этого подключения используется "имя пользователя + пароль" (или строка подключения), соответствующая базе данных, эти учетные данные не хранятся в Azure Backup. Напротив, эти учетные данные должны быть надежно внесены администратором базы данных в хранилище ключей Azure как секрет. Администратор рабочей нагрузки отвечает за управление учетными данными и их поворот; Azure Backup вызывает последние секретные сведения из хранилища ключей для резервного копирования.

Схема, демонстрирующая рабочую нагрузку или поток базы данных.

Набор разрешений, необходимых для резервного копирования базы данных Azure для PostgreSQL

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

    • Доступ для чтения на сервер Azure PostgreSQL.
    • Доступ пользователя секретов хранилища ключей (или получение или перечисление секретов) в хранилище ключей Azure.
  2. Доступ к сетевой линии видимости:

    • Сервер Azure PostgreSQL — для флага Разрешить доступ к службам Azure должно быть установлено значение Да.
    • Хранилище ключей — для флага Разрешить доверенным службам Майкрософт должно быть установлено значение Да.
  3. Права резервного копирования пользователя базы данных в базе данных

Примечание.

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

Набор разрешений, необходимых для восстановления базы данных Azure для PostgreSQL

Разрешения на восстановление аналогичны разрешениям, необходимым для резервного копирования, и необходимо предоставить разрешения для целевого сервера PostgreSQL и соответствующего ему хранилища ключей. В отличие от настройки потока резервного копирования, в настоящее время опыт предоставления таких разрешений в этом случае отсутствует. Поэтому необходимо вручную предоставить доступ на сервер Postgres и в соответствующее хранилище ключей.

Кроме того, убедитесь, что у пользователя базы данных (в соответствии с учетными данными, хранимыми в хранилище ключей) есть следующие права на восстановление базы данных:

  • Имя пользователя ALTER USER CREATEDB;
  • Присвойте роль azure_pg_admin пользователю базы данных.

Модель проверки подлинности на основе Microsoft Entra ID

Ранее мы запустили другую модель проверки подлинности, которая была полностью основана на идентификаторе Microsoft Entra. Однако теперь мы предоставляем новую модель проверки подлинности на основе хранилища ключей (как объяснялось выше) в качестве альтернативного варианта, который упростит процесс настройки.

Загрузите этот документ, чтобы получить автоматизированный сценарий и соответствующие инструкции для использования данной модели проверки подлинности. В нем будет предоставлен соответствующий набор разрешений серверу Azure PostgreSQL для резервного копирования и восстановления.

Примечание.

Все новые настройки защиты будут проходить только с помощью новой модели проверки подлинности ключа. Однако все существующие экземпляры резервного копирования, настроенные для защиты с помощью проверки подлинности на основе идентификатора Microsoft Entra, будут продолжать существовать и иметь регулярные резервные копии. Чтобы восстановить эти резервные копии, необходимо следовать проверке подлинности на основе идентификатора Microsoft Entra.

Предоставление доступа к Azure PostgreSQL-серверу и хранилищу ключей вручную

Чтобы предоставить все разрешения на доступ, необходимые для Azure Backup, обратитесь к следующим разделам:

Права доступа на сервер Azure PostgreSQL

  1. Настройка доступа MSI хранилища Azure Backup для чтения на сервер Azure PostgreSQL.

    Снимок экрана, на котором показан параметр настройки доступа для чтения хранилища резервных копий на сервере Azure PostgreSQL.

  2. Доступ к сетевой линии видимости на сервер Azure PostgreSQL: установите для флажка "Разрешить доступ к службам Azure" пометку "Да".

    Снимок экрана: вариант установления доступа к сетевой линии видимости на сервере Azure PostgreSQL.

Разрешения доступа в хранилище ключей Azure (связанное с сервером PostgreSQL)

  1. Настройка доступа MSI хранилища Azure Backup на уровне пользователя секретов хранилища ключей (или получение или перечисление секретов) в хранилище ключей Azure. Для назначения разрешений можно использовать назначения ролей или политики доступа. Добавлять разрешение с помощью обоих параметров не требуется, так как это не помогает.

    Снимок экрана: вариант предоставления доступа уровня пользователя секретов.

    Снимок экрана: параметр предоставления доступа пользователя секретов Key Vault для хранилища резервных копий в хранилище ключей.

    • С помощью политик доступа (то есть для модели разрешений установлена политика доступа к хранилищу):

      Снимок экрана: выбран вариант предоставления разрешения с использованием модели разрешений в соответствии с моделью политики доступа к хранилищу.

  2. Доступ к сетевой линии видимости в хранилище ключей: установите флажок Разрешить доверенным службам Майкрософт на Да.

    Снимок экрана: флажок

Права резервного копирования пользователя базы данных в базе данных

Запустите следующий запрос в инструменте администрирования PG (замените имя пользователя идентификатором пользователя базы данных):

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

Примечание.

Если база данных, для которой уже настроена резервная копия, завершается сбоем с помощью UserErrorMissingDBPermissions , обратитесь к этому руководству по устранению неполадок.

Использование инструмента администрирования PG

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

Снимок экрана: процесс подключения к серверу Azure PostgreSQL с помощью средства администрирования P G.

Создайте новый сервер с именем по вашему выбору. Введите имя или адрес хоста так же, как имя сервера, отображаемое в представлении ресурсов Azure PostgreSQL на портале Azure.

Снимок экрана: параметр создания нового сервера с помощью средства администрирования P G.

Снимок экрана: вариант ввода имени узла или имени адреса, совпадающего с именем сервера.

Убедитесь, что вы добавили текущий адрес идентификатора клиента в правила брандмауэра для подключения.

Снимок экрана: процесс добавления текущего I-адреса клиента в правила брандмауэра.

На сервер можно добавлять новые базы данных и пользователей баз данных. Для пользователей базы данных добавите новые Роли входа/группы. Убедитесь, что в параметре возможность входа установлено значение Да.

Снимок экрана: процесс добавления новых баз данных и пользователей баз данных на сервер.

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

Снимок экрана: проверка установления варианта

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

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