Ankündigung

Einklappen
Keine Ankündigung bisher.

innodb_flush_log_at_trx_commit ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    innodb_flush_log_at_trx_commit ändern

    Die Forums-Software von Woltlab rät zum Import alter Daten das Setzen des Parameters innodb_flush_log_at_trx_commit auf den Wert 2 während des Imports. Versuche, ohne diesen Parameter zu importieren, schlugen mit Timeouts fehl.

    1.) Kann ich diesen Parameter setzen?
    2.) Falls ja, kann ich den Parameter genau für eine Datenbank setzen?
    3.) Falls ja, gibt es verschiedene Möglichkeiten, dies zu tun (Administrationsoberfläche, Optionsdatei, ...)
    4.) Falls Optionsdatei, wo kann ich diese finden?

    Vielen Dank und Grüße
    Dirk

    #2
    Eingentlich müsste es reichen, am Anfang deines dumps folgendes einzufügen:
    SET LOCAL innodb_flush_log_at_trx_commit=2;
    Du musst nix dauerhaft umstellen - wäre auch nicht zu empfehlen, da du ansonsten Gefahr läufst, bei einem Absturz etc. Daten zu verlieren.

    Als Erklärung hab ich im Netz gefunden:
    Standardmäßig ist der Parameter innodb_flush_log_at_trx_commit auf den Wert 1 gesetzt. In dem Fall wird der Transaktions-Log nach jedem Commit auf die Festplatte geschrieben. Da Plattenzugriffe sehr langsam sind, kostet dies reichlich Geschwindigkeit. Und da domainFactory als Dateisystem auf ext4 setzt, welches jeden Schreibvorgang überprüft, potenziert sich das Problem. Wird diese Option auf 2 gesetzt, dann werden die Commits im Cache zwischengespeichert und das Schreiben auf die Festplatte auf 1 Mal pro Sekunde limitiert.

    Gruss Rolf
    Zuletzt geändert von wsp; 18.11.2019, 15:56.

    Kommentar


      #3
      Leider habe ich keinen Dump, in den ich das reinschreiben könnte... Die Software liest, konvertiert und schreibt mit eigenen Programmen.

      Viele Grüße
      Dirk

      Kommentar


        #4
        Zitat von IBB Solutions Beitrag anzeigen
        Leider habe ich keinen Dump, in den ich das reinschreiben könnte... Die Software liest, konvertiert und schreibt mit eigenen Programmen.

        Viele Grüße
        Dirk
        Woher werden denn die "alten" Daten eingelesen?
        Sollte wohl auch möglich sein, die Technik temporär zu bitten, diesen Wert anzupassen, bis der Import abgeschlossen ist?

        Kommentar


          #5
          Oder hast du schonmal versucht, in der entsprechenden DB folgendes als SQL Befehl eingeben:

          SET GLOBAL innodb_flush_log_at_trx_commit=2;
          Und danach wieder mit Parameter 1 rückgängig zu machen?

          NACHTRAG: Habs grad getestet - dazu fehlen wohl die Bereichtigungen! Bleibt wohl nur die Technik!
          Zuletzt geändert von wsp; 18.11.2019, 16:27.

          Kommentar


            #6
            Danke für den Tipp, das werde ich versuchen!
            Die Software liest direkt aus der alten Datenbank und schreibt in die neue...

            Kommentar


              #7
              Hallo Dirk,

              Zitat von IBB Solutions Beitrag anzeigen
              Die Forums-Software von Woltlab rät zum Import alter Daten das Setzen des Parameters innodb_flush_log_at_trx_commit auf den Wert 2 während des Imports. Versuche, ohne diesen Parameter zu importieren, schlugen mit Timeouts fehl.
              1.) Kann ich diesen Parameter setzen?
              2.) Falls ja, kann ich den Parameter genau für eine Datenbank setzen?
              3.) Falls ja, gibt es verschiedene Möglichkeiten, dies zu tun (Administrationsoberfläche, Optionsdatei, ...)
              4.) Falls Optionsdatei, wo kann ich diese finden?
              Der Wert „innodb_flush_log_at_trx_commit“ auf 2 kann durch die technische Abteilung mittels einer authentifizierten Anfrage gesetzt werden. Das Setzen für eine einzelne Datenbank ist nicht möglich, sondern nur für den kompletten MySQL-Dienst.

              Blog - Facebook - Twitter
              Communitybetreiber: domainfactory GmbH
              Impressum / Pflichtangaben

              Kommentar


                #8
                Zitat von Marcel Kaufmann Beitrag anzeigen
                Der Wert „innodb_flush_log_at_trx_commit“ auf 2 kann durch die technische Abteilung mittels einer authentifizierten Anfrage gesetzt werden. Das Setzen für eine einzelne Datenbank ist nicht möglich, sondern nur für den kompletten MySQL-Dienst.
                Hierfür bitte beachten, dass Sie für einen solche Änderung einen Managed Server benötigen, da sonst alle Kunden auf dem Server betroffen werden und wir daher nur bei eigenen Servern solche Änderungen machen.

                Mit freundlichen Grüßen

                Nils Dornblut

                Blog - Facebook - Twitter
                Communitybetreiber: domainfactory GmbH
                Impressum / Pflichtangaben

                Kommentar

                Lädt...
                X