Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • SmartCaptcha
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for PostgreSQL
KZ
  • Начало работы
    • Все инструкции
      • SQL-запросы в консоли управления
      • Копирование и заполнение таблицы
      • Управление базами данных
      • Перепаковка данных
  • Управление доступом
  • Инспекции и рекомендации
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Получить список рекомендуемых к перепаковке объектов
  • Отсортировать список рекомендуемых к перепаковке объектов
  • Получить список активных перепаковок
  • Запустить перепаковку рекомендуемого объекта
  • Запустить перепаковку объекта, которого нет в списке рекомендуемых
  • Остановить перепаковку
  • Посмотреть логи активной перепаковки
  1. Пошаговые инструкции
  2. Базы данных
  3. Перепаковка данных

Перепаковка данных в Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 23 октября 2026 г.
Открыть в Markdown
  • Получить список рекомендуемых к перепаковке объектов
    • Отсортировать список рекомендуемых к перепаковке объектов
  • Получить список активных перепаковок
  • Запустить перепаковку рекомендуемого объекта
  • Запустить перепаковку объекта, которого нет в списке рекомендуемых
  • Остановить перепаковку
  • Посмотреть логи активной перепаковки

Примечание

Прежде чем выполнять операции, связанные с перепаковкой таблиц и индексов, убедитесь, что в кластере включена возможность перепаковки. При необходимости включите эту опцию в настройках кластера.

Перепаковка таблиц и индексов устраняет раздувание данных (bloat).

Получить информацию о состоянии таблиц и индексов можно в консоли управления на вкладке Мониторинг страницы управления кластером или в сервисе Yandex Monitoring.

Подробнее о мониторинге состояния кластера PostgreSQL.

Получить список рекомендуемых к перепаковке объектовПолучить список рекомендуемых к перепаковке объектов

Получить список рекомендуемых к перепаковке объектов можно только с помощью консоли управления.

Консоль управления
  1. Перейдите в сервис Managed Service for PostgreSQL.

  2. Нажмите на имя нужного кластера и выберите вкладку Перепаковка данных.

  3. На открывшейся странице перейдите на вкладку Рекомендации.

    На вкладке отображаются рекомендуемые к перепаковке объекты с наибольшим уровнем раздутия.

    Для каждой базы данных отображается не более 10 объектов, а для всего кластера — не более 1000 объектов. В список включены только объекты, у которых процент раздутия выше 5% или размер раздутия больше 1 ГБ. Вы также можете выполнить перепаковку объектов, которых нет в списке рекомендуемых.

Отсортировать список рекомендуемых к перепаковке объектовОтсортировать список рекомендуемых к перепаковке объектов

Чтобы отсортировать рекомендуемые к перепаковке объекты, на вкладке Рекомендации выберите:

  • В поле Тип объекта — тип отображаемого объекта. Доступные варианты: Таблица, Индекс или Все объекты.
  • В поле Топ по — метрику, по которой отбираются объекты. Доступные варианты: Размер раздутых данных (в байтах) или Процент раздутых данных от общего размера объекта.
  • В поле База данных — базу данных, которой принадлежат объекты.

Получить список активных перепаковокПолучить список активных перепаковок

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите в сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Перепаковка данных.
  3. На открывшейся странице перейдите на вкладку Активные перепаковки.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

Чтобы получить список активных перепаковок, выполните команду:

yc managed-postgresql repack list-running \
  --cluster-name=<имя_кластера>

Где --cluster-name — имя кластера Yandex Managed Service for PostgreSQL. Вместо имени кластера вы можете передать его идентификатор в параметре --cluster-id.

Имя и идентификатор кластера вы можете получить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом ManagedRepack.ListRunningRepacks и выполните запрос, например с помощью cURL:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>:managedRepack_list_running'
    

    Идентификатор кластера вы можете получить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

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

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ManagedRepackService.ListRunningRepacks и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/managed_repack_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>"
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.postgresql.v1.ManagedRepackService.ListRunningRepacks
    

    Идентификатор кластера вы можете получить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Запустить перепаковку рекомендуемого объектаЗапустить перепаковку рекомендуемого объекта

Вы можете запустить перепаковку одного или нескольких объектов. Если объектов несколько, они должны быть одного типа.

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите в сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Перепаковка данных.
  3. На открывшейся странице перейдите на вкладку Рекомендации.
  4. Выберите один или несколько объектов для перепаковки и внизу экрана нажмите Запустить перепаковку.
  5. Подтвердите запуск перепаковки.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Получите список рекомендуемых к перепаковке объектов.
  2. Выполните команду:

    yc managed-postgresql repack launch \
      --cluster-name <имя_кластера> \
      --database <имя_базы_данных> \
      --type <тип_объектов> \
      --target '<схема_1>.<имя_объекта_1>','<имя_объекта_2>',...,'<имя_объекта_n>' \
      --target '<схема_2>.<имя_объекта_1>','<имя_объекта_2>',...,'<имя_объекта_m>'
    

    Где:

    • --cluster-name — имя кластера Yandex Managed Service for PostgreSQL.

      Вместо имени кластера вы можете передать его идентификатор в параметре --cluster-id.

      Имя и идентификатор кластера вы можете получить со списком кластеров в каталоге.

    • --database — имя базы данных, в которой находятся целевые объекты.

    • --type — тип объектов, которые вы собираетесь перепаковывать. В одной команде можно передать только объекты одного типа. Возможные значения:

      • table — таблица.
      • index — индекс.
    • --target — список объектов в формате <схема>.<имя_объекта>. Несколько объектов можно передать через запятую.

      Чтобы передать все объекты в схеме, используйте символ подстановки *. Например: public.*.

      В одной команде YC CLI вы можете задать одновременно несколько целей.

    Пример команды
    yc managed-postgresql repack launch \
      --cluster-id c9qbr99vea28******** \
      --database db1 \
      --type table \
      --target 'public.products','customers','employees'
    

    Результат:

    running:
      cluster_id: c9qbr99vea28********
      start_time: "2026-10-21T19:08:45Z"
      spec:
        type: REPACK_TYPE_TABLE
        dbname: db1
        targets:
          - schema: public
            name: products,customers,employees
      launch_id: 68d917ca-ebc1-4725-84c7-9a29********
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Получите список рекомендуемых к перепаковке объектов.

  3. Воспользуйтесь методом ManagedRepack.LaunchRepack и выполните запрос, например с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>:managedRepack_launch' \
      --data '{
                "spec": {
                  "type": "<тип_объектов>",
                  "dbname": "<имя_базы_данных>",
                  "targets": [
                    {
                      "schema": "<схема>",
                      "name": "<имя_объекта_1>"
                    },
                    {
                      "schema": "<схема>",
                      "name": "<имя_объекта_2>"
                    },
                    ...
                    {
                      "schema": "<схема>",
                      "name": "<имя_объекта_n>"
                    }
                  ]
                }
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера Yandex Managed Service for PostgreSQL.

      Идентификатор кластера вы можете получить со списком кластеров в каталоге.

    • type — тип объектов, которые вы собираетесь перепаковывать. В одном запросе можно передать только объекты одного типа. Возможные значения:

      • REPACK_TYPE_TABLE — таблица.
      • REPACK_TYPE_INDEX — индекс.
    • dbname — имя базы данных, в которой находятся целевые объекты.

    • targets — список целевых объектов:

      • schema — схема, к которой относится целевой объект.

      • name — имя объекта.

        Чтобы указать все объекты в схеме, вместо имени передайте в запросе строку "allInSchema": true.

    Пример запроса
    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/c9qbr99vea28********:managedRepack_launch' \
      --data '{
                "spec": {
                  "type": "REPACK_TYPE_TABLE",
                  "dbname": "db1",
                  "targets": [
                    {
                      "schema": "public",
                      "allInSchema": true
                    }
                  ]
                }
              }' \
      | jq
    

    Результат:

    {
      "running": {
        "clusterId": "c9qbr99vea28********",
        "startTime": "2026-10-21T19:30:33Z",
        "spec": {
          "type": "REPACK_TYPE_TABLE",
          "dbname": "db1",
          "targets": [
            {
              "schema": "public",
              "allInSchema": true
            }
          ]
        },
        "launchId": "14f218d0-63e6-4eb8-9fbc-1fdd********"
      }
    }
    
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

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

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Получите список рекомендуемых к перепаковке объектов.

  4. Воспользуйтесь вызовом ManagedRepackService.LaunchRepack и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/managed_repack_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "spec": {
              "type": "<тип_объектов>",
              "dbname": "<имя_базы_данных>",
              "targets": [
                {
                  "schema": "<схема>",
                  "name": "<имя_объекта_1>"
                },
                {
                  "schema": "<схема>",
                  "name": "<имя_объекта_2>"
                },
                ...
                {
                  "schema": "<схема>",
                  "name": "<имя_объекта_n>"
                }
              ]
            }
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.postgresql.v1.ManagedRepackService.LaunchRepack
    

    Где:

    • cluster_id — идентификатор кластера Yandex Managed Service for PostgreSQL.

      Идентификатор кластера вы можете получить со списком кластеров в каталоге.

    • type — тип объектов, которые вы собираетесь перепаковывать. В одном запросе можно передать только объекты одного типа. Возможные значения:

      • REPACK_TYPE_TABLE — таблица.
      • REPACK_TYPE_INDEX — индекс.
    • dbname — имя базы данных, в которой находятся целевые объекты.

    • targets — список целевых объектов:

      • schema — схема, к которой относится целевой объект.

      • name — имя объекта.

        Чтобы указать все объекты в схеме, вместо имени передайте в запросе строку "all_in_schema": true.

    Пример вызова
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/managed_repack_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "c9qbr99vea28********",
            "spec": {
              "type": "REPACK_TYPE_TABLE",
              "dbname": "db1",
              "targets": [
                {
                  "schema": "public",
                  "name": "customers"
                },
                {
                  "schema": "public",
                  "name": "employees"
                },
                {
                  "schema": "public",
                  "name": "products"
                }
              ]
            }
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.postgresql.v1.ManagedRepackService.LaunchRepack \
      | jq
    

    Результат:

    {
      "running": {
        "clusterId": "c9qbr99vea28********",
        "startTime": "2026-10-22T05:08:24Z",
        "spec": {
          "type": "REPACK_TYPE_TABLE",
          "dbname": "db1",
          "targets": [
            {
              "schema": "public",
              "name": "customers"
            },
            {
              "schema": "public",
              "name": "employees"
            },
            {
              "schema": "public",
              "name": "products"
            }
          ]
        },
        "launchId": "983d1818-63c5-4313-a427-18cb********"
      }
    }
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Запустить перепаковку объекта, которого нет в списке рекомендуемыхЗапустить перепаковку объекта, которого нет в списке рекомендуемых

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите в сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Перепаковка данных.
  3. В правом верхнем углу страницы нажмите кнопку Запустить перепаковку.
  4. Выберите тип объекта для перепаковки и укажите одно или несколько имен объектов.
  5. Нажмите кнопку Запустить перепаковку.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

Выполните команду:

yc managed-postgresql repack launch \
  --cluster-name <имя_кластера> \
  --database <имя_базы_данных> \
  --type <тип_объектов> \
  --target '<схема_1>.<имя_объекта_1>','<имя_объекта_2>',...,'<имя_объекта_n>' \
  --target '<схема_2>.<имя_объекта_1>','<имя_объекта_2>',...,'<имя_объекта_m>'

Где:

  • --cluster-name — имя кластера Yandex Managed Service for PostgreSQL.

    Вместо имени кластера вы можете передать его идентификатор в параметре --cluster-id.

    Имя и идентификатор кластера вы можете получить со списком кластеров в каталоге.

  • --database — имя базы данных, в которой находятся целевые объекты.

  • --type — тип объектов, которые вы собираетесь перепаковывать. В одной команде можно передать только объекты одного типа. Возможные значения:

    • table — таблица.
    • index — индекс.
  • --target — список объектов в формате <схема>.<имя_объекта>. Несколько объектов можно передать через запятую.

    Чтобы передать все объекты в схеме, используйте символ подстановки *. Например: public.*.

    В одной команде YC CLI вы можете задать одновременно несколько целей.

Пример команды
yc managed-postgresql repack launch \
  --cluster-id c9qbr99vea28******** \
  --database db1 \
  --type table \
  --target 'public.products','customers','employees'

Результат:

running:
  cluster_id: c9qbr99vea28********
  start_time: "2026-10-21T19:08:45Z"
  spec:
    type: REPACK_TYPE_TABLE
    dbname: db1
    targets:
      - schema: public
        name: products,customers,employees
  launch_id: 68d917ca-ebc1-4725-84c7-9a29********
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Получите список рекомендуемых к перепаковке объектов.

  3. Воспользуйтесь методом ManagedRepack.LaunchRepack и выполните запрос, например с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>:managedRepack_launch' \
      --data '{
                "spec": {
                  "type": "<тип_объектов>",
                  "dbname": "<имя_базы_данных>",
                  "targets": [
                    {
                      "schema": "<схема>",
                      "name": "<имя_объекта_1>"
                    },
                    {
                      "schema": "<схема>",
                      "name": "<имя_объекта_2>"
                    },
                    ...
                    {
                      "schema": "<схема>",
                      "name": "<имя_объекта_n>"
                    }
                  ]
                }
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера Yandex Managed Service for PostgreSQL.

      Идентификатор кластера вы можете получить со списком кластеров в каталоге.

    • type — тип объектов, которые вы собираетесь перепаковывать. В одном запросе можно передать только объекты одного типа. Возможные значения:

      • REPACK_TYPE_TABLE — таблица.
      • REPACK_TYPE_INDEX — индекс.
    • dbname — имя базы данных, в которой находятся целевые объекты.

    • targets — список целевых объектов:

      • schema — схема, к которой относится целевой объект.

      • name — имя объекта.

        Чтобы указать все объекты в схеме, вместо имени передайте в запросе строку "allInSchema": true.

    Пример запроса
    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/c9qbr99vea28********:managedRepack_launch' \
      --data '{
                "spec": {
                  "type": "REPACK_TYPE_TABLE",
                  "dbname": "db1",
                  "targets": [
                    {
                      "schema": "public",
                      "allInSchema": true
                    }
                  ]
                }
              }' \
      | jq
    

    Результат:

    {
      "running": {
        "clusterId": "c9qbr99vea28********",
        "startTime": "2026-10-21T19:30:33Z",
        "spec": {
          "type": "REPACK_TYPE_TABLE",
          "dbname": "db1",
          "targets": [
            {
              "schema": "public",
              "allInSchema": true
            }
          ]
        },
        "launchId": "14f218d0-63e6-4eb8-9fbc-1fdd********"
      }
    }
    
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

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

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Получите список рекомендуемых к перепаковке объектов.

  4. Воспользуйтесь вызовом ManagedRepackService.LaunchRepack и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/managed_repack_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "spec": {
              "type": "<тип_объектов>",
              "dbname": "<имя_базы_данных>",
              "targets": [
                {
                  "schema": "<схема>",
                  "name": "<имя_объекта_1>"
                },
                {
                  "schema": "<схема>",
                  "name": "<имя_объекта_2>"
                },
                ...
                {
                  "schema": "<схема>",
                  "name": "<имя_объекта_n>"
                }
              ]
            }
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.postgresql.v1.ManagedRepackService.LaunchRepack
    

    Где:

    • cluster_id — идентификатор кластера Yandex Managed Service for PostgreSQL.

      Идентификатор кластера вы можете получить со списком кластеров в каталоге.

    • type — тип объектов, которые вы собираетесь перепаковывать. В одном запросе можно передать только объекты одного типа. Возможные значения:

      • REPACK_TYPE_TABLE — таблица.
      • REPACK_TYPE_INDEX — индекс.
    • dbname — имя базы данных, в которой находятся целевые объекты.

    • targets — список целевых объектов:

      • schema — схема, к которой относится целевой объект.

      • name — имя объекта.

        Чтобы указать все объекты в схеме, вместо имени передайте в запросе строку "all_in_schema": true.

    Пример вызова
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/managed_repack_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "c9qbr99vea28********",
            "spec": {
              "type": "REPACK_TYPE_TABLE",
              "dbname": "db1",
              "targets": [
                {
                  "schema": "public",
                  "name": "customers"
                },
                {
                  "schema": "public",
                  "name": "employees"
                },
                {
                  "schema": "public",
                  "name": "products"
                }
              ]
            }
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.postgresql.v1.ManagedRepackService.LaunchRepack \
      | jq
    

    Результат:

    {
      "running": {
        "clusterId": "c9qbr99vea28********",
        "startTime": "2026-10-22T05:08:24Z",
        "spec": {
          "type": "REPACK_TYPE_TABLE",
          "dbname": "db1",
          "targets": [
            {
              "schema": "public",
              "name": "customers"
            },
            {
              "schema": "public",
              "name": "employees"
            },
            {
              "schema": "public",
              "name": "products"
            }
          ]
        },
        "launchId": "983d1818-63c5-4313-a427-18cb********"
      }
    }
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Остановить перепаковкуОстановить перепаковку

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите в сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Перепаковка данных.
  3. На открывшейся странице перейдите на вкладку Активные перепаковки.
  4. В строке нужной перепаковки нажмите на значок и выберите пункт Отменить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Получите список активных перепаковок.

  2. Выполните команду:

    yc managed-postgresql repack terminate \
      --cluster-name <имя_кластера> \
      --launch-id <идентификатор_запуска>
    

    Где:

    • --cluster-name — имя кластера Yandex Managed Service for PostgreSQL. Вместо имени кластера вы можете передать его идентификатор в параметре --cluster-id.

      Имя и идентификатор кластера вы можете получить со списком кластеров в каталоге.

    • --launch-id — идентификатор запуска перепаковки, которую вы хотите остановить.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Получите список активных перепаковок.

  3. Воспользуйтесь методом ManagedRepack.TerminateRepack и выполните запрос, например с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>:managedRepack_terminate' \
      --data '{
                "launchId": "<идентификатор_запуска>"
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера, вы можете получить его со списком кластеров в каталоге.
    • launchId — идентификатор запуска перепаковки, которую вы хотите остановить.
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

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

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Получите список активных перепаковок.

  4. Воспользуйтесь вызовом ManagedRepackService.TerminateRepack и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/managed_repack_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "launch_id": "<идентификатор_запуска>"
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.postgresql.v1.ManagedRepackService.TerminateRepack
    

    Где:

    • cluster_id — идентификатор кластера, вы можете получить его со списком кластеров в каталоге.
    • launch_id — идентификатор запуска перепаковки, которую вы хотите остановить.
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Посмотреть логи активной перепаковкиПосмотреть логи активной перепаковки

Посмотреть логи активной перепаковки можно только с помощью консоли управления.

Консоль управления
  1. Перейдите в сервис Managed Service for PostgreSQL.

  2. Нажмите на имя нужного кластера и выберите вкладку Перепаковка данных.

  3. На открывшейся странице перейдите на вкладку Активные перепаковки.

  4. В строке нужной перепаковки нажмите на значок и выберите пункт Посмотреть логи.

    На открывшейся странице будут отображены логи REPACK за период времени с начала перепаковки до текущего времени. Чтобы посмотреть подробную информацию о событии, нажмите на интересующую запись в списке.

Чтобы посмотреть логи завершенных перепаковок, воспользуйтесь инструкцией Просмотр логов кластера PostgreSQL.

Была ли статья полезна?

Предыдущая
Управление базами данных
Следующая
Управление пользователями БД
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»