Mailinglisten-Archive |
Hallo Alex, > -----Original Message----- > From: Alexander Safaric [mailto:a.safaric_(at)_ecc-handel.de] > Folgende Frage an Euch: Ist es auf einem MySQL-Server, auf dem mehre > Datenbanken betrieben werden, möglich, verschiedene Log-Files gleichzeitig > zu betreiben, z.B. die Standard Log-File für alle Datenbanken und eine > zusätzliche Log-File nur für zwei spezielle Datenbanken? Mir ist keine diesbezügliche Option bekannt. Man könnte natürlich für jeden Kunden eine eigene Serverinstanz starten (mit eigenem Port & Lockfile). Aber das ist sicherlich auch nicht erwünscht, ist auch nicht gerade Speichereffektiv. Was mir dazu einfällt ist, daß man das Log-File nachträglich splittet. D.h. daß zyklisch (cron) ein "flush logs" ausführt. Dann mit mysqlbinlog -s das Binary log in Textform bringt. Und die Textdatei dann durch einen Parser jagt, der die Datei abhängig von der jeweilig verwendeten Datenbank aufteilt. In der Textdatei steht vor jedem Statement, bzw vor jeder Gruppe von Statements für eine DB eine Zeile mit "use <dbname>;" anhand derer man die Datenbank identifizieren kann. Ein Nachteil ist natürlich, daß die Logs nicht direkt in der gewünschten Splittung vorliegen, sondern erst nach einem gewissen Zeitraum (der Abstand in dem die Logs gewandelt werden, z.B. alle Minute). Ein weiterer Nachteil ist, daß falls ein Kunde Zugriff auf mehrere Datenbanken hat, so nicht erkannt wird, wenn Datenbankübergreifende Aktionen geloggt werden (Datenbankprefix vor Tabellenname). Gruss, Michael Donning --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive