| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| ¯\_(ツ)_/¯ Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Wenn die Datenbank auf einem Cluster liegen würde bräuchtest du ebenfalls nur eine Verbindungskennung. Wo die Daten genau liegen regelt die SQL Software. Ich will hier gar nicht gegen mysql_close() sprechen. Ich hab selber am Ende des Skriptes diesen Funktionsaufruf. Zitat:
Da ergibt sich für mich kein Sinn. Ebenfalls kann ich nicht nachvollziehen wo bei dir jetzt notwendig ist dass du mysql_close() überhaupt einsetzt. Zum Thema Logfiles. Ich weiß nicht wieso überhaupt ein "falscher" Query bei dir passieren sollte. Bei mir ist es so dass ein Fehler nur DANN kommt wenn, keine Verbindung zur DB existiert ODER ich schlecht programmiert habe und z.B. einen Query vergessen habe zu escapen etc. Daher brauche ich so einen Errorreport nicht wirklich. Während ich entwickle werden mir Querys, die nicht funktionieren, direkt auf der HTML Seite angezeigt, bei Bedarf kann ich auch über Parameter bei dem Queryaufruf den Query als String ausgeben lassen. Daher macht für mich ein Errorreport nur Sinn falls mal deine DB spinnt und es keine Verbindung zu ihr existiert. Aber sonst treten bei mir keine Fehler auf. Was mich aber viel mehr interessiert, wieso du 17 verschiedene Datenbanken hast.
__________________ ▇█▓▒░◕‿‿◕░▒▓█▇ | |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 13.05.2006
Beiträge: 434
![]() | Sorry, war ein wenig im Untergrund verschwunden und musste hierzu jetzt erstmal wieder den Thread ausbuddeln ... Im Moment, da gebe ich euch beiden recht, ist das Modell "17 DB auf einem Server" unsinnig. Es kommen aber immer mehr Datenbanken hinzu, die - exakt! - langfristig zu einem Cluster auf eigenen Maschinen verarbeitet werden sollen; also ausgelagert und als "stand-alone" rennen - unabhängig von den anderen "Problemen" (sofern welche auf anderen Servern auftreten). Somit gibt es später quasi einen Hauptserver, der die reinen DB-Server entsprechend anspricht und die User ihre Infos von dort bekommen ... Es ist jetzt nicht (!) so, dass jeder User Zugriff auf alle 17 Datenbanken hat - neeee. Das wäre ja ... haha ... naja ... das wäre ja nun wirklich sau-dumm gelöst. Maximal nutzt ein User 2 - 3 Datenbanken davon. Um mal eben das "ergibt keinen Sinn" aus Erfahrung zu erklären: Ich habe ein projektinternes Forum, wo wirklich nur Leute rein können, die aktiv am Projekt angemeldet sind. Das Forum hat aber z. B. auch eine eigene (!) DB, die auch in die Backup-Routine mit reinläuft. Vor rund einem Jahr ist das Forum komplett zerrissen ... wahrscheinlich aufgrund Einwirkung von außen. Würde dies jetzt z. B. wieder passieren, so habe ich den Ausfall fürs Forum - nicht fürs ganze Projekt. Fällt eine projektbezogene Datenbank aufgrund von irgendwas aus, so fallen nicht alle anderen gleich mit aus - daher habe ich es getrennt! Es gibt Abfragen, die laufen auch über mehrere Datenbanken - z. B., wieviele Plätze noch frei sind in der Datenbank. Hierzu übergebe ich jetzt nur noch die Kennung (!) an meine Klasse und die macht den Rest - anschließend wird diese Verbindung gleich geschlossen (eine Schleife - der nächste Zugriff geht auf eine andere DB mit anderer Kennung). Jetzt tritt hier meinetwegen ein Fehler auf ... die Datenbank ist nicht erreichbar. Anstatt, dass der User jetzt eine Errormeldung bekommt, bekommt dieser einen Standardtext über einen aufgetretenen Fehler. Im Hintergrund bekomme ich aufgrund dieses Errors sofort eine Mail - mittlerweile sogar noch eine SMS, wenn irgendwas auf dem Live-Server unrund läuft. Ich fasse mal zusammen: - 17 DBs, weil später ein Clusternetzwerk kommen soll - raucht eine Datenbank ab, sind nicht automatisch alle anderen User betroffen - die Klasse, weil jede DB eine eigene Kennung erfordert aufgrund User/Pw - die Kennung wird über das Login für den User erstellt - er kann dann nur da hin! - mysql_close() benutze ich in meiner Klasse, da an dieser Stelle von mir bei Bedarf ein Errorlog per Mail/SMS verschickt wird *puh* ... gestern hatte ich übrigens eine Demo, wo ein solcher Fehler auftrat. Es fehlte ein FROM in einem Query - albern, jo und durchaus auch ein Flüchtigkeitsfehler meinerseits (Copy/Paste zu weit gezogen). Aber anstatt, dass man als Benutzer nun eine kryptische Fehlermeldung mit mysql_error() etc. bekommt, stand da nur, dass es halt gerade net geht ... die Email war sofort da, es stand inkl. Zeile drin, wo es klemmt, behoben und lief sofort ... der Mensch, der das hier beäugte, war schwer beeindruckt. @ Razor: Während ich progge, werde mir auch Fehler direkt angezeigt ... aber das soll eben auf der Live-Maschine nicht mehr so sein und ich will mir ersparen, Log-Files vom Server zu lesen. Mehr Fragen? Mehr Antworten! Können ja sonst auch mal Telefonieren ... no problem!
__________________ Manche Menschen sind wie Schnitzel - nicht zäh, aber beidseitig bekloppt! |
| | |
| | |
| ¯\_(ツ)_/¯ Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Hi, cool dass du einen Weg aus dem Underground gefunden hast und dich nochmal gemeldet hast! Wenn du eine getrennte Entwicklungs, Test und Produktionsumgebung hast, kannst du sicher sein dass ein Query richtig laufen wird! Sowas wie ein "Flüchtigkeitsfehler" sollte doch wirklich nur dann passieren wenn du direkt in der Produktionsversion arbeitest. Bevor ich mir jetzt eine Methode implementiere um solche Fälle abzufangen, trenne ich doch lieber gleich die Bereiche und teste meine neuen Versionen erstmal bis sie funktionieren. Damit sollten fehlerhafte Querys auf jeden Fall entdeckt werden! Was dann noch an Fehlern übrig bleibt ist sicher nicht in Querys zu suchen und wenn dann sind es logische Fehler wie fehlende Bedinungen oder falsche Verknüpfungen, die aber für die DB trotzdem einen korrekten Query darstellen. Und von deinem System nicht bemerkt werden würden. Wenn du später wirklich mal ein Clusternetzwerk einführen möchtest, dann hast du mit 17 verschiedenen DBs aber einen Konzeptionsfehler! Ein Cluster funktioniert so dass du einen Load Balancer hast der die Anfrage an die Datenbank auf die verschiedenen Nodes verteilt. (Gibt auch andere Methoden aber vom Nutzer der DB sieht es nach Außen hin gleich mit meiner beschriebenen Version aus!) Das regelt das Datenbanksystem intern, nach außen hin sieht alles wie ein einziger DB-Server aus! Das bedeutet für dich dass du natürlich auch nur eine einzige Verbindungskennung und damit nur einmal Zugangsdaten brauchst. Dahinter steckt ja auch der Sinn und Zweck eines Clusters dass er beliebig skalierbar bleibt OHNE dass die Applikation die darauf läuft geändert werden muss. Darum sind Cluster auch ne super interessante Sache! Was mir jetzt noch einleuchtet ist die Ausfallsicherheit! Klar wenn der eine Server abkackt ist nur ein Teil deiner Applikation davon betroffen. Auf der anderen Seite, wenn du wirklich einen Cluster hast, dann hast du erst recht kein Problem mehr mit Ausfällen! Dann laufen alle deine Applikationen weiter ohne das auch nur eine Einzige ausfallen würde! Da die Nodes synchronisiert werden läuft deine Applikation einfach auf einem anderen Node weiter, ohne dass der User etwas davon mitbekommt. Der Node kann dann später ausgetauscht werden, Benachrichtigung des Admins kann man bestimmt auch einstellen. -> Wieder ein spannender Punkt in Sachen Cluster! Und, wie schon gesagt, das alles über eine Verbindungskennung läuft! Die Skalierung, die Ausfälle verschiedener Nodes, das alles organisiert die DB-Software selber ohne dass du dir Sorgen machen musst. Die Frage ist auch ob die Performance bei verschiedenen Kennungen wirklich besser wird, ich denke einen Großteil der Zeit braucht eine Applikation um eine Verbindung zur Datenbank herzustellen, der Query danach wird wohl nicht so lange dauern. |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Array Inhalte in eine Datenbank über tragen | Munsi1 | PHP Tipps 2008 | 5 | 11.04.2008 13:28 |
| datenbank auf andere kopieren geht nicht! | Kevin | Datenbanken | 1 | 18.08.2007 23:20 |
| Sql Datenbank durchsuchen und vergleichen | Teambyte | PHP Tipps 2006 | 5 | 14.09.2006 11:11 |
| Verbindung zu einer Datenbank im LAN | Datenbanken | 11 | 25.09.2005 12:18 | |
| Mehrere Anwendungen eine Datenbank... | Datenbanken | 5 | 15.08.2005 11:22 | |
| mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:33 | |
| [Erledigt] mysql datenbank anlegen...aber WIE??? | PHP Tipps 2005-2 | 0 | 05.08.2005 19:33 | |
| mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:32 | |
| [Erledigt] mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:31 | |
| [Erledigt] mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:31 | |
| [Erledigt] mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:29 | |
| [Erledigt] mysql datenbank anlegen...aber WIE??? | Datenbanken | 0 | 05.08.2005 19:29 | |
| Datenbank verschieben | PHP Tipps 2005-2 | 4 | 03.08.2005 15:45 | |
| [Erledigt] Seiten in PHP mit Datenbank | PHP Tipps 2005-2 | 3 | 24.07.2005 09:07 | |
| Bilder aus der Datenbank | Skazi | Datenbanken | 2 | 09.02.2005 13:42 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php datenbank schließen, datenbank schließen, datenbank schließen php, php datenbankverbindung schließen, php datenbank schliessen, sql datenbank schließen, mysql datenbank schließen, datenbank schliessen php, datenbank schliessen, mysql datenbank schliessen, php db schließen, php db verbindung schließen, mysql datenbankverbindung schließen, datenbankverbindung schließen, php verbindung zur datenbank schließen, sql datenbank schliessen, datenbank schließen mysql, php datenbank beenden, php datenbankverbindung beenden, php datenbank close |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.