ASM oder Filesystem

Werbung
ASM oder Filesystem
Benjamin Kurschies
QSC AG
Hamburg
Schlüsselworte
Oracle, ASM, GI, RAC
Einleitung
Seit nunmehr 12 Jahren bietet Oracle für sein Datenbankmanagementsystem einen eigenen
Volume Manager an, der die Storageverwaltung vereinfachen und beschleunigen soll. Durch
anfängliche Stabilitätsprobleme hat ASM immer noch unter seinem schlechten Ruf zu
leiden.
In diesem Vortrag wird beleuchtet, was ASM genau ist, wo seine Stärken liegen und welche
Werkzeuge Oracle im K-Fall bereitstellt.
Was ist ASM




Das „Automatic Storage Management“ ist ein Volume Manager, der an die
Anforderungen der Oracle Datenbank angepasst ist und kann auch nur von dieser
(und einigen Oracle Tools) gelesen und beschrieben werden.
Die Meta-Informationen werden in den Headern der jeweiligen Disks gespeichert.
Die ASM Instanz liest diese Informationen aus und stellt sie den Datenbanken zur
Verfügung.
Die Datenbanken fragen diese Meta-Informationen ab und greifen dann direkt auf
die physikalischen Disks zu. Aus diesem Grund müssen die Disks auch für den User,
unter dem die Oracle Dienste laufen, auch zugreifbar sein.
Verwaltungstools



ASMCA: Mit diesem GUI kann die ASM Instanz eingerichtet und administriert werden.
Es kann auch der „silent mode“ via CLI genutzt werden.
SQL*Plus: da es eine „normale“ Oracle Instanz ist, können viele einstellungen des
physikalischen Layouts via SQL*Plus ausgelesen oder verändert werden.
ASMCMD: Mit diesem Tool kann auf die logische Struktur des ASM zugegriffen
werden.
Vorteile gegenüber Filesystem





Flexibilität:
o Disks können im laufenden Betrieb hinzugefügt werden.
o Disks können im laufenden Betrieb entfernt werden.
Daten werden gleichmäßig über alle Disks verteilt.
Bei RAC: OCR/Votedisk werden automatisch verwaltet
ASM kann Daten redundant über mehrere Disks verteilen (RAID)
Durch die Umgehung von allen OS Caches und Queues ist ASM sehr schnell. In
unserem LAB haben wir mit dem tool „SLOB“ von Kevon Closson bis zu 19 x mehr
I/O durchsatz messen können.
Tipps & Tricks
1. ASM Disks / LUN’s eindeutig zuordnen:
unter den UNIX-artigen Betriebssystemen wird eine neue Disk fortlaufend
durchgezählt, z.B. „/dev/sdc“. Dies macht es den Administratoren schwer, normale
von ASM disks zu unterscheiden.
Lösung: via ASMlib, udev oder im multipath-treiber können sprechende Namen
vergeben werden.
# SCSI ID auslesen
/sbin/scsi_id -g -u -d /dev/sdc
# udev regel anlegen
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
# <SCSI_ID> austauschen!
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk",
ENV{ID_SERIAL}=="<SCSI_ID>", NAME="asm/oraasm1", OWNER="oracle",
GROUP="oinstall", MODE="0660"
2. Desaster Recovery:
Selbst wenn der Server / Das Betriebssystem zerstört wurden, sind die Daten im
ASM nicht verloren so lange die entsprechenden ASM Disks / LUN’s intakt sind. Zur
wiederherstellung sind folgende Schritte notwendig:
- Installation OS
- Installation Oracle Clusterware
o TIP: Wenn man eine dedizierte Diskgroup für die OCR / Votedisks anlegt,
kann diese vor der Installation gefahrlos gelöscht und für die
neuinstallation wieder verwendet werden
# Richtige ASM Disk finden / Header auslesen
kfed read /dev/asm/oraasm1
# Header Löschen
dd if=/dev/zero of=/dev/oraasm1 bs=1024 count=100
-
Rescan der verfügbaren Disks im ASM durchführen
# sqlplus / as sysasm
select * from v$asm_disk;
-
Diskgroup mounten
# sqlplus / as sysasm
alter diskgroup u01 mount;
3. Zugriff auf Daten im ASM
Das Betriebssystem kann nicht native auf die Daten im ASM zugreifen. Oracle liefert
jedoch Tools mit, mit denen ein Zugriff möglich ist.
- ASMCMD: innerhalb dieses Programms kann man sich fast wie auf einer linux
shell mit „cd“ und „ls“ durch die Verzeichnisse bewegen, mit cp kann man auch
dateien in das reguläre Filesystem kopieren
- Recovery Manager (RMAN): der RMAN kann natürlich auf alle
Datenbankrelevanten Daten im ASM zugreifen und diese bei Bedarf auch in das
Filesystem kopieren.
# rman target /
copy datafile 1 to ‘/tmp/datafile_1.dbf’;
backup as copy archivelog sequence 99 format ‘/tmp/ARCH_%d_%t_%s_%p’;
4. Diskgroup versehentlich gelöscht
Beim Löschen einer Diskgroup (drop diskgroup) wird nur der Header verändert. Mit
dem Tool „kfed“ kann der Header nicht nur ausgelesen sonder auch geschrieben
werden.
# Header auslesen
Kfed read /dev/asm/oraasm1 aunum=0 blknum=0 text=oraasm1
# datei modifizieren
vi oraasm1
ersetzte:
kfdhdb.hdrsts:
mit:
kfdhdb.hdrsts:
4 ; 0x027: KFDHDR_FORMER
3 ; 0x027: KFDHDR_MEMBER
# datei wieder zurück schreiben
Kfed write /dev/asm/oraasm1 aunum=0 blknum=0 text=oraasm1
# Vorgang mit allen Disks dieser Diskgroup wiederholen
# Diskgroup wieder mounten
Sqlplus / as sysasm
Alter diskgroup data mount;
5. Diskgroup teilweise zerstört
Durch physikalische Fehler kann es passieren, dass eine ASM Diskgroup nicht mehr
angebunden warden kann. Für diesen Fall stellt Oracle das Tool „amdu“ bereit, mit
dem Daten aus nicht gemounteten diskgroups gelesen werden können.
# Offset der Diskgroup +DATA erstellen
amdu –dis ’/dev/asm/oraasm*’ –dump DATA –noimage
# Datei #6 enthält die Metadaten der Diskgroup
grep F00000006 DATA.map
N0004 D0001 R00 A00000008 F00000006 I0 E00000000 U00 ...
# D0001 heißt, die map ist inerhalb der Disk 0001 in AU 00000008
# less report.txt -> suchen nach D0001 um den Namen der Disk zu bekommen
# lesen des Blocks in dem die Metadaten enthalten sind
# und suche nach der benötigten Datei-Nr.
Kfed read /dev/asm/oraasm2 aun=8 | less
# extrahieren der gesuchten Datei – das Format ist <Diskgroup>.<File#>
amdu –dis ‚dev/asm/oraasm*‘ –extract DATA.261
Kontaktadresse:
Name
Firma
Straße, Hausnummer
Telefon:
E-Mail:
Internet:
Benjamin Kurschies
QSC AG
Grasweg 62-66
22303 Hamburg
+49 (0) 40-27136-8284
[email protected]
www.qsc.de
Herunterladen