Ad Widget

Collapse

Не удаляются Triggers и IT Services

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • DmitrySyrov
    Junior Member
    • Nov 2014
    • 2

    #1

    Не удаляются Triggers и IT Services

    Суть проблемы.
    Решили мы перенести БД Zabbix на другой DB Engine, а именно с MySQL-5.5 на PostgreSQL-9.3
    Как мы делали:
    1. Создали БД в PostgreSQL по ману https://www.zabbix.com/wiki/howto/db/postgres
    2. Залили schema.sql так:
    Code:
    psql -U zabbix -d zabbix -h 127.0.0.1 -f ../../schema.sql
    3. Создали дамп с БД mysql этой тулзой https://github.com/philipsoutham/py-mysql2pgsql
    4. Залили дамп в БД PostgreSQL так:
    Code:
    psql -U zabbix -d zabbix -h 127.0.0.1 -f ../../zabbix_dump.sql
    5. Перенастроили /etc/zabbix/web/zabbix.conf.php на PostgreSQL
    6. Перенастроили zabbix_server.conf на PostgreSQL


    Заббикс заработал. Работает все, но есть 2 проблемы.
    1. Не удаляются триггеры
    2. Не удаляются IT Services.

    При удалении триггера получаем такую ошибку:
    Code:
        Deleted: Trigger "HTTPCode_Backend_5XX on {HOST.NAME}" on "AWS ELB CloudWatch".
        Deleted: Trigger "HTTPCode_Backend_5XX on {HOST.NAME}" on "ELB-adx-ads-1".
        pg_query(): Query failed: ERROR: update or delete on table "triggers" violates foreign key constraint "functions_triggerid_fkey" on table "functions" DETAIL: Key (triggerid)=(14202) is still referenced from table "functions". [triggers.php:194 → CAPIObject->delete() → CAPIObject->__call() → czbxrpc::call() → czbxrpc::callAPI() → call_user_func() → CTrigger->delete() → CTrigger->deleteByIds() → CZBXAPI->deleteByIds() → DB::delete() → DBexecute() → pg_query() in /usr/share/zabbix/include/db.inc.php:509]
        Error in query [DELETE FROM triggers WHERE (triggerid IN ('14202','14338'))] [ERROR: update or delete on table "triggers" violates foreign key constraint "functions_triggerid_fkey" on table "functions" DETAIL: Key (triggerid)=(14202) is still referenced from table "functions".]
        SQL statement execution has failed "DELETE FROM triggers WHERE (triggerid IN ('14202','14338'))"
    При удалении IT Service такую:
    Code:
        pg_query(): Query failed: ERROR: update or delete on table "services" violates foreign key constraint "service_alarms_serviceid_fkey" on table "service_alarms" DETAIL: Key (serviceid)=(2) is still referenced from table "service_alarms". [services.php:106 → CAPIObject->delete() → CAPIObject->__call() → czbxrpc::call() → czbxrpc::callAPI() → call_user_func() → CService->delete() → DB::delete() → DBexecute() → pg_query() in /usr/share/zabbix/include/db.inc.php:509]
        Error in query [DELETE FROM services WHERE serviceid='2'] [ERROR: update or delete on table "services" violates foreign key constraint "service_alarms_serviceid_fkey" on table "service_alarms" DETAIL: Key (serviceid)=(2) is still referenced from table "service_alarms".]
        SQL statement execution has failed "DELETE FROM services WHERE serviceid='2'"
  • DmitrySyrov
    Junior Member
    • Nov 2014
    • 2

    #2
    Отвечаю на свой же вопрос, авось еще кому-нибудь пригодится))
    Нужно сделать следующее
    Code:
    ALTER TABLE triggers 
    DROP CONSTRAINT triggers_templateid_fkey,
    ADD CONSTRAINT triggers_templateid_fkey
    FOREIGN KEY (templateid)
    REFERENCES triggers(triggerid)
    ON DELETE CASCADE;
    Code:
    ALTER TABLE services
    DROP CONSTRAINT services_triggerid_fkey,
    ADD CONSTRAINT services_triggerid_fkey
    FOREIGN KEY (triggerid)
    REFERENCES triggers(triggerid)
    ON DELETE CASCADE;
    Code:
    ALTER TABLE functions
    DROP CONSTRAINT functions_triggerid_fkey,
    ADD CONSTRAINT functions_triggerid_fkey
    FOREIGN KEY (triggerid)
    REFERENCES triggers(triggerid)
    ON DELETE CASCADE;
    Code:
    ALTER TABLE service_alarms
    DROP CONSTRAINT service_alarms_serviceid_fkey,
    ADD CONSTRAINT service_alarms_serviceid_fkey
    FOREIGN KEY (serviceid)
    REFERENCES services(serviceid)
    ON DELETE CASCADE;

    Comment

    Working...