[Postfixbuch-users] MySQL Master-Master Replikation und Greylisting
Vadim Korschok
korschok at caritas-geldern.de
Fr Jul 18 23:45:49 CEST 2008
Hallo Leute,
ich habe folgendes Scenario: zwei MX Server die unter anderem Greylisting benutzen und eine replizierte Master-Master MySQL Datenbank verwenden.
Als greylisting-daemon verwende ich hier gld (http://www.gasmi.net/gld.html).
Meine MySQL konfiguration beider Server:
mx1: /etc/mysql/my.cnf
log-bin=/var/log/mysql/mysql_binary_log
binlog-do-db=GREYDATABASE # input the database which should be replicate d
binlog-ignore-db=mysql # input the database that should be ignored fo r replication
binlog-ignore-db=test
server-id=1
# master server settings
master-host=10.20.2.10 # IP des 2. Master Servers (mx2)
master-connect-retry=60 # num of seconds, default is 60
replicate-do-db=GREYDATABASE
replicate-same-server-id = 0
auto_increment_increment = 2
auto_increment_offset = 1
mx2: /etc/mysql/my.cnf
[mysqld]
log-bin=/var/log/mysql/mysql_binary_log
binlog-do-db=GREYDATABASE # input the database which should be replicated
binlog-ignore-db=mysql # input the database that should be ignored for replication
binlog-ignore-db=test
server-id=2
# master server settings
master-host=10.20.2.6 # IP des 1. Master Servers (mx1)
master-connect-retry=60 # num of seconds, default is 60
replicate-do-db=GREYDATABASE
replicate-same-server-id = 0
auto_increment_increment = 2
auto_increment_offset = 2
Beide Server sind sowohl Slave des anderen Masters als auch Master des anderen Slaves zugleich.
MySQL gibt immer diesen Fehler aus:
Last_Errno: 1062
Last_Error: Error 'Duplicate entry 'xxx.xxx.xxx.xxx-absender at web.de-empfaenger@domain.' for key 1' on query. Default database: 'GREYDATABASE'. Query: 'insert into greylist values('xxx.xxx.xxx.xxx','absender at web.de','empfaenger at domain.de',1216132908,1216132908,1)'
Derzeit löse ich das Problem mindestens einmal täglich mit diesen commands:
# SOLVING AUTO-INCREMENT CONFLICTS
# in both nodes
STOP SLAVE;
RESET MASTER;
RESET SLAVE;
Then do on both
SLAVE START;
Nach erkundigungen im #mysql channel, sagte man mir anhand der Error-Logs, dass gld zeitgleich versucht auf die Datenbank zu schreiben, da DNS-Round-Robin verwendet wird.
Die Frage ist jetzt, kann man gld irgendwie modifizieren, so dass er nicht versucht zeitgleich in die Datenbank zu schreiben ? Eine Art delay...
Ich habe bei gld die Option "ERRACCEPT=1" aktiviert, aber durch diese häufigen Ausfälle könnte ich greylisting auch gleich deaktivieren...
Ich möchte aufjedenfall spätestens beim zweiten zustellversuch eine E-Mail erfolgreich zustellen.
Gruß
V. Korschok
Mehr Informationen über die Mailingliste Postfixbuch-users