Управление политиками резервного копирования в Managed Service for PostgreSQL
Политики резервного копирования позволяют гибко управлять созданием и хранением резервных копий кластера. Вы можете настроить расписание, по которому будут создаваться полные резервные копии, и задать срок их хранения.
Создать политику резервного копирования
-
Перейдите
в сервис Managed Service for PostgreSQL. -
Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
-
На странице Резервные копии выберите вкладку Политики резервного копирования.
-
Нажмите кнопку Создать политику.
-
Укажите параметры новой политики:
-
Введите имя и описание.
-
Выберите один из вариантов запуска резервного копирования:
- Каждый день.
- Каждую неделю. Для этого варианта дополнительно выберите один или несколько дней недели.
- По месяцам. Для этого варианта дополнительно выберите один или несколько месяцев и один или несколько дней месяца.
Время начала резервного копирования указывается в настройках кластера.
-
Укажите параметры хранения резервных копий. Вы можете хранить копии от 7 до 1095 дней (до трех лет).
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для создания политики:
yc managed-postgresql backup-retention-policy create --help -
Создайте политику:
yc managed-postgresql backup-retention-policy create \ --cluster-id <идентификатор_кластера> \ --policy-name <название_политики> \ --day-of-month <день_месяца> \ --month <месяц> \ --day-of-week <день_недели> \ --retain-for-days <срок_хранения_копии_в_днях> \ --description <описание_политики>Где:
--cluster-id— идентификатор кластера. Его можно получить со списком кластеров.
--day-of-month— день месяца. Возможные значения:1–31.--month— месяц. Возможные значения:1–12илиJAN–DEC.--day-of-week— день недели. Возможные значения:0–6илиSUN–SAT.--retain-for-days— срок хранения копии в днях. Возможные значения:7–1095(до трех лет).
Параметры
--day-of-month,--monthи--day-of-weekсоставляют расписание, по которому создаются резервные копии. Расписание задается в виде cron-выражения, но часы и минуты не указываются.Cron-выражение также поддерживает специальные символы:
*— выбор всех возможных значений. Копия будет создаваться каждый раз (день или месяц), когда это возможно и не противоречит остальным параметрам. Используется по умолчанию, если значение параметра не указано.,— перечисление нескольких значений.–— указание диапазона значений./— указание шага диапазона. Например,*/3для параметра--day-of-monthозначает, что копия будет создаваться раз в три дня.
Если ни один параметр расписания не задан, резервные копии создаются по cron-выражению
* * *, то есть каждый день.Примеры cron-выражений:
1 */6 *— копия создается в первый день месяца раз в полгода.31 jan SUN— копия создается в январе по воскресеньям и тридцать первого января.* * WED— копия создается каждую среду.
Вы можете протестировать cron-выражение в редакторе
.Результат выполнения команды:
policy_id: mdbt553glp51******** cluster_id: c9q5le6h1a4k******** policy_name: test-policy created_at: "2025-03-25T15:55:50.393000450Z" cron: day_of_month: "25" month: mar day_of_week: TUE retain_for_days: "300"
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом BackupRetentionPolicy.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>/retention_policies' \ --data '{ "cron": { "dayOfMonth": "<день_месяца>", "month": "<месяц>", "dayOfWeek": "<день_недели>" }, "retainForDays": "<срок_хранения_в_днях>", "description": "<описание_политики>", "policyName": "<название_политики>" }'Где:
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров.
dayOfMonth— день месяца. Возможные значения:1-31.month— месяц. Возможные значения:1-12илиJAN-DEC.dayOfWeek— день недели. Возможные значения:0-6илиSUN-SAT.retainForDays— срок хранения копии в днях. Возможные значения:7–1095(до трех лет).
Параметры
dayOfMonth,monthиdayOfWeekсоставляют расписание, по которому создаются резервные копии. Расписание задается в виде cron-выражения, но часы и минуты не указываются.Cron-выражение также поддерживает специальные символы:
*— выбор всех возможных значений. Копия будет создаваться каждый раз (день или месяц), когда это возможно и не противоречит остальным параметрам. Используется по умолчанию, если значение параметра не указано.,— перечисление нескольких значений.–— указание диапазона значений./— указание шага диапазона. Например,*/3для параметраdayOfMonthозначает, что копия будет создаваться раз в три дня.
Если ни один параметр расписания не задан, резервные копии создаются по cron-выражению
* * *, то есть каждый день.Примеры cron-выражений:
1 */6 *— копия создается в первый день месяца раз в полгода.31 jan SUN— копия создается в январе по воскресеньям и тридцать первого января.* * WED— копия создается каждую среду.
Вы можете протестировать cron-выражение в редакторе
. -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Чтобы создать политику:
-
Воспользуйтесь вызовом BackupRetentionPolicyService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/backup_retention_policy_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "cron": { "day_of_month": "<день_месяца>", "month": "<месяц>", "day_of_week": "<день_недели>" }, "retain_for_days": "<срок_хранения_копии_в_днях>", "description": "<описание_политики>", "policy_name": "<название_политики>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.BackupRetentionPolicyService.CreateГде:
cluster_id— идентификатор кластера. Его можно получить со списком кластеров.
day_of_month— день месяца. Возможные значения:1–31.month— месяц. Возможные значения:1–12илиJAN–DEC.day_of_week— день недели. Возможные значения:0–6илиSUN–SAT.retain_for_days— срок хранения копии в днях. Возможные значения:7–1095(до трех лет).
Параметры
day_of_month,monthиday_of_weekсоставляют расписание, по которому создаются резервные копии. Расписание задается в виде cron-выражения, но часы и минуты не указываются.Cron-выражение также поддерживает специальные символы:
*— выбор всех возможных значений. Копия будет создаваться каждый раз (день или месяц), когда это возможно и не противоречит остальным параметрам. Используется по умолчанию, если значение параметра не указано.,— перечисление нескольких значений.–— указание диапазона значений./— указание шага диапазона. Например,*/3для параметраday_of_monthозначает, что копия будет создаваться раз в три дня.
Если ни один параметр расписания не задан, резервные копии создаются по cron-выражению
* * *, то есть каждый день.Примеры cron-выражений:
1 */6 *— копия создается в первый день месяца раз в полгода.31 jan SUN— копия создается в январе по воскресеньям и тридцать первого января.* * WED— копия создается каждую среду.
Вы можете протестировать cron-выражение в редакторе
. -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получить список политик резервного копирования
- Перейдите
в сервис Managed Service for PostgreSQL. - Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- На странице Резервные копии выберите вкладку Политики резервного копирования.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для получения списка политик:
yc managed-postgresql backup-retention-policy list --help -
Получите список политик для кластера Managed Service for PostgreSQL:
yc managed-postgresql backup-retention-policy list \ --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров.
Результат выполнения команды:
+----------------------+-------------+--------------------+------------+-------------------+ | ID | NAME | CLUSTER ID | CRONTAB | RETENTION PERIOD | +----------------------+-------------+--------------------+------------+-------------------+ | mdbt553glp51******** | test-policy | c9q5le6h1a4******* | 31 JAN SUN | 50 | +----------------------+-------------+--------------------+------------+-------------------+Порядок параметров в столбце
CRONTAB:--day-of-month(день месяца),--month(месяц),--day-of-week(день недели).
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом BackupRetentionPolicy.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>/retention_policies?pageSize=<количество_результатов>'Где:
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров.pageSize— количество результатов запроса, которые возвращаются на одной странице. Укажите число больше нуля.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Чтобы получить список политик для кластера:
-
Воспользуйтесь вызовом BackupRetentionPolicyService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/backup_retention_policy_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "page_size": "<количество_результатов>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.BackupRetentionPolicyService.ListГде:
cluster_id— идентификатор кластера. Его можно получить со списком кластеров.page_size— количество результатов запроса, которые возвращаются на одной странице. Укажите число больше нуля.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Удалить политику резервного копирования
-
Перейдите
в сервис Managed Service for PostgreSQL. -
Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
-
На странице Резервные копии выберите вкладку Политики резервного копирования.
-
Нажмите на значок
в строке политики, которую вы хотите удалить. -
Выберите пункт Удалить.
-
Подтвердите удаление и нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для удаления политики:
yc managed-postgresql backup-retention-policy delete --help -
Удалите политику:
yc managed-postgresql backup-retention-policy delete <идентификатор_политики> \ --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров, а идентификатор политики — со списком политик.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом BackupRetentionPolicy.Delete и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>/retention_policies/<идентификатор_политики>'Идентификатор кластера можно запросить со списком кластеров, а идентификатор политики — со списком политик.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Чтобы удалить политику:
-
Воспользуйтесь вызовом BackupRetentionPolicyService.Delete и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/backup_retention_policy_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "policy_id": "<идентификатор_политики>", "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.BackupRetentionPolicyService.DeleteИдентификатор кластера можно запросить со списком кластеров, а идентификатор политики — со списком политик.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-