Ad Widget

Collapse

Партиционирование в PostgreSQL

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sire
    Senior Member
    • Jul 2010
    • 210

    #31
    Originally posted by zalex_ua
    Они удаляются в момент удаления из фронтенда Наверное вопрос был не совсем корректен, сорри.

    Кстати, одна из таблиц которая теряет смысл своего содержимого это housekeeper при отключении хаускипера.
    Она используется хаускипером для контроля удаления присутствующей истории УЖЕ удаленных айтемов. В схема с партишинингом эта таблица будет содержать определенные данные, которые никак не будут использоваться, количесво записей будет медленно расти по мере изменений конфигурации (удалении айтемов).
    При обычном функционировании (с хаускипером) эта таблица большинство времени пуста, и только иногда там на некоторое время появляются данные.
    При включенном хаускипере не раз видел в логах запись вроде "Housekeeper deleted: ... 125000 records of deleted items,..."
    Regards,
    Sergey Syreskin

    Monitored hosts: 2646 / Active items: 23604 / Server performance: 765.74

    Temporary out of Zabbix business

    Comment

    • dotneft
      Senior Member
      • Nov 2008
      • 699

      #32
      Originally posted by crypt
      После эксплуатации Zabbix (600 items/sec) в конфигурации с партиционированием Postgres, появились некоторые соображения и замечания по поводу предложенной схемы. Коротко опубликовал их в блоге (english):


      p.s.
      ссылки запрещены, так что вот в таком вот виде. Нужно заменить ноль в bl0g на "o".
      Да согласен, исправил в wiki.

      Comment

      • novoselov.ai
        Senior Member
        • Jun 2009
        • 107

        #33
        Имеет ли смысл использование патча



        в версии 1.8.13 ?

        Может казаться, но загрузка на базу большая.

        Comment

        • dotneft
          Senior Member
          • Nov 2008
          • 699

          #34
          Originally posted by novoselov.ai
          Имеет ли смысл использование патча



          в версии 1.8.13 ?

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

          Comment

          • zalex_ua
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified SpecialistZabbix Certified Professional
            • Oct 2009
            • 1286

            #35
            Originally posted by novoselov.ai
            Имеет ли смысл использование патча



            в версии 1.8.13 ?

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

            Comment

            • fixxxer78
              Junior Member
              • Jul 2012
              • 7

              #36
              Здравствуйте!

              Огромное спасибо dotneft за столь подробное руководство по использованию разбиений в БД zabbix!

              В данный момент я настраиваю связку zabbix 2.0 с PostgreSQL 9.1 по этому руководству. Удалил внешние ключи, появившиеся в схеме 2.0 и относящиеся к таблицам с разбиениями. Как Postgres DBA я можно сказать никакой, поэтому возникли некоторые вопросы по предлагаемой реализации.

              1. При вставке записи, вызывающей срабатывание триггера на создание разбиения (то есть первой записи за новый временной интервал), в любую из таблиц с разбиениями, эта первая запись попадает в основную таблицу, а не в созданную таблицу-разбиение. Все следующие записи попадают уже в таблицу-разбиение согласно созданному RULE. Я что-то неправильно сделал/настроил или чего-то не хватает в триггерной функции?

              2. Есть таблица auditlog_details, связанная с таблицей auditlog, но без поля clock. Это не позволяет воспользоваться шаблонами функций для создания ее в разбиения. В свою очередь, использование разбиения таблицы auditlog не позволяет использовать внешние ключи на нее. Каким образом правильно производить удаление устаревших записей из этой таблицы?

              Хотел бы получить комментарии/советы по данным вопросам.

              Comment

              • dotneft
                Senior Member
                • Nov 2008
                • 699

                #37
                Originally posted by fixxxer78
                2. Есть таблица auditlog_details, связанная с таблицей auditlog, но без поля clock. Это не позволяет воспользоваться шаблонами функций для создания ее в разбиения. В свою очередь, использование разбиения таблицы auditlog не позволяет использовать внешние ключи на нее. Каким образом правильно производить удаление устаревших записей из этой таблицы?
                Можно попробовать добавить эту колонку и сделать секционирование по ней тоже. Но я этого не тестил.

                Comment

                • dotneft
                  Senior Member
                  • Nov 2008
                  • 699

                  #38
                  Обновил мануал для использования его для 2.0 версии. Вопросы, предложения приветствуются.

                  Comment

                  • saa
                    Member
                    • Oct 2011
                    • 70

                    #39
                    Originally posted by dotneft
                    Обновил мануал для использования его для 2.0 версии. Вопросы, предложения приветствуются.
                    Добрый день.

                    Спасибо за мануал.

                    У меня периодически выскакивают deadlockи, сегодня получил новый - http://paste.kde.org/537590/

                    Вы не могли бы помочь?

                    Comment

                    • dotneft
                      Senior Member
                      • Nov 2008
                      • 699

                      #40
                      Насколько часто?

                      Я такое замечал только при попытке создания новой партиции, т.е. на стыке суток в 00:00 примерно.

                      Comment

                      • saa
                        Member
                        • Oct 2011
                        • 70

                        #41
                        Originally posted by dotneft
                        Насколько часто?

                        Я такое замечал только при попытке создания новой партиции, т.е. на стыке суток в 00:00 примерно.
                        Конкретно такое - http://paste.kde.org/537590/, первый раз.

                        Было еще при update для таблицы items.

                        Кстати, видел здесь на форуме, что надо как-то тюнить таблицы items и triggers, можете ,что-нибудь подсказать, на что обратить внимание?

                        Comment

                        • Psycho
                          Junior Member
                          • Sep 2012
                          • 4

                          #42
                          Доброго времени суток.
                          В базах данных я ещё весьма зелён, но попытался всё сделать по вашему мануалу (за который большое спасибо).
                          Всё делал на чистой базе (zabbix ver 2.0.2). Прописал партиции только для таблицы history (для пробы) и получаю следующую картину:
                          При вводе данных, строка, которая инициирует функцию создания новой дочерней таблицы, попадает не в созданную дочернюю таблицу, а в мастер таблицу. И следовательно когда дропается устаревшая таблица, то остаётся запись в мастер таблице, хотя их там (как я понял) вообще не должно быть.

                          Comment

                          • AbyssMoon
                            Member
                            • Nov 2012
                            • 51

                            #43
                            Доброго времени суток.
                            Предстоит отказаться от хаускиппера в пользу партиционирования, подскажите, скриптик с первой страницы работает с Zabbix 2.0.3 и PostgreSQL 9.2.1 ?

                            Comment

                            • glebofff
                              Junior Member
                              • Apr 2013
                              • 1

                              #44
                              Прошло много лет, в постгресе появился create table ... like ... including, и, скорее всего, функции для копирования индексов и констрейнтов уже не нужны. Если только для универсальности или обратной совместимости.

                              Я, совсем заколебавшись бороться с заббиксом и дедлоками, даже и не вспомнил о партиционировании. Приятно видеть, что кому-то пригодилось. :-)

                              Comment

                              Working...