Этот сайт использует файлы cookie для улучшения пользовательского опыта. Подробнее...
ОК
Платформа Tantor 2.1

4.4. Задачи конфигурирования и обслуживания. Обслуживание (Maintenance)

Чтобы попасть на страницу регламентного обслуживания СУБД, нужно нажать на кнопку «Maintenance» в меню экземпляра. Модуль «Maintenance» доступен только на мастере.
На странице, в табличной форме представлен список баз данных, которые присутствуют на сервере.
  • Первый столбец: процент bloat таблиц
  • Второй столбец: процент bloat индекса
  • Третий столбец: процент wraparound (насколько счётчик транзакций использован в процентах)
По умолчанию таблица пуста. Чтобы сформировать актуальные данные, необходимо кликнуть на кнопку «Collect data», которая запустит запрос; он будет выполняться на наблюдаемой базе данных. После его выполнения результаты отображаются в таблице. Этот запрос является достаточно сложным, поэтому не рекомендуется выполнять его без необходимости. После выполнения запроса Платформа автоматически сохранит результаты в кэш браузера. Эти данные остаются доступными до тех пор, пока пользователь не выйдет из аккаунта или не очистит кэш браузера. Если нужно обновить данные, следует нажать на кнопку «Refresh».
Для обслуживания базы данных нужно нажать на меню в хвосте, в нем представлено три опции:
  1. Исправление раздувания таблиц
  2. Исправление раздувания индексов
  3. Исправление переполнения счетчика транзакций

Fix Table Bloat

На странице «Fix Table Bloat» представлен список таблиц с наибольшим раздуванием.
Столбцы в списке таблиц:
  1. Имя таблицы
  2. Количество bloat (раздувания). Таблицы отсортированы по степени раздувания, с самой большой вверху
  3. Процент раздувания
  4. Совокупный размер таблицы с bloat
  5. Чистый размер таблицы
  6. Количество строк в таблице
  7. Дата и время последнего автовакуума
  8. Дата и время последнего вакуума
Клики на заголовки столбцов таблицы включат соответствующие режимы сортировки.
Чтобы обслуживать таблицу, нужно выбрать ее и нажать кнопку «Select», затем выбрать одну из операций: ANALYZE, VACUUM или VACUUM FULL.
Операция «ANALYZE» предназначена для сбора статистики. При выборе флажка «SKIP_LOCKED» строки, находящиеся в эксклюзивной блокировке, будут пропущены и статистика по ним не будет собрана. Однако, благодаря этому, операция «ANALYZE» будет выполнена быстрее.
«VACUUM» — при вакууме таблицы, можно выбрать дополнительные настройки:
  • «TRUNCATE» — очистка содержимого таблицы
  • «SKIP_LOCKED» — пропуск заблокированных
  • «INDEX_CLEANUP» — очистка индексов
  • «FREEZE» — заморозка версий строк (технология, позволяющая использовать счетчик транзакций повторно)
  • «DISABLE_PAGE_SKIPPING» — выключение пропуска страниц
  • «ANALYZE» — сбор статистики таблицы
Операция «VACUUM FULL» — это процедура обслуживания базы данных, которая помимо очистки версий строк на последней странице табличного пространства полностью перестраивает его. Однако следует помнить, что при выполнении операции «VACUUM FULL», устанавливается эксклюзивная блокировка на таблицу, что означает, что она будет закрыта и для записи, и для чтения.
Чтобы запустить регламентное обслуживание, необходимо нажать на кнопку «Run Maintenance». В появившемся окне написать «proceed» и нажать «Run Maintenance».
После запуска, в правом нижнем углу появиться красный индикатор, сообщающий о том, что обслуживание в процессе, этот индикатор появится у всех пользователей, находящихся в одном из модулей экземпляра в Платформе. Это важно, так как регламентное обслуживание в Платформе не может быть запущено параллельно двумя или более пользователями. Этот защитный механизм реализован в целях безопасности.

Fix index Bloat

Принцип работы этого модуля идентичен предыдущему.
В табличной форме представлен список индексов. Столбцы в списке таблиц имеют следующую информацию:
  1. Имя таблицы, к которой относится данный индекс
  2. Имя индекса
  3. Размер раздувания этого индекса (индексы в списке отсортированы по размеру раздувания, наверху находится индекс с максимальным размером раздувания)
  4. Соотношение между bloat и полезными данными в процентах. Индексы с большим процентом отмечены красным цветом, те, у которых процент поменьше, отмечены желтым, а те, у которых совсем маленький процент, отмечены белым цветом
  5. Соотношение общего размера индекса к размеру индекса без раздувания
  6. Фактор заполнения табличного пространства индекса
  7. Нужен ли автовакуум на этот index
Для обслуживания, как и в Fix Table Bloat нужно нажать на кнопку «Select».
Здесь есть только одна операция — удаление блокировки из индекса. При выборе этой операции, появляется отметка «INDEX», которую нельзя убрать, и флажок «CONCURRENTLY» (PostgreSQL построит новый индекс отдельно и после проверки его правильности, переключит таблицу на новый индекс, а старый удалит). Затем нужно выбрать все индексы, которые необходимо обслужить. Чтобы запустить регламентное обслуживание, необходимо нажать на кнопку «Run Maintenance». В появившемся окне написать «proceed» и нажать «Run Maintenance».

Fix Wraparound Bloat

На странице «Fix Wraparound Bloat» представлен список таблиц. Столбцы в списке таблиц имеют следующую информацию:
  1. Имя таблицы
  2. XID (список отсортирован от большего к меньшему)
  3. Сколько процентов счетчика транзакций выбрано
  4. Сколько выбрано счетчика транзакций до запуска аварийного автовакуума. Аварийный автовакуум — это фоновый процесс, который автоматически запускается в том случае, если количество доступных идентификаторов транзакций начинает приближаться к исчерпанию, которое должно быть выставлено в файле конфигурации. Процесс аварийного автовакуума невозможно остановить. Даже если перезагрузить сервер, как только сервер загрузится, процесс аварийного автовакуума сразу начнет работу
  5. Размер таблицы
Для обслуживания нужно нажать на кнопку «Select».
Есть две операции, которые можно выбрать: «VACUUM» и «VACUUM FULL».
При вакууме можно можно выбрать дополнительные настройки:
  • «TRUNCATE» — очистка содержимого таблицы
  • «SKIP_LOCKED» — пропуск заблокированных
  • «INDEX_CLEANUP» — очистка индексов
  • «FREEZE» — заморозка версий строк
  • «ANALYZE» — сбор статистики таблицы
Опция «VACUUM FULL» полностью перестраивает таблицу и освобождает номера транзакций, но это занимает больше времени и потребует эксклюзивной блокировки. Можно выполнить «VACUUM FULL» также и без анализа.

HISTORY

На второй странице модуля, во вкладке «History», есть возможность посмотреть историю всех операций.
В таблице представлена следующая информация:
  1. ID обслуживания
  2. База данных, на которой было выполнено обслуживание
  3. Дата начала обслуживания
  4. Статус обслуживания
Можно перейти в событие через меню, или же просто нажав на само событие.
Внутри события указаны данные:
  • номер ID обслуживания
  • база данных, по которой было сделано обслуживание
  • выбранная операцию по обслуживанию таблицы
  • статус завершения
  • время начала обслуживания
  • кто начал обслуживание
  • время завершения обслуживания
В таблице указаны:
  1. Обслуженные объекты (включая сам объект и его тип таблицы)
  2. Выполненные действия
  3. Данные до обслуживания
  4. Данные после обслуживания