cron.daily: "Target log not found in binlog index"

cron.daily: "Target log not found in binlog index"

am 20.06.2006 11:46:29 von Herbert Pophal

Hallo,

cron.daily schickt mir regelmäßig die mail:

| /etc/cron.daily/mysql-server:
| ERROR at line 1: Target log not found in binlog index
| run-parts: /etc/cron.daily/mysql-server exited with return code 1

und in /var/log/mysql finde ich jede Menge mysql.bin.*, die nicht
rotiert werden. Irgendwann ist dann die Platte voll. Vor dem Upgrade auf
4.1 lief das problemlos. Googeln erbrachte nichts über die Bedeutung der
Fehlermeldung, noch was zu tun ist, um das Problem zu beseitigen; nur
Listen von Fehlermeldungen ohne Erklärung und unbeantwortete Fragen.

Kann ich mit RESET MASTER oder PURGE MASTER LOGS hier etwas erreichen,
obwohl es sich ja nicht um einen Mysql-Master handelt?

Das Ganze findet statt auf Debian Sarge mit mysql 4.1. Eine andere
solche Installation bringt diesen Fehler nicht, offenbar weil das mysql
aus einem anderen repository kommt.

Herbert

Re: cron.daily: "Target log not found in binlog index"

am 20.06.2006 13:38:17 von Axel Schwenke

Herbert Pophal wrote:

>| /etc/cron.daily/mysql-server:
>| ERROR at line 1: Target log not found in binlog index
>| run-parts: /etc/cron.daily/mysql-server exited with return code 1

Es wurde versucht, ein Binlog per PURGE MASTER LOGS zu löschen, obwohl
es nicht im Binlog Index steht.

> und in /var/log/mysql finde ich jede Menge mysql.bin.*, die nicht
> rotiert werden. Irgendwann ist dann die Platte voll. Vor dem Upgrade auf
> 4.1 lief das problemlos.

Dann ist wohl das neue /etc/cron.daily/mysql-server subtil kaputt.
Oder dein Binlog-Indexfile (mysql.bin.index) ist borked. Oder die neue
my.cnf spezifiziert einen neuen Base-Namen für die Binlogs. Oder oder
oder.

> Kann ich mit RESET MASTER oder PURGE MASTER LOGS hier etwas erreichen,
> obwohl es sich ja nicht um einen Mysql-Master handelt?

Sobald eine MySQL-Instanz ein Binlog schreibt, kann sie ein Master
sein. Die genannten SQL-Statements dienen zum Management der Binlogs.
Unabhängig davon, ob das nun wirklich ein Master ist oder nicht.

> Das Ganze findet statt auf Debian Sarge mit mysql 4.1. Eine andere
> solche Installation bringt diesen Fehler nicht, offenbar weil das mysql
> aus einem anderen repository kommt.

Dann solltest du das funktionierende MySQL Package verwenden und dem
Maintainer des kaputten in den *rsch treten. OK, vielleicht ist es auch
einfach eine Unverträglichkeit des alten mit dem neuen Package.

Vielleicht möchtest du ja einfach die entsprechende Seite im MySQL-
Manual lesen und deine my.cnf und cron-daily/mysql-server anpassen:

http://dev.mysql.com/doc/refman/4.1/en/binary-log.html


XL

Re: cron.daily: "Target log not found in binlog index"

am 20.06.2006 14:41:33 von Herbert Pophal

Axel Schwenke wrote:
> Herbert Pophal wrote:
>
>
>>| /etc/cron.daily/mysql-server:
>>| ERROR at line 1: Target log not found in binlog index
>>| run-parts: /etc/cron.daily/mysql-server exited with return code 1
>
>
> Es wurde versucht, ein Binlog per PURGE MASTER LOGS zu löschen, obwohl
> es nicht im Binlog Index steht.
>
>
>>und in /var/log/mysql finde ich jede Menge mysql.bin.*, die nicht
>>rotiert werden. Irgendwann ist dann die Platte voll. Vor dem Upgrade auf
>>4.1 lief das problemlos.
>
>
> Dann ist wohl das neue /etc/cron.daily/mysql-server subtil kaputt.

Es gibt noch ein neueres: /etc/cron.daily/mysql-server.dpkg-dist. Das
produziert diesen Fehler nicht und räumt auch richtig auf. Es nimmt die
Ausgabe von SHOW MASTER LOGS anders auseinander. Das muss ich mir mal
genauer anschauen, was da abgeht.

> Oder dein Binlog-Indexfile (mysql.bin.index) ist borked. Oder die neue
> my.cnf spezifiziert einen neuen Base-Namen für die Binlogs. Oder oder

Nein.

> Vielleicht möchtest du ja einfach die entsprechende Seite im MySQL-
> Manual lesen und deine my.cnf und cron-daily/mysql-server anpassen:
>
> http://dev.mysql.com/doc/refman/4.1/en/binary-log.html

Das hatte ich getan, fand aber erst mal nichts, was die Meldung erklärt.

Danke für deine Hinweise. Wenn ich mehr Zeit in Mysql investiere,
bleiben wieder andere Sachen liegen. >Seufz<

Herbert

Re: cron.daily: "Target log not found in binlog index"

am 06.07.2006 10:20:06 von Juergen Kammer

Herbert Pophal wrote:
>
> Hallo,
>
> cron.daily schickt mir regelmäßig die mail:
>
> | /etc/cron.daily/mysql-server:
> | ERROR at line 1: Target log not found in binlog index
> | run-parts: /etc/cron.daily/mysql-server exited with return code 1
>
> und in /var/log/mysql finde ich jede Menge mysql.bin.*, die nicht
> rotiert werden. Irgendwann ist dann die Platte voll. Vor dem Upgrade auf
> 4.1 lief das problemlos. Googeln erbrachte nichts über die Bedeutung der
> Fehlermeldung, noch was zu tun ist, um das Problem zu beseitigen; nur
> Listen von Fehlermeldungen ohne Erklärung und unbeantwortete Fragen.
>
> Kann ich mit RESET MASTER oder PURGE MASTER LOGS hier etwas erreichen,
> obwohl es sich ja nicht um einen Mysql-Master handelt?
>
> Das Ganze findet statt auf Debian Sarge mit mysql 4.1. Eine andere
> solche Installation bringt diesen Fehler nicht, offenbar weil das mysql
> aus einem anderen repository kommt.
>
> Herbert

Im /etc/cron.daily/mysql-server ist ein Winz-Fehler drin. Am Skriptende
steht:

+ if [ `wc -l < $tmp` -gt $KEEP_BINARY_LOGS ]; then
+ filename=`tail -n $KEEP_BINARY_LOGS $tmp | head -n 1`
+ echo "PURGE MASTER LOGS TO '$filename';" | $M
+ fi

Im 'filename' steht leider nicht nur der Filename, sondern auch die Laenge
des Logs. Einfach die filename-Zeile ändern:

! filename=`tail -n $KEEP_BINARY_LOGS $tmp | head -n 1 | awk '{print $1}'`

und alles rennt.

Juergen.