Hallo und guten Abend!
Ich habe da eine kleine Frage an Euch:
Wie kann man Daten, die täglich verändert werden und dementsprechend immer wieder neu abgespeichert werden müssen
redundant halten?
D.h. detailliert:
Ich möchte einem evtl. Ausfall unseres Datenbank-Servers
vorausschauend entgegenwirken und größere Ausfallzeiten dieser
DB vermeiden. Welche Lösung ist diesbezüglich die optimalste (schnell, ohne größeren Aufwand, billig).
Kann man hierbei den Repikationsdienst von W2K nutzen?
Sollte man ein Syncro-Tool verwenden?
Ich kenne hierfür keine genaue Lösung.
Für Anregungen schon vorab herzlichen Dank!
Marco
Wie kann man Daten, die täglich verändert werden und
dementsprechend immer wieder neu abgespeichert werden müssen
redundant halten?
D.h. detailliert:
Ich möchte einem evtl. Ausfall unseres Datenbank-Servers
vorausschauend entgegenwirken und größere Ausfallzeiten dieser
DB vermeiden. Welche Lösung ist diesbezüglich die optimalste
(schnell, ohne größeren Aufwand, billig).
Kann man hierbei den Repikationsdienst von W2K nutzen?
Sollte man ein Syncro-Tool verwenden?
Es gibt viele Möglichkeiten - was möglich ist, hängt vom Budget ab und natürlich auch davon, was man genau erreichen will.
Im Normalfall sollte man wohl erst einmal RAID5 oder RAID1 einsetzen. Das garantiert beim Ausfall einer Platte, dass ohne Datenverlust weiterbearbeitet werden kann. Es entsteht also keine Ausfallzeit.
Zusätzlich sind wohl Backups auf Band angeraten. Die Bänder am besten getrennt vom Server aufbewahren. Sicherungsintervall - kommt darauf an.
Sicherung auf andere Computer kann auch eine gute Ergänzung sein.
Du beschreibst da mal wieder das alte IT Paradoxon. Es soll sicher sein, darf aber nichts kosten. Leider funktioniert so etwas nicht. Selbst mit LINUX oder anderen freien Betriebssystemen bleiben immer noch die nicht ganz billige Hardware und die Stunden der Leute, die sich mit so etwas auskennen und es dann implementieren.
Du solltest zunächst einmal das Budget klären und dabei insbesondere berücksichtigen, wie hoch die Kosten eines Ausfalls sind. Diese betreffen verloren gegangene unproduktive Arbeitszeit im Unternehmen, die eigentlichen Wiederherstellungskosten und Konsequenzen evtl. nicht mehr wiederherstellbarer Daten, etc. Es ist also eine saubere und möglichst umfassende Gesamtbetrachtung herzustellen.
Weiterhin muss man sich dann mal die benötigte Performance ansehen und kann dann zu einer vernünftigen Lösung kommen. Bei W2K kann die z.B. einerseits rein Hardwaremäßig in einem RAID 5 oder RAID 1/0 liegen, oder in einer Kombination vernünftiger Hard- und Software. Da wäre speziell das Thema Clustering zu nennen, also die Verteilung der Datenbank auf mehrere geclusterte Rechnerknoten, die im Normalbetrieb für einen bessere Performance der Datenbank sorgen, im Ausfallszenario eines Knotens den Weiterbetrieb der Gesamtanlage mit verringerter Leistung erlaubt.
Unabhängig davon sind (evtl. online) Sicherungen der Datenbanken auf Band unablässig, da nur so ein älterer Stand der Datenbank wiederherstellbar ist, denn die ganze sonstige Technik schützt nicht vor unbedachten Benutzeraktionen (Datenlöschung). Diese werden im Cluster genau so sauber und schnell verteilt, wie sinnvolle Aktionen, man hat in einem solchen Fall also ohne Bandsicherung nichts gewonnen.
Gruß vom Wiz, der Dir bei vorhandenem Budget evtl. auch die passenden Leute vermitteln kann.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Es gibt viele Möglichkeiten - was möglich ist, hängt vom
Budget ab und natürlich auch davon, was man genau erreichen
will.
Im Normalfall sollte man wohl erst einmal RAID5 oder RAID1
einsetzen. Das garantiert beim Ausfall einer Platte, dass ohne
Datenverlust weiterbearbeitet werden kann. Es entsteht also
keine Ausfallzeit.
Zusätzlich sind wohl Backups auf Band angeraten. Die Bänder am
besten getrennt vom Server aufbewahren. Sicherungsintervall -
kommt darauf an.
Sicherung auf andere Computer kann auch eine gute Ergänzung
sein.
Das mit der Redundanz auf dem gleichen Server ist schon erledigt.
Die Platte mit diesen Daten ist bereits gespiegelt.
Auch die nächtliche Datensicherung wird durchgeführt.
Wichtig ist es mir aber, dass im Falle eines Ausfalls dieses Servers die Mitarbeiter mit der DB weiterarbeiten können, d.h. Clustering wäre da wohl die einfachste Methode. Es gibt ja genügend Rechner in der Firma. Oder sollte man da einen Rechner speziell zum Clustern aufsetzen? Kann man da keine zusätzliche PLatte verwenden und diese dann in einen vorhandenen Rechner einbauen?
Das mit den Kosten für eine Sicheurng ist mir auch klar:
Mitarbeiterausfallzeit x Mitarbeiterkosten etc…
Und soviel sollte man dann eben für die Fehlertoleranz ausgeben.
Das ist aber auch teilweise Theorie.
a) kann man ueberhaupt laufende datenbanken, wirksam auf fs-ebene sichern, die meistend dateien sind doch eh gelockt oder? und sind nicht die aktuellsten daten hauptsaechlich im ram? wie stellt man dann die integritaet der datensaetze sicher, wenn man eine sicherung schreibt.
b) einige antworten erwaehnten clustering. wie funktioniert das bei nem db-server, bekommen die die gleichen anfragen, und muessen dann das selbe ergebnis liefern (und was passiert bei schreibenden anfragen, wo es nur erfolgt oder fehler als rueckgabewert gibt)? und wer vergleicht dann die ergebnisse? und wenn die ergebnisse unterschiedlich sind, woher weiss man welhces die richtigen sind?
da steht zumindest etwas darüber. Es gibt mehr als genug Artikel im Web dazu.
Kurz:
Du kannst dafür nicht irgendeinen Computer verwenden. Die Minimal-Konfiguration sind 2 Server mit Win2000 Advanced Server als OS. Diese sollten im Idealfall identisch sein (müssen aber nicht). Sie teilen sich ein gemeinsames Festplattensubsystem für die Daten (für das OS wird jeweils eine eigene Platte benötigt - sollte es über SCSI laufen, dürfen die beiden nicht am selben Kanal hängen - ein Zwei-Kanal-Controller ist aber zulässig). Das gemeinsame System kann etwa ein SAN oder ein SCSI Subsystem sein.
Im Normalbetrieb hat ein Cluster den Vorteil, dass Load-Balancing stattfindet. Im Fehlerfall eines Computers, übernimmt der Andere. Somit entstehen bei einem Fehler keine oder nur minimale Ausfallzeiten. Natürlich ist darauf zu achten, dass nicht irgendwo anders ein Single Point of Error entsteht - wie etwa ein Hub, Verkabelung, oder was auch immer.
Wie Du siehst ist das ganze doch relativ aufwendig. Ob es in Deinem Fall lohnenswert ist, weiss ich nicht.
Auch muss euer Datenbank Server das ganze unterstützen.
Also Ralf,
ich denke das hat mir schon enorm weitergeholfen. Advanced
Server läuft nämlich bei uns und ich hätte auch noch eine Lizenz für einen zusätzlichen frei. Ich denke das ist die beste
bisherige Lösung.
a) kann man ueberhaupt laufende datenbanken, wirksam auf
fs-ebene sichern, die meistend dateien sind doch eh gelockt
oder? und sind nicht die aktuellsten daten hauptsaechlich im
ram? wie stellt man dann die integritaet der datensaetze
sicher, wenn man eine sicherung schreibt.
Gute Fragen, die ich Dir leider auch nicht beantworten kann. Aber vielleicht einer der Experten im Gespräch, oder?
b) einige antworten erwaehnten clustering. wie funktioniert
das bei nem db-server, bekommen die die gleichen anfragen, und
muessen dann das selbe ergebnis liefern (und was passiert bei
schreibenden anfragen, wo es nur erfolgt oder fehler als
rueckgabewert gibt)? und wer vergleicht dann die ergebnisse?
und wenn die ergebnisse unterschiedlich sind, woher weiss man
welhces die richtigen sind?
Zu b) kann ich genauso wenig beitragen. Die Problematik verstehe ich allerdings. Kann da irgendjemand helfen ?
was die Sicherung der laufenden DB angeht, so gibt es grundsätzlich mehrere Möglichkeiten. Billig und einfach ist es, die DB zeitgesteuert irgendwann mitten in der Nacht zu stoppen, dann die Datei zu sichern und die DB wieder zu starten. Klappt natürlich nur dann, wenn die DB nicht rund um die Uhr verfügbar sein muss.
Bessere, aber auch teuerere Möglichkeit ist eine Sicherungssoftware mit entsprechendem Agenten für die Onlinesicherung der DB. Dazu muss man wissen, welche Backup-Software einen passenden Agenten für die eingesetzte DB hat.
Wenn beides nicht machbar ist, gibt es Lösungen, die entweder Snapshots von Speicher und DB machen und erlauben, den Server später genau so wieder zu restoren (bin ich immer skeptisch, ob es dann im Zweifelsfall wirklich klappt), oder Hilfskonstruktionen über eine DB-Duplikation, die im laufenden DB-Betrieb dann von erfolgt. Gesichert wird dann die duplizierte Datei. Zusätzlich gibt es auch noch einen Haufen andere mehr oder weniger sinnvolle Konstrukte. Dies kommt immer auf den Einzelfall an, und gehört in die Hände eines Profis.
Was das Thema Clustering angeht, so gibt es für eine Antwort hier zwei Möglichkeiten. Die eine wäre, den gesamten technischen Hintergrund von W2K-Clusterserver zu erklären, dies füllt aber Bücher. Entsprechende Infos findet man aber auch bei MS bzw. in der entsprechenden Literatur. Die andere ist kurz und knapp: Es funktioniert! Der Cluster verhält sich für die Programme und den Nutzer vollkommen transparent wie ein einziger Server. Wie, was, wo da im Einzelfall dann technisch passiert, muss einen im laufenden Betrieb nicht interessieren. Das Teil muss natürlich von Fachleuten aufgesetzt werden. Vom Einsatz zweier alter PC, und dann mal sehen, ob man es ans laufen bringt, ist dringend abzuraten. Entweder man hat ein paar Wochen Zeit und Ruhe sich einzuarbeiten, kauft dann ein speziell hierfür gedachtes Server-Set und hat dann die Chance, die Klamotte erst einmal zu Testzwecken zu installieren und ein paar Tage laufen zu lassen, oder man sucht sich gleich Fachleute, und lässt sich von denen ein maßgeschneidertes Komplettangebot machen. Dürfte für das Unternehmen insgesamt vermutlich billiger kommen.
Gruß vom Wiz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]