phphulp db fout ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Roland -

- Roland -

21/04/2013 23:44:45
Quote Anchor link
vanmiddag was phphulp enige uren niet bruikbaar, een fout.
Bij de eerste Query (het rijtje links boven de 10 laatste berichten) verscheen ook een fout melding.

Wat was er aan de hand ?
Kunnen we hier nog wat van leren, voor onze eigen website (hosting) ?



Moderators ? Bas ? Kunnen jullie iets melden ?



Wat was er te zien ? :

- een eigen globale opmerking: fout in query..... (zonder specifikaties)

- maar de (waarschijnlijk) echte fout melding: Error writing file '/tmp/MYMvVOfS' (Errcode: 28)

- en er was een complete query te zien, waar zo op het oog geen fout in zat.
(Wat me wel opviel waren wel de quotes !! stukje sql : " FROM `php_forum_msgs` " )

Wat me interesseert...
Hoe kun je zomaar een fout krijgen van het schrijven naar tmp ?
(pad veranderd ?)
 
PHP hulp

PHP hulp

26/04/2024 16:34:21
 
Willem vp

Willem vp

21/04/2013 23:54:19
Quote Anchor link
- Roland - op 21/04/2013 23:44:45:
Hoe kun je zomaar een fout krijgen van het schrijven naar tmp ?
(pad veranderd ?)

Meest waarschijnlijke oorzaak: disk vol. Errcode 28 is de standaard foutcode om dit aan te geven.

Dat het pad veranderd is, lijkt me niet waarschijnlijk. Als je op een Unix-systeem /tmp hernoemt, dondert zo ongeveer de hele machine in elkaar. Zal het binnenkort voor de gein eens uitproberen. ;-)
Gewijzigd op 21/04/2013 23:56:23 door Willem vp
 
- Roland -

- Roland -

22/04/2013 00:23:07
Quote Anchor link
ja, vol, daar lijkt het op, maar ?

is het niet raar, disk ruimte vol bij een hoster !! (en dat uren lang)


En als je dan bij hoster kijkt staat op de site dat er geen problemen zijn !



Nb. hosters met 99.99% up time eigenlijk geloof ik het totaal niet ! Als het niet openbaar is en ze het gewoon niet vertellen, weet ja haast niemand het !!

[en misschien bedoelen ze zolang de meeste mensen het niet hebben gemerkt tellen we het niet mee.... ]
 
Ozzie PHP

Ozzie PHP

22/04/2013 00:42:23
Quote Anchor link
Je eigen schijfruimte kan toch ook vol zijn? Heeft toch niks met de hoster te maken? Je sluit een abonnement af voor een x aantal GB. En dan kan het zo zijn dat die ruimte een keer vol is.
 
Willem vp

Willem vp

22/04/2013 00:50:12
Quote Anchor link
Op alle Unix-systemen die ik installeer, staat /tmp op een apart volume. Heel veel software heeft namelijk de neiging om wel alles in /tmp neer te kwakken, maar het wordt vervolgens nooit meer opgeruimd (tot een cronjob eens een keer alle ouwe meuk weggooit). Door /tmp op een apart volume te zetten, voorkom je dat je datadisks vol kunnen raken wanneer er een keer extreem veel data naar /tmp wordt geschreven. Dat scheelt een boel integrity checks op je database-files.

Omdat /tmp in principe data bevat die niet lang bewaard hoeft te worden, is een dergelijk volume vaak ook niet heel erg groot (enkele honderden MB tot een paar GB) en kan het dus voorkomen dat daar een keer de rand van de disk bereikt is. Zelfs bij grote hosters. Voor software die geen (of weinig) gebruik maakt van /tmp is het ook geen probleem als dat volume vol zit, dus die blijft dan wel doorhobbelen.

Op onze servers wordt de ruimte in /tmp overigens ook niet gemonitord. Ik heb eigenlijk geen idee of dat bewust is, of dat het er tussendoor is geglipt.

Toevoeging op 22/04/2013 00:52:33:

Ozzie PHP op 22/04/2013 00:42:23:
Je eigen schijfruimte kan toch ook vol zijn? Heeft toch niks met de hoster te maken? Je sluit een abonnement af voor een x aantal GB. En dan kan het zo zijn dat die ruimte een keer vol is.

Gezien de foutmelding was het hier /tmp, en die valt niet bij alle hosters onder het quota-regime, omdat niemand die bij zijn volle verstand is daar gegevens neerzet die langer dan een paar minuten bewaard moeten worden.

Overigens is de foutcode als je je quota bereikt hebt ook anders: 122 (Disk quota exceeded)
Gewijzigd op 22/04/2013 00:56:07 door Willem vp
 
Jan R

Jan R

22/04/2013 08:20:46
Quote Anchor link
Dit was de totale foutmelding:
Er zat een fout in je SQL query!
Error writing file '/tmp/MYRD9hNW' (Errcode: 28)
Query:
SELECT id,cid,title,DATE_FORMAT(postdate, '%Y-%m-%d %H:%i:%s') as last_post,DATE_FORMAT(replydate, '%Y-%m-%d %H:%i:%s') as last_reply FROM `php_forum_msgs` WHERE closed IS NULL AND cid != 5 AND cid != 24 AND cid != 7 ORDER BY `replydate` DESC,`postdate` DESC LIMIT 0,10
 
Bas IJzelendoorn

Bas IJzelendoorn

22/04/2013 10:13:22
Quote Anchor link
PHPhulp was inderdaad gister een tijdje niet bereikbaar. Excuses voor het ongemak. Het mij niet precies bekend wat de problemen veroorzaakte ik zal hier intern nog even na vraag over doen.
 
Kees Schepers

kees Schepers

22/04/2013 10:29:52
Quote Anchor link
Zo te zien ging het dus fout bij het maken van een tmp table, wat ook weer duidt op een niet optimale query ;) Hoewel je er niet altijd omheen kan.
 
- Roland -

- Roland -

22/04/2013 11:11:26
Quote Anchor link
@kees

kun je dat uitleggen ?

Is er een (rechtstreeks) verband met je query en het wel of niet gebruik van tmp bestanden ?
Gewijzigd op 22/04/2013 11:12:15 door - Roland -
 
Bas IJzelendoorn

Bas IJzelendoorn

23/04/2013 13:48:49
Quote Anchor link
Als belooft zou ik hier op terug komen:

Er waren wat webhosting problemen, hierdoor was de MySQL tmp dir even in de war.
 
Kees Schepers

kees Schepers

23/04/2013 14:10:29
Quote Anchor link
@Roland, MySQL gaat tmp tables maken als je uit memory loopt. Dit komt snel voor als je queryies doet met een group by of order by soms ook. Plat gezegd; Mysql selecteerd eerst de gegevens uit de database plaatst ze in memory en sorteert ze vervolgens.

Wanneer MySQL niet voldoende geheugen heeft (dit kun je instellen in my.cnf in /etc/mysql/ meestal) dan zal het je /tmp file storage gebruiken om dit te doen. Je kunt dit voorkomen door meer geheugen toe te kennen of nog beter je query te optimaliseren. Als je "EXPLAIN SELECT ..." uitvoert dan kun je zien of hij tmp tables gebruikt.
 
Willem vp

Willem vp

23/04/2013 23:35:35
Quote Anchor link
Kees Schepers op 23/04/2013 14:10:29:
@Roland, MySQL gaat tmp tables maken als je uit memory loopt.

Daarnaast kun je ook zelf temporary tables aanmaken. Je zou met select-queries data uit verschillende tabellen kunnen trekken en opslaan in een tmp-tabel. Daarna kun je weer queries loslaten op je tmp-tabel met (voorbewerkte) data. Vooral bij grote databases kan dit een aanzienlijke winst geven in performance, query-complexiteit en geheugengebruik.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.