Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
    • Все инструкции
      • Получение информации об имеющихся кластерах
      • Создание кластера
      • Изменение настроек кластера
      • Остановка и запуск кластера
      • Управление хостами PostgreSQL
      • Миграция хостов в другую зону доступности
      • Управление слотами репликации
      • Управление резервными копиями
      • Управление политиками резервного копирования
      • Управление дисковым пространством
      • Техническое обслуживание
      • Обновление версии PostgreSQL
      • Удаление кластера
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Восстановить кластер из резервной копии
  • Создать резервную копию
  • Получить список резервных копий
  • Получить информацию о резервной копии
  • Задать время начала резервного копирования
  • Задать срок хранения автоматических резервных копий
  • Удалить резервную копию
  1. Пошаговые инструкции
  2. Кластеры
  3. Управление резервными копиями

Управление резервными копиями в Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Восстановить кластер из резервной копии
  • Создать резервную копию
  • Получить список резервных копий
  • Получить информацию о резервной копии
  • Задать время начала резервного копирования
  • Задать срок хранения автоматических резервных копий
  • Удалить резервную копию

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

Также Managed Service for PostgreSQL ежедневно создает автоматическую резервную копию. Вы можете задать время начала резервного копирования и установить срок хранения для нее.

Восстановить кластер из резервной копииВосстановить кластер из резервной копии

Технология Point-in-Time Recovery (PITR) позволяет восстановить состояние кластера на любой момент времени в интервале от создания самой старой полной резервной копии до архивации самого свежего журнала опережающей записи (Write Ahead Log, WAL). Подробнее см. в разделе Резервные копии.

Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в каталоге не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится. Средняя скорость восстановления из резервной копии — 10 МБайт/с на каждое ядро БД.

Для нового кластера необходимо задать все параметры, обязательные при его создании.

При восстановлении до состояния на текущий момент времени новый кластер будет отражать состояние:

  • существующего кластера на момент восстановления;
  • удаленного кластера на момент архивации последнего журнала опережающей записи.

Важно

Для резервных копий, созданных вручную:

  • Задание произвольного времени восстановления недоступно.
  • Кластер можно восстановить только в состояние на момент завершения создания резервной копии.
Консоль управления
CLI
Terraform
REST API
gRPC API

Чтобы восстановить из резервной копии существующий кластер:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.

  2. Нажмите на имя нужного кластера и выберите вкладку Резервные копии.

  3. Нажмите значок для нужной резервной копии, затем нажмите Восстановить кластер.

  4. Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.

  5. Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.

    Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.

  6. Нажмите кнопку Восстановить кластер.

Чтобы восстановить из резервной копии удаленный ранее кластер:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.

  2. Выберите вкладку Резервные копии.

  3. Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Идентификатор содержатся идентификаторы в формате <идентификатор_кластера>:<идентификатор_резервной_копии>.

  4. Нажмите значок для нужной резервной копии, затем нажмите Восстановить кластер.

  5. Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.

  6. Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.

    Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.

  7. Нажмите кнопку Восстановить кластер.

Managed Service for PostgreSQL запустит операцию создания кластера из резервной копии.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию кластер будет восстановлен в тот же каталог, где находится резервная копия. Чтобы восстановить кластер в другом каталоге, укажите идентификатор этого каталога в параметре --folder-id.

Чтобы восстановить кластер из резервной копии:

  1. Посмотрите описание команды CLI для восстановления кластера PostgreSQL:

    yc managed-postgresql cluster restore --help
    
  2. Получите список доступных резервных копий кластеров PostgreSQL:

    yc managed-postgresql backup list
    
    +--------------------------+---------------------+----------------------+---------------------+
    |              ID          |      CREATED AT     |  SOURCE CLUSTER ID   |      STARTED AT     |
    +--------------------------+---------------------+----------------------+---------------------+
    | c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 |
    | ...                                                                                         |
    +--------------------------+---------------------+----------------------+---------------------+
    

    Время завершения создания резервной копии указано в столбце CREATED AT списка доступных резервных копий в формате yyyy-mm-dd hh:mm:ss (2020-08-10 12:00:00 в примере выше). Вы можете восстановить состояние кластера на любой момент времени, начиная от создания резервной копии.

  3. Запросите создание кластера из резервной копии:

    yc managed-postgresql cluster restore \
       --backup-id=<идентификатор_резервной_копии> \
       --time=<время> \
       --name=<имя_кластера> \
       --environment=<окружение> \
       --network-name=<имя_сети> \
       --host zone-id=<зона_доступности>,`
             `subnet-name=<имя_подсети>,`
             `assign-public-ip=<публичный_доступ_к_хосту> \
       --resource-preset=<класс_хоста> \
       --disk-size=<размер_хранилища_ГБ> \
       --disk-type=<тип_диска>
    

    Где:

    • --backup-id — идентификатор резервной копии.

    • --time — момент времени, на который нужно восстановить состояние кластера PostgreSQL, в формате yyyy-mm-ddThh:mm:ssZ.

    • --name — имя кластера.

    • --environment — окружение:

      • PRESTABLE — для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
      • PRODUCTION — для стабильных версий ваших приложений.
    • --network-name — имя сети.

    • --host — параметры хоста:

      • zone-id — зона доступности.

      • subnet-name — имя подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.

      • assign-public-ip — флаг, который указывается, если требуется публичный доступ к хосту: true или false.

    • --resource-preset — класс хоста.

    • --disk-size — размер хранилища в гигабайтах.

    • --disk-type — тип диска:

      • network-hdd;
      • network-ssd;
      • local-ssd;
      • network-ssd-nonreplicated;
      • network-ssd-io-m3.

