Ananjo Informatiker Fischer, Simone & Partner Allzeit bereit Oracle Real Application Clusters Andrea Held / 2005 (andrea.held@held-informatik.de) Oracle Real Application Clusters Eine Datenbank Mehrere Instanzen Services Oracle 10g: Automatic Storage Management Oktober 2005 Seite 2
Oracle Real Application Cluster Alle Knoten sind aktiv Keine passive Hardware Kombination aus Hochverfügbarkeit und Skalierbarkeit Load Balancing möglich Anwendungspartitionierung möglich Oracle 10g: Automatic Storage Management Oktober 2005 Seite 3 Oracle Real Application Cluster Nur ein Teil der Anwender ist von einem Ausfall betroffen anders als bei einem Aktiv/Passiv- Cluster! Failover ist sehr schnell! Anwendungen sollten cluster aware sein Oracle 10g: Automatic Storage Management Oktober 2005 Seite 4
Oracle Real Application Clusters Hardwarevoraussetzungen: Zwei oder mehr Rechnerknoten Shared Storage SCSI SAN NAS (bedingt) iscsi Shared Access Oracle Automatic Storage Management Cluster Filesystem Raw Devices Oracle 10g: Automatic Storage Management Oktober 2005 Seite 5 Oracle Real Application Clusters Hardwarevoraussetzungen Private Network (Cluster Interconnect) Public Network (Zugriff von außen auf die DB) Shared Storage Gleiche Plattform Gleiches Betriebssystem Oracle 10g: Automatic Storage Management Oktober 2005 Seite 6
RAC Architektur Client 1... Client 2 C lient 3 C lient 4 Client 5 Client 6 Client 7 Client 8 Client 9 Client 10 Client 11 Client n N etzw erk Cluster Interconnect (redundant ausgelegt) Oracle Instance auf Node 1 Oracle Instance auf No de 2 O racle Datenbank auf Shared Disk Su bsystem Oracle 10g: Automatic Storage Management Oktober 2005 Seite 7 Distanzen Performance u.a. vom Cluster Interconnect abhängig Wichtig: Hardware und Protokoll! Entfernung führt zu Verzögerungen Bis zu 3 KM problemlos realisierbar Bis 10 KM spricht auch Oracle noch von Standardlösungen Ab 50 KM sind Performance-Einbußen zu verzeichnen Erste Performance-Einbrüche bei 100 Km RAC mit Standby-DB kein Problem! Oracle 10g: Automatic Storage Management Oktober 2005 Seite 8
Hardwarekonfiguration Clients... Cluster Node 1 Public Network Cluster Node 2 Public NIC Public NIC Private NIC Cluster Switch Private Network Private NIC Storage Adapter Storage Adapter Local Disks Multi Host Disks Local Disks Oracle 10g: Automatic Storage Management Oktober 2005 Seite 9 Cluster Interconnect Interconnect Übertragungs-leistung (GBit/s) Latenzeit (sec) Fast Ethernet 0,1 3000 Gigabit Ethernet 1 3000 SCI (Scalable Coherent Interconnect) 10,66 1500 Myrinet 2 6,7 Memory Channel 1 3 Hyper Fabric 4 22 InfiniBand 2,5 < 500 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 10
Storage Konfiguration Oracle 10g: Automatic Storage Management Oktober 2005 Seite 11 Konfigurationsbeispiel 1 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 12
Konfigurationsbeispiel 2 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 13 Cache Fusion in Oracle 10g Optimierung des Cache Coherency Protokolls Reduzierung der Anzahl Messages Vermeidung von I/O Oracle 10g: Automatic Storage Management Oktober 2005 Seite 14
Block Ping mit OPS Quelle: [BeKü_2002] Oracle 10g: Automatic Storage Management Oktober 2005 Seite 15 Cache Fusion mit RAC Quelle: [BeKü_2002] Oracle 10g: Automatic Storage Management Oktober 2005 Seite 16
Zugriffszeiten Auf lokalen Cache Auf globalen Cache Auf lokale Platte 100 Ohne Cache Fusion: ~ 100 ms 75 Block Zugriffszeit in Millisekunden 50 25 Verminderung der Zugriffszeiten der Blockzugriffe bei Internode Access durch Einsatz von Cache Fusion ~ 20 ms Mit Cache Fusion: ~ 0,8 ms ~ 0,01 ms Datenbank Block im lokalen Cache Datenbank Block auf Remote Instanz Datenbank Block auf Disk Storage Oracle 10g: Automatic Storage Management Oktober 2005 Seite 17 Entwicklungsziele mit 10g Verfügbarkeit und Hochverfügbarkeit Skalierbarkeit und Performance Einfache Bedienung Oracle 10g: Automatic Storage Management Oktober 2005 Seite 18
Ergebnisse in Oracle 10g Oracle bietet einen eigenen portablen Cluster Manager: Cluster Ready Services (CRS) Automatic Storage Management (ASM) vereinfacht das Storage Management Enterprise Manager ist nun weitestgehend cluster aware Oracle Real Application Clusters auch mit Standby DB gut kombinierbar Oracle 10g: Automatic Storage Management Oktober 2005 Seite 19 Cluster Ready Services Werden vor der Installation der Datenbanksoftware implementiert Bieten eine eigene Virtual IP Adress Können künftig auch genutzt werden, um weitere Software in den Cluster einzubinden (Stichwort Grid ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 20
Cluster Stack Oracle RDBMS inkl. RAC und andere Applikationen Oracle RDBMS inkl. RAC und andere Applikationen System Management Cluster Control / Resource Management / Agents / Failover API Volume Management und File System Messaging und Locking Cluster Membership Event Management Integriertes System Management Cluster Ready Services (CRS) bestehend aus: Services Framework Cluster Control / Recovery APIs Automatic Storage Management Messaging und Locking Cluster Membership Integriertes Event Management Konnektivität Konnektivität Betriebssystem Kernel Betriebssystem Kernel Oracle 9i Cluster Stack Oracle 10g Cluster Stack Oracle 10g: Automatic Storage Management Oktober 2005 Seite 21 Prozessarchitektur Instance 1 Instance 2 Global Resource Directory LMS Global Cache Service (GCS) LMS Global Enqueue Service (GES) LMD LMON LMON LMD LCK LCK LGWR SMON PMON DBWR DBWR SMON PMON LGWR Storage Subsystem Redo Log Files (Instance 1) Control Files Data Files Redo Log Files (Instance 2) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 22
Handling globaler Ressourcen GRD: Global Resource Directory Enthält Informationen über gemeinsam genutzte Ressourcen Ermöglicht Lokalisierung eines Block Images im Cluster GCS: Global Cache Service Ist für den Block Transfer über den Cluster Interconnect verantwortlich Wird von den Prozessen LMSn und LMD realisiert Oracle 10g: Automatic Storage Management Oktober 2005 Seite 23 Handling globaler Ressourcen GES: Global Enqueue Service Verwaltung der Non-Cache-Fusion-Ressourcen im Cluster, z.b. Data Dictionary Locks und Library Cache Locks GSD: Global Services Daemon Optionaler Prozess (gsdctl start) Ist nicht instanz-spezifisch Steuert die Interaktion mit dem DBCA, dem OEM und dem Server Control (SRVCTL) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 24
Prozesse DIAG: Diagnose Im Rahmen von Fehlern in RAC-Umgebungen Schreibt Trace-Informationen LCK: Lock Process Verarbeitet Locks, die außerhalb von Cache Fusion angefordert werden, bspw. Innerhalb des Row Cache oder Library Cache Oracle 10g: Automatic Storage Management Oktober 2005 Seite 25 Prozesse LMD: Lock Manager Daemon Entspricht dem Global Enqueue Services Daemon Regelt clusterweite Sperren (Global Enqueues) und clusterweiten Zugriff auf Ressourcen wie Datenblöcke (Global Ressources Access) Deadlock Detection im Cluster Monitort Lock Conversions Oracle 10g: Automatic Storage Management Oktober 2005 Seite 26
Prozesse LMON: Lock Monitor Entspricht dem Global Enqueue Service Monitor Regelt Rekonfiguration von Sperren beim Entfernen oder Hinzufügen von Instanzen Prüft regelmäßig auf Vorhandensein von Cluster-Instanzen Im Falle eines Crashes leitet er den Vorgang des Dynamic Resource Remastering ein Ressource Remastering: Umverteilen der Ressourcen im Cluster bei einem Knotenausfall => Datenblöcke, die im Cache des ausgefallenen Knotens vorlagen, werden von einem der verbleibenden Knoten übernommen Oracle 10g: Automatic Storage Management Oktober 2005 Seite 27 Prozesse LMS: Lock Manager Process Entspricht dem Global Cache Service (GCS) Antwortet auf Ressourcen Requests von Instanzen, die einen Block aus dem eigenen Cache anfordern Abhängig vom Workload kann eine Instanz bis zu 10 LMS-Prozesse starten Oracle 10g: Automatic Storage Management Oktober 2005 Seite 28
Ressourcen auf Disk Cluster Registry Quorum Oracle 10g: Automatic Storage Management Oktober 2005 Seite 29 Services und Daemons Quelle: Oracle / M. Michalewicz 2005 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 30
Services bzw. Daemons Auf Windows => Services: OracleCSService OracleCRService OracleEVMService Unix => Daemons: cssd crsd evmd Oracle 10g: Automatic Storage Management Oktober 2005 Seite 31 Konfigurationsbeispiel Oracle 10g: Automatic Storage Management Oktober 2005 Seite 32
Planung Redundante Storage Pfade Redundante Netzwerkschnittstellen Private public Nutzung von Services Oracle 10g: Automatic Storage Management Oktober 2005 Seite 33 Ablauf der Installation Cluster Ready Services Oracle Software Erstellen der Clusterdatenbank Oracle 10g: Automatic Storage Management Oktober 2005 Seite 34
Vor der Installation der CRS Funktioniert der Zugriff auf Shared Storage von allen Knoten aus sowohl lesend als auch schreibend Ist jeder Knoten von jedem erreichbar: Über Private Network Über Public Network Jeweils über Hostname und IP-Adresse Ist rsh bzw. ssh sauber konfiguriert Wichtig: Zugriff ohne Paßwortanforderung Oracle 10g: Automatic Storage Management Oktober 2005 Seite 35 Die Clusterdatenbank Auf Shared Storage Data Files Redo Log Files Control Files Oracle 10g: Automatic Storage Management Oktober 2005 Seite 36
Installationsbeschreibungen www.puschitz.com Quick Installation Guides von Oracle Oracle Metalink Oracle 10g: Automatic Storage Management Oktober 2005 Seite 37 Die Clusterdatenbank Für jede Instanz exklusiv Undo Tablespace Mind. 2 Redo Log Gruppen Parameter Files können gemeinsam genutzt werden RAC1.undo_tablespace=UNDO01 RAC2.undo_tablespace=UNDO02 RAC3.undo_tablespace=UNDO03 RAC4.undo_tablespace=UNDO04 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 38
Speicheroptionen Oracle 10g: Automatic Storage Management Oktober 2005 Seite 39 Speicheroptionen Oracle 10g: Automatic Storage Management Oktober 2005 Seite 40
Cluster Filesysteme Wichtig: Auf Zertifizierung achten!!! Oracle 10g: Automatic Storage Management Oktober 2005 Seite 41 Oracle Clusterfilesystem Windows und Linux Download unter http://oss.oracle.com Neue OCFS-Version seit kurzem verfügbar Oracle 10g: Automatic Storage Management Oktober 2005 Seite 42
Oracle Clusterfilesystem 1. Bereitstellen der Partitionen 2. Installieren der RPMS # rpm rpm -Uvh -Uvhocfs*.rpm Preparing... ###################################### [100%] 1:ocfs-support ###################################### [ 33%] 33%] 2:ocfs-2.4.9-e-smp ###################################### [ 66%] 66%] 3:ocfs-tools ###################################### [100%] # chkconfig --list grep grep-i -i ocfs ocfs ocfs ocfs0:off 1:off 2:off 3:on 3:on 4:on 4:on 5:on 5:on 6:off Oracle 10g: Automatic Storage Management Oktober 2005 Seite 43 Oracle Cluster Filesystem 3. Konfiguration des Files /etc/ocfs.conf #./ocfstool node_name = rac1-priv1 ip_address = 10.0.0.1 ip_port = 7000 7000 comm_voting = 1 guid guid = 9B2996991BCB25DF4CBB0003470CFE75 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 44
Oracle Clusterfilesystem 4. Laden des Kernel Moduls # /sbin/load_ocfs Oracle 10g: Automatic Storage Management Oktober 2005 Seite 45 Oracle Clusterfilesystem 5. Erstellen des Cluster Filesystems # mkfs.ocfs mkfs.ocfs usage: usage: mkfs.ocfs mkfs.ocfs-b -b block-size [-C] [-C][-F] [-F][-g [-g gid] gid] [-h] [-h]-l -L volume-label -m -m mount-path [-n] [-n][-p [-p permissions] [-q] [-q][-u [-u uid] uid] [-V] [-V] device device -b -b Block Block size size in in kilo kilo bytes bytes -C -C Clear Clear all all data data blocks blocks -F -F Force Force format format existing existing OCFS OCFS volume volume -g -g GID GID for for the the root root directory directory -h -h Help Help -L -L Volume Volume label label -m -m Path Path where where this this device device will will be be mounted mounted -n -n Query Query only only -p -p Permissions for for the the root root directory directory -q -q Quiet Quiet execution execution -u -u UID UID for for the the root root directory directory Oracle 10g: Automatic Storage Management Oktober 2005 Seite 46
Oracle Clusterfilesystem 5. Erstellen des Cluster Filesystems (Fortsetzung) # mkfs.ocfs mkfs.ocfs-f -F-b -b 128 128 -L -L/oracle /oracle-m -m/oracle /oracle/dev/hdg5 /dev/hdg5 Checking Checking heart heart beat beat on on volume volume... Cleared Cleared volume volume header header sectors sectors Cleared Cleared node node config configsectors Cleared Cleared publish publish sectors sectors Cleared Cleared vote vote sectors sectors Cleared Cleared bitmap bitmap sectors sectors Cleared Cleared data data block block Wrote Wrote volume volume header header Oracle 10g: Automatic Storage Management Oktober 2005 Seite 47 Oracle Clusterfilesystem Oracle 10g: Automatic Storage Management Oktober 2005 Seite 48
Services Basis des Workload Management im RAC Services können relokiert werden Clients und Mid Tier Applications verbinden sich zu einem Global Service Name Oracle 10g: Automatic Storage Management Oktober 2005 Seite 49 Services Quelle: HP 2005 / IT Symposium Oracle 10g: Automatic Storage Management Oktober 2005 Seite 50
Verwaltung von Services Enterprise Manager Oracle 10g: Automatic Storage Management Oktober 2005 Seite 51 Verwaltung von Services Enterprise Manager Quelle: Oracle / De Peerp Oracle 10g: Automatic Storage Management Oktober 2005 Seite 52
Verwaltung von Services Hinzufügen srvctl srvctladd addservice service-d -d ORADB ORADB -s -s ERP ERP -r -r RAC01,RAC02 -a -a RAC03,RAC04 Start srvctl srvctlstart start service service-d -d ORADB ORADB -s -s ERP ERP -i -i RAC01 RAC01 Status srvctl srvctlstatus statusservice service-d -d crm crm-s -s crm crm Relocate srvctl srvctlrelocate relocateservice service-d -d crm crm-s -s crm crm-i -i crm1 crm1 -t -t crm3 crm3 Oracle 10g: Automatic Storage Management Oktober 2005 Seite 53 RAC Failover Verbindung zu einem Service im Cluster Applikationen und Benutzer können bei einem Systemausfall automatisch und transparent mit der nächsten laufenden Instanz verbunden. Es sind nur wenige Benutzer betroffen. Failover der Benutzer unter einer Minute! Client pre-connect möglich. Oracle 10g: Automatic Storage Management Oktober 2005 Seite 54
Listener Konfiguration RAC Server 1 RAC Server 2 Listener Listener RAC1 RAC2 Dispatcher 1 Dispatcher 2 Dispatcher 3 Dispatcher 1 Dispatcher 2 DB_NAME=RAC DB_DOMAIN=itc-frankfurt.de SERVICE_NAMES=RAC.itc-frankfurt.de INSTANCE_NAME=RAC1 DISPATCHERS= (PROTOCOL=tcp) (DISPATCHERS=3) (LISTENER=listeners_RAC) Datenbank RAC DB_NAME=RAC DB_DOMAIN=itc-frankfurt.de SERVICE_NAMES=RAC.itc-frankfurt.de INSTANCE_NAME=RAC2 DISPATCHERS= (PROTOCOL=tcp) (DISPATCHERS=2) (LISTENER=listeners_RAC) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 55 Listener Konfiguration Local Listener LISTENER_CLUSNODE-1 = (ADDRESS (ADDRESS = (PROTOCOL (PROTOCOL = TCP) TCP) (HOST (HOST = clusnode-1vip) (PORT (PORT = 1521) 1521) ) SID_LIST_LISTENER_CLUSNODE-1 = (SID_LIST (SID_LIST = (SID_DESC (SID_DESC = (SID_NAME (SID_NAME = PLSExtProc) (ORACLE_HOME = $ORACLE_HOME) (PROGRAM (PROGRAM = extproc) extproc) ) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 56
Listener Konfiguration Remote Listener in TNS-Konfig # TNS TNS Alias Alias für für die die Nutzung Nutzung des des Instanz-Parameters REMOTE_LISTENER : LISTENERS_ORADB= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-1vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-2vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-3vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-4vip)(PORT=1521))) Oracle Instance Parameter -- --Zeiger auf auf TNS-Eintrag auf auf die die Virtual VirtualIP IP Adress AdressCLUSNODE-1 local_listener=listener_clusnode-1 -- --Zeiger auf auf TNS-Eintrag auf auf die die Virtual VirtualIP IP Adress Adressder der Datenbank Datenbank ORADB ORADB remote_listener=listeners_oradb Oracle 10g: Automatic Storage Management Oktober 2005 Seite 57 Load Balancing Oracle 10g: Automatic Storage Management Oktober 2005 Seite 58
Connection Load Balancing Serverseitig mit dem Oracle Listener Clientseitig Oracle 10g: Automatic Storage Management Oktober 2005 Seite 59 Clientseitiges Load Balancing RACDB = (DESCRIPTION = (LOAD_BALANCE = on) on) (ADDRESS = (PROTOCOL = TCP)(HOST = rac-01)(port = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac-02)(port = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac-03)(port = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac-04)(port = 1521)) (CONNECT_DATA = (SERVICE_NAME = rac) rac) ) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 60
Transparent Application Failover RACTAF = (DESCRIPTION = (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-02)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = RACDB) ) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 61 Transparent Appliction Failover Type none (ist default) select Method basic preconnect Retries Delay Oracle 10g: Automatic Storage Management Oktober 2005 Seite 62
Transparent Application Failover Client Load Balancing und Failover RACTAF = (DESCRIPTION = (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-02)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = RACDB) (TYPE=SESSION) (METHOD=BASIC)) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 63 Transparent Application Failover Failover mit Übernahme der Select-Statements RACTAFS = (DESCRIPTION = (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-02)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = RACDB) (FAILOVER_MODE= (TYPE=SELECT) (METHOD=BASIC) ) ) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 64
Transparent Application Failover Retry RACTAFS = (DESCRIPTION= (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-02)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME=RACDB) (FAILOVER_MODE= (TYPE=select) (METHOD=basic) (RETRIES=20) (DELAY=15) ) ) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 65 Transparent Application Failover Preconnect mit Übernahme von Select Statements RACTAFS = (DESCRIPTION = (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = RAC-02)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = RACDB) (FAILOVER_MODE= (TYPE=SELECT) (METHOD=PRECONNECT) ) ) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 66
Transparent Application Failover Backup: Optional Net Service Name des Backup Sollte bei METHOD=PRECONNECT gesetzt werden Oracle 10g: Automatic Storage Management Oktober 2005 Seite 67 TAF Preconnect TNSnames.ora ERP_PRECONNECT = (DESCRIPTION= (LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-1vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-2vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-3vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-4vip)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ERP_PRECONNECT)) (FAILOVER_MODE= (BACKUP=ERP)(TYPE=SESSION)(METHOD=BASIC)(RETRIES=180)(DELAY =5)) =5)) ) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 68
TAF Preconnect Thick JDBC url="jdbc:oracle:oci:@tns_alias" url="jdbc:oracle:oci:@(description= (LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-1vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-2vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-3vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-4vip)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ERP)))" url="jdbc:oracle:oci:@(description= (ADDRESS=(PROTOCOL=TCP)(HOST=clusalias)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ERP)))" Thin JDBC Oracle 10g: Automatic Storage Management Oktober 2005 Seite 69 TAF Preconnect url="jdbc:oracle:thin:@(description= (LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-1vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-2vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-3vip)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=clusnode-4vip)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ERP)))" url="jdbc:oracle:thin:@(description= (ADDRESS=(PROTOCOL=TCP)(HOST=clusalias)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ERP)))" Oracle 10g: Automatic Storage Management Oktober 2005 Seite 70
TCP-Timeout-Problem bei 9i RAC Beispiel 1 shutdown abort von Instance 1 Nachricht an Clients erfolgt Failoverzeit < 1min Beispiel 2 uadmin 0 1 von Knoten 2 Client bekommt nichts vom Ausfall mit TCP/IP Client Timeout Parameter Failover findet nach 11min statt Lösung zu Beispiel 2 tcp_ip_abort_interval (default: 480000 ms) tcp_ip_abort_cinterval (default: 180000 ms) Oracle 10g: Automatic Storage Management Oktober 2005 Seite 71 Wechsel zu RAC In der Regel unproblematisch Das heißt nicht, dass der Failover in jedem Fall automatisiert abläuft die Anwendung mit der Anzahl an Knoten linear skaliert Lösung: Cluster Interconnect nicht unnötig belasten Partitionierung einsetzen Workload Management nutzen Oracle 10g: Automatic Storage Management Oktober 2005 Seite 72
und die Performance? Batch Jobs meist schlecht skalierbar OLTP und DSS skalieren anwendungsabhängig - oft gut. Oracle 10g: Automatic Storage Management Oktober 2005 Seite 73 und die Performance Soweit möglich: Last auf Cluster Interconnect vermeiden Contention mehrer Nodes auf gleiche Blöcke vermeiden Locally Managed Tablespaces mindert Zugriffe aufs DD ASSM innerhlalb der Tablespaces Full Table Scans, wenn möglich vermeiden Partitioning einsetzen Oracle 10g: Automatic Storage Management Oktober 2005 Seite 74
Best Practices Verfügbarkeit durch horizontale Skalierung Performance durch vertikale Skalierung Viele kleine Server produzieren Overhead Systemload aller Server steigt Erfahrung: 1 Server 80%, 2 Server 50% + 50% 20% Overhead bei Lastverteilung Oracle 10g: Automatic Storage Management Oktober 2005 Seite 75 Best Practices Load Balancing prüfen: Ev. ist Partitionierung von Daten und Benutzern sinnvoll (Workload Management und Services nutzen) Failover konfigurieren Anwendung schon heute cluster aware und grid aware stricken! Oracle 10g: Automatic Storage Management Oktober 2005 Seite 76
Die Zukunft: Enterprise Grid? Clients AppServer Grid Datenbank Grid Storage Grid Oracle 10g: Automatic Storage Management Oktober 2005 Seite 77 Resümee Oracle Cluster Ready Services sind ein großer Schritt in die richtige Richtung! Automatic Storage Management ist die Speicheroption der Zukunft für RAC und Grid! Die Verwaltung von Datenbank-Services und der automatische Failover sind recht komfortabel. Die Einbindung weiterer Ressourcen in CRS wird sicherlich hochinteressant! Oracle 10g: Automatic Storage Management Oktober 2005 Seite 78
Literatur [BeKü_2002] M. Beeck, M. Kühn: The Unbreakable Database System, Unterföhring, 11.2002 Oracle Dokumentation Oracle 10g: Automatic Storage Management Oktober 2005 Seite 79