[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