DB Optimize "phpbb3 - Cronjob"

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
markus giersch
Mitglied
Beiträge: 674
Registriert: 03.04.2008 22:06
Wohnort: Frankfurt am Main
Kontaktdaten:

DB Optimize "phpbb3 - Cronjob"

Beitrag von markus giersch »

Hy, ich bin heute endlich dahinter gekommen wie ich unser Forum stabil halten kann.
Die Idee dazu bekam ich in diesem Thema:

- http://www.phpbb.de/community/viewtopic ... 6&t=130831

Eigentlich müsste phpbb3 sowas standartmäßig drinne haben, denn es ist ja bekannt das zu große Überhänge das Forum "killen". Nun gut, ich habe heute bei uns im Forum einen "Not-Knopf" (aus Sicherheit leider erstmal nur für Admins) eingebaut.Wenn man da drauf klicht wird eine php Datei ausgeführt die den Cronjob auch Manuell ausführt (eigentlich führt der Cronjob auch nur die PHP Datei in verschiedenen intervalen aus). Und siehe da, nach der Ausführung läuft das Forum.

Dadurch kam ich auf diese Idee

Es geht um diese Datei

zb optimize.php

Code: Alles auswählen

<?php
mysql_connect('localhost', 'benutzername', 'passwort');
mysql_select_db('db_name');

mysql_query("OPTIMIZE TABLE phpbb_tabelle");
mysql_query("OPTIMIZE TABLE phpbb_tabelle2");
usw...

mysql_close();
?>
Jetzt ist die Frage, wie bekomme ich es hin, das keiner die Inhalte/Datei kopieren oder einsehen kann, aber trotzdem die Anwendung ausführen kann? Wenn das möglich ist, kann man das auch außerhalb des "Adminbereichs" realisieren.

Das non plus ultra wäre jedoch wenn phpbb3 die Tabellen der DB selber ausliest und anschliesend in das Scribt oben einfügt. Das sollte ja möglich sein, denn beim DB Backup gehts ja auch ;-)
Als zweites non plus Ultra sollte der Board admin vieleicht die Möglichkeit haben diese Funktion "an" oder " aus" zu schalten. Und noch besser wäre es, wenn diese Funktion sogar mit der Uhrzeitfunktion des Forums resyncronisiert wird und somit intervale eingeben werden können, in dem das Scrippt automatisch ausgeführt wird.
Aus Sicherheitsgründen solltre man diese Funktion so programmieren, das sie nicht zwei mal paralel oder 10 mal hintereinder gedrückt werden kann, denn das zerschiest ja auch die DB. Sozusagen ein sperrre rein hauen.

Leider bin ich kein phpbb3 Profi und kenne die ganzen Präfixe und SQL Befehle nicht.
Aber die Idee habe ich ;-) Und es geht ja
phpbb wird noch mindestens 40 Jahre existieren!!! Wo? Hier: D-A-F | Demokratische Armee Fraktion! Darum brauchen wir euch noch min. 40 Jahre!!!
Benutzeravatar
markus giersch
Mitglied
Beiträge: 674
Registriert: 03.04.2008 22:06
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: DB Optimize "phpbb3 - Cronjob"

Beitrag von markus giersch »

Öffne eine leere Datei (die nennen wir nachher "optimize.php") und füge ein:
<?php
mysql_connect('localhost', 'benutzername', 'passwort');
mysql_select_db('db_name');

mysql_query("OPTIMIZE TABLE phpbb_tabelle");
mysql_query("OPTIMIZE TABLE phpbb_tabelle2");
usw...

mysql_close();
?>
Füge in 'localhost', 'benutzername' und 'passwort' die entsprechenden Zugangsdaten der Datenbank ein.
Um eine Optimierung der Datenbank durch führen zu können muss man die entsprechenden Tabellen die man optimieren will in den Rot Markierten Bereich einfügen.
Man kann die Tabellen der Datenbank im "Adminbereich" des Forums sehen unter "Backup" oder Alternativ in "phpmyAdmin". Man kann alle Tabellen des Forums oben in das Script einfügen, oder nur bestimmt. Je mehr Tabellen man optimieren möchte, desto länger wird auch die Liste.
Wenn man die Liste erstellt hat löscht man am Ende natürlich noch das "usw.." :lol:

Speichere diese Datei unter "adm/optimize.php"

Setze die optimize.php auf
chmod 711

Öffne root/adm/overall_footer.php
finde

Code: Alles auswählen

			{DEBUG_OUTPUT}
		<!-- ENDIF -->
füge danachauf einer neuen Zeile ein:

Code: Alles auswählen

<br><br><a href="adm/optimize.php" target="blanc">Datenbank Optimierung - jetzt!</a><br>
Speichern

Fertig.

Jetzt habt Ihr im Admin bereich ganz unten "Datenbank Optimierung - jetzt!" stehen.
Wenn Ihr dann drauf klickt sollten die Datenbanken die Ihr oben ins Scrippt eingegeben habt optimiert werden.

Falls euer Hoster es zulässt könnt Ihr die "adm/optimize.php" auch als "Cronjob" benutzen.

PS: Wartet bitte mit dem einbau dieses Snippets bis ein Moderator dieses Forums sagt das es OK ist!
Ich bin wie gesagt kein Profi und weis nicht ob dadurch irgendwas schief geht.
phpbb wird noch mindestens 40 Jahre existieren!!! Wo? Hier: D-A-F | Demokratische Armee Fraktion! Darum brauchen wir euch noch min. 40 Jahre!!!
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: DB Optimize "phpbb3 - Cronjob"

Beitrag von oxpus »

Mal eine bescheidene Frage, Markus:
Warum nicht MySQLDumper einsetzen, darüber per täglichen Cronjob die Datenbank sichern und zeitgleich (ist dabei einstellbar) die Tabellen vorher alle optimieren?
Geht viel bequemer, als ein neues Script zu schreiben und dabei wird auch gleich ein Backup angelegt...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
markus giersch
Mitglied
Beiträge: 674
Registriert: 03.04.2008 22:06
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: DB Optimize "phpbb3 - Cronjob"

Beitrag von markus giersch »

Es geht auch darum es als Cronjobfunktion des Servers zu benutzen.
Dann braucht man kein weiteres Programm.
Ich zB. habe keim mysql. Wozu sollte ich es mir holen?
Und jedesmal in phpmyadmin zu gehen ist auch nervig.

Und das DB Backup kann ich genauso im phpbb3 ausführen.

Das Snippet ist ja auch noch nicht ganz fertig. Ich will ja noch die Funktion einbauen das es vom Forum aus in gleichmäßigen intervalen ausgeführt wird. Sollte phpbb3 eigentlich standartmäßig drinne haben.

Ist doch schön wenn man alles mit phpbb3 machen kann, wozu noch zig andere Programme ;-)
phpbb wird noch mindestens 40 Jahre existieren!!! Wo? Hier: D-A-F | Demokratische Armee Fraktion! Darum brauchen wir euch noch min. 40 Jahre!!!
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: DB Optimize "phpbb3 - Cronjob"

Beitrag von oxpus »

Und Du meinst, eine Datenbanksicherung über das phpBB 3 ist vernünftig?
Mysqldumper wurde genau dafür gemacht und kann bequem neben dem eigentlichen Backup auch halt u. a. die Datenbank optimieren.
Und es wird auch auf Wunsch jede Datenbank von Dir auf einmal gesichert.
Bequemer geht es wirklich nicht.
Ich sehe aus meiner Sicht daher eher keinen Anlass, für eine Optimierung der Tabellen ein eigenes Script zu verfassen, wenn man neben diesem Wunsch auch gleich die Datenbank automatisch sichern kann.
Oder wie erstellst Du Backups Deiner Datenbank? Manuell?!?!?!?

Aber jeder wie er meint, war nur ein Vorschlag, halt Nützliches mit dem hier vorgetragenen Wunsch kombinieren zu können und damit halt gleich 2 Fliegen mit einer Klappe zu erschlagen...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
markus giersch
Mitglied
Beiträge: 674
Registriert: 03.04.2008 22:06
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: DB Optimize "phpbb3 - Cronjob"

Beitrag von markus giersch »

Ist ja klar das das nur eine zusatzfunktion ist.
Ich sage ja nicht das du nicht auch recht hast.
Aber kann man mit msqldumper in intervalen ein DB backup durchführen?
oxpus hat geschrieben:Oder wie erstellst Du Backups Deiner Datenbank? Manuell?!?!?!?
Ja, dafür ist die Funktion des Forums ja da ;-)
Ich mache ca. alle 100 Beiträge ein Backup.

Nun gut. Wie gesagt, soll ja nur ein ZUSATZFUNKTION sein.
Ich drücke jetzt zB. nur auf einen Knopf im Forum wenn es hängt, und schon läufts wieder.
Ich muss nichts weiter machen als diesen Knopf drücken. *für die ganz bequemen halt*

Abgesehen davon frage ich mich warum phpbb3 das nicht standartmäßig drinne hat.
Ich meine es ist doch bekannt das zu grpße Überhänge das Forum plätten. Und ein Laie hat keine Ahnung wie er das bewerkstelligen soll. Wenn ich es hin bekommen sollte dieses Snippet so hin zu biegen das es ab einer gewissen größe bei den Überhängen automatisch startet, so hat das phpbb3 Forum dann eine wirklich sehr gute Funktion die das Forum super Serverfreundlich macht. Ich merke es doch momentan selber. Vorher ist das Forum regelmäßig abgekratzt, jetzt nichts mehr (läuft bei mir bereits als Cronjob). Es rennt nonstop, Auch bei 50 Zugriffen in der gleichen Sekunde ohne danach zu haken ;-)
phpbb wird noch mindestens 40 Jahre existieren!!! Wo? Hier: D-A-F | Demokratische Armee Fraktion! Darum brauchen wir euch noch min. 40 Jahre!!!
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: DB Optimize "phpbb3 - Cronjob"

Beitrag von oxpus »

Also dass Überhänge in der Datenbank das Forum plätten ist eher nur bei wirklich sehr schwachen Servern bemerkbar.
Ich habe teilweise innerhalb meiner Backup-Zyklen (alle 24 Stunden) über 50 MB Überhang in der Datenbank und merke im Forum nichts davon.
So sollte es ja auch sein, da die Optimierung der Datenbanktabellen in der Regel eher nur Platz sparen, als dass die wirklich beschleunigen (regelmässig angewendet).
Der Dumper (als Mysqldumper) macht dazu ein Backup je nach zeitlicher Einstellung des betreffenden Cronjobs.
Und bequemer kann man nicht sichern, als über einen Cronjob mit dem Dumper. Manuell wäre mir der Aufwand viel zu hoch, ja gar viel zu zeitintensiv bei über 200 MB Datenbankgrösse mit ständig steigendem Volumen (alls DB's bei mir zusammengerechnet)...
Ich sehe auch daher eher keine Notwendigkeit, warum das phpBB 3 selber diese Funktion anbieten sollte, kann es doch schliesslich nicht wirklich was für Überhänge in der Datenbank...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“