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
      • Managing cluster access
      • 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 February 25, 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

Management console
CLI
REST API
gRPC API
  1. Navigate to the Managed Service for PostgreSQL service.

  2. Click the name of your cluster and select the Backups tab.

  3. On the Backups page, select the Backup policies tab.

  4. Click Create policy.

  5. Specify the parameters of the new policy:

    1. Enter a name and description.

    2. Select one of the backup start options:

      • Every day.
      • Every week. For this option, additionally select one or more days of the week.
      • By month. For this option, additionally select one or more months and one or more days of the month.

      The backup start time is specified in the cluster settings.

    3. Specify backup storage parameters. You can keep backups permanently or set a retention period (at least seven days).

  6. Click Create.

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 --folder-name or --folder-id.

  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. The possible value is 1–31.

    • month: Month. The possible values are 1–12 or JAN–DEC.

    • day-of-week: Day of week. The possible values are 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.

    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. The possible value is 1-31.

    • month: Month. The possible values are 1-12 or JAN-DEC.

    • dayOfWeek: Day of week. The possible values are 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 month. The possible value is 1–31.

      • month: Month. The possible values are 1–12 or JAN–DEC.

      • day_of_week: Day of week. The possible values are 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

Management console
CLI
REST API
gRPC API
  1. Navigate to the Managed Service for PostgreSQL service.
  2. Click the name of your cluster and select the Backups tab.
  3. On the Backups page, select the Backup policies tab.

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 --folder-name or --folder-id.

  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 with 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 with the list of clusters.

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

Deleting a backup policyDeleting a backup policy

Management console
CLI
REST API
gRPC API
  1. Navigate to the Managed Service for PostgreSQL service.

  2. Click the name of your cluster and select the Backups tab.

  3. On the Backups page, select the Backup policies tab.

  4. Click in the row of the policy you want to delete.

  5. Select Delete.

  6. Confirm deletion and click Delete.

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 --folder-name or --folder-id.

  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.