Ad Widget

Collapse

PostgreSQL Partitioning existing Tables

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Saslawski
    Member
    • Jul 2014
    • 49

    #1

    PostgreSQL Partitioning existing Tables

    Добрый день.

    В данный момент у нас база данных Zabbix Занимает ~450 GB. NVPS всего около 400, но данные приходится хранить довольно долго (5 лет).
    На тестовом сервере мы настроили автоматическое партиционирование(ссылка ниже).
    Сделали нагрузку на тестовый сервер (200 nvps), запросы обрабатываются быстрее, освобождение места через дроп таблиц также работает превосходно (нет необходимости автовакуума, который работает довольно медленно).
    Переход на партиционирование решили сделать с Zabbix 4.0 LTS. При переходе хотим отпартиционировать существующие данные (последние 5 лет). Вот собственно и возник вопрос, как это сделать, т.к. экспертов по базам данных, а особенно по Postgres нету.

    Заранее спасибо!
  • kernbug
    Senior Member
    • Feb 2013
    • 330

    #2
    Originally posted by Saslawski
    Добрый день.

    Переход на партиционирование решили сделать с Zabbix 4.0 LTS. При переходе хотим отпартиционировать существующие данные (последние 5 лет). Вот собственно и возник вопрос, как это сделать, т.к. экспертов по базам данных, а особенно по Postgres нету.

    Заранее спасибо!
    Здравствуйте,
    Для чего ждать 4.0? Не рекомендую разом делать обновление и партиционировать БД. Если есть возможность развернуть бекап продуктивной системы, то стоит обкатать скрипты для работы с БД - партиционирование, ротация партиций. После этого внедрить партиционирование, не дожидаясь 4.0. По доступности релиза 4.0 сделать обновление. Ну и не забывать о бэкапах.
    Last edited by kernbug; 18-06-2018, 11:46.

    Comment

    • Saslawski
      Member
      • Jul 2014
      • 49

      #3
      Originally posted by kernbug

      Здравствуйте,
      Для чего ждать 4.0? Не рекомендую разом делать обновление и партиционировать БД. Если есть возможность развернуть бекап продуктивной системы, то стоит обкатать скрипты для работы с БД - партиционирование, ротация партиций. После этого внедрить партиционирование, не дожидаясь 4.0. По доступности релиза 4.0 сделать обновление. Ну и не забывать о бэкапах.
      Спасибо за ответ!
      Возможность развернуть копию есть. Но партиционирование указанное по ссылке работает только для новых данных, старые данные остаются как есть

      Comment

      • kernbug
        Senior Member
        • Feb 2013
        • 330

        #4
        Originally posted by Saslawski

        Спасибо за ответ!
        Возможность развернуть копию есть. Но партиционирование указанное по ссылке работает только для новых данных, старые данные остаются как есть
        Для PostgreSQL доступно 2 варианта: оригинальную таблицу сделать мастером и после переносить данные в партиции, либо сразу сделать новую мастер-таблицу с необходимыми партициями, с последующим переносом данных. В первом случае потребуется простой, во втором не будет данных до перезаливки. Учитывая наличие возможности развернуть 500Гб базу и потренироваться ан ней, не вижу проблемы.

        Comment

        Working...