session table voll ?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
fussle
Mitglied
Beiträge: 1250
Registriert: 25.06.2002 07:31

session table voll ?

Beitrag von fussle »

hatte gerade eben folgende fehlermeldung:

Code: Alles auswählen

Warning: Failed opening './language/lang_english/lang_main.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/xxx/forum/includes/functions.php on line 616
phpBB : 

Error creating new session

DEBUG MODE

SQL Error : 1114 The table 'phpbb_sessions' is full

INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) VALUES ('cde0fb6ccefca89c9361efcb36a0312c', -1, 1055309836, 1055309836, 'd9e1af52', 27, 0)

Line : 152
File : /home/xxx/forum/includes/sessions.php 
woran liegt es ? hab gestern den DB Maintenance Mod 0.9.0 eingebaut.
nach dem leeren der table via phpmyadmin funktionierte wieder alles.

nachtrag: folgende funktion hab ich genutzt:
Konvertiere Sitzungs-Tabelle - Diese Funktion konvertiert die Sitzungs-Tabelle zum HEAP-Tabellen-Typ. Dies wird normalerweise automatisch während der Installation gemacht, um die Geschwindigkeit von phpBB etwas zu verbessern. Diese Funktion sollte nur ausgeführt werden, wenn die Sitzungs-Tabelle keine HEAP-Tabelle ist.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

War nicht ganz die richtige Funktion (das Leeren der Sitzungsdaten hätte ausgereicht) - aber vom Ergebnis her sollte es aufs gleiche kommen.
Zum Fehler selbst: kann ab und zu mal vorkommen, dass die Sitzungs-Tabelle voll läuft. Die Zahl der Einträge dort ist aus Sicherheitsgründen begrenzt - sonst wäre ggf. irgendwann die Sitzungstabelle so groß wie der ganze Arbeitsspeicher des Rechners...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
fussle
Mitglied
Beiträge: 1250
Registriert: 25.06.2002 07:31

Beitrag von fussle »

also ich hab danach erstmal die session_table gelöscht und folgende angelegt:

Code: Alles auswählen

CREATE TABLE `phpbb_sessions` (
  `session_id` char(32) NOT NULL default '',
  `session_user_id` mediumint(8) NOT NULL default '0',
  `session_start` int(11) NOT NULL default '0',
  `session_time` int(11) NOT NULL default '0',
  `session_ip` char(8) NOT NULL default '0',
  `session_page` int(11) NOT NULL default '0',
  `session_logged_in` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`session_id`),
  KEY `session_user_id` (`session_user_id`),
  KEY `session_id_ip_user_id` (`session_id`,`session_ip`,`session_user_id`)
) TYPE=HEAP;
seit dem gehts auch wieder ... muss ich jetzt noch irgendwas beachten ?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Du hast die Größenbegrenzung der HEAP-Tabelle vergessen. Die würde ich aus Sicherheitsgründen hinzufügen (frag mich jetzt aber bitte nicht, mit welchem Befehl - müsste ich später nachschauen). Da die Tabelle ausschließlich im Speicher existiert, läufst du sonst Gefahr, dass - wenn wieder was schief geht - der komplette Speicher durch die Session-Tabelle gefressen wird.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
fussle
Mitglied
Beiträge: 1250
Registriert: 25.06.2002 07:31

Beitrag von fussle »

@philipp - danke erstmal für die infos

:o - wäre klasse, wenn mal jemand den kompletten sql posten könnte
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

So, hier der SQL-Befehl:

Code: Alles auswählen

ALTER TABLE phpbb_sessions
    TYPE=HEAP MAX_ROWS=500
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
fussle
Mitglied
Beiträge: 1250
Registriert: 25.06.2002 07:31

Beitrag von fussle »

danke :grin:
Gast

Beitrag von Gast »

PhilippK hat geschrieben:So, hier der SQL-Befehl:

Code: Alles auswählen

ALTER TABLE phpbb_sessions
    TYPE=HEAP MAX_ROWS=500
Gruß, Philipp
Und was machst du wenn sich mehr als 500 User auf deinem Board tummeln? :o

Warum kann die Tabelle nicht im Typ MyISAM erstellt werden, und ohne Begrenzung laufen? :-?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

xGalaxius hat geschrieben:Und was machst du wenn sich mehr als 500 User auf deinem Board tummeln? :o
500 User gleichzeit online ist schon recht heftig - wenn du so viele haben solltest, wird's sowieso Zeit für 'nen anderes Datenbank-Konzept ;-)
xGalaxius hat geschrieben:Warum kann die Tabelle nicht im Typ MyISAM erstellt werden, und ohne Begrenzung laufen? :-?
Kann man natürlich auch - kostet etwas Performance und (wenn's nicht funzt) ist irgendwann die Platte voll.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Gast

Beitrag von Gast »

PhilippK hat geschrieben:
xGalaxius hat geschrieben:Und was machst du wenn sich mehr als 500 User auf deinem Board tummeln? :o
500 User gleichzeit online ist schon recht heftig - wenn du so viele haben solltest, wird's sowieso Zeit für 'nen anderes Datenbank-Konzept ;-)
Ist das phpBB dafür nicht geeignet? :o
Da habe ich aber ganz anderes vor! Ich hatte mir sogar schon eine Lizenz vom vBulletin gekauft deswegen, bin aber reumütig wieder zurückgekehrt, weil es geht einfach nichts über phpBB. :)

€dit:
Gestern hatte ich die Tabelle gelöscht (geleert), und tagsüber 10 Besucher oder so gehabt. Nachts hat dann Google gewütet:

Code: Alles auswählen

SQL-Befehl : [Bearbeiten] [SQL erklären] [PHP-Code erzeugen]
SELECT count( * ) 
FROM `phpbb1_sessions` 
WHERE session_user_id = - 1  




count( * )  
816
PhilippK hat geschrieben:
xGalaxius hat geschrieben:Warum kann die Tabelle nicht im Typ MyISAM erstellt werden, und ohne Begrenzung laufen? :-?
Kann man natürlich auch - kostet etwas Performance und (wenn's nicht funzt) ist irgendwann die Platte voll.
Warum? Werden die Einträge in der session table denn nie gelöscht (defaultmäßig)?

LG

Sascha
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“