Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

HA Datasource

570 Aufrufe

Veröffentlicht am

My presentation from feburar 2007. Topic Oracle AS, HA Datasource

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

HA Datasource

  1. 1. Hochverfügbarkeit von Datenquellen aus Sicht des OracleAS Ulrich Gerkmann-Bartels Senior Consultant Oracle Technologies
  2. 2. Inhalt• Anforderungen und Wünsche• Lösungen von Oracle – Transparent Application Failover (TAF) – Fast Connection Failover (FCF)• Vergleich• Quellen Copyright TEAM, Paderborn Feb-07 Seite 2
  3. 3. Anforderungen und Wünsche• Die Datenquelle sollte immer verfügbar sein ! [Hochverfügbar ☺]• Keine Anpassungen an die Applikation bzgl. der gewählten Methodik zur Sicherstellung der Hochverfügbarkeit• Connection Pooling sollte möglich sein• Die laufenden Applikationen sollten keinerlei Auswirkung eines Ausfalls oder einer Stale Connection bemerken Copyright TEAM, Paderborn Feb-07 Seite 3
  4. 4. Randbedingungen – Application Server• Verwendung eines Application Servers* setzt eine Java Implementierung des Datenbanktreibers voraus.• Hochverfügbarkeit muss als Teil der JDBC Treibers implementiert und ggfs. des Application Servers angeboten werden. * Betrachtet wird hier ein Java EE / J2EE Application Server Copyright TEAM, Paderborn Feb-07 Seite 4
  5. 5. Randbedingungen - Architektur EJB JSP Session Beans Connection Pool AS DB Connect wird z. Z. verwendet Connect wartet auf Verwendung Copyright TEAM, Paderborn Feb-07 Seite 5
  6. 6. Lösungen von Oracle zur hochverfügbaren DatenquellenOracle bietet in diesem Umfeld folgende Möglichkeiten: – Transparent Application Failover – Fast Connection Failover Copyright TEAM, Paderborn Feb-07 Seite 6
  7. 7. Transparent Application Failover (TAF)• Transparent Application Failover ermöglicht einer Application automatisch einen Reconnect auf eine andere Datenbankinstanz nach einem Verbindungsverlust durchzuführen.• Versucht ein Client eine aufgebaute Verbindung zu nutzen, die fehlerhaft ist, so wird durch TAF automatisch eine neue Verbindung zu einer anderen Instanz aufgebaut. Copyright TEAM, Paderborn Feb-07 Seite 7
  8. 8. TAF –Reconnect mit Oracle Real Application ClusterIm Fehlerfall wandern die entsprechenden Verbindungen auf eine andere Instanz. Copyright TEAM, Paderborn Feb-07 Seite 8
  9. 9. TAF – Failover Level• SESSION (Login Failover) – Client wird automatisch auf den nächsten verfügbare Knoten reconnected• SELECT (Statement Failover) – Ausfall erfolgt bei der Ausführung einer Abfrage – Client wird automatisch auf den nächsten verfügbare Knoten reconnected – Abfrage lauft auf dem nächsten Knoten weiterGrundsätzlich muss auf offenen Transaktionen ein Rollback erfolgen, es wird eine ‚ORA-25402: transaction must roll back‘ Exception geworfen. Copyright TEAM, Paderborn Feb-07 Seite 9
  10. 10. TAF – Connection DescriptorDEVBRAIN.TEAM-PB.DE = (DESCRIPTION= (FAILOVER=on) (ADDRESS= (PROTOCOL=tcp) (HOST=devbrain.team-pb.de) (PORT=1521) : ) (CONNECT_DATA= (SERVICE_NAME=ORCL) (FAILOVER_MODE= (TYPE=session) (METHOD=basic) (RETRIES=20) (DELAY=15) ) ) ) Copyright TEAM, Paderborn Feb-07 Seite 10
  11. 11. TAF - EigenschaftenUnterstützung für: Keine Unterstützung für:• User Session • Aktive Transaktion• Aktive Cursor, die gerade • PL SQL Package – Variablenausgeführt werden • Connection Pooling• OCI (JDBC/OCI – Thick) • JDBC – ThinBeim Einsatz des Oracle JDBC/OCI Treibers ist TAF immer aktiviert ! Copyright TEAM, Paderborn Feb-07 Seite 11
  12. 12. Fast Connection Failover (FCF)• Fast Connection Failover ermöglicht es ungültige Verbindungen festzustellen und diese Verbindungen aus einem Connection Pool zu bereinigen.• Ziel ist es ungültige Verbindungen in einem Pool zu minimieren bzw. auszuschließen, um so nur gültige Verbindungen den Applikationen, die den Pool nutzen zu Verfügung zu stellen. Copyright TEAM, Paderborn Feb-07 Seite 12
  13. 13. FCF – ONS Service Down Notification ONS ONS Connection Pool ONS AS RAC CleanupCopyright TEAM, Paderborn Feb-07 Seite 13
  14. 14. FCF – ONS Service Up Notification ONS ONS Connection Pool OK ONS AS RAC RebalancingCopyright TEAM, Paderborn Feb-07 Seite 14
  15. 15. FCF - Randbedingungen• Verwendung des Implicit Connection Cache ist FCF aktiv• Innerhalb des Connect String muss der Service Name verwendet werden; Keine SID• Database Release 10g (R1 oder R2) Real Application Cluster DB• Oracle Notification Services muss auf dem JDBC Client (Application Server) verfügbar sein. Copyright TEAM, Paderborn Feb-07 Seite 15
  16. 16. FCF – JDBC Connection URLsurl="jdbc:oracle:oci:@(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias) (PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=service_name)))"url = "jdbc:oracle:thin@//host:port/service_name"url = "jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias) (PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=service_name)))“url = "jdbc:oracle:thin@host:port:SID" Copyright TEAM, Paderborn Feb-07 Seite 16
  17. 17. FCF – OracleAS 10gR3 – Managed Datasource<managed-data-source jndi-name="jdbc/ManagedDS" description="Managed DataSource" connection-pool- name="myConnectionPool“ name="ManagedDS"/> <connection-pool name="myConnectionPool“min-connections="10"max-connections="30"inactivity-timeout="30"> <connection-factory factory- class="oracle.jdbc.pool.OracleDataSource" user="scott" password="tiger" url="jdbc:oracle:thin:@(DESCRIPTION= (LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=service_name)))"><property name="loginTimeout" value="30"/><property name="connectionCachingEnabled" value="true"/><property name="fastConnectionFailoverEnabled" value="true"/> </connection-factory> </connection-pool> Copyright TEAM, Paderborn Feb-07 Seite 17
  18. 18. FCF – OracleAS 10gR3 – Native Datasource<native-data-source name="nativeDataSource" jndi- name="jdbc/nativeDS" description="Native DataSource" data-source-class="oracle.jdbc.pool.OracleDataSource" user="scott" password="tiger" url="jdbc:oracle:thin:@(DESCRIPTION= (LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=service_name)))"><property name="connectionCacheName" value="ICC"/><property name="connectionCachingEnabled" value="true"/><property name="fastConnectionFailoverEnabled" value="true"/></native-data-source> Copyright TEAM, Paderborn Feb-07 Seite 18
  19. 19. FCF – Konfiguration des ONSJe nach Produkt und Version existieren zur Zeit unterschiedliche Konfigurationsdateien für die Bereitstellung von ONS: Produkt und Version Konfigurationsdatei RAC 10gR1 und 10gR2 $ORACLE_HOME/opmn/conf/ons.config OracleAS 10gR2 $ORACLE_HOME/opmn/ons.conf OracleAS 10gR3 $ORACLE_HOME/opmn/conf/opmn.xmlCopyright TEAM, Paderborn Feb-07 Seite 19
  20. 20. FCF – Konfiguration des ONS (Beispiele)Oracle 10gR2 RAC racgons add_config rac_node2.devbrain.team-pb.de:6200OracleAS 10g R3<notification-server><port local="6104" remote="6204" request="6007"/><ssl enabled="false" wallet-file="$ORACLE_HOMEopmnconfssl.wltdefault"/><topology><nodes list="mt_node1.devbrain.team-pb.de:6200,rac_node1.devbrain.team-pb.de:6200,rac_node2.devbrain-team-pb.de:6200"/></topology></notification-server> Quelle: Oracle Application Server 10g Fast Connection Failover Configuration Guide Copyright TEAM, Paderborn Feb-07 Seite 20
  21. 21. FCF – Test der ONS KommunikationOracle RAC$ORACLE_HOME/opmn/bin/onsctl ping$ORACLE_HOME/opmn/bin/onsctl debugOracleAS$ORACLE_HOME/opmn/bin/opmnctl ping$ORACLE_HOME/opmn/bin/opmnctl debug ONS ONS Connection Pool ONS AS RAC Copyright TEAM, Paderborn Feb-07 Seite 21
  22. 22. Vergleich FCF vs TAF1. Unabhängigkeit vom Treiber FCF (JDBC/Thin und JDBC/OCI); TAF nur als JDBC/OCI2. Application-Level Connection Retries TAF führt einen Reconnect auf OCI/Net Level aus3. Integration mit ‚Implizit Connection Cache‘ TAF arbeitet pro Verbindung; Keine Notification möglich.4. Load Balancing von neuen Verbindungen Keine Unterstützung mit TAF5. Transaction Management Benötigt ein Rollback der Application, bei einer offenen Transaction. Copyright TEAM, Paderborn Feb-07 Seite 22
  23. 23. Kann ich nicht beides nutzen ? Quelle: Oracle Database JDBC Developer‘s Guide and ReferenceCopyright TEAM, Paderborn Feb-07 Seite 23
  24. 24. Anforderungen und Wünsche• RAC Die Datenquelle sollte immer verfügbar sein ! [Hochverfügbar ☺]• Keine Anpassungen an die Applikation bzgl. der gewählten FCF Methodik zur Sicherstellung der Hochverfügbarkeit• Connection Pooling sollte möglich sein• Die laufenden Applikationen sollten keinerlei Auswirkung eines Ausfalls oder einer Stale Connection bemerken ET RY R Copyright TEAM, Paderborn Feb-07 Seite 24
  25. 25. QuellenOracle Database 10g JDBC DocumentationOC4J 10g (10.1.3.x) DocumentationOTN - OracleAS High AvailabilityOC4J Data Sources: Implicit Connection Caching and Fast Connection FailoverUsing TAF in Oracle Real Application ClusterOracle Application Server 10g Fast Connection Failover Configuration Guide Copyright TEAM, Paderborn Feb-07 Seite 25
  26. 26. Vielen Dankfür Ihre Aufmerksamkeit! Hermann-Löns-Str. 88 33104 Paderborn Fon: 05254 / 8008-0 Fax: 05254 / 8008-19 eMail: team@team-pb.de www.team-pb.de

×