Управление политиками резервного копирования в 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
Идентификатор кластера можно запросить со списком кластеров, а идентификатор политики — со списком политик.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-