Используйте Terraform для восстановления:

  • Существующего кластера из резервной копии.
  • Кластера, созданного и удаленного через Консоль управления, CLI или API.

Примечание

Кластер будет восстановлен в каталог, идентификатор которого указан в настройках провайдера в параметре folder_id.

Для восстановления потребуется идентификатор резервной копии. Получите список доступных резервных копий кластеров PostgreSQL с помощью CLI:

yc managed-postgresql backup list
+--------------------------+---------------------+----------------------+---------------------+
|            ID            |      CREATED AT     |  SOURCE CLUSTER ID   |      STARTED AT     |
+--------------------------+---------------------+----------------------+---------------------+
| c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 |
| ...                                                                                         |
+--------------------------+---------------------+----------------------+---------------------+

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

  • создание, в том числе путем восстановления из резервной копии, — 30 минут;
  • изменение — 60 минут;
  • удаление — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Чтобы восстановить из резервной копии существующий кластер:

  1. Создайте конфигурационный файл Terraform для нового кластера.

    При этом не используйте ресурсы баз данных (yandex_mdb_postgresql_database) и пользователей (yandex_mdb_postgresql_user) — они будут восстановлены из резервной копии.

  2. Добавьте в конфигурационный файл блок restore:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      restore {
        backup_id = "<идентификатор_резервной_копии>"
        time      = "<время>"
      }
    }
    

    Где:

    • backup_id — идентификатор резервной копии.
    • time — момент времени, на который нужно восстановить состояние кластера PostgreSQL, начиная со времени создания выбранной резервной копии. Формат: yyyy-mm-ddThh:mm:ss.

    Примечание

    Если параметр time не указан, кластер будет восстановлен на момент завершения создания резервной копии.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Terraform создаст копию существующего кластера. Базы данных и пользователи будут развернуты из выбранной резервной копии.

Чтобы восстановить из резервной копии удаленный ранее кластер:

  1. Создайте конфигурационный файл Terraform для нового кластера.

    При этом не используйте ресурсы баз данных (yandex_mdb_postgresql_database) и пользователей (yandex_mdb_postgresql_user) — они будут восстановлены из резервной копии.

  2. Добавьте в этот конфигурационный файл блок restore с именем резервной копии, из которой нужно восстановиться:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      restore {
          backup_id = "<идентификатор_резервной_копии>"
      }
    }
    

    Где backup-id — идентификатор резервной копии удаленного кластера.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Terraform создаст новый кластер. Базы данных и пользователи будут развернуты из резервной копии.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Создайте файл body.json и добавьте в него следующее содержимое:

    {
      "backupId": "<идентификатор_резервной_копии>",
      "time": "<время>",
      "folderId": "<идентификатор_каталога>",
      "name": "<имя_кластера>",
      "environment": "<окружение>",
      "networkId": "<идентификатор_сети>",
      "configSpec": {
        "version": "<версия_PostgreSQL>",
        "resources": {
          "resourcePresetId": "<класс_хостов>",
          "diskSize": "<размер_хранилища_в_байтах>",
          "diskTypeId": "<тип_диска>"
        }
      },
      "hostSpecs": [
        {
          "zoneId": "<зона_доступности>",
          "subnetId": "<идентификатор_подсети>",
          "assignPublicIp": <публичный_адрес_хоста:_true_или_false>
        }
      ]
    }
    

    Где:

    • backupId — идентификатор резервной копии. Его можно запросить со списком резервных копий.

    • time — момент времени, на который нужно восстановить состояние кластера PostgreSQL, в формате yyyy-mm-ddThh:mm:ssZ.

    • folderId — идентификатор каталога, где будет восстановлен кластер. Идентификатор можно запросить со списком каталогов в облаке.

    • name — имя кластера.

    • environment — окружение:

      • PRESTABLE — для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
      • PRODUCTION — для стабильных версий ваших приложений.
    • networkId — идентификатор сети.

    • configSpec — настройки кластера:

      • version — версия PostgreSQL.

      • resources — ресурсы кластера:

        • resourcePresetId — класс хостов;
        • diskSize — размер диска в байтах;
        • diskTypeId — тип диска.
    • hostSpecs — настройки хостов кластера в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:

      • zoneId — зона доступности;
      • subnetId — идентификатор подсети;
      • assignPublicIp — разрешение на подключение к хосту из интернета.
  3. Воспользуйтесь методом Cluster.Restore и выполните запрос, например, с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters:restore' \
      --data "@body.json"
    
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Создайте файл body.json и добавьте в него следующее содержимое:

    {
      "backup_id": "<идентификатор_резервной_копии>",
      "time": "<время>",
      "folder_id": "<идентификатор_каталога>",
      "name": "<имя_кластера>",
      "environment": "<окружение>",
      "network_id": "<идентификатор_сети>",
      "config_spec": {
        "version": "<версия_PostgreSQL>",
        "resources": {
          "resource_preset_id": "<класс_хостов>",
          "disk_size": "<размер_хранилища_в_байтах>",
          "disk_type_id": "<тип_диска>"
        }
      },
      "host_specs": [
        {
          "zone_id": "<зона_доступности>",
          "subnet_id": "<идентификатор_подсети>",
          "assign_public_ip": <публичный_адрес_хоста:_true_или_false>
        }
      ]
    }
    

    Где:

    • backup_id — идентификатор резервной копии. Его можно запросить со списком резервных копий.

    • time — момент времени, на который нужно восстановить состояние кластера PostgreSQL, в формате yyyy-mm-ddThh:mm:ssZ.

    • folder_id — идентификатор каталога, где будет восстановлен кластер. Идентификатор можно запросить со списком каталогов в облаке.

    • name — имя кластера.

    • environment — окружение:

      • PRESTABLE — для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
      • PRODUCTION — для стабильных версий ваших приложений.
    • network_id — идентификатор сети.

    • config_spec — настройки кластера:

      • version — версия PostgreSQL.

      • resources — ресурсы кластера:

        • resource_preset_id — класс хостов;
        • disk_size — размер диска в байтах;
        • disk_type_id — тип диска.
    • host_specs — настройки хостов кластера в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:

      • zone_id — зона доступности;
      • subnet_id — идентификатор подсети;
      • assign_public_ip — разрешение на подключение к хосту из интернета.
  4. Воспользуйтесь вызовом ClusterService.Restore и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d @ \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.ClusterService.Restore \
      < body.json
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Создать резервную копиюСоздать резервную копию

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
  3. Нажмите кнопку Создать резервную копию.

Сервис начнет создавать резервную копию без дополнительного подтверждения.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать резервную копию кластера:

  1. Посмотрите описание команды CLI для создания резервной копии PostgreSQL:

    yc managed-postgresql cluster backup --help
    
  2. Запросите создание резервной копии, указав имя или идентификатор кластера:

    yc managed-postgresql cluster backup my-pg-cluster
    

    Имя и идентификатор кластера можно получить со списком кластеров.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.Backup и выполните запрос, например, с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>:backup'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.Backup и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.ClusterService.Backup
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Во время создания резервной копии производительность кластера может снижаться.

Получить список резервных копийПолучить список резервных копий

Консоль управления
CLI
REST API
gRPC API

Чтобы получить список резервных копий кластера:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Резервные копии.

Чтобы получить список всех резервных копий в каталоге:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Выберите вкладку Резервные копии.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список резервных копий кластеров PostgreSQL, доступных в каталоге по умолчанию, выполните команду:

yc managed-postgresql backup list

+--------------------------+---------------------+----------------------+---------------------+
|            ID            |      CREATED AT     |  SOURCE CLUSTER ID   |      STARTED AT     |
+--------------------------+---------------------+----------------------+---------------------+
| c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 |
| c9qpm90p3pcg********:... | 2020-08-09 22:01:04 | c9qpm90p3pcg******** | 2020-08-09 21:30:00 |
+--------------------------+---------------------+----------------------+---------------------+
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Чтобы получить список резервных копий кластера:

    1. Воспользуйтесь методом Cluster.ListBackups и выполните запрос, например, с помощью cURL:

      curl \
         --request GET \
         --header "Authorization: Bearer $IAM_TOKEN" \
         --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/backups'
      

      Идентификатор кластера можно запросить со списком кластеров в каталоге.

    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  3. Чтобы получить список резервных копий всех кластеров в каталоге:

    1. Воспользуйтесь методом Backup.List и выполните запрос, например, с помощью cURL:

      curl \
         --request GET \
         --header "Authorization: Bearer $IAM_TOKEN" \
         --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/backups' \
         --url-query folderId=<идентификатор_каталога>
      

      Идентификатор каталога можно запросить со списком каталогов в облаке.

    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Чтобы получить список резервных копий кластера:

    1. Воспользуйтесь вызовом ClusterService.ListBackups и выполните запрос, например, с помощью gRPCurl:

      grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.postgresql.v1.ClusterService.ListBackups
      

      Идентификатор кластера можно запросить со списком кластеров в каталоге.

    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  4. Чтобы получить список резервных копий всех кластеров в каталоге:

    1. Воспользуйтесь вызовом BackupService.List и выполните запрос, например, с помощью gRPCurl:

      grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/backup_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "folder_id": "<идентификатор_каталога>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.postgresql.v1.BackupService.List
      

      Идентификатор каталога можно запросить со списком каталогов в облаке.

    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Получить информацию о резервной копииПолучить информацию о резервной копии

Консоль управления
CLI
REST API
gRPC API

Чтобы получить информацию о резервной копии существующего кластера:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Резервные копии.

Чтобы получить информацию о резервной копии удаленного ранее кластера:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Выберите вкладку Резервные копии.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить данные о резервной копии кластера PostgreSQL, выполните команду:

yc managed-postgresql backup get <идентификатор_резервной_копии>

Идентификатор резервной копии можно получить со списком резервных копий.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Backup.Get и выполните запрос, например, с помощью cURL:

    curl \
       --request GET \
       --header "Authorization: Bearer $IAM_TOKEN" \
       --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/backups/<идентификатор_резервной_копии>'
    

    Идентификатор резервной копии можно запросить со списком резервных копий.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом BackupService.Get и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/backup_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "backup_id": "<идентификатор_резервной_копии>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.BackupService.Get
    

    Идентификатор резервной копии можно запросить со списком резервных копий.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Задать время начала резервного копированияЗадать время начала резервного копирования

Консоль управления
CLI
Terraform
REST API
gRPC API

В консоли управления задать время начала резервного копирования можно при создании или изменении кластера.

Чтобы задать время начала резервного копирования, используйте флаг --backup-window-start. Время задается в формате ЧЧ:ММ:СС.

yc managed-postgresql cluster create \
   --cluster-name <имя_кластера> \
   --environment <окружение> \
   --network-name <имя_сети> \
   --host zone-id=<зона_доступности>,subnet-id=<идентификатор_подсети> \
   --resource-preset <класс_хоста> \
   --user name=<имя_пользователя>,password=<пароль_пользователя> \
   --database name=<имя_БД>,owner=<имя_владельца_БД> \
   --disk-size <размер_хранилища_ГБ>
   --backup-window-start 10:00:00

Где environment — окружение: prestable или production.

Изменить время начала резервного копирования в существующем кластере можно с помощью команды update:

yc managed-postgresql cluster update \
   --cluster-name <имя_кластера> \
   --backup-window-start 11:25:00
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Добавьте к описанию кластера Managed Service for PostgreSQL блок backup_window_start в секции config:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      config {
        ...
        backup_window_start {
          hours   = <час>
          minutes = <минута>
        }
        ...
      }
      ...
    

    Где:

    • hours — час начала резервного копирования (UTC).
    • minutes — минута начала резервного копирования (UTC).
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

    • создание, в том числе путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

    Операции, длящиеся дольше указанного времени, прерываются.

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \
      --data '{
                "updateMask": "configSpec.backupWindowStart",
                "configSpec": {
                  "backupWindowStart": {
                    "hours": "<часы>",
                    "minutes": "<минуты>",
                    "seconds": "<секунды>",
                    "nanos": "<наносекунды>"
                  }
                }
              }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • configSpec.backupWindowStart — настройки окна резервного копирования.

      В параметре укажите время, когда начинать резервное копирование. Возможные значения параметров:

      • hours — от 0 до 23 часов;
      • minutes — от 0 до 59 минут;
      • seconds — от 0 до 59 секунд;
      • nanos — от 0 до 999999999 наносекунд.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "update_mask": {
              "paths": [
                "config_spec.backup_window_start"
              ]
            },
            "config_spec": {
              "backup_window_start": {
                "hours": "<часы>",
                "minutes": "<минуты>",
                "seconds": "<секунды>",
                "nanos": "<наносекунды>"
              }
            }
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • config_spec.backup_window_start — настройки окна резервного копирования.

      В параметре укажите время, когда начинать резервное копирование. Возможные значения параметров:

      • hours — от 0 до 23 часов;
      • minutes — от 0 до 59 минут;
      • seconds — от 0 до 59 секунд;
      • nanos — от 0 до 999999999 наносекунд.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Задать срок хранения автоматических резервных копийЗадать срок хранения автоматических резервных копий

Консоль управления
CLI
Terraform
REST API
gRPC API

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

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы задать срок хранения автоматических резервных копий, передайте нужное значение в аргументе --backup-retain-period-days команды изменения кластера:

yc managed-postgresql cluster update <имя_или_идентификатор_кластера> \
   --backup-retain-period-days=<срок_хранения_в_днях>

Допустимые значения: от 7 до 60. Значение по умолчанию — 7.

Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Добавьте к описанию кластера Managed Service for PostgreSQL блок backup_retain_period_days в секции config:

      resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
        ...
        config {
          ...
          backup_retain_period_days = <срок_хранения_в_днях>
          }
          ...
        }
        ...
    

    Где backup_retain_period_days — срок хранения автоматических резервных копий.

    Допустимые значения: от 7 до 60. Значение по умолчанию — 7.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

    • создание, в том числе путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

    Операции, длящиеся дольше указанного времени, прерываются.

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \
      --data '{
                "updateMask": "configSpec.backupRetainPeriodDays",
                "configSpec": {
                  "backupRetainPeriodDays": <срок_хранения_в_днях>
                }
              }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • configSpec.backupRetainPeriodDays — срок хранения автоматических резервных копий.

      Допустимые значения — от 7 до 60. Значение по умолчанию — 7.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
    -format json \
    -import-path ~/cloudapi/ \
    -import-path ~/cloudapi/third_party/googleapis/ \
    -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
    -rpc-header "Authorization: Bearer $IAM_TOKEN" \
    -d '{
            "cluster_id": "<идентификатор_кластера>",
            "update_mask": {
            "paths": [
                "config_spec.backup_retain_period_days"
            ]
            },
            "config_spec": {
            "backup_retain_period_days": <срок_хранения_в_днях>
            }
        }' \
    mdb.api.cloud.yandex.net:443 \
    yandex.cloud.mdb.postgresql.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • config_spec.backup_retain_period_days — срок хранения автоматических резервных копий.

      Допустимые значения — от 7 до 60. Значение по умолчанию — 7.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Удалить резервную копиюУдалить резервную копию

Вы можете удалить только те резервные копии, которые были созданы вручную.

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Выберите кластер Managed Service for PostgreSQL, резервную копию которого нужно удалить.
  3. На левой панели выберите раздел Резервные копии.
  4. Нажмите на значок справа в строке резервной копии, которую вы хотите удалить.
  5. Выберите пункт Удалить резервную копию.
  6. Подтвердите удаление и нажмите кнопку Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы удалить резервную копию:

  1. Посмотрите описание команды CLI для удаления резервной копии PostgreSQL:

    yc managed-postgresql backup delete --help
    
  2. Запросите удаление резервной копии, указав ее идентификатор:

    yc managed-postgresql backup delete <идентификатор_резервной_копии>
    

Идентификатор резервной копии можно получить со списком резервных копий.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Backup.Delete и выполните запрос, например, с помощью cURL:

    curl \
      --request DELETE \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/backups/<идентификатор_резервной_копии>'
    

    Идентификатор резервной копии можно запросить со списком резервных копий.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом BackupService.Delete и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/backup_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "backup_id": "<идентификатор_резервной_копии>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.BackupService.Delete
    

    Идентификатор резервной копии можно запросить со списком резервных копий.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Была ли статья полезна?

Предыдущая
Управление слотами репликации
Следующая
Управление политиками резервного копирования
Проект Яндекса
© 2025 ООО «Яндекс.Облако»