Create temporary Table ENGINE ändern



  • Hallo zusammen,

    produktiv setzen wir i-doit Pro ein. Zum testen habe ich mir Docker-Images mit i-doit Open erstellt. Das nur nebenbei.

    Aktuell bereite ich den Umzug der i-doit DB auf eine neue MySQL DB vor. Auf dieser neuen MySQL DB setzen wir die neue GTID (General Transaktion ID) Replikation ein (https://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html). Aus diesem Grund ist die Storage Engine MyISAM deaktiviert.

    Das hat zur Folge, das CREATE TEMPORARY TABLE Statements fehlschlagen, weil bei diesen explizit ENGINE=MyISAM angegeben ist. Z.B. wenn man sich einen Server in der CMDB anzeigen lässt.
    Fehlermeldung:

    Database error : Query error: 'CREATE TEMPORARY TABLE tempObjList_05ad75a0e6960bb978e617801ecb5b68 (`isys_catg_access_list__title` TEXT,`isys_access_type__title` TEXT,`isys_catg_access_list__url` TEXT,`isys_catg_access_list__primary` TEXT,`isys_catg_access_list__id` INT(10),`isys_id` TEXT) ENGINE=MyISAM;': Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.
    

    Müssen diese Temporary Tables unbedingt auf der Platte gespeichert werden? Können diese nicht mit ENGINE=MEMORY angelegt werden? Falls Temp Tables unbedingt manifestiert werden müssen, kann man die MySQL Storage Engine dafür konfigurieren?
    BTW: in MySQL ist internal_tmp_disk_storage_engine per Default auf InnoDB gesetzt.


  • i-doIT Team

    Hi,

    danke für den Hinweis. Ich habe bei unseren Entwicklern nachgehakt und die Antwort bekommen, dass wir für i-doit die Datentypen Text und Blob benötigen und daher bei temporären Tabellen auf MyISAM setzen. Ein möglicher Workaround wäre, die Einstellung "enforce_gtid_consistency" auf "Off" oder "Warn" zu setzen. Das allerdings ohne Gewähr unsererseits. Klappt's?

    Viele Grüße
    Benjamin


 


Datenschutz / Privacy Policy