christine75
Goto Top

ORACLE Datenbank Konzept - Datafiles

Hallo,

ich habe eine Oracle8i Datenbank auf AIX, die bald migriert werden soll auf 10g unter SLES. Nun frage ich mich, wie ich die Datafiles anlegen soll. Die Tablespaces haben z.Z. maximale Größen von 50GB, die gesamte DB hat ca. 1TB (50%Data, 50%Index).

Da wir unter einer alten AIX-Version und historisch gewachsen liefen, haben wir derzeit je 2GB Datafiles und ich denke mir, dass dies nicht mehr zeitgemäß ist. Plattenplatz und Hardware-Ausstattung sind quasi beliebig.

Ich wollte nun zweimal je 10 Platten a 128GB zu einem RAID0+1 installieren für getrennte DB und Index-Bereiche. Kann ich nun einfach auf Autoextend bis ca. 25GB je Datei gehen oder schwächt das die Performance? Für die Rücksicherung wird die Ausfallzeit dadurch sicherlich erhöht, aber durch das RAID und einen Hot-Pool dürfte das eigentlich ohnehin kaum bis nie passieren.

Was denkt ihr? Hat jemand ähnliche Voraussetzungen gehabt bei der Konzeption?

Danke für viele Antworten. face-smile)

Christine

Content-ID: 69221

Url: https://administrator.de/contentid/69221

Ausgedruckt am: 23.11.2024 um 11:11 Uhr

Rafiki
Rafiki 21.09.2007 um 16:24:19 Uhr
Goto Top
Wenn mehrere Festplatten hintereinander in einem RAID 0 Verbund arbeiten dann addiert* sich die Wahrscheinlichkeit das eine Festplatte ausfällt. Bei vielen Festplatten in einem RAID0 bzw. NRAID ist die Gefahr von ausfällen also sehr viel höher!

Deshalb würde ich eher auf ein RAID5 mit einem Leistungsstarken RAID Controller setzen. Wenige Festplatten, z.B. 3 * 500GB = 1TB nutzbare Kapazität und zusätzlich eine vierte Hot spare Festplatte damit der Controller selber eine ausgefallene Festplatte ersetzen kann.

Ein guter RAID Controller hat einen (Batterie gepufferten) Cache von 128MB oder noch mehr. Dieser Cache holt enorm viel bei Leistung heraus bei verteilten Schreib- und Lesezugriffen. Ich bevorzuge z.B. die LSI Modelle, die Teilweise auch Dell in seinen Servern verbaut.

Bei einer wichtigen Datenbank, für die ein Budget von mehr EUR 100.000 zur Verfügung steht, würde ich die Oracle Datenbank redundant aufbauen. Zwei Server auf unterschiedlicher Hardware in zwei Gebäuden mit getrennter Stromversorgung usw. Fällt eine DB aus überminnt die andere. Oracle hat dafür einige Varianten im nicht sehr günstigen Angebot.

Gruß Rafiki

)* Ich suche gerade nach der Formel. Addiert oder multipliziert die sich die Wahrscheinlichkeit eines Festplattenausfalls in einem RAID? Update kommt sobald ich es wieder gefunden habe. -> Rafiki sucht jetzt sein altes Mathebuch....

Update
13. Ausfallwarscheinlichkeit von RAID-Systemen
http://www.forumdeluxx.de/forum/showthread.php?t=119202

Beispiel: 98,5% der Festplatten im Zeitraum sind funktionsfähig
Bei zwei Platten im RAID 0 sind das dann z.B.
0,985 * 0,985 = 0,970225 oder mit 100% multipliziert 97,0225% Funktionsfähigkeit
bei drei Platten im RAID0 0,985 * 0,985 * 0,985 = 0,955671625
und bei n Platten dann 0,985 ^ n
christine75
christine75 21.09.2007 um 17:30:59 Uhr
Goto Top
Hi Rafiki,

danke für die Antwort.

Das RAID10 nehme ich, weil ich die Performance benötige, damit die einzelnen Requests asap verarbeitet werden können. Ein RAID10 fällt auch erst aus, wenn eine Spiegelung komplett ausfällt, also können in einem 10-Platten-RAID10 theoretisch bis zu 5 Platten ausfallen, wenn es denn die richtigen sind. Ich denke, an dieser Stelle wird es keine Probleme geben, zumal eine identische Maschine als Hot-Backup über die ORA-Funktionalität zur Verfügung stehen wird.

Mich beschäftigt aber eher die Frage der Anlage von Datafiles, dazu hast Du leider nicht geantwortet. face-sad

Gruß!

Christine
Rafiki
Rafiki 22.09.2007 um 16:44:05 Uhr
Goto Top
RAID0+1 ist nicht RAID10 ! http://de.wikipedia.org/wiki/RAID siehe dort RAID-10-Verbund. Du hast natürlich Recht, ein RAID 10 kann sehr schnell arbeiten und ist weniger fehleranfällig als ein gespiegeltes RAID0, also 0 + 1

Mir ist nicht bekannt, dass eine Oracle DB langsamer oder schneller wird in Abhängigkeit der Größe der einzelnen Datenbank Dateien. Ob nun 10 * 25GB oder 2500 * 1 GB. Selbstredend sollte genug Platz auf den (logischen) Festplatten sein damit die Dateien nicht unnötig fragmentiert werden. Aber davon abgesehen sind das Design der DB, beginnend im ER Modell, logische Views bis zum sinnvollen Index um ein vielfaches mehr an der Performance beteiligt als ein Festplatte mit 10% mehr schreib Geschwindigkeit. Oracle bringt einige Tools zum optimieren von Datenbank und Anwendungen mit.

Da wir gerade über Oracle reden, im Oracle 10g Handbuch wird lediglich erwähnt dass etwas mehr Arbeitsspeicher benötigt wird um sehr viele Datafiles zu öffnen.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/dfiles.h ...
Im Abschnitt "Bigfile Tablespaces" wird erwähnt dass je nach Backup Methode es evtl. unpraktisch ist sehr große Datafiles bzw. Tablespaces anzulegen. Beide Argumente sind aber eher weiche Faktoren als ein zwingender Grund für oder gegen eine Bestimmte Größe der Dateien.
Wenn ich mal eine Datenbank wiederherstellen musste wurden immer alle Dateien wieder hergestellt. Ein einzelnes Datenfile (bzw. Tablespace) habe ich bisher noch nicht retten wollen. In der Regel hängen die Daten von einem Tablespace immer mit anderen Bereichen zusammen so, dass immer eine Wiederherstellung von der gesamten Datenbank beschlossen wurde. Das klingt jetzt so als würde ich jede Woche eine Oracle DB retten. Falsch. In 10 Jahren kann ich mich nur an zwei solcher Einsätze entsinnen.

Evtl. wäre eine interessante alternative ein Filer von NetApp, der ein logisches Laufwerk über iScsi oder FC bereit stellt und ein Backup dauert dann nur noch 4 Sekunden. NetApp Filer haben RAID DP, eine sehr gute Performance und Zuverlässigkeit. Die beiden logischen Laufwerke (Data+Log) können in einem sg. Aggregat zusammengefasst werden und synchron mit einem Snapshot gesichert werden. Leider seind Netapp Geräte nicht billig. Bzw. werden durch die Zusatzoptionen (Agent für Oracle DB) erst so richtig teuer!
Wenn an eurer DB entwickelt wird ist ein geniales Feature von Netapp einen Snapshot einem anderen Server anzubieten. Z.B. einen Jahresabschluß oder ein Patch vorher mal ausprobieren: Ganz einfach einen Snapshot anlegen, in eine VM mounten und der Entwickler kann sich austoben ohne das die produktive DB davon etwas mitbekommt.


Ob ich für den Spiegel Server die identische Hardware verwende oder absichtlich eine andere Hardware ist wohl eher eine Frage für Philosophen. Beides hat gute Argumente. Die Wahrscheinlichkeit dass ein Hardwarefehler zugleich auf zwei unterschiedlichen Geräten auftritt ist deutlich geringer. Bei gleicher Hardware kann man z.B. ein BIOS update vorher an dem Backupsystem ausprobieren. Usw. usw.

Gruß Rafiki