Управление политиками резервного копирования в Managed Service for PostgreSQL
Политики резервного копирования позволяют гибко управлять созданием и хранением резервных копий кластера. Вы можете настроить расписание, по которому будут создаваться полные резервные копии, и задать срок их хранения.
Создать политику резервного копирования
Если у вас еще нет интерфейса командной строки 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 <описание_политики>Где:
-
day-of-month— день месяца. Возможные значения:1–31. -
month— месяц. Возможные значения:1–12илиJAN–DEC. -
day-of-week— день недели. Возможные значения:0–6илиSUN–SAT. -
retain-for-days— срок хранения копии в днях. Минимальное значение —7.Параметры
day-of-month,monthиday-of-weekсоставляют расписание, по которому создаются резервные копии. Расписание задается в виде cron-выражения, но часы и минуты не указываются.Сron-выражение также поддерживает специальные символы:
*— выбор всех возможных значений. Копия будет создаваться каждый раз (день или месяц), когда это возможно и не противоречит остальным параметрам. Используется по умолчанию, если значение параметра не указано.,— перечисление нескольких значений.–— указание диапазона значений./— указание шага диапазона. Например,*/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.Параметры
dayOfMonth,monthиdayOfWeekсоставляют расписание, по которому создаются резервные копии. Расписание задается в виде cron-выражения, но часы и минуты не указываются.Сron-выражение также поддерживает специальные символы:
*— выбор всех возможных значений. Копия будет создаваться каждый раз (день или месяц), когда это возможно и не противоречит остальным параметрам. Используется по умолчанию, если значение параметра не указано.,— перечисление нескольких значений.–— указание диапазона значений./— указание шага диапазона. Например,*/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Где:
-
day_of_month— день месяца. Возможные значения:1–31. -
month— месяц. Возможные значения:1–12илиJAN–DEC. -
day_of_week— день недели. Возможные значения:0–6илиSUN–SAT. -
retain_for_days— срок хранения копии в днях. Минимальное значение —7.Параметры
day_of_month,monthиday_of_weekсоставляют расписание, по которому создаются резервные копии. Расписание задается в виде cron-выражения, но часы и минуты не указываются.Сron-выражение также поддерживает специальные символы:
*— выбор всех возможных значений. Копия будет создаваться каждый раз (день или месяц), когда это возможно и не противоречит остальным параметрам. Используется по умолчанию, если значение параметра не указано.,— перечисление нескольких значений.–— указание диапазона значений./— указание шага диапазона. Например,*/3для параметраday_of_monthозначает, что копия будет создаваться раз в три дня.
Если ни один параметр расписания не задан, резервные копии создаются по cron-выражению
* * *, то есть каждый день.Примеры cron-выражений:
1 */6 *— копия создается в первый день месяца раз в полгода.31 jan SUN— копия создается в январе по воскресеньям и тридцать первого января.* * WED— копия создается каждую среду.
Вы можете протестировать cron-выражение в редакторе
.
Идентификатор кластера можно получить со списком кластеров.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получить список политик резервного копирования
Если у вас еще нет интерфейса командной строки 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Где
page_size— количество результатов запроса, которые возвращаются на одной странице. Укажите число больше нуля.Идентификатор кластера можно запросить со списком кластеров.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Удалить политику резервного копирования
Если у вас еще нет интерфейса командной строки 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Идентификатор кластера можно запросить со списком кластеров, а идентификатор политики — со списком политик.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-