Перейти к основному содержимому

Использование дискового пространства в кластере PostgreSQL для 1С

Последнее изменение:

В облачных базах данных часть дискового пространства резервируется под служебные нужды:

  • для файловой системы — примерно 4% объема диска;
  • под операционную систему, компоненты сервиса и логи — примерно 8 ГБ.

Зарезервированная часть дискового пространства недоступна для размещения баз данных. Учитывайте это при выборе линейки конфигураций.

Вы можете отслеживать степень заполнения диска с помощью уведомлений о заполненности диска и метрик. Подробнее о метриках в инструкции Мониторинг кластера и нод PostgreSQL для 1С.

При заполнении диска кластера на 95% и более кластер перейдет в статус DISK_FULL и будет работать только на чтение. Это необходимо, чтобы предотвратить полную блокировку или повреждение кластера из-за отсутствия свободного места. Чтобы кластер работал на чтение и запись, очистите диск или масштабируйте кластер и выберите конфигурацию с размером диска больше, чем в предыдущей конфигурации.

Уведомления о заполненности диска

Уведомления о заполненности диска направляются на электронную почту Владельца аккаунта и пользователей, которые подписаны на категорию уведомлений «Услуги и сервисы». Уведомления направляются при заполнении диска на 80% и 95%.

Очистить диск

к сведению

Мы не рекомендуем использовать запрос DELETE FROM table WHERE ... для очистки диска. Этот запрос может создавать выборки больших размеров на больших таблицах и располагать их на диске. Оставшееся свободное место на диске может полностью закончиться, это приведет к проблемам с PostgreSQL и необходимости восстанавливать его работу вручную.

Откройте транзакцию transaction_read_only = no и удалите ненужные данные с помощью одного из запросов:

  • DROP TABLE — полностью удаляет таблицу: данные, структуру, индексы, ограничения (constraints), триггеры.

    BEGIN;
    SET transaction_read_only = no;
    DROP TABLE table_name;
    COMMIT;
  • TRUNCATE TABLE — удаляет все строки из таблицы. Работает быстрее DELETE.

    BEGIN;
    SET transaction_read_only = no;
    TRUNCATE TABLE table_name;
    COMMIT;
  • DELETE — удаляет строки, указанные в условии WHERE.