Seite 1 von 2

Muss man während eines Backups das Forum schliessen?

Verfasst: 03.01.2007 19:13
von greezie
Hallo,

eine Frage:

Muss man während eines Backups das Forum sperren? Denn wenn ich ein Backup machen will im offenen Modus kann es dann nicht durch gleiche DB Änderungen von Usern zu einem inkosistenten Zustand kommen?

Oder werden da Locks gesetzt??

Also ich möchte FTP und SQL sichern aber ich weiss nicht ob das Forum dazu geschlossen werden muss.

Danke im Voraus.

Verfasst: 03.01.2007 19:19
von groli91
hi,

nein du musst das forum nicht schliesen, aber wen nach dem bachup ein beitrag geschrieben wurde, ist der natürchliich nicht mehr dabei, das gleiche passiert wenn sich ein neuer user anmelded :wink:

lg
groli

Verfasst: 03.01.2007 19:21
von Miriam
Prinzipiell musst Du es nicht sperren, weil die Sicherung als solches Daten ausliest und nicht ändert.
Es könnte aber beispielsweise sein, dass zur selben Zeit ein User sich neu anmeldet, das Sicherungsscript die Usertabelle zwar schon gesichert hatte aber die Gruppen- und Usergruppentabelle noch nicht.
Und schon hast Du Tabellen, deren Inhalte nicht mehr zueinander passen.

Verfasst: 03.01.2007 22:30
von greezie
Miriam hat geschrieben:Prinzipiell musst Du es nicht sperren, weil die Sicherung als solches Daten ausliest und nicht ändert.
Es könnte aber beispielsweise sein, dass zur selben Zeit ein User sich neu anmeldet, das Sicherungsscript die Usertabelle zwar schon gesichert hatte aber die Gruppen- und Usergruppentabelle noch nicht.
Und schon hast Du Tabellen, deren Inhalte nicht mehr zueinander passen.
und wie löse ich das problem? forum sperren oder?

Verfasst: 03.01.2007 22:40
von nickvergessen
jop genau

Verfasst: 04.01.2007 01:35
von greezie
geht das auch weniger radikal?

Verfasst: 04.01.2007 11:42
von nickvergessen
das is doch nich radikal...
Das dauert je nach Datenbank nur 1-20Minuten.
Wenn du das deinen Usern nicht zumuten willst, dann stell dir nachts nen Wecker.

Verfasst: 04.01.2007 12:21
von cYbercOsmOnauT
Darf ich mal dazwischengehen. Solange Du es nicht spät in der Nacht machst, wo sowieso niemand auf Deinem Board ist, solltest Du auf jeden Fall Dein Board sperren bevor Du ein Db Backup ziehst.

Wieso? Ganz einfach erklärt:

So ein Backup dauert seine Zeit und ist nicht binnen Sekunden getan. Wenn während dieser Zeit zufällig ein Posting erstellt wird, wird nicht nur 1 Tabelle verändert, sondern derer 7 (sollte der eine Umfrage starten sogar gleich 10). Es kann und wird somit zu Problemen kommen wenn ihr das Backup wieder aufspielt und ihr müsst dann wieder mit DB Maintenance versuchen es gerade zu biegen.

Was spricht also dagegen diesem Problem sofort zu begegnen und das ach so wichtige Board mal 5 Minuten zu deaktivieren? Die Welt geht dann bestimmt nicht unter. ;)

Grüße,
Tekin

P.S.: Wenn ihr die Anzahl der Tabellen nicht glaubt, hier die alphabetische Auflistung:
  • phpbb_forums - Die Werte forum_posts (Anzahl der Postings im Forum), forum_topics (Anzahl der Topics im Forum) und forum_last_post_id (ID des letzten Postings im Forum).
  • phpbb_posts - Die Werte des neuen Postings werden eingefügt.
  • phpbb_posts_text - Der Text des neuen Postings wird eingefügt.
  • phpbb_search_wordlist - Mögliche neue "Wörter" werden gespeichert.
  • phpbb_search_wordmatch - Passende Postings zu den neuen "Wörter" werden gespeichert.
  • phpbb_topics - Falls das neue Posting ein neues Topic sein sollte, werden die Werte des neuen Threads eingefügt.
  • phpbb_users - Der Wert von user_posts wird angepasst.
Bei einer Umfrage kommen die 3 vote-Tabellen noch hinzu und erwähnenswert wäre noch die Änderung an phpbb_topics_watch falls einer auf "Bei Antworten zu diesem Thema benachrichtigen" klickt.

Noch Fragen ob man das Board deaktivieren sollte oder nicht? :D

Verfasst: 04.01.2007 13:14
von PhilippK
Ich will hier auch noch mal ein klares Jein einwerfen. Denn es kommt auf die genaue Situation an.

Bei einer klassischen Installation auf MySQL mit MyISAM-Tabellen ist ein Backup mit gesperrtem Board aus oben genannten Gründen der beste Weg. Alternativ gibt es noch ein kleines MySQL-Tool, dass eine Sperre unnötig macht (bzw. sie selbst vornimmt): http://dev.mysql.com/doc/refman/5.0/en/ ... tcopy.html . Aber auf das musst du eben Zugriff haben.

Bei InnoDB-Tabellen sieht es etwas besser aus, da hier sog. Transaktionen verwendet werden können. Dazu kennt der MySQL-Befehl mysqldump den Parameter --single-transaction. Auch in phpMyAdmin steht eine Option "Export in einer Transaktion zusammenfassen" zur Verfügung. Durch die Zusammenfassung in einer Transaktion wird sichergestellt, dass du genau den Zustand sicherst, der zu Beginn der Transaktion existierte. Änderungen, die dann während des Backups passieren, haben keinen Einfluss auf das Backup.

Generell muss man sich auch vor Augen halten: der Faktor, der Zeit kostet, ist nicht das Backup selbst sondern der Download des selbigen. Wenn das Backup also erst einmal auf dem Server zwischengespeichert werden kann, ist das meist der Weg, bei dem die Sperre kürzer ausfallen kann.

Gruß, Philipp

Verfasst: 04.01.2007 23:29
von greezie
ok leute danke ich werde die backups nachts machen und das forum sperren.

philK bei deiner antwort versteh ich nur bahnhof. aber dennoch danke für d antwort

sperren und dann is man auf der sicheren seite und gut is.