dedlfix: Mysql-Blob vs. Filesystem bei Datensynchronisation

Beitrag lesen

Tach!

CouchDB [...]
Schau ich mir direkt mal an. Da das System so ausgelegt ist, dass zum Implementieren einer neuen DB-Software nur eine Klasse ausgetauscht werden muss, würde sich der Aufwand in Grenzen halten.

Ich stell mir das nicht ganz einfach vor, weil RDBMS und die dokumentenbasierenden Systeme schon von der Philosophie her unterschiedlich arbeiten. Wenn deine Anwendung datensatzorientiert ist, dann wirst du aus einer dokumentenbasierenden Ablage nicht das Optimum rausholen. (Stell ich mir zumindest vor. Erfahrungen damit hab ich keine.)

Das kannst du vermutlich aber auch dann, wenn dein Replikationskanal mal abstirbt. Ich erinnere mich, dass MySQL-Replikation nicht ganz so pflegeleicht ist.
Ich kenn das nur vom Lesen, noch nie ne Replikation im Einsatz gehabt.

Es ist recht einfach aufzusetzen. Auch wenn das Handbuch dazu eine ziemliche Menge schreibt, halten sich die eigentlichen Handlungen in Grenzen. Zu einem ernsthaften Betrieb gedieh das Projekt aber nicht, so dass mir die praktische Erfahrung fehlt. Aber eigentlich merkt sich der Slave, wie weit er gekommen ist und setzt nach einem Abbruch an genau der Stelle fort, das inzwischen am Master weiter gefüllte Log abzuarbeiten.

MySQL-Replikation verschickt alle an den Master gesendeten SQL-Kommandos auch an alle Slaves, damit sie dort erneut ausgeführt werden. Das sollte zwar auf Binärebene geschehen, aber Updates schreiben immer alle aktualisierten Daten des Querys nochmal neu auf das Ziel, egal ob die dort schon mal vorlagen.

Was ist das spezielle am Binären, wenn trotzdem Statements ausgeführt werden müssen? Im Log-File stehen die Statements jedenfalls nicht vorkompiliert oder so drin. Das für die Replikation verwendete Log heißt zwar Binary-Log, aber es werden trotzdem auf den Slaves die kompletten Statements abgearbeitet. Auch Stored Procedures werden komplett durchlaufen und nicht nur deren Änderungen am Datenbestand synchronisiert. - Ich blättere grad durch das Replication-Kapitel und stelle fest, dass es sowohl statement-based als auch row-based Replication gibt. In meiner Erinnerung befand sich jedoch nur ersteres.

dedlfix.