Ad Widget

Collapse

Снова о секционировании MySQL

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • NoOneIsPerfect
    Member
    • Feb 2015
    • 37

    #1

    Снова о секционировании MySQL

    Решили сделать секционирование на действующей инсталляции Zabbix.
    План действий такой:
    1. Создать хранимые процедуры по официальному гайду (https://zabbix.org/wiki/Docs/howto/mysql_partition)
    2. Настроить запуск процедур через планировщик mysql:
    DELIMITER $$

    CREATE EVENT IF NOT EXISTS `e_part_manage`
    ON SCHEDULE EVERY 1 DAY
    STARTS '2015-07-07 04:00:00'
    ON COMPLETION PRESERVE
    ENABLE
    COMMENT 'Zabbix partitioning'
    DO BEGIN
    CALL partition_maintenance_all('zabbix');
    END$$

    DELIMITER ;
    3. Отключить housekeep (опять же по вышеупомянутому гайду).

    Вопросы:
    1. Нужно ли что-то делать с уже имеющимися данными? или они будут секционированы в процессе?
    2. Не упустили ли мы что-то из плана?
  • NoOneIsPerfect
    Member
    • Feb 2015
    • 37

    #2
    Пока сам дополню свой пост: внутренний планировщик mysql по умолчанию выключен, и его надо включить запросом SET GLOBAL event_scheduler = ON; и установкой переменной "event_scheduler=ON" в /etc/mysql/my.cnf.
    Может быть еще что-то не учел?

    Comment

    • Zentarim
      Senior Member
      • Mar 2012
      • 526

      #3
      Originally posted by nooneisperfect
      Решили сделать секционирование на действующей инсталляции zabbix.
      План действий такой:
      1. Создать хранимые процедуры по официальному гайду (https://zabbix.org/wiki/docs/howto/mysql_partition)
      2. Настроить запуск процедур через планировщик mysql:
      Delimiter $$

      create event if not exists `e_part_manage`
      on schedule every 1 day
      starts '2015-07-07 04:00:00'
      on completion preserve
      enable
      comment 'zabbix partitioning'
      do begin
      call partition_maintenance_all('zabbix');
      end$$

      delimiter ;
      3. Отключить housekeep (опять же по вышеупомянутому гайду).

      Вопросы:
      1. Нужно ли что-то делать с уже имеющимися данными? или они будут секционированы в процессе?
      2. Не упустили ли мы что-то из плана?
      Я делал разбиение пустых таблиц. Если сомневаетесь - можете попробовать сделать бэкап данных из таблиц, которые собираетесь секционировать, а потом залейте их в уже секционированные таблицы.

      Comment

      • NoOneIsPerfect
        Member
        • Feb 2015
        • 37

        #4
        Уже сделал на тестовой инсталляции. Вижу, что все актуальные данные попали в самую первую секцию. Специально уменьшил глубину хранения данных. Жду когда первая секция удалится.

        Comment

        Working...