Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
    • Все инструкции
      • Получение информации об имеющихся кластерах
      • Создание кластера
      • Изменение настроек кластера
      • Остановка и запуск кластера
      • Управление хостами PostgreSQL
      • Миграция хостов в другую зону доступности
      • Управление слотами репликации
      • Управление резервными копиями
      • Управление политиками резервного копирования
      • Управление дисковым пространством
      • Техническое обслуживание
      • Обновление версии PostgreSQL
      • Удаление кластера
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

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

  • Настроить алерты в Yandex Monitoring
  • Вывести кластер из режима read-only вручную
  • Изменить тип диска и увеличить размер хранилища
  • Настроить автоматическое увеличение размера хранилища
  1. Пошаговые инструкции
  2. Кластеры
  3. Управление дисковым пространством

Управление дисковым пространством

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 24 апреля 2025 г.
  • Настроить алерты в Yandex Monitoring
  • Вывести кластер из режима read-only вручную
  • Изменить тип диска и увеличить размер хранилища
  • Настроить автоматическое увеличение размера хранилища

При заполнении хранилища более чем на 97% хост автоматически переходит в режим read-only.
Чтобы избежать проблем с операциями записи в базу данных, воспользуйтесь одним из способов:

  • Настройте алерты в Yandex Monitoring, чтобы отслеживать степень заполнения хранилища.

  • Выведите кластер из режима read-only вручную и освободите место в хранилище, удалив часть данных.

  • Увеличьте размер хранилища, чтобы снять режим read-only автоматически. Вы также можете сменить тип диска.

  • Настройте автоматическое увеличение размера хранилища.

Настроить алерты в Yandex MonitoringНастроить алерты в Yandex Monitoring

  1. Перейдите на страницу каталога и выберите сервис Monitoring.

  2. Выберите сервис Managed Service for PostgreSQL.

  3. Создайте канал уведомлений.

  4. Создайте алерт со следующими параметрами:

    1. Метрики — задайте параметры метрики:

      • облако;

      • каталог;

      • сервис Managed Service for PostgreSQL;

      • идентификатор кластера Managed Service for PostgreSQL;

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

      • метка disk.free_bytes.

    2. Условия срабатывания — задайте условие Меньше или равно для процента заполнения свободного дискового пространства, при котором сработает алерт:

      • Функция агрегации — Минимум (минимальное значение метрики за период).
      • Warning — 90 (90% от размера хранилища).
      • Alarm — 95 (95% от размера хранилища).
      • Окно вычисления — желаемый период, с которым будет обновляться значение метрики.
    3. Добавьте созданный ранее канал уведомлений.

Вывести кластер из режима read-only вручнуюВывести кластер из режима read-only вручную

Внимание

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

Чтобы отключить режим read-only:

  1. Подключитесь к БД любым удобным способом.

  2. Откройте транзакцию и внутри нее выполните команду:

    SET LOCAL transaction_read_only TO off;
    
  3. В рамках этой же транзакции удалите ненужные данные с помощью операторов DROP или TRUNCATE. Не используйте оператор DELETE — при его использовании строки отмечаются как удаленные, но не удаляются из базы физически.

  4. Зафиксируйте транзакцию и перезапустите все подключения к базе.

Например, если ваша база содержит ненужную таблицу ExcessDataTable1, удалите ее с помощью транзакции:

BEGIN;
SET LOCAL transaction_read_only TO off;
DROP TABLE ExcessDataTable1;
COMMIT;

Изменить тип диска и увеличить размер хранилищаИзменить тип диска и увеличить размер хранилища

Примечание

Некоторые настройки PostgreSQL зависят от размера хранилища.

Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты для облака и убедитесь, что в секции Managed Databases в строке Объём HDD-хранилищ или Объём SSD-хранилищ есть квота на объем хранилищ.

Важно

  • Размер хранилища нельзя уменьшить.
  • Во время изменения размера хранилища хосты кластера будут недоступны.
Консоль управления
CLI
Terraform
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. Посмотрите описание команды CLI для изменения кластера:

    yc managed-postgresql cluster update --help
    
  2. Укажите тип диска и нужный размер хранилища в команде изменения кластера (размер хранилища должен быть не меньше, чем значение disk_size в свойствах кластера):

    yc managed-postgresql cluster update <имя_или_идентификатор_кластера> \
        --disk-type <тип_диска> \
        --disk-size <размер_хранилища_ГБ>
    

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

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Измените в описании кластера Managed Service for PostgreSQL значения атрибутов disk_type_id и disk_size в блоке config.resources:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      config {
        resources {
          disk_type_id = "<тип_диска>"
          disk_size    = <размер_хранилища_в_гигабайтах>
          ...
        }
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

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

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

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

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

    • создание, в том числе путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

    Операции, длящиеся дольше указанного времени, прерываются.

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \
      --data '{
                "updateMask": "configSpec.resources.diskTypeId,configSpec.resources.diskSize",
                "configSpec": {
                  "resources": {
                    "diskTypeId": "<тип_диска>",
                    "diskSize": "<размер_хранилища_в_байтах>"
                  }
                }
              }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

    • configSpec.resources — параметры хранилища:

      • diskTypeId — тип диска.
      • diskSize — новый размер хранилища в байтах.

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

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

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

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

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

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "update_mask": {
              "paths": [
                "config_spec.resources.disk_type_id",
                "config_spec.resources.disk_size"
              ]
            },
            "config_spec": {
              "resources": {
                "disk_type_id": "<тип_диска>",
                "disk_size": "<размер_хранилища_в_байтах>"
              }
            }
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

    • config_spec.resources — параметры хранилища:

      • disk_type_id — тип диска.
      • disk_size — новый размер хранилища в байтах.

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

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

Настроить автоматическое увеличение размера хранилищаНастроить автоматическое увеличение размера хранилища

Примечание

Некоторые настройки PostgreSQL зависят от размера хранилища.

Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты для облака и убедитесь, что в секции Managed Databases в строке Объём HDD-хранилищ или Объём SSD-хранилищ есть квота на объем хранилищ.

Важно

  • Размер хранилища нельзя уменьшить.
  • Во время изменения размера хранилища хосты кластера будут недоступны.
Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.

  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.

  3. В блоке Автоматическое увеличение размера хранилища:

    1. В поле Увеличивать размер задайте процент заполнения хранилища, при превышении которого хранилище будет увеличено. Можно задать правила для увеличения:

      • в следующее окно обслуживания;
      • незамедлительно.

      Можно задать оба правила, но порог для незамедлительного увеличения должен быть выше порога для увеличения в окно обслуживания.

    2. В поле Максимальный размер хранилища укажите максимальный размер хранилища, который может быть установлен при автоматическом увеличении размера хранилища.

  4. Нажмите кнопку Сохранить изменения.

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

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

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

  1. Посмотрите описание команды CLI для изменения кластера:

    yc managed-postgresql cluster update --help
    
  2. Укажите максимальный размер хранилища и условия для его увеличения в команде изменения кластера.

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

    yc managed-postgresql cluster update <идентификатор_или_имя_кластера> \
        --disk-size-autoscaling disk-size-limit=<максимальный_размер_хранилища_в_байтах>,`
                               `planned-usage-threshold=<процент_для_планового_увеличения>,`
                               `emergency-usage-threshold=<процент_для_незамедлительного_увеличения>
    

    Если настроено увеличение хранилища в окно обслуживания, настройте расписание окна обслуживания.

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \
      --data '{
                "updateMask": "configSpec.diskSizeAutoscaling,maintenanceWindow",
                "configSpec": {
                  "diskSizeAutoscaling": {
                    "plannedUsageThreshold": "<процент_для_планового_увеличения>",
                    "emergencyUsageThreshold": "<процент_для_незамедлительного_увеличения>",
                    "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>"
                  }
                },
                "maintenanceWindow": {
                  "weeklyMaintenanceWindow": {
                    "day": "<день_недели>",
                    "hour": "<час>"
                  }
                }
              }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае надо передать только параметры configSpec.diskSizeAutoscaling и maintenanceWindow.

    • configSpec.diskSizeAutoscaling — настройки автоматического увеличения размера хранилища:

      • plannedUsageThreshold — процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.

        Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено).

        Если вы задали этот параметр, настройте расписание окна технического обслуживания в параметре maintenanceWindow.

      • emergencyUsageThreshold — процент заполнения хранилища, при котором хранилище будет увеличено немедленно.

        Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено). Должно быть не меньше значения plannedUsageThreshold.

      • diskSizeLimit — максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.

    • maintenanceWindow — расписание окна технического обслуживания. Нужно, только если вы задали параметр plannedUsageThreshold. Содержит следующие параметры:

      • day — день недели в формате DDD, когда должно проходить обслуживание.
      • hour — час в формате HH, когда должно проходить обслуживание. Возможные значения: от 1 до 24.

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

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

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

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

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

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

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

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "update_mask": {
              "paths": [
                "config_spec.disk_size_autoscaling",
                "maintenance_window"
              ]
            },
            "config_spec": {
              "disk_size_autoscaling": {
                "planned_usage_threshold": "<процент_для_планового_увеличения>",
                "emergency_usage_threshold": "<процент_для_незамедлительного_увеличения>",
                "disk_size_limit": "<максимальный_размер_хранилища_в_байтах>"
              }
            },
            "maintenance_window": {
              "weekly_maintenance_window": {
                "day": "<день_недели>",
                "hour": "<час>"
              }
            }
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае надо передать только параметры config_spec.disk_size_autoscaling и maintenance_window.

    • config_spec.disk_size_autoscaling — настройки автоматического увеличения размера хранилища:

      • planned_usage_threshold — процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания.

        Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено).

        Если вы задали этот параметр, настройте расписание окна технического обслуживания в параметре maintenance_window.

      • emergency_usage_threshold — процент заполнения хранилища, при котором хранилище будет увеличено немедленно.

        Значение задается в процентах от 0 до 100. По умолчанию — 0 (автоматическое расширение отключено). Должно быть не меньше значения planned_usage_threshold.

      • disk_size_limit — максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения.

    • maintenance_window — расписание окна технического обслуживания. Нужно, только если вы задали параметр planned_usage_threshold. Содержит следующие параметры:

      • day — день недели в формате DDD, когда должно проходить обслуживание.
      • hour — час в формате HH, когда должно проходить обслуживание. Возможные значения: от 1 до 24.

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

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

Если заданный порог достигнут, размер хранилища увеличивается по-разному в зависимости от типа диска:

  • Для сетевых HDD- и SSD-дисков — на большее из двух значений: 20 ГБ или 20% от текущего размера диска.

  • Для нереплицируемых SSD-дисков и сверхбыстрых сетевых SSD-дисков с тремя репликами — на 93 ГБ.

  • Для локальных SSD-дисков:

    • В кластере на платформе Intel Broadwell или Intel Cascade Lake — на 100 ГБ.
    • В кластере на платформе Intel Ice Lake — на 368 ГБ.

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

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

Предыдущая
Управление политиками резервного копирования
Следующая
Техническое обслуживание
Проект Яндекса
© 2025 ООО «Яндекс.Облако»