phpbar.de logo

Mailinglisten-Archive

AW: AW: Grenzen von MySQL

AW: AW: Grenzen von MySQL

Andreas Müller mysql at universalware.de
Don Mar 6 22:17:08 CET 2003


Hallo Gerhard,

> Was mich aber in dem Zusammenhang noch interessieren würde, ist
> Deine Interpretation des von Dir gebrauchten Begriffs
> "Datenverlustrisiko bei leicht beschädigter Datenbank".
>
> Was ist eine "leicht beschädigter Datenbank", wie kommt es dazu,
> welche Mittel gibt es zur Behebung dieser Probleme (evtl.
> DB-spezifisch)?

Wie es zu so einer Datenbank kommt ist oft recht unterschiedlich. Oft kommt
es dazu wenn der Server crasht, also nicht der SQL Dienst sondern die
Maschine an sich. Plattenausfälle, Controller-Probleme, Netzprobleme etc.
etc.
Teilweise sind das aber auch Probleme in der Datenbank selber.
Ich teste sowas gern indem ich bei massiven Schreiboperationen die Maschine
einfach ausschalte, das auch 1-2 mal wiederhole (Simulation
unbeaufsichtigter Stromausfälle).

Interbase:
Wird selbst auf stabil laufenden System zum Teil instabil ohne das
irgendetwas mit der Maschine passiert, Daten via Backup/Restore meist noch
zu retten. Zerstörung von Daten möglich vor allem wenn Dateigrößengrenze
erreicht ist oder Festplatte voll. Dann kann es zu irreparablen
Datenverlusten kommen meist sind aber Teile der Daten noch zu retten. Grund
für Datenverluste scheinen schwachstellen in der internen Datenverkettung zu
sein.

Oracle:
Hat die meistens Tests recht gut überstanden. Mit Boardmitteln war oft alles
bzw. sehr viel wiederherstellbar. Einmal aber Totalverlust. Da liegt die
Vermutung nahe das dieser Fall von Inkosistenz in den Reparaturtools nicht
vorgesehen war. Alles in allem rech stabil von den Daten her aber nicht ganz
ungefährlich. Besser sind da mind 2. Server mit Replikation. Probleme hatte
ich wie schon gesagt mit großen Tabellen und Indizes (mehr als 25 Millionen
Datensätze). Und mit schnellem schreiben:
Wenn man Oracle richtig unter Strom setzt kann es passieren das es sich
totläuft: Der Logbereich wird zu langsam vergrößert es kommt zu nem Fehler
da kein Log geschrieben werden kann, dieser Fehler soll auch geloggt werden,
kein Platz -> DB Server steht. Habe ich mehrfach auf Win32 System
nachvollziehen können. Praktisch äußerst riskant -> guter Admin nötig.

DB2:
Kann man fast das gleiche wie bei Oracle sagen.

MS-SQL:
Beschädigte Datenbanken sind aufgrund recht weniger Reparaturmittel ein
Problem. Schon 2 Komplettverluste von Aktivdatenbanken gehabt, aber dank
Replikation und regelmäßigen Backups kein Problem. Da ein Backup hier nichts
weite ist als das kopieren der Originaldaten (fast, bissel was macht die da
schon) nützt auch kein Backup/Restore. Da man hier extrem wenig
Möglichkeiten habe fahre ich hier mit besonderer Sicherheit.

MySQL:
Bis heute die stabilste Datenbank die ich verwende. Wenn crash dann war
bisher alles wunderbar wiederherstellbar. MyISAM Tabellen lassen sich auch
hervorragen reparieren. InnoDB hatte ich auch keine Probleme. Probleme gab
es einmal bei einem Test ein Backup+Logs wieder einzuspielen weil er
mittendrin abgebrochen hat mit einem Duplicated Key ... woher der kommt
keine Ahnung.

Alles in allem kann man sagen: Wenn ich eine wichtige DB habe muss ich mit
jedem Server dafür sorgen das sie gut abgesichert wird. Bei
Interbase/Oracle/DB2 habe ich Serverseitigen Problem festgestellt die eine
Datenbank im laufenden Betrieb in die Ecke fahren können (siehe oben). Daher
reicht es nicht immer einfach ein 2. System als Replik vorzuhalten da das
Problem diese Repliken auch betreffen kann. Am besten die Datenbank unter
Echtbedingungen testen und überwachen und beobachten was passiert. Bei
Oracle und DB2 immer genügend Platz in den Tablespaces gerade im Log-Bereich
vorhalten.
Gescheite Hardware setze ich mal voraus: Redundante Netzteile, gespiegelte
Platten, Hotplug ...

Gruß,
Andreas

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive