• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SuSE 11.2 - dup von 11.1 bin log und slow log?

Hallo :)

Ehm ich habe von SuSE 11.1 auf 11.2 aktualisiert. Dabei auch ein upgrade der MySQL gemacht. Dazu gibts ein howto. Da hab ich mich also durchgearbeitet:
http://dev.mysql.com/doc/refman/5.1/en/upgrade.html
Und jetzt gibts ja ein paar Neuerungen usw... ?

Jedenfalls hab ich eine Schwierigkeit. Mein Rechner ist ja nen Desktop mit Apache2 mit dem ich so einiges ausprobiere... CMS'e und wikis usw.

Dann starte ich die Kiste auch öfter mal neu und schalte sie auch mal öfter ab, im gegensatz zu einem Rootserver der immer laufen würde.

Jedenfalls hab ich in:
Code:
/var/lib/mysql
Um die 83 logfiles? (Tendenz steigend)...
Die heissen dann beispielsweise so:
Code:
mysql-bin.000047
Mit fortlaufender Nummer... diese werden auch irgendwie in einer indexdatei aufgelistet. Und mit jedem rcmysql stop und start gibts ein neues log. Es gibt einen befehl, mit dem man bei Laufzeit diese logs quasi purgen kann. Damit kann ich derzeit öfters aufräumen. (Muss ich?). Das steht hier beschrieben:
http://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html

Womit ich schwierigkeiten habe ist folgendes:
Warum wird dieses log überhaupt erstellt?
Kann ich da ne rotation einstellen für? Sage mal höchstens 10 Stück?
Das Aufräumen da automatisieren?

Dann hat die MySQL version eben noch so nen query log und slow log oder so als Neuerung. Da hab ich festgestellt, dass er in eine CSV datei reinarbeitet. Ehm dies sei der Dokumentation nach vorteilhaft?

Ich selbst verstehe nicht, was daran ein Vorteil für mich sein soll. Ich wüsste quasi gerne ob ich das deaktivieren kann? Und wie?

Weil wenn ich eine Datenbankpflege mache. (Einmal am Tag) läuft automatisiert bei mir:
- mysqlcheck (wartung und pflege)
- myisamchk (wartung und pflege)
- mysqldump (backup)
Und nen backup wo mysql nicht läuft --- kurz. Weil das braucht ja auch myisamchk... da sollte die MySQL nicht laufen.
Für Mysqlcheck muss sie das, soweit ich mich recht erinnere.

Jedenfalls gibt es aufgrund des loggens in eine CSV datei dafür Fehlermeldungen bei der Pflege weil so eine Tabelle freilich nicht optimiert werden kann. Das ist dann in den Emails die ich von Cron bekomme unschön.

Und ich verwende lieber switches wie "--all-databases" und $mysqlverzeichnis/*/*.MYI bevor ich alle DB's und Dateien einzeln aufführen muss.

Kann ich da was machen? Das logging abschalten? Brauch ich das? Wie geht es?

Code:
mysql-5.1.36-6.7.2.i586

Vielen Dank für die Hilfe!

Gruß,

R

PS.: Falls die Frage nach der Fehlermeldung kommt (Ausgabe meines Cronjob scripts):
Code:
##                                                  
# MySQL check N repair!! ::                         
#                                                   
# diese Befehlsabfolge soll der Wartung, Pflege und Reparatur der MySQL
# Datenbanken mittels myisamchk sowie mysqlcheck dienen. Es startet    
# weiter eine Optimierung der Datenbank! Falls die Ausgabe Fehler aufweisen
# sollte, muss die Ausgabe bitte sicherheitshalber manuell ggf. repariert werden.
##                                                                               

##
# rcmysql rennt!...
##                 

# Für myisamchk sollte MySQL beendet sein!:

Shutting down service MySQL                                                                                                                                                                                                      done
MyISAM ChekNrepair ...                                                                                                                                                                                                               
Starting service MySQL                                                                                                                                                                                                           done
myisamchk                                       [done]                                                                                                                                                                               
Starte Analyse der MySQL ... mysql.general_log                                                                                                                                                                                       
note     : The storage engine for the table doesn't support analyze                                                                                                                                                                  
mysql.slow_log                                                                                                                                                                                                                       
note     : The storage engine for the table doesn't support analyze                                                                                                                                                                  
                        [done]                                                                                                                                                                                                       
Optimierung der MySQL!     ...mysql.general_log                                                                                                                                                                                      
note     : The storage engine for the table doesn't support optimize                                                                                                                                                                 
mysql.slow_log                                                                                                                                                                                                                       
note     : The storage engine for the table doesn't support optimize                                                                                                                                                                 
                        [done]                                                                                                                                                                                                       
Automatische Reparatur      ...mysql.general_log                                                                                                                                                                                     
Error    : You can't use locks with log tables.                                                                                                                                                                                      
mysql.slow_log                                                                                                                                                                                                                       
Error    : You can't use locks with log tables.                                                                                                                                                                                      
                        [done]                                                                                                                                                                                                       

##
# Achtung! nur die hier angegebenen Datenbankschemata werden gedumpt!..
##

Dumping Database mysql...                       [done]
Dumping Database information_schema...          [done]
Dumping Database joomla...                      [done]
Dumping Database disk...                        [done]
Dumping Database SQLDAP...                      [done]
Dumping Database forum...                       [done]
Dumping Database bacula...                      [done]
Dumping Database zikula...                      [done]
Dumping Database phpmyadmin...                  [done]
Dumping Database phplist...                     [done]
Dumping Database db_nagiosql_v2...              [done]
Dumping Database wordpress_db...                [done]
Dumping Database pureftpd...                    [done]
Dumping Database otrs...                        [done]
Dumping Database wikidb...                      [done]

##
# Sichern im Zielpfad:
##

tar: Entferne führende „/“ von Elementnamen

##
# Cleanup:
##


##
# Bereinigung abgeschlossen! [OK]
##


##
# Alle Vorgaenge erfolgreich abgeschlossen!     [OK!]
##

##
# Falls hier Fehler gelistet wurden, bitte Eingreifen!!!
##
 
Langer Beitrag, die Frage geht jedoch etwas unter... suchst Du so was wie logrotate? Ich kenne mich allerdings nicht genügend mit MySQL aus um zu beurteilen, ob man die Anzahl der zu behaltenden logfiles nicht doch besser etwas höher ansetzt. Zehn logs erscheinen mir etwas spärlich.
 
Hi.

Also ich habe einmal in /var/log/mysql die normalen logfiles diese werden auch von logrotate schön im Zaum gehalten. Da ist eigentlich kein Problem. Diese Log möchte ich auch. Weil da sehe ich ja ob der server fehlerfrei startet.

Aber diese bin log sind ein neues feature und das legt sehr viel Zeug in /var/lib/mysql an was ich nicht möchte. Das möchte ich eigentlich deaktivieren oder auf 10 - 20 files begrenzen?

Ich würde fast sagen... "/var/lib/mysql läuft voll" ?

Und:
Bei der Wartung der Datenbank bekomme ich eine Fehlermeldung weil die mysql in eine CSV datei irgendwas protokolliert, das ich nicht kenne. Und CSV dateien kann man nicht analyzen und optimieren deswegen möchte ich das feature dass es bei der alten Version noch nicht gab eventuell auch deaktivieren oder richtig einstellen und benötige zu diesen beiden Punkten hilfe?

Wie und genau?

Danke nochmal... Ja vielleicht sogar sowas wie logrotate. Ich weiss nicht, ob es sowas dafür gibt.

Habe schon überlegt einen cronjob, der den purge befehl ausführt. Problem wäre aber der fortlaufende Dateiname.

Und schön ist das sogesehen auch nicht vorallem sind diese mysql-bin.0000xy binärdateien die ich garnicht einsehen kann.

Ich weiss nicht was darin gesammelt wird.

Gruß,

R
 
Schau Dir mal Deine my.cnf an, dort kann man dieses logging-Verhalten abknipsen. mysql-bin.-Dateien dokumentieren jegliche Veränderung an den verwalteten Datenbanken, wenn Du diese also häufig editierst wird auch viel geloggt.

Übrigens haben meine Recherchen gezeigt, dass dieses feature durchaus nicht neu ist.
 
revealed schrieb:
Aber diese bin log sind ein neues feature und das legt sehr viel Zeug in /var/lib/mysql an was ich nicht möchte. Das möchte ich eigentlich deaktivieren oder auf 10 - 20 files begrenzen?
Binary Logs gibts unter UN*X schon seit der 3.irgendwas Version und werden hauptsächlich für Replikation verwendet. In die Logs kommen alle SQL Queries die Daten verändern könnten.

Von der Beschreibung als Testrechner her würde ich sagen du kannst das abschalten, dazu in /etc/my.cnf alle Zeilen die mit "log-bin" beginnen auskommentieren und MySQL neustarten. Eine Begrenzung der Dateianzahl ist nicht vorgesehen da nicht sinnvoll.

revealed schrieb:
Bei der Wartung der Datenbank bekomme ich eine Fehlermeldung weil die mysql in eine CSV datei irgendwas protokolliert, das ich nicht kenne. Und CSV dateien kann man nicht analyzen und optimieren deswegen möchte ich das feature dass es bei der alten Version noch nicht gab eventuell auch deaktivieren oder richtig einstellen und benötige zu diesen beiden Punkten hilfe?
Ab 5.1 ist die interne mysql DB erweitert um Tabellen/Felder die die CSV Storage Engine verwenden, da sollte man mit den myisam* Kram die Finger von lassen. Das Feature lässt sich AFAIK nicht deaktivieren.
 
wow cool,

Danke für die Infos :) Sobald ich wieder Zeit habe, werde ich das angehen. Momentan muss das leider ein bisschen ruhen. (Ich besonders) :)

Ja testsystem trifft es recht gut. Dass mit der CSV engine klingt noch etwas komisch für mich, da muss ich drüber nachdenken. Werde wohl mit meinem Script doch einen kompromiss finden müssen. Bin gerade am überlegen, ob ich nicht all-databases switch benutzen könnte und eventuell bestimmte ausschliessen...

Hm...

Danke nochmal.

Gruß,

R
 
Aha ok ...

ich kommentiere gerade mal die Zeile aus...
Komisch ich habe eigentlich garkeine Replikation konfiguriert...
Code:
# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# binary logging format - mixed recommended
binlog_format=mixed
ich ändere es so:
Code:
# Replication Master Server (default)
# binary logging is required for replication
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed

Wenn mich gerade nicht alles täuscht, sieht das sehr gut aus :) Jetzt werde ich mal purgen...
Schön also das *für mich zumindest eines* Problem tritt nicht mehr auf :)

Jetzt ist noch die Frage.... wegen meinem Script und den CSV logs....
Und zwar verwende ich folgende Befehle:
Code:
### Zur MySQL
## Analyse: (chk)
echo -n "Starte Analyse der MySQL ... "
mysqlcheck --silent --analyze --all-databases -u $username --password=$password
echo  "                 [done]"
## Automatische Optimierung: (chk)
echo -n "Optimierung der MySQL!     ..."
mysqlcheck --silent -o --all-databases -u $username --password=$password
echo  "                 [done]"
## Automatische Reparatur:
echo -n "Automatische Reparatur      ..."
mysqlcheck --silent --auto-repair --all-databases -u $username --password=$password
gibt es bei mysqlcheck eine art Ausschlussfunktion?
Müsste ich jede Datenbank einzeln angeben?

Danke,

Gruß,

R

PS.: Ich hatte übrigens ein tar backup als script und das funktioniert jetzt auch wieder, weil beim beenden von MySQL was ich für den Script vorgesehen habe kein File erstellt wird, dass dann "changed as we read it.." wird. Das sollte soweit jetz alles gehen.
 
Oben