MySQL-Replikation:Wenn ich keine Datenbanken spezifiziere, protokolliert log_bin dann ALLES?

StackOverflow https://stackoverflow.com/questions/8166

  •  08-06-2019
  •  | 
  •  

Frage

Ich richte die Replikation für einen Server ein, auf dem eine Reihe von Datenbanken ausgeführt werden (eine pro Client), und habe vor, in my.cnf ständig weitere hinzuzufügen, anstatt Folgendes zu haben:

binlog-do-db  = databasename 1
binlog-do-db  = databasename 2
binlog-do-db  = databasename 3
...
binlog-do-db  = databasename n

kann ich lieber einfach haben

binlog-ignore-db  = mysql
binlog-ignore-db  = informationschema

(und keine zu protokollierende Datenbank angegeben) und davon ausgehen, dass alles andere protokolliert wird?

BEARBEITEN:Tatsächlich wird, wenn ich alle meine binlog-do-db-Einträge entferne, scheinbar alles protokolliert (wie Sie sehen, wie sich die Position der binären Protokolldatei ändert, wenn Sie die Datenbank verschieben), aber auf dem Slave-Server wird nichts erfasst!(Vielleicht ist dies der Fall, wenn Sie „replication-do-db“ verwenden?das würde die Idee zerstören;Ich schätze, ich kann MySQL nicht automatisch erkennen lassen, welche Datenbanken repliziert werden sollen.

War es hilfreich?

Lösung

Das sieht richtig aus: http://dev.mysql.com/doc/refman/5.0/en/binary-log.html#option_mysqld_binlog-ignore-db.

Laut dieser Referenz:

Es gibt einige Regeln für Binlog-IGNORE-DB.Stimmt die Standarddatenbank mit den-Binlog-Ignore-DB-Regeln überein?

  • Ja:Schreiben Sie die Anweisung nicht und beenden Sie sie.
  • NEIN:Schreiben Sie die Abfrage und beenden Sie den Vorgang.

Da Sie nur Ignorierbefehle haben, werden alle Abfragen in das Protokoll geschrieben, solange die standardmäßige (aktive) Datenbank nicht mit einer der ignorierten Datenbanken übereinstimmt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top