Задать вопрос
  • VACUUM в PostgreSQL 15 уже несколько суток в фазе vacuuming indexes что можно сделать?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    В фазе vacuuming indexes нам нужно прочитать и обработать все индексы таблицы. Наступает эта фаза всякий раз когда набирается num_dead_tuples столько, сколько уже не лезет в max_dead_tuples (который, в свою очередь, считается от maintenance_work_mem, но для pg15 это по-прежнему не более 1гб, 178956969 как раз похоже на 1гб списка таплов)
    index_vacuum_count - это как раз и есть счётчик, сколько раз вызывали vacuuming indexes. За четверо суток 61 раз vacuuming indexes, то есть не более 1,5 часа каждый - вполне неплохо, бывало веселее, когда каждый vacuuming indexes длился часов по 15.

    Начиная с pg13 vacuum (но не autovacuum) может запускать дополнительных воркеров для vacuuming indexes. Применимы max_parallel_maintenance_workers (до тех пор пока позволяют max_parallel_workers и max_worker_processes). Воркеры работают по принципу очереди из списка индексов, в пределе можно запустить воркеров по числу индексов.

    Раз досчитали до index_vacuum_count = 61, значит уже прожевали порядка 11млрд мёртвых строк. Похоже что недавно было массовое удаление старых/более ненужных данных. Ну или не менее массовый update, который, конечно, тоже оставит много мёртвых строк.
    Ответ написан
    Комментировать
  • Почему увеличилась генерация WAL-сегментов?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    На аналитической реплике не должно быть hot_standby_feedback. Это заведомо ведёт к замедлению и мастера и каждой реплики. hot_standby_feedback мешает работать автовакуумам, препятствуя удалению старых версий строк, именно для этого эта настройка и нужна.
    У вас ещё и размеры базы скоро подрастут без сторонних причин, особенно если много update. По той же самом причине добавления помех в работе автовакуума.

    Объём записи WAL так же может добавить
    Ответ написан
    5 комментариев
  • В какой город переехать работать сисадмину?

    insiki
    @insiki Автор вопроса
    broken pipe
    Кстати говоря, переехал в Санкт-Петербург :)
    Ответ написан
    1 комментарий
  • Как выбрать повторы SQL-запросом?

    @mletov
    SELECT ip
    FROM
    (
         SELECT ip, date
         FROM table 
         GROUP BY ip, date
    ) AS t1
    GROUP BY ip
    HAVING COUNT(ip) = (SELECT COUNT(date)  FROM table GROUP BY date)


    Это запрос на выбор ip, которые встречаются каждый день. Или интересуют ip, которые повторяются хотя бы один раз?
    Тогда:

    SELECT ip
    FROM
    (
         SELECT ip, date
         FROM table 
         GROUP BY ip, date
    ) AS t1
    GROUP BY ip
    HAVING COUNT(ip) > 1
    Ответ написан
    4 комментария
  • Как грамотно архивировать данные?

    fallen8rwtf
    @fallen8rwtf
    рядом можно собрать, почему бы и нет. но я соглашусь с @Артем:
    бывают редкие ситуации когда raid-контроллер выходит из строя. у меня было один раз что села батарея (!!!) и потом вышла из строя на самом контроллере..пришлось мега-быстро искать (нашел только на ebay если что)
    потому лучше вынести все копии на отдельное хранилище
    Ответ написан
    Комментировать
  • Как грамотно архивировать данные?

    Jump
    @Jump Куратор тега Резервное копирование
    Системный администратор со стажем.
    Резервные копии лучше вынести на отдельное устройство.
    Если все же делать на этом же сервере, то массив - только простое зеркало, чтобы можно было получить доступ к ним даже если контроллер рэйда из строя выйдет и рэйд развалится.
    Ответ написан
    2 комментария