Ich muss eine Mysql-Replikation durchführen. Einige Informationen:
- Ich habe zwei Datenbankinstanzen im Shared Hosting, daher kann ich Mysql Replication nicht verwenden (ich habe keinen Zugriff auf die Konfigurationsdateien).
- Da es sich um ein gemeinnütziges Projekt handelt (Bildung), können wir uns keine eigenen Server leisten.
- Wenn der Hauptserver für ein paar Minuten ausfällt, ist das im Allgemeinen nicht so schlimm, aber es gibt bestimmte Tage, an denen wir WIRKLICH eine Backup-Lösung brauchen, die mit dem Hauptserver synchronisiert ist (zeitlich begrenzte Ereignisse der Website).
Im Moment verwendet das System eine Revisionsnummer für jede Zeile jeder Tabelle, und wir überprüfen regelmäßig, ob sich diese Nummer geändert hat (und aktualisieren die entsprechenden Zeilen). Das ist ziemlich langsam.
Ich stelle mir vor, dass jede SELECT/INSERT/UPDATE-Abfrage in einer bestimmten Tabelle protokolliert wird und der "Slave-Server" den "Master-Server" in regelmäßigen Abständen nach dem Inhalt dieser Tabelle fragt und die entsprechenden Abfragen durchführt.
Was ist Ihre Meinung zu dieser Idee?
Ich weiß, es ist nicht perfekt, ein Server könnte ausfallen, bevor alle Abfragen propagiert werden, aber ich möchte die möglichen Probleme zu minimieren, mit so wenigen Zeilen Code wie möglich.
Wie ließe sich das am besten umsetzen?
- Im php-Code kann ich bei jedem SELECT/INSERT/UPDATE eine weitere Einfügung in eine bestimmte Tabelle vornehmen (ich füge einfach die Abfrage ein)
- Mit einem Auslöser?