Первый вопрос, который хочется задать сообществу. Какой м...к писал документацию к заббиксу? И бросил при этом на середине и сам ниразу по этой инструкции не делал ничего...
http://www.zabbix.com/wiki/non-engli..._in_postgresql здесь была найдена __одна__ из инструкций по разбиению(отдельный вопрос почему их несколько и при этом они разные).
После создания всех описанных триггеров и функций и выполнения первого инсёрта в таблицу history я вижу ошибку:
Тоесть выходит, что триггер в документации написан не верно!!! Ведь триггерная функция передаёт параметры, которые не описаны в документации!!!
perform partition_every_day (TG_RELID, !!!!'partitions.'!!!!, NEW.clock); Что это за 'partitions.' и почему в документации не описано с какими параметрами создавать эту схему? Во всех моих таблицах и функциях в поле scheme указано значение public. Можно ли его использовать вместо этого партишна?
Далее по документации мы видим следующие странности, которые никак не описаны:
Здесь мы уже видим, что partitions. это БД!!! Каааак? Почему нигде выше не сказано, что у нас появляется отдельная БД???
Ну и самое главное. В начале статьи приведён некислый список табличек, которые надо разбивать. Но далее описаны только функции для разбивки одной единственной таблицы history. Если это просто пример по аналогии с которым надо сделать разбиение остальных таблиц, так какого, х...я даже такая простая задача не реализуема посредством имеющейся документации???
Многое мне нравится в Zabbix, но документация всегда вымораживала подобными темами!
http://www.zabbix.com/wiki/non-engli..._in_postgresql здесь была найдена __одна__ из инструкций по разбиению(отдельный вопрос почему их несколько и при этом они разные).
После создания всех описанных триггеров и функций и выполнения первого инсёрта в таблицу history я вижу ошибку:
Code:
zabbix_parted=> INSERT INTO history VALUES (717177,1333267140,0); ERROR: schema "partitions" does not exist CONTEXT: SQL statement "SELECT child::regclass" PL/pgSQL function "partition_every_day" line 16 at PERFORM SQL statement "SELECT partition_every_day (TG_RELID, 'partitions.', NEW.clock)" PL/pgSQL function "trig_part_day" line 3 at PERFORM zabbix_parted=>
Code:
CREATE OR REPLACE FUNCTION trig_part_day() RETURNS "trigger" AS $BODY$ begin perform partition_every_day (TG_RELID, 'partitions.', NEW.clock); return NEW; end; $BODY$ LANGUAGE 'plpgsql' immutable;
Далее по документации мы видим следующие странности, которые никак не описаны:
Например, для удаления старых данных нужно просто удалить разбиение, в котором больше нет необходимости:
DROP TABLE partitions.history_2011_07_22 CASCADE;
DROP TABLE partitions.history_2011_07_22 CASCADE;
Ну и самое главное. В начале статьи приведён некислый список табличек, которые надо разбивать. Но далее описаны только функции для разбивки одной единственной таблицы history. Если это просто пример по аналогии с которым надо сделать разбиение остальных таблиц, так какого, х...я даже такая простая задача не реализуема посредством имеющейся документации???
Многое мне нравится в Zabbix, но документация всегда вымораживала подобными темами!
Comment