Architektur & Erfahrungsbericht DOAG Regionaltreffen Rhein/Main 11.02.2009 Guido Saxler ORDIX AG, Köln gsx@ordix.de www.ordix.de
Agenda Überblick Oracle Hochverfügbarkeit Kundenbeispiel Oracle RAC Architektur 2
Begriffsdefinition Hochverfügbarkeit? Larry Ratlos 3
Formel für Hochverfügbarkeit Hochverfügbarkeit Ein System wird als hochverfügbar bezeichnet, wenn dieses bei auftretenden Fehlern ohne Unterbrechung weiter läuft! Der Anwender nimmt keine bzw. kaum eine Unterbrechung war. Ein hochverfügbares System muss Fehlertolerant sein. Messen der Hochverfügbarkeit (in %) 4
Hochverfügbarkeitsklassen Verfügbarkeit = Uptime / (Downtime + Uptime) 2 Stabil 99,0 3,7 Tage 3 Verfügbar 99,9 8,8 Stunden 4 Hochverfügbar 99,99 52,2 Minuten 5 Fehlerunempfindlich 99,999 5,3 Minuten 6 Fehlertolerant 99,9999 32 Sekunden 7 Fehlerresistent 99,99999 3 Sekunden Boss Attraction Factor Larry s Formel: hohe Uptime = hohe Verfügbarkeit = hoher BAF - Faktor 5
Ausfallzeit / Downtime Ausfallzeit geplante Ausfallzeit ungeplante Ausfallzeit Systempflege Wartung / Hardware Software Updates Media Fehler Software Fehler Anwender Fehler Katastrophen / Desaster 6
Reduzierung der Ausfallzeit Auffinden des Single Point of Failure (SPoF) Anwender löscht Daten Festplatten CPU Netzwerk RAM Redundante Auslegung der Komponenten (Erhöhen der Fehlertoleranz) Stromversorgung Software-Fehler Bug Hardware-Fehler Hochwasser Naturkatastrophen 7
Failover Cluster Aktiv - Passiv / Aktiv - Aktiv Aktiv Passiv Aktiv Aktiv exklusiv Aktiv - Passiv Cluster Aktiv - Aktiv Cluster shared nothing shared all Cluster-Software: HP Service Guard, AIX HACMP, Linux Cluster,... 8
Oracle Data Guard Schematische Darstellung Primär Instanz Standby Instanz Primär Datenbank Redo-Strom Standby Datenbank 9
Oracle RAC Schematische Darstellung Cache Fusion Node1 Node2 Shared Storage shared all 10
Agenda Überblick Oracle Hochverfügbarkeit Kundenbeispiel Oracle RAC Architektur 11
Beispiel Architektur Primary s Data Guard s NODE A NODE B NODE A NODE B Oracle Instance ora11 Oracle Instance ora12 Oracle Instance ora21 Oracle Instance ora22 SGA (memory) SGA (memory) SGA (memory) SGA (memory) dbwr lgwr... dbwr lgwr... dbwr lgwr... dbwr lgwr... LUN LUN 12
Beispiel Architektur ORACLE 1 ORACLE 2 SGA (memory) SGA (memory) Oracle RAC 10g RDBMS Layer dbwr lgwr... dbwr lgwr... database DB ffanlp01 Oracle ASM, Cluster Filesystem, RAW Devices Storage Management Layer evtl. 3 rd Party Volume Manager Volume Manager evtl. 3 rd Party Cluster Ware Oracle Cluster Ware 10.2.x Cluster Ware Layer OS / Netzwerk OS / Netzwerk Layer Storage Layer 13
Agenda Überblick Oracle Hochverfügbarkeit Kundenbeispiel Oracle RAC Architektur 14
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 15
RAC Überblick Hochverfügbarkeit SGA Cache Fusion Interconnect Load Balancing DB 16
Voraussetzungen Privates Netzwerk (Interconnect): Grundlage für Cluster Kommunikation und Cache Fusion Technologie Shared Storage: (RAW Devices, Cluster Filesystem, ASM, NAS) Cluster Software übernimmt grundlegende Cluster Funktionen (Oracle Clusterware / CRS oder 3rd Party Hersteller) Online Redologs SYSTEM TEMP UNDO1 UNDO3 SYSAUX DATA UNDO2 UNDO4... Tablespaces... Archivelogs 17
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 18
Netzwerk Public Interface - Eigenes Interface (Netzwerkkarte) - Zugang zum öffentlichen Netzwerk - redundante Auslegung Private Interface (Privates Netzwerk / Cluster Interconnect) - Eigenes Interface (min. Voraussetzung 1 GB Anbindung) - Direkte private Verbindung der beteiligten Cluster Nodes - Wird für Interconnect Verbindung und Cache Fusion (Blockshipping) benötigt - redundante Auslegung Virtuelle IP Adresse - Besitzt kein eigenes Interface - Wird durch Cluster Ready Service im Failover Fall an ein Public Interface gebunden 19
Netzwerk Interconnect / Cache Fusion oracle1 public Hostname :oracle1 public IP :192.168.147.1 private IP :10.0.0.1 private Hostname :priv_oracle1 virtuelle IP :192.168.148.1 virtueller Hostname : virt_oracle1 oracle2 public Hostname :oracle2 public IP :192.168.147.2 private IP :10.0.0.2 private Hostname :priv_oracle2 virtuelle IP :192.168.148.2 virtueller Hostname : virt_oracle2 20
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 21
Storage... wofür? Oracle Datenbank - Database Files - Redo Log Files - Control Files - Archive Log Files - spfile/init.ora - Dataguard Broker files - Cluster Ready Service - OCR Disk - Voting Disk 22
Überblick Oracle Cluster Filesystem (OCFS) Cluster Filesystem (3rd Party, z.b QFS von SUN) RAW Devices NAS (Network Attached Storage) ASM 23
ASM Überblick Eigene ASM Instanz verwaltet Diskgroups Vereinfachtes Speichermanagement/Administration Verwaltung des Storages in Volumes bzw. Diskgroups Automatisches Rebalancing Automatisches Striping Automatische Spiegelung (Redundancy) möglich (bis zu 3-facher Redundanz) Verwendung des SAME Prinzip (SAME = Stripe And Mirror Everything) 24
Speichermanagement Tabellen Tablespaces Dateien... Filesysteme Logical Volumes Disks 25
Speichermanagement Tabellen Tablespaces Dateien Filesysteme Logical Volumes ASM Diskgroups / Failure Groups Disks 26
ASM Architektur RAC Server ORACLE1 Instance rac1 SGA DBWR LGWR... ARC oracle+asm1 SGA... ASM ASM... Instance +ASM1 instance_type asm_diskgroups asm_diskstring... init+asm1.ora ASM Shared Storage failgroup F1 failgroup F2 Diskgroup ORADG Instance rac2 SGA DBWR LGWR... ARC oracle+asm2 SGA... ASM ASM... Instance +ASM2 instance_type asm_diskgroups asm_diskstring... Server ORACLE2 init+asm2.ora 27
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 28
Oracle Clusterware Cluster Ready Service Eigenständige Cluster Software ab Oracle 10g im Lieferumfang enthalten Kein Kauf bzw. Nutzung von 3rd Party Herstellern mehr notwendig Übernimmt alle Clusterfunktionalitäten: - Kommunikation zwischen den beteiligten Nodes - Basisdienste und Überwachung der Cluster Nodes - Übernahme der virtuellen IP Adressen - High Availability Features Die Cluster Informationen werden in der OCR Disk (oder auch Cluster Registry File gespeichert). Installation erfolgt in eigenes ORA_CRS_HOME Verzeichnis 29
Oracle Clusterware Architektur Oracle Clusterware besteht aus 3 zentralen Komponenten: 1. Oracle Cluster Synchronisation Service (CSS) Verbindung zu 3rd Party Herstellern und Synchronisation der beteiligten Cluster Nodes. 2. Cluster Ready Service (CRS) Überwacht alle Cluster Ressourcen und startet diese im Fehlerfall neu. Cluster Ressourcen sind: - Datenbanken / Instanzen /Listener - ASM Instanzen - VIP (virtual IP) - Services -... 3. Event Manager (EVM) Protokolliert alle Events des CRS. 30
Oracle Clusterware OCR Disk OCR DISK - Speicherort für die Cluster Registry. Die Cluster Registry enthält u. a. Informationen zu den beteiligten Cluster Nodes, zur Datenbank und zu den Services. - Shared Storage (RAW Device oder Datei im Cluster Filesystem) - Größe ca. 100 MB - Redundante Auslegung der OCR Disks mittels Oracle Cluster Ware möglich (10gR2) 31
Oracle Clusterware Voting Disk Voting DISK - Bei Ausfall des Cluster Interconnects (private Network) überlebt der Node, der das Eigentümerrecht an der Voting Disk besitzt. - Alle weiteren Cluster Member werden automatisch runtergefahren. (Vermeidung des Split Brain Syndroms) - Shared Storage (RAW Device oder Datei im Cluster Filesystem) - Größe ca. 20 MB - Redundante Auslegung der Voting Disks mittels Oracle Cluster Ware möglich (vote counts) 32
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 33
Cluster Datenbank Jede Instanz - besitzt ihre eigenen Redo Log Files - schreibt ihre eigenen Archive Log Files (%t Thread Number) (Archive Log Files sollten wie Online Redo Log auf dem shared Storage liegen) - besitzt ihr eigenes UNDO Tablespace Ansonsten fast keine Unterschiede zur Single Datenbank - Archive müssen von allen Instanzen verfügbar sein Unterschiede im Recovery (Beim Instance Crash muss eine andere Instanz das Recovery übernehmen.) 34
Cluster Datenbank Instanz rac1 Instanz rac2 Redo Logs Thread 1 Redo Logs Thread 2 Tablespaces Undo Tablespace UNDOTBS1 Undo Tablespace UNDOTBS2 35
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 36
Oracle Services lassen sich ein oder mehreren Instanzen zuweisen bilden die Grundlage für die Workloadverteilung von RAC Umgebungen (Server Side Load balancing) dienen zur Gruppierung bzw. Workload-Spezifikation von Anwendungen (z.b. Service -> OLTP_JOBS, BATCH_JOBS) werden von der Oracle Cluster Ware überwacht und im Fehlerfall umgeschaltet (auf eine oder mehrere andere Instanzen) Anwendungen bzw. User verbinden sich in RAC Umgebungen nur noch mittels SERVICES (nicht mittels SID) Oracle Services lassen sich mittels der Oracle Cluster Ware dynamisch switchen (srvctl relocate service bzw. stop/start) Connections werden automatisch re-connected 37
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 38
Load-balancing Client Side Load Balancing - Lastverteilung durch einfaches Round Robin Verfahren. (siehe ADDRESS LIST in tnsnames.ora) Server Side Load Balancing - Auswahl des Clusterknoten erfolgt entweder nach geringstem Workload oder connection count - Listener Prozesse der beteiligten Cluster Instanzen tauschen regelmäßig Informationen zur Auslastung/Anzahl der Connections aus - Konfiguration erfolgt mittels der init.ora Parameter - local_listener und remote_listener - Umschaltung Workload / Connection Count erfolgt mittels dem Package dbms_service (clb_goal short oder long) 39
Load balancing Client Side Load-balancing Beispiel TNSNAMES.ORA ORARAC= (DESCRIPTION= (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE1)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE2)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=racdb.ordix.de) (FAILOVER_MODE= (TYPE=SESSION/SELECT) (METHOD=BASIC/PRECONNECT) (BACKUP=<tns-Alias>) ) ) ) 40
Load balancing Server Side Load-balancing Server Side Load Balancing # tnsnames.ora Network Configuration File # Generated by Oracle configuration tools. REMOTE_LISTENER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(port = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = oracle2)(port = 1521)) ) ) SQL> show parameter remote_listener NAME TYPE VALUE ------------------------------------ ----------- --------------- remote_listener string REMOTE_LISTENER 41
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 42
Transparent Application Failover (TAF) Allgemein unterscheidet man Connect Time Failover und Session Time Failover (TAF) TAF kann mit den folgenden Failover-Typen konfiguriert werden: NONE (Default), SESSION, SELECT Type SESSION: Clients werden im Fehlerfall durch einen automatischen Connect zur überlebenden Instanz/Server verbunden. Type SELECT: Statements können übernommen werden. Das bedeutet, laufende Querys werden im Fehlerfall auf die überlebende Instanz übernommen und weiter verarbeitet. (Voraussetzung Programmierung in OCI Oracle Call Interface) Die Konfiguration erfolgt auf Client Seite (z. B. tnsnames.ora) - SOURCE_ROUTE - FAILOVER - LOAD_BALANCING 43
Transparent Application Failover (TAF) FAILOVER=ON (ADDRESS=(PROTOCOL=TCP)(HOST=NODE1)...) (ADDRESS=(PROTOCOL=TCP)(HOST=NODE2)...) tnsnames.ora Cache Fusion Node1 Datenbank ora Node2 44
TAF Konfiguration tnsnames.ora ORARAC= (DESCRIPTION= (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE1)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE2)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=racdb.ordix.de) (FAILOVER_MODE= (TYPE=SESSION/SELECT) (METHOD=BASIC/PRECONNECT) (BACKUP=<tns-alias>) ) ) ) 45
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 46
RAC Architektur RAC Architektur Netzwerk Shared Storage Oracle Clusterware (CRS) Cluster Datenbank Services Load - balancing TAF (Transparent Application Failover) 47
Erfahrungsbericht Maximale Verfügbarkeit (besonders auch durch Kombination mit Dataguard) Komplexität ist nicht zu unterschätzen (HW und SW Zusammenspiel) Hohe Anforderungen an Mitarbeiter und Administratoren (Cluster Know-how, neue Technologien) Mehraufwand für den DBA (Oracle Cluster Ware, ASM, ) Transparent aus Sicht der Anwendung, jedoch ist und bleibt eine Analyse der Anwendung notwendig höherer Administrationsaufwand 48
Vielen Dank für Ihre Aufmerksamkeit! einfach.gut.beraten. 49