Yandex Cloud
Search
Contact UsTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Managed Service for PostgreSQL
  • Getting started
    • All guides
      • Getting information on existing clusters
      • Creating a cluster
      • Updating cluster settings
      • Stopping and starting a cluster
      • Managing PostgreSQL hosts
      • Migrating hosts to a different availability zone
      • Managing replication slots
      • Managing backups
      • Managing backup policies
      • Managing disk space
      • Maintenance
      • Updating the PostgreSQL version
      • Deleting a cluster
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Public materials
  • Release notes

In this article:

  • Creating a backup policy
  • Getting a list of backup policies
  • Deleting a backup policy
  1. Step-by-step guides
  2. Clusters
  3. Managing backup policies

Managing backup policies in Managed Service for PostgreSQL

Written by
Yandex Cloud
Updated at January 22, 2026
  • Creating a backup policy
  • Getting a list of backup policies
  • Deleting a backup policy

Backup policies give you flexible control over how cluster backups are created and stored. You can configure a schedule for creating full backups and set their retention period.

Creating a backup policyCreating a backup policy

CLI
REST API
gRPC API

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

  1. See the description of the CLI command for creating a policy:

    yc managed-postgresql backup-retention-policy create --help
    
  2. Create a policy:

    yc managed-postgresql backup-retention-policy create \
       --cluster-id <cluster_ID> \
       --policy-name <policy_name> \
       --day-of-month <day_of_month> \
       --month <month> \
       --day-of-week <day_of_week> \
       --retain-for-days <backup_retention_period_in_days> \
       --description <policy_description>
    

    Where:

    • day-of-month: Day of month. Allowed values: 1–31.

    • month: Month. Allowed values: 1–12 or JAN–DEC.

    • day-of-week: Day of week. Allowed values: 0–6 or SUN–SAT.

    • retain-for-days: Backup retention period in days. The minimum value is 7.

      The day-of-month, month, and day-of-week settings define the schedule for creating backups. The schedule is defined as a cron expression without hours and minutes.

      Cron expressions also support the following special characters:

      • *: Selecting all possible values. A backup will be created on each scheduled interval (day or month) when possible, provided it does not conflict with other settings. This option is used by default if the setting is not specified.
      • ,: Listing multiple values.
      • –: Specifying a range of values.
      • /: Specifying a step value. For example, */3 for the day-of-month setting means a backup will be created every three days.

      If no schedule settings are specified, backups are created using the cron expression * * *, meaning they run daily.

      Examples of cron expressions:

      • 1 */6 *: Backup is created on the first day of the month, every six months.
      • 31 jan SUN: Backup is created on Sundays in January, and also on January 31.
      • * * WED: Backup is created every Wednesday.

      You can test your cron expression in this editor.

    You can get the cluster ID from the cluster list.

    Result:

    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"
    
  1. Get an IAM token for API authentication and place it in an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Call the BackupRetentionPolicy.Create method, for instance, via the following cURL request:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<cluster_ID>/retention_policies' \
      --data '{
                 "cron": {
                   "dayOfMonth": "<day_of_month>",
                   "month": "<month>",
                   "dayOfWeek": "<day_of_week>"
                 },
                 "retainForDays": "<retention_period_in_days>",
                 "description": "<policy_description>",
                 "policyName": "<policy_name>"
             }'
    

    Where:

    • dayOfMonth: Day of the month. Allowed values: 1-31.

    • month: Month. Allowed values: 1-12 or JAN-DEC.

    • dayOfWeek: Day of the week. Allowed values: 0-6 or SUN-SAT.

    • retainForDays: Backup retention period in days. The minimum value is 7.

      The dayOfMonth, month, and dayOfWeek define the schedule for creating backups. The schedule is defined as a cron expression without hours and minutes.

      Cron expressions also support the following special characters:

      • *: Selecting all possible values. A backup will be created on each scheduled interval (day or month) when possible, provided it does not conflict with other settings. This option is used by default if the setting is not specified.
      • ,: Listing multiple values.
      • –: Specifying a range of values.
      • /: Specifying a step value. For example, */3 for the dayOfMonth setting means a backup will be created every three days.

      If no schedule settings are specified, backups are created using the cron expression * * *, meaning they run daily.

      Examples of cron expressions:

      • 1 */6 *: Backup is created on the first day of the month, every six months.
      • 31 jan SUN: Backup is created on Sundays in January, and also on January 31.
      • * * WED: Backup is created every Wednesday.

      You can test your cron expression in this editor.

    You can get the cluster ID from the list of clusters.

  3. Check the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and place it in an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

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

    Below, we assume that the repository contents reside in the ~/cloudapi/ directory.

  3. To create a policy:

    1. Call the BackupRetentionPolicyService.Create method, for instance, via the following gRPCurl request:

      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": "<cluster_ID>",
                "cron": {
                   "day_of_month": "<day_of_month>",
                   "month": "<month>",
                   "day_of_week": "<day_of_week>"
                },
                "retain_for_days": "<backup_retention_period_in_days>",
                "description": "<policy_description>",
                "policy_name": "<policy_name>"
              }' \
          mdb.api.cloud.yandex.net:443 \
          yandex.cloud.mdb.postgresql.v1.BackupRetentionPolicyService.Create
      

      Where:

      • day_of_month: Day of the month. Allowed values: 1–31.

      • month: Month. Allowed values: 1–12 or JAN–DEC.

      • day_of_week: Day of the week. Allowed values: 0–6 or SUN–SAT.

      • retain_for_days: Backup retention period in days. The minimum value is 7.

        The day_of_month, month, and day_of_week define the schedule for creating backups. The schedule is defined as a cron expression without hours and minutes.

        Cron expressions also support the following special characters:

        • *: Selecting all possible values. A backup will be created on each scheduled interval (day or month) when possible, provided it does not conflict with other settings. This option is used by default if the setting is not specified.
        • ,: Listing multiple values.
        • –: Specifying a range of values.
        • /: Specifying a step value. For example, */3 for the day_of_month setting means a backup will be created every three days.

        If no schedule settings are specified, backups are created using the cron expression * * *, meaning they run daily.

        Examples of cron expressions:

        • 1 */6 *: Backup is created on the first day of the month, every six months.
        • 31 jan SUN: Backup is created on Sundays in January, and also on January 31.
        • * * WED: Backup is created every Wednesday.

        You can test your cron expression in this editor.

      You can get the cluster ID from the cluster list.

    2. Check the server response to make sure your request was successful.

Getting a list of backup policiesGetting a list of backup policies

CLI
REST API
gRPC API

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

  1. See the description of the CLI command for getting a list of policies:

    yc managed-postgresql backup-retention-policy list --help
    
  2. Get a list of policies for the Managed Service for PostgreSQL cluster:

    yc managed-postgresql backup-retention-policy list \
       --cluster-id <cluster_ID>
    

    You can get the cluster ID from the cluster list.

    Result:

    +----------------------+-------------+--------------------+------------+-------------------+
    |          ID          |     NAME    |     CLUSTER ID     |  CRONTAB   |  RETENTION PERIOD |
    +----------------------+-------------+--------------------+------------+-------------------+
    | mdbt553glp51******** | test-policy | c9q5le6h1a4******* | 31 JAN SUN |                50 |
    +----------------------+-------------+--------------------+------------+-------------------+
    

    Order of parameters in the CRONTAB column: day_of_month, month, day_of_week.

  1. Get an IAM token for API authentication and place it in an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Call the BackupRetentionPolicy.List method, for instance, via the following cURL request:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<cluster_ID>/retention_policies?pageSize=<number_of_results>'
    

    Where page_size is the number of query results per page. Specify a number greater than zero.

    You can get the cluster ID from the list of clusters.

  3. Check the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and place it in an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

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

    Below, we assume that the repository contents reside in the ~/cloudapi/ directory.

  3. To get a list of policies for a cluster:

    1. Call the BackupRetentionPolicyService.List method, for instance, via the following gRPCurl request:

      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": "<cluster_ID>",
              "page_size": "<number_of_results>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.postgresql.v1.BackupRetentionPolicyService.List
      

      Where page_size is the number of query results per page. Specify a number greater than zero.

      You can get the cluster ID from the list of clusters.

    2. Check the server response to make sure your request was successful.

Deleting a backup policyDeleting a backup policy

CLI
REST API
gRPC API

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

  1. See the description of the CLI command for deleting a policy:

    yc managed-postgresql backup-retention-policy delete --help
    
  2. Delete a policy:

    yc managed-postgresql backup-retention-policy delete <policy_ID> \
       --cluster-id <cluster_ID>
    

    You can get the cluster ID from the list of clusters, and the policy ID from the list of policies.

  1. Get an IAM token for API authentication and place it in an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Call the BackupRetentionPolicy.Delete method, for instance, via the following cURL request:

    curl \
      --request DELETE \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<cluster_ID>/retention_policies/<policy_ID>'
    

    You can get the cluster ID from the list of clusters, and the policy ID from the list of policies.

  3. Check the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and place it in an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

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

    Below, we assume that the repository contents reside in the ~/cloudapi/ directory.

  3. To delete a policy:

    1. Call the BackupRetentionPolicyService.Delete method, for instance, via the following gRPCurl request:

      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": "<policy_ID>",
              "cluster_id": "<cluster_ID>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.postgresql.v1.BackupRetentionPolicyService.Delete
      

      You can get the cluster ID from the list of clusters, and the policy ID from the list of policies.

    2. Check the server response to make sure your request was successful.

Was the article helpful?

Previous
Managing backups
Next
Managing disk space
© 2026 Direct Cursus Technology L.L.C.