Die Replikationsfunktionen in MySQL basierten ursprünglich auf der Weitergabe von SQL-Anweisungen vom Master an den Slave. Dies bezeichnete man als anweisungsbasierte Replikation (Statement-Based Replication, SBR). Seit MySQL 5.1.5 gibt es noch eine andere Basis für die Replikation: die datensatzbasierte Replikation (Row-Based Replication, RBR). Statt die SQL-Anweisungen an den Slave zu senden, schreibt der Master alle Ereignisse, die angeben, wie einzelne Datensätze in der Tabelle geändert werden, in sein Binärlog.
Bei der klassischen anweisungsbasierten Replikation kann es Probleme mit der Replikation gespeicherter Routinen geben. Diese Probleme können Sie umgehen, indem Sie stattdessen die datensatzbasierte Replikation benutzen. Eine umfassende Liste möglicher Probleme finden Sie unter Abschnitt 19.4, „Binärloggen gespeicherter Routinen und Trigger“.
      Wenn Sie MySQL aus dem Quellcode erstellen, steht die
      datensatzbasierte Replikation nur dann zur Verfügung, wenn Sie
      configure mit der Option
      --with-row-based-replication aufrufen.
    
      MySQL Server verwendet standardmäßig auch dann die
      anweisungsbasierte Replikation, wenn MySQL mit Unterstützung der
      datensatzbasierten Replikation konfiguriert wurde. Wenn Sie die
      datensatzbasierte Replikation verwenden wollen, starten Sie den
      Server mit der Option --binlog-format=row, um die
      datensatzbasierte Replikation global (d. h. für alle
      Clientverbindungen) zu aktivieren. Die Option aktiviert
      automatisch auch
      innodb_locks_unsafe_for_binlog, was bei der
      datensatzbasierten Replikation sicher zu verwenden ist.
    
      Die anweisungsbasierte Replikation kann beim Serverstart entweder
      durch Angabe von --binlog-format=statement oder
      durch vollständiges Weglassen der Option
      --binlog-format ausgewählt werden.
    
Die datensatzbasierte Replikation bewirkt, dass die meisten Änderungen unter Verwendung des datensatzbasierten Formats in das Binärlog geschrieben werden. Allerdings müssen einige Änderungen auch als Anweisungen in das Binärlog geschrieben werden:
          ANALYZE TABLE
        
          REPAIR TABLE
        
          OPTIMIZE TABLE
        
      Die Option --binlog-row-event-max-size ist für
      Server verfügbar, die die datensatzbasierte Replikation
      unterstützen. Datensätze werden in Blöcken von einer Größe in
      das Binärlog geschrieben, die den Wert dieser Option nicht
      übersteigt. Der Wert muss ein Vielfaches von 256 sein, Standard
      ist 1024.
    
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

