Ad Widget

Collapse

Ошибка базы при обновлении с 5 на 6 версию

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Novgor
    Junior Member
    • Dec 2023
    • 11

    #1

    Ошибка базы при обновлении с 5 на 6 версию

    Всем привет.
    После обновления с 5.0 до 6.0 ругается при обновленнии базы и не запускается сервер.
    В логах ошибки:

    Code:
    1704396:20231219:163144.558 using configuration file: /etc/zabbix/zabbix_server.conf
    1704396:20231219:163144.580 current database version (mandatory/optional): 05030045/05030045
    1704396:20231219:163144.580 required mandatory version: 06000000
    1704396:20231219:163144.580 optional patches were found
    1704396:20231219:163144.580 starting automatic database upgrade
    1704396:20231219:163145.039 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  insert or update on table "items" violates foreign key constraint "items_valuemapid_fkey"
    DETAIL:  Key (valuemapid)=(21) is not present in table "valuemaps".
     [update items set valuemapid=1 where itemid=23650;
    update items set valuemapid=1 where templateid=23650;
    update items set valuemapid=1 where templateid=23650;
    update items set valuemapid=2 where itemid=22232;
    update items set valuemapid=2 where templateid in (10020,22232,22873);
    update items set valuemapid=3 where itemid=22819;
    
    ​
    ​
    Может подскажет, кто как победить эту ошибку?
  • Alex_UUU
    Senior Member
    • Dec 2018
    • 541

    #2
    Ощущение, что побились данные. В табле valuemaps отсутствует valuemapid)=(21
    Какв ариант или искуственно создать или убрать ссылки.

    Comment

    • Novgor
      Junior Member
      • Dec 2023
      • 11

      #3
      Originally posted by Alex_UUU
      Ощущение, что побились данные. В табле valuemaps отсутствует valuemapid)=(21
      Какв ариант или искуственно создать или убрать ссылки.


      Добавил руками, но это порозило новые ошибки:

      Code:
      1911375:20231219:195343.453 using configuration file: /etc/zabbix/zabbix_server.conf
      1911375:20231219:195343.472 current database version (mandatory/optional): 05030045/05030045
      1911375:20231219:195343.472 required mandatory version: 06000000
      1911375:20231219:195343.472 optional patches were found
      1911375:20231219:195343.472 starting automatic database upgrade
      1911375:20231219:195343.473 empty valuemap 'fixerrorupdate' was removed
      1911375:20231219:195343.840 completed 0% of database upgrade
      1911375:20231219:195343.841 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  foreign key constraint "c_items_3" cannot be implemented
      DETAIL:  Key columns "valuemapid" and "valuemapid" are of incompatible types: numeric and bigint.
       [alter table items add constraint c_items_3 foreign key (valuemapid) references valuemap (valuemapid)]
      1911375:20231219:195343.841 database upgrade failed on patch 05030047, exiting in 10 seconds
      1911890:20231219:195404.056 Starting Zabbix Server. Zabbix 6.0.25 (revision 1706b11e866).

      Без бубна и танцев походу апдейт не проходит.

      Comment

      • Novgor
        Junior Member
        • Dec 2023
        • 11

        #4
        По итогу ловил кучу ошибок. Но в итоге осилил и обновился до 6
        Вот все правки которые вносил:

        Code:
        ALTER DATABASE zabbix OWNER TO zabbix;
        
        ALTER TABLE "screens" ADD CONSTRAINT "c_screens_1" FOREIGN KEY ("templateid") REFERENCES "hosts" ("hostid") ON DELETE CASCADE;
        
        CREATE TABLE dashboard_page (
        dashboard_pageid bigint NOT NULL,
        dashboardid bigint NOT NULL,
        name varchar(255) DEFAULT '' NOT NULL,
        display_period integer DEFAULT '0' NOT NULL,
        sortorder integer DEFAULT '0' NOT NULL,
        PRIMARY KEY (dashboard_pageid)
        );
        
        CREATE INDEX dashboard_page_1 ON dashboard_page (dashboardid);
        ALTER TABLE ONLY dashboard_page ADD CONSTRAINT c_dashboard_page_1 FOREIGN KEY (dashboardid) REFERENCES dashboard (dashboardid) ON DELETE CASCADE;
        ALTER TABLE ONLY items ADD dashboard_pageid bigint;
        ALTER TABLE ONLY items ADD CONSTRAINT c_items_3 FOREIGN KEY (dashboard_pageid) REFERENCES dashboard_page (dashboard_pageid) ON DELETE CASCADE;
        
        insert into valuemaps (valuemapid, name)
        values ('21', 'fixerrorupdate');
        
        ALTER TABLE valuemap ALTER COLUMN valuemapid TYPE NUMERIC;
        
        DROP TABLE if exists valuemaps cascade;
        
        CREATE TABLE valuemaps (
        valuemapid numeric NOT NULL,
        name bigint NOT NULL
        );
        
        drop table from dashboard_page;
        
        ALTER TABLE "httptest" ADD CONSTRAINT "c_httptest_1" FOREIGN KEY ("templateid") REFERENCES "hosts" ("hostid") ON DELETE CASCADE;
        
        ALTER TABLE "services" ADD CONSTRAINT "c_services_1" FOREIGN KEY ("serviceid") REFERENCES "hosts" ("hostid") ON DELETE CASCADE;​

        Comment

        Working...