+ All Categories
Home > Documents > Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to...

Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to...

Date post: 21-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
30
Page 1 Markus Michalewicz BU Database Technologies Oracle Deutschland GmbH 7$)64/1HW.RQILJXUDWLRQ QLFKWQXUIíU5$&
Transcript
Page 1: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 1

Markus MichalewiczBU Database Technologies

Oracle Deutschland GmbH

7$)���64/��1HW�.RQILJXUDWLRQ�

QLFKW�QXU�IíU�5$&

Page 2: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 2

2UDFOH�1HW�IRU�5$&

TAF, Load Balancing and More

:KDW�%HQLILWV�'RHV 7$)�3URYLGH"

y In the case of an Oracle instance failure, TAF automatically transfers client connections to a surviving instance.

y Clients already connected do not need to reconnect if a secondary instance is available andTAF has been pre-configured.

y It provides high availability to an end client, andend clients do not see any errors or outages.

y TAF works with MTS or dedicated sessions.

Page 3: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 3

7$)�FDQ�EH�XVHG�ZLWK

y TAF is designed for OPS/RAC

y Can be implemented in RAC Guard(HA server, OPFS, PFS)

y Replicated Databases

y Data Guard

y Fail Safe Clusters (NT, W2K)

y Single Instance Environments

• %HLGH�.QRWHQ�DNWLY

• =XJULII�DXI�HLQH�'DWHQEDQN

Aktiver2UDFOH�L '%

.QRWHQ���5$&

Aktiver2UDFOH�L '%

.QRWHQ���5$&

2UDFOH�7UDQVSDUHQW�$SSOLFDWLRQ�)DLORYHU��7$)�

empno name

7369 Smith7499 Allen7521 Ward7566 Jones7654 Martin7698 Blake

%HQXW]HU�ZHUGHQ�DXWRPDWLVFK�

DXI�HLQHP�LQWDNWHQ�.QRWHQ�

üEHUQRPPHQ�XQG�OHVHQGH�

=XJULIIH�IRUWJHVHW]W

Page 4: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 4

7KH�DUFKLWHFWXUDO�UHTXLUHPHQWV RI�7$)

y All the applications must be TAF aware means: OCI driver or Pro* precompiler

y SQL*Plus is TAF aware

y ODBC connection

y JDBC Thick Driver (OCI driver)

Applications are not OCI compliantForms, Reports, etc.

7KH�6ROXWLRQ�EHKLQG�LW�DOO��2UDFOH�1HW�

y Dynamic Instance Registration

y Load Balancing– Client-Side– Server-Side

y Connect Time Failover

y Runtime Failover– Transparent Application Failover

Page 5: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 5

'\QDPLF�,QVWDQFH�5HJLVWUDWLRQ

y Instance Î Listener Communication

y Use SERVICE_NAME not SIDs

y Recognises / Updates via PMON– Start and stop listener– Start and stop instance

y Simplifies Management

y Service Registration Delay:– If startup is 1) Listener 2) Instance

then service registration is immediate.

– If startup is 1) Instance 2) Listener then PMON fails the initial registration and retries every 60 sec. (connections are refused until successfully registered!)

– Workaround: “$/7(5�6<67(0�5(*,67(5”

upon listener startup.

'\QDPLF�,QVWDQFH�5HJLVWUDWLRQ�±WKLQJV�WR�EH�DZDUH�RI

Page 6: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 6

• Listener verteilen Anfragen basierend auf CPU-Last– PMON Prozess meldet den Listenern die Knotenauslastung

.QRWHQ��

UDF�

,QVWDQ]

.QRWHQ��

OVQU�

UDF�

,QVWDQ]OVQU�

5DF�

'DWHQEDQN&OLHQW��

1HW]ZHU N

&OLHQW��

&OLHQW��

&OLHQW��

&OLHQW�Q

&OLHQW��6HUYHUVHLWLJHV�/RDGEDODQFLQJ&OLHQW��6HUYHUVHLWLJHV�/RDGEDODQFLQJ

• Verbindungsaufbau nach einem Zufallsprinzip– verwendet die Adressliste der tnsnames.ora

/RDG�%DODQFLQJ�± &OLHQW�6LGH

y Client-Side– Multiple ADDRESSes– LOADBALANCE=ON– Random profile

y Connection Levelling- Simple. Effective. Configuration Changes

������������ ����� ����������� �������� ���������� �!��" ���#��� ��#��$�������$�����%���#'&� "�����������)(��� ����*�� "�����������+� � !����"���������,�-����!�& ��. �����/�10�2�34 65�24 87�29 60"7:�& � !����"�*�10�;�<�0"&�&� "�����������+� � !����"���������,�-����!�& ��. �����/�10�2�34 65�24 87�29 60"7�2"& � !����"�*�10�;�<�0"&�&� ���"�(�$���#������-=�>?&�A@ ? �����B"���,�,��#'&

&

Page 7: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 7

6HUYHU�6LGH�/RDG�%DODQFLQJ6HUYHU�6LGH�/RDG�%DODQFLQJ

.QRWHQ��

UDF�

,QVWDQ]

.QRWHQ��

OVQU�

UDF�

,QVWDQ]OVQU�

5DF�

'DWHQEDQN&OLHQW��

1HW]ZHU N

&OLHQW��

&OLHQW��

&OLHQW��

&OLHQW�Q

y Server-Side– REMOTE_LISTENER– PMON updates load info– Listener redirects

connections

y Load Levelling- Simple- Effective- Configuration Changes

/RDG�%DODQFLQJ�± 6HUYHU�6LGH

y PMON dynamically registers the services to the specified listeners with:

– service names for each running instance of the database

– instance names of the database– service handlers (dispatchers and dedicated

servers) available for each instance– dispatcher, instance, and node load information

y 1-Minute OS Node Load Average all 30 secs.y Number of Connections to Each Instancey Number of Connections to Each Dispatcher

Page 8: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 8

/RDG�%DODQFLQJ�± 6HUYHU�6LGHKRZ�FRQQHFWLRQV�DUH�HVWDEOLVKHGy Depending on the load information, a listener decides which instance

and, if shared server is configured, which dispatcher to send the incoming client request to.

y In a shared server configuration, a listener selects a dispatcher in the following order: 1) least loaded node, 2) least loaded instance, and 3) least loaded dispatcher for that instance.

y In a dedicated server configuration, a listener selects an instance in the following order: 1) least loaded node, and 2) least loadedinstance.

y An Oracle9i Real Application Clusters environment requires that the dispatchers on each instance be cross registered with the other listeners on the other nodes. This is achieved by the use of theLISTENER attribute of the DISPATCHERS parameter.

6HUYHU�6LGH /RDGEDODQFLQJ VFKHPD�6HUYHU�6LGH /RDGEDODQFLQJ VFKHPD�

&RQQHFWLRQ /RDG %DODQFH

,QVWDQFH�

$

&OLHQW�

'LVS�

'DWDEDVH�6HUYHU 0DFKLQH

�/LVW�

,QVWDQFH�

%'LVS�

/LVW�

'LVS�

Page 9: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

Page 9

6HUYHU�6LGH�/RDGEDODQFLQJ�±ZKDW�WR�VHW�LQ�LQLW�RUD

y SERVICE_NAMES = <6(59,&(B1$0(>

(defaults to DB_NAME.DB_DOMAIN)y INSTANCE_NAME = <,167$1&(B1$0(>

y LOCAL_LISTENER = <L/,67(1(5B$/,$6>

y REMOTE_LISTENER = <5/,67(1(5B$/,$6>

(automatically configured by DBCA)

optional:

y dispatchers= “(PROTOCOL=TCP)(SERVICE= <6(59,&(B1$0(>(LISTENER = <DLISTENER_ALIAS>"

6HUYHU�6LGH�/RDGEDODQFLQJ�±ZKDW�WR�VHW�LQ�WQVQDPHV�RUD

LISTENERS_RAC.ORACLE.COM =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = stdemo06)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = stdemo07)(PORT = 1521))

)

LISTENER_RAC11.ORACLE.COM =

(ADDRESS = (PROTOCOL = TCP)(HOST = stdemo06)(PORT = 1521))

LISTENER_RAC12.ORACLE.COM =

(ADDRESS = (PROTOCOL = TCP)(HOST = stdemo07)(PORT = 1521))

Page 10: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 10

([DPSOH RI�OVQUFWO�VHUYLFHV�RXWSXW

$ lsnrctl services

LSNRCTL for HPUX: Version 9.0.1.2.0 - Production on 19-FEB-2002 12:36:19

Copyright (c) 1991, 2001, Oracle Corporation. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))

Services Summary...

Service "rac" has 2 instance(s).

Instance "rac1", status READY, has 2 handler(s) for this service...

Handler(s):C D�E�D�FAG H�I E�D6C�JLK�MAN O�P�Q�K R�J�S8T UWVAJ�X Y�K J�S8T U4K�MAN�M J8T VAJ�NASAZ[�EA\L]�I E_^ E�[A`�E�[a H�D�D�[�E�^�^ b a c [�]�IA]�GA]�dAb�I�G c�efa g ]L^AIAbA[AH�GLh iL]AD�Ekj efa c ]A[LIAb�jAlAmLj e�e

"D001" established:0 refused:0 current:0 max:2026 state:ready

DISPATCHER <machine: rac-node1, pid: 2157>

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac-node1)(PORT=60150))(PRESENTATION=oracle.aurora.server.GiopServer)(SESSION=RAW))

Instance "rac2", status READY, has 2 handler(s) for this service...

Handler(s):

"D001" established:0 refused:0 current:0 max:2026 state:ready

DISPATCHER <machine: rac-node2, pid: 18132>

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac-node2)(PORT=65052))(PRESENTATION=oracle.aurora.server.GiopServer)(SESSION=RAW))C D�E�D�FAG H�I E�D6C�JLK�MAN O�P�Q�K R�J�S8T n'VAJ�X Y�K J�S8T U4K�MAN�M J8T VAJ�NASAZ

dA]�G H�d9^ E�[A`�E�[The command completed successfully

• %HLGH�.QRWHQ�DNWLY

• =XJULII�DXI�HLQH�'DWHQEDQN

Aktiver2UDFOH�L '%

.QRWHQ���5$&

Aktiver2UDFOH�L '%

.QRWHQ���5$&

2UDFOH�7UDQVSDUHQW�$SSOLFDWLRQ�)DLORYHU��7$)�

empno name

7369 Smith7499 Allen7521 Ward7566 Jones7654 Martin7698 Blake

%HQXW]HU�ZHUGHQ�DXWRPDWLVFK�

DXI�HLQHP�LQWDNWHQ�.QRWHQ�

üEHUQRPPHQ�XQG�OHVHQGH�

=XJULIIH�IRUWJHVHW]W

Page 11: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 11

&RQQHFW 7LPH�)DLORYHU

y Connect time failover is not the same as the Transparent Application Failover

y Implement connect time failover:– Failover = on

y Connect-time failover is turned on by default

������������ ����� ����������� �������� ���������� �!��" ���#��� "�����������)(��� ����*�� "�����������+� � !����"���������,�-����!�& ��. �����/�10�2�34 65�24 87�29 60"7:�& � !����"�*�10�;�<�0"&�&� "�����������+� � !����"���������,�-����!�& ��. �����/�10�2�34 65�24 87�29 60"7�2"& � !����"�*�10�;�<�0"&�&� ���"�(�$���#������-=�>?&�A@ ? �����B"���,�,��#'&

&

&RQQHFW�7LPH�)DLORYHU

y Find a Listener:1. Listening?2. Service available?3. Instance available?9 Connected!

• Any Client• Always Useful

Page 12: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 12

7KUHH�³/HYHOV´ RI�7$)�)XQFWLRQDOLW\

y TYPE=SESSION, METHOD=BASIC (Login Failover)– Client is automatically logged into surviving node of cluster

y TYPE=SELECT (Statement Failover)– Node failure occurs during query– Client fails over to a surviving node and is logged in– Query replayed on surviving node but only rows not

returned during the original query execution are returned

y METHOD=PRECONNECT (“Fast” Session Failover)– Client connected to two instances at session establishment– Avoid impact of “login storm” during failover to surviving node

in Real Applications Cluster or Oracle Parallel Server

o8p�qsr)t8u�v�w x�y?w z{t8uv{|sy?wAvsz)}�~� x�y��8vst��8��o��fz8��~� y8�{u��|sy{~{�{tsz{�{y8���� u�x{x�t{y��{����|�s�{o�~� u�x{x�t{y��{��~ � �8t{z�o)z�v8z�|�~�o8v���� � � z��{o�~��s�s��w��{��w��8��wL���)��� � �8zst�o�~��s�s���{�� u�x{x�t{y��{��~ � �8t{z�o)z�v8z�|�~�o8v���� � � z��{o�~��s�s��w��{��w��8��wL���)��� � �8zst�o�~��s�s���{�� |sz8u�x)���8u|)u{��vsy{~��s���� � u��)|sz)��yst�~�z8���

�� vsz8�{�y�vo���x8u�o6u�~

� �)y{t)��y{t�~�x�ysx��fv)u�o)ysx"�� �)y{t)�"�)vsyf��{us}�y{~��{�{��r8p�qsr��� � �{ {¡{�)¢p��k�£��s¤{p8~

� rf¥s¦�ps~�q)p�¡sp�§�r�� � £�pr)¨�s¤s~8©��q) {§��� t{y�o)t��fy��)~��s��� � x�y�|)u�ª�~����

�{�{�

*UXQGODJH�I�U�7$)�± 64/1HW �7161$0(6

Page 13: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 13

7$)�3DUDPHWHUV�LQ�WQVQDPHV�RUD ± RSWLRQDOo)y��{o)t8u�v�w z{t8u�v{|sy�wAvsz)}�~� x�y��8vst��8��o��fz8��~� u�x{x�t{y��{����|�s�{o�~� u�x{x�t{y��{��~ � �8t{z�o)z�v8z�|�~�o8v���� � � z��{o�~�qsr)¤{p)£����«�� � �8zst�o�~��s�s���{�� u�x{x�t{y��{��~ � �8t{z�o)z�v8z�|�~�o8v���� � � z��{o�~�qsr)¤{p)£�����¬� � �8zst�o�~��s�s���{�� � u��)|sz)��yst�~��s���� |sz8u�x)���8u|)u{��vsy{~��s���

�� vsz8�{�y�vo���x8u�o6u�~� �)y{t)��y{t�~�x�ysx��)v)u�o)y8x"�� �)y{t)�"�)vsy6��{us}�y�~��{�s§��� �k���{o6u{��v8yf��t{z�|sy�~1­ �8t���}�u�tsª?®L�)y�vsz8��xsutsª4­L�� � u��)|sz)��ystf��}�zsx�y{~� ofª��8ys~�q)p�¡sp�§�r��� }�y�o � zsx�~8©��q8 {§��� �8u�vs�8¯��8~{t8u�v8x°�w zst8u�v{|sy�wAvsz)}��

��

±6±f²A³{´¶µ· ¸6¹ ±kº6»s¼�½f²)¼�¾k¿Àµ· ³ ¸f¸ » ¹ ±f±¶µ · ½�»6¾8²L¾)ºk¾fÁµò�ºf½8Ä · Å ¾)±f²ÆµÈÇ�ÉfÊ8ËkÌfÍ6ÍfÎ6Ï�ÐsÑLÒ�Ä · ½k¾6»8²ÆµÓÏ�ÔkÕ8Ï)Ä6Ä· ³ ¸f¸ » ¹ ±f±¶µ · ½�»6¾8²L¾)ºk¾fÁµò�ºf½8Ä · Å ¾)±f²ÆµÈÇ�ÉfÊ8ËkÌfÍ6ÍfÎLÕ�ÐsÑLÒ�Ä · ½k¾6»8²ÆµÓÏ�ÔkÕ8Ï)Ä6Ä· ³ ¸f¸ » ¹ ±f±¶µ · ½�»6¾8²L¾)ºk¾fÁµò�ºf½8Ä · Å ¾)±f²ÆµÈÇ�ÉfÊ8ËkÌfÍ6ÍfÎ�ÖLÐsÑLÒ�Ä · ½k¾6»8²ÆµÓÏ�ÔkÕ8Ï)Ä6Ä· ³ ¸f¸ » ¹ ±f±¶µ · ½�»6¾8²L¾)ºk¾fÁµò�ºf½8Ä · Å ¾)±f²ÆµÈÇ�ÉfÊ8ËkÌfÍ6ÍfÎ�×LÐsÑLÒ�Ä · ½k¾6»8²ÆµÓÏ�ÔkÕ8Ï)Ä6Ä· ºk¾6¿6¿ ¹ º8²AØ ¸ ³�²�³Èµ· ± ¹ »LÙ ¹ »Úµ ¸6¹6¸ ¼LºL³�² ¹6¸ Ä· ± ¹ »LÙ�¼Lº ¹ Ø)¿k³fÛ ¹ µÃÇ6Ç6²A³�´8Ä6Ä6Ä

��J�5HO����7$)�XQG�6HUYLFHV� �6HUYHU�VHLWLJHV�7$)

Ü ÝfÞ�Ý{ßsà�á)Ý�âfãsä�åAæ�å{Ýsç{è�é{ß{Ý�ê ä�ësâ�é{ìkí6æ�å{Ýsç{è�é{ß{Ýî å{Ýsç{è�é{ß{Ý�æ"ïð6ä�Ýòñsóõô å{åö�÷�øWô�ù ®�sú6��¨�k������rs  �  {§s��rs {�s��q�~�û�rs�8ü�p�ý�®� �{ {¡{�)¢p��k�£�pr)¨��s¤�~�û¤)©{£�qL��q)p��)¢� {§sp�w � �{ {¡{�)¢p��k�£�p�r)¨�s¤6��©��q8 {§�þ"®� �{ {¡{�)¢p��k�"rf¥s¦�pÿ~�û¤)©{£�qL��q)p��)¢� {§sp�w � �{ {¡{�)¢p��k�"rf¥8¦�p6��q)p{¡sp�§�r�þ"®� �{ {¡{�)¢p��k���sprs�s sp�q�~�û��s�{��þ"®� �{ {¡{�)¢p��k��¤{p�¡{�f¥�~�û���þ"®§{¡f©8�����{�{¡ÿ~�û¤)©{£�qL��q)p��)¢� {§sp�w�§s¡f©8�����{�{¡k��¡{�8�������

(BUG 4449641 & BUG 4487927)

2.

1.

3.

Page 14: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 14

7$)�� 2&,�FRQQHFW

y JDBC / OCI connect

y Examples are in $ORACLE_HOME/jdbc/demo/samples/jdbcoci$ORACLE_HOME/jdbc/demo/samples/generic

Employee.java example ….

DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=venus.de.oracle.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=mars.de.oracle.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=V92M.linux)))");

Or

DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=venus.de.oracle.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=mars.de.oracle.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=V92M.linux)(FAILOVER_MODE=(TYPE=select) (METHOD=basic)(RETRIES=20)(DELAY=5)))");

7$)�9HULILFDWLRQq)p�¡sp�§�r §{�8ü��r � ü�q)p��s���f£�p�� u{���6u � |8¯��fy{t�®Æ£��{§8¨ s�{p�®È�k���{o����kx �)��qsrs�s��§sp���®

� �{ {¡{�)¢p��k�"rf¥s¦�p�® � �{ {¡{�)¢p��k��£�pr)¨�8¤�® � �{ {¡sp{¤6���)¢p��� �{�f£ �8¢��{q)p�q{q8 {�s� ¨�p��sp ü�q)p��s���f£�p�~���8v8z�o{o����{�8ü8¦�©�¥�£��{§8¨ 8�{p�®È�k���{o��� 8¤�® � �s {¡{�)¢p��k�"rf¥s¦�p�® � �s {¡{�)¢p��k�£�prf¨�s¤�® � �{ {¡sp{¤6���)¢p��o)¨�p��8ü�r6¦ü�rÓ©�p � �{�sp � �{ {¡{�)¢�p����spq)p)£{©�¡sp�q�r)¨�p � �s¡{¡{�  s���� ANZAHLUSER MACHINE INSTANCE# FAILOVER_TYPE FAILOVER_M FAI

---------- ----------------------- --------- ------------- ---------- ---

1 sturachh1 1 NONE NONE NO

1 DE-ORACLE\mmichale-lap 1 SELECT BASIC NO

o)¨�p��8ü�r6¦ü�r�� � r)p�� � �{ {¡{�)¢p{�� q� ANZAHLUSER MACHINE INSTANCE# FAILOVER_TYPE FAILOVER_M FAI

---------- ----------------------- --------- ------------- ---------- ---

1 DE-ORACLE\mmichale-lap 2 SELECT BASIC YES

Page 15: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 15

• %HLGH�.QRWHQ�DNWLY

• =XJULII�DXI�HLQH�'DWHQEDQN

Aktiver2UDFOH�L '%

.QRWHQ���5$&

Aktiver2UDFOH�L '%

.QRWHQ���5$&

2UDFOH�7UDQVSDUHQW�$SSOLFDWLRQ�)DLORYHU��7$)�

empno name

7369 Smith7499 Allen7521 Ward7566 Jones7654 Martin7698 Blake

%HQXW]HU�ZHUGHQ�DXWRPDWLVFK�

DXI�HLQHP�LQWDNWHQ�.QRWHQ�

üEHUQRPPHQ�XQG�OHVHQGH�

=XJULIIH�IRUWJHVHW]W

'UHL�6]HQDULHQ��.QRWHQ�&UDVK

y Insert(beendet)-Crash-SQLÆ ORA-25402 transaction must rollback

y SELECT(beendet)-Crash-SQLÆ SELECT wird übernommen

y SELECT (warten)-CRASHÆ TAF funktioniert nur, bei ENABLE=BROKENund entsprechen eingestelltem TCP KeepAlive!

Page 16: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 16

1HWZRUNLQJ 3DUDPHWHU

y Zeit vom letzten Paket bis ein Testpaket versendet wird– tcp_keepalive_time (Linux)

– KeepAliveTime (Windows)

– tcp_keepalive_interval (Solaris)

y Anzahl der Testpakete– tcp_keepalive_probes (linux)

– MaxDataRetries (Windows)

– tcp_ip_abort_interval (Solaris, aber hier Zeitraum, nicht Anzahl)

y Zeitlicher Abstand zwischen den Probes– tcp_keepalive_intvl (Linux)

– KeepAliveInterval (Windows)

– tcp_rexmit_interval_max (Solaris)

�0XVV�EHL�/LQX[�6RODULV�QDFK�MHGHP�%RRW�JHVHW]W�ZHUGHQ

7&3�,3�.HHSDOLYH�3DUDPHWHUV

y Never change it without understanding ity tcp_keepalive_interval y tcp_ip_abort_cintervaly Enable=broken in tnsnames.ora

y No need to set starting with 10g – Oracle RAC VIP implementation is the solution

Page 17: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 17

o8p�qsr)t8u�v�w x�y?w z{t8uv{|sy?wAvsz)}�~� x�y��8vst��8��o��fz8��~� y8�{u��|sy{~{�{tsz{�{y8���� u�x{x�t{y��{����|�s�{o�~� u�x{x�t{y��{��~ � �8t{z�o)z�v8z�|�~�o8v���� � � z��{o�~��s�s��w��{��w��8��wL���)��� � �8zst�o�~��s�s���{�� u�x{x�t{y��{��~ � �8t{z�o)z�v8z�|�~�o8v���� � � z��{o�~��s�s��w��{��w��8��wL���)��� � �8zst�o�~��s�s���{�� |sz8u�x)���8u|)u{��vsy{~��s���� � u��)|sz)��yst�~�z8���

�� vsz8�{�y�vo���x8u�o6u�~

� �)y{t)��y{t�~�x�ysx��fv)u�o)ysx"�� �)y{t)�"�)vsyf��{us}�y{~��{�{��r8p�qsr��� � �{ {¡{�)¢p��k�£��s¤{p8~

� rf¥s¦�ps~�q)p�¡sp�§�r�� � £�pr)¨�s¤s~8©��q) {§��� t{y�o)t��fy��)~��s��� � x�y�|)u�ª�~����

��

1HWZRUN�3DUDPHWHUV�± ZKDW�WR�VHW�LQ�WQVQDPHV�RUD

/LVWHQHU 5HJLVWUDWLRQ���8SGDWH

y Service Registration y Instance Registration

Page 18: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 18

• %HLGH�.QRWHQ�DNWLY

• =XJULII�DXI�HLQH�'DWHQEDQN

Aktiver2UDFOH�L '%

.QRWHQ���5$&

Aktiver2UDFOH�L '%

.QRWHQ���5$&

2UDFOH�7UDQVSDUHQW�$SSOLFDWLRQ�)DLORYHU��7$)�

empno name

7369 Smith7499 Allen7521 Ward7566 Jones7654 Martin7698 Blake

%HQXW]HU�ZHUGHQ�DXWRPDWLVFK�

DXI�HLQHP�LQWDNWHQ�.QRWHQ�

üEHUQRPPHQ�XQG�OHVHQGH�

=XJULIIH�IRUWJHVHW]W

5HJDUGOHVV�RI�7$)�± WKLQJV�WR�EH�DZDUH�RI�PD\�QRW�EH�D�FRPSOHWH�UHIHUHQFH�

Folgende Fehler können generell trotz TAF auftreten – Lösung „rollback“y ORA-25401: cannot continue fetchesy ORA-25402: transaction must roll backy ORA-25405: trx status unknown (bug 2109927)y ORA-25408: cannot safely reply call

Folgende Fehler sind selten (vor allem im RAC), können aber auftreten. TAF deckt sie nicht ab und steigt aus – Lösung häufig (RE-)Konfiguration:

y ORA-01014: Oracle shutdown in progressy ORA-01017: Invalid username / passwordy ORA-01033: Oracle initialisation or shutdown in progressy ORA-01089: immediate shutdown in progress – no operationsy ORA-01090: shutdown in progress – connection not permittedy ORA-01092: Instance Terminated; Diconnection forced

Bei folgendem Fehler Konfiguration kritisch überprüfen - ggf. Supporty ORA-03113: eoF on communication channel

Page 19: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 19

<RX�ZDQW�PRUH�FRQWURO"

y Optional:– OCI Callbacks

³&´ 7$)�&DOOEDFN��2&,�t ���������������������������������! "��#���$�%'&)(���#�$�%'&)��*�����+�,-&.��*��/+�0�%�(1&.��*���(�#2(���+435�5

6�8729�+���$: ;��*���(�#2(���+23 6���2�8(=<2>2?@��A�<���B�C2D2?�E 5 6%�F�98��+��' HGIA���9���98��J=<�#2(2FLK�K�KNM���(��2�8(���+�����OP��0RQ8�/G�3�S

5�52&,)RFEN6WUXFW IDLORYHU��

��

IDLORYHU�FDOOEDFNBIXQFWLRQ� �FDOOEDFNBIQ�

LI��2&,$WWU6HW� VUYK��2&,B+7<3(B6(59(5�

IDLORYHU�����2&,B$775B)2&%.� HUUK�

� �2&,B68&&(66�5�5

Implement the callback procedure

Register TAF callback procedure

Take action

Page 20: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 20

-DYD�7$)�&DOOEDFN��2&,�t ������

LPSRUW�RUDFOH�MGEF�2UDFOH&RQQHFWLRQ�

LPSRUW�RUDFOH�MGEF�2UDFOH2&,)DLORYHU�

��

&DOO%DFN�IFEN �QHZ &DOO%DFN���

��

��2UDFOH&RQQHFWLRQ�FRQQ��UHJLVWHU7$)&DOOEDFN�IFEN� PVJ��

��

FODVV &DOO%DFN LPSOHPHQWV 2UDFOH2&,)DLORYHU ^�

SXEOLF LQW�FDOOEDFN)Q �&RQQHFWLRQ FRQQ��2EMHFW FW[W�

LQW W\SH� LQW HYHQW��^

��

VZLWFK��HYHQW��^

FDVH�)2B%(*,1�

Instantiate the callback class

register TAF callback function

Implement the callback class

React

• %HLGH�.QRWHQ�DNWLY

• =XJULII�DXI�HLQH�'DWHQEDQN

Aktiver2UDFOH�L '%

.QRWHQ���5$&

Aktiver2UDFOH�L '%

.QRWHQ���5$&

2UDFOH�7UDQVSDUHQW�$SSOLFDWLRQ�)DLORYHU��7$)�

empno name

7369 Smith7499 Allen7521 Ward7566 Jones7654 Martin7698 Blake

%HQXW]HU�ZHUGHQ�DXWRPDWLVFK�

DXI�HLQHP�LQWDNWHQ�.QRWHQ�

üEHUQRPPHQ�XQG�OHVHQGH�

=XJULIIH�IRUWJHVHW]W

Page 21: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 21

2UDFOH�5HDO�$SSOLFDWLRQ�&OXVWHUV���J

y Neu mit Oracle Database 10 T :

– Oracle Automatic Storage-Management (ASM)

– Oracle portable Clusterware

– Der Datenbank-Service-Gedanke

– einheitliche Verwaltung mit dem Oracle Enterprise Manager (EM)

Oracle ASM

y Public LAN Ausfall Probleme:– Verbundene Clients werden gestoppt – TAF

– Keine neuen Verbindungen möglich – TAF – Erkennung des Verbindungsabbruchs – TCP

y Mögliche Lösungen:– Redundante LAN Verbindungen (SI / RAC)– Ausfall eines Knotens wird toleriert (RAC)

y Erkennung des Verbindungsabbruchs:– Oracle 9i / 10g: Setzen der TCP Parameter

(vgl. Metalink Note 13393.1 & 249213.1)

– Ab Oracle 10g neue SQLNet Parameter (vgl. Metalink Note 249213.1)

– Speziell 10g RAC: VIPs

3XEOLF�/$1�$XVIDOO�± GLH�7$)�+HUDXVIRUGHUXQJ

Server 1 Server 2

San 1 San 2

*

'DWD'DWD

$$��==

*

Page 22: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 22

'LH�2UDFOH�&OXVWHUZDUH�$UFKLWHNWXU�5HO���

Oracle Cluster Synchronisation Services (CSS)Basis für Inter-prozess & -Knoten-Operationen, Node Monitoring & Membership, Client-Dienste

Hardware / Betriebssystem Kernel

Oracle Cluster Ready Services (CRS)HA Framework

Virtuelle IP Adressen Instanzen Prozesse

140.84.20.05

140.84.20.04

140.84.20.06

UWVHXZYW[ \ ] ^X [ _ ` ^�a b b;cd"e f f ^ _;Y"[ \ ] ^

g [ h [Za b bic

j k lnm o o p

UWVHXZYW[ \ ] ^X [ _ ` ^�a b b;cd"e f f ^ _;Y"[ \ ] ^

g [ h [Za b bic

j k lnm o o p

ONS

140.84.20.02

140.84.20.01

140.84.20.03

y FAN = neues Oracle 10g RAC High Availability Feature

y Grundidee: gezielte Information registrierter Clients über Änderungen im 10g RAC-Cluster (HA Events und Loadbalancing)

y Technisch: Vermeidung von Ausfallzeiten z.B. wg. TimeOuts

y 2UDFOH� 'DWDEDVH�2UDFOH�&OXVWHUZDUH�DQG�2UDFOH�5HDO�$SSOLFDWLRQ�&OXVWHUV�$GPLQLVWUDWLRQ�DQG�'HSOR\PHQW *XLGH.DSLWHO�� ,QWURGXFWLRQ WR�:RUNORDG�0DQDJHPHQW (http://download-uk.oracle.com/docs/cd/B19306_01/rac.102/b14197/hafeats.htm#sthref372)

!���PLQV!���PLQV

�����VHFV�����VHFV

a���PLQVa���PLQV

����VHFV����VHFV

RKQH )D1

PLW )D1

RKQH )D1

PLW )D1

5$&�)DLORYHU (UNHQQXQJ $XVIDOO]HLW5$&�)DLORYHU (UNHQQXQJ $XVIDOO]HLW

����VHFV����VHFV

����VHFV����VHFV

2UDFOH�)DVW�$SSOLFDWLRQ�1RWLILFDWLRQ��)$1�

Page 23: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 23

q�r s�t�u�s�viu�w q�x�v y�x�viw z|{8}�~ s�}8rW{�t��

���"� � � ��� ��� �@� ��� � ����

� s���v x�}�x�t�u���x�}������@� r

���@� � � �Z���|��� ��� �@� ��� � �

q�x�v y�x�v s�{8}8� s�~ ~

���"� � � ��� �����-�Z ���¡ ¢H� ¡ £

FailoverManagement

WorkloadManagement

2UDFOH�'DWHQEDQN�6HUYLFHV*UXQGODJH�YRQ�)DLORYHU� XQG�:RUNORDG�0DQDJHPHQW

'HU�'DWHQEDQN�6HUYLFH�*HGDQNH

y Grundidee:

– eine Datenbank – mehrere Namen

– mehrere Applikationen – eine Datenbank

y Ziel:– (automatisches) Workloadmanagement

– automatisches (Connection-)Loadbalancing

– Zugriff auf bestimmte Connections

y Technik:– :HLWHUHQWZLFNOXQJ der Net-Service-Namen

ERP_DB

CRM_DB

Email_DB

Page 24: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 24

$QOHJHQ�YRQ�'DWHQEDQN�± 6HYLFHV�LP�'%&$�RGHU�(0

ERP_DB

CRM_DB

$XIO|VXQJ�GHU�6HUYLFH�1DPHQ�YLD 7161$0(6

ERP_DB

Virtuelle IP-Adressen oder entsprechende Hostnamen

Service-Name

¤�¥8¦�§8¨�©�ª�¨�«=

(DESCRIPTION=

(ADDRESS_LIST =

(FAILOVER = on)

(ADDRESS=(PROTOCOL=TCP)(HOST=¬ ªZ¦8­ ) (PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=¬ ªZ¦�® ) (PORT=1521))

)

(CONNECT_DATA =

(SERVICE_NAME = ERP_DB)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(RETRIES = 35)

(DELAY = 5)

)

)

)

Page 25: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 25

2UDFOH�'DWHQEDQN�6HUYLFHV$OV�%DVLVWHFKQRORJLH�QLFKW�QXU�LQ�GHU�'%�YHUWUHWHQ

$ORA_CRS_HOME/bin/crs_stat –t

HA Resource Target State ----------- ------ -----ora.RAC.RAC.RAC1.srv ONLINE ONLINE on stnsp001ora.RAC.RAC.RAC2.srv ONLINE ONLINE on stnsp002ora.RAC.RAC.RAC3.srv ONLINE ONLINE on stnsp003ora.RAC.RAC.RAC4.srv ONLINE ONLINE on stnsp004ora.RAC.RAC.cs ONLINE ONLINE on stnsp001ora.RAC.RAC1.inst ONLINE ONLINE on stnsp001ora.RAC.RAC2.inst ONLINE ONLINE on stnsp002ora.RAC.RAC3.inst ONLINE ONLINE on stnsp003ora.RAC.RAC4.inst ONLINE ONLINE on stnsp004

$ORACLE_HOME/bin/srvctl status service -d RAWRAC -s LOAD1,LOAD2,LOAD3,LOAD4

Service LOAD1 is running on instance(s) RAWRAC3, RAWRAC2, RAWRAC1, RAWRAC4Service LOAD2 is running on instance(s) RAWRAC3, RAWRAC2, RAWRAC1, RAWRAC4Service LOAD3 is running on instance(s) RAWRAC3, RAWRAC2, RAWRAC1, RAWRAC4Service LOAD4 is running on instance(s) RAWRAC3, RAWRAC2, RAWRAC1, RAWRAC4

¯ °���� ��°�±�²�³ ¯ °���� ��°�±�²2´ ¯ °���� ��°�±�²2µ

¶/·�t�t�x���rW¸ ·2t¹ ·�·2~

º�»�¼2½�¡ ¢H�¾8¿nÀ ÁZÂ�¾�Ã�¿nÄ À Å Æ

Ç È8É8ÊË8É8Ê Ì É8Ê

¶ÎÍ/ÏÐv x�Ñ�{�x�}8r }Ò��·�t�t�x8��rW¸ ·�t

2UDFOH���J��5XQWLPH�/RDGEDODQFLQJ8QWHUVW�W]WH�7UHLEHU��-'%&��2'3�1(7

º�»�¼2½�¡ ¢H�Á�Ó@ÔZ¾�¿nÀ ÁHÔ�Å ¿HÅ Æ º�»�¼2½�¡ ¢H�Õ ¿�Ô�ÖH×�ØZÙ Å Ä ¾�Å Æ

Page 26: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 26

2UDFOH���J��5XQWLPH�/RDGEDODQFLQJ9RUDXVVHW]XQJHQ��&RQQHFWLRQ�3RRO�6HUYLFHV�XQG�$GYLVRU\

Ú Û Ü Ý Þ Û ß àZá Ú Û Ü Ý Þ Û ß àHâ Ú Û Ü Ý Þ Û ß àHã

ä � °n°�²�±"� � � °�å �H�@æ

ç èHénê�ë ì íî�ï ð ñ ò;î"óZï ô ð õ ö

÷ µ�ø�ùú�ø�ù ³Wø�ù

ç èHénê�ë ì íñiû ü î�ï ð ñ üiõ ï õ ö ç èHénê�ë ì íý ï ü;þ ÿ�� � õ ô î"õ ö

CRM_DB

!y Mittels Load Balancing Advisory kann

Workload über einen RAC-Cluster verteilt werden.

y Ziel ist es, eingehenden Workload auf den Knoten zu lenken, auf dem der adressierte Service gut reagiert.

y Ziel ist es ferner, Workload nicht zu hängenden Knoten zu senden.

y Ferner berücksichtigt das Load Balancing Advisory ungleiche Knotenstrukturen sowie Prioritäten

2UDFOH���J� 5XQWLPH�/RDGEDODQFLQJ9RUDXVVHW]XQJHQ��/RDG�%DODQFLQJ�$GYLVRU\

!

Page 27: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 27

y Für das Load Balancing Advisory können GOALs vereinbart werden.

y Goals beschreiben, nach welchen Maßstäben der Connection Pool Workload an einen Service auf einerbestimmten Instance zuweisen soll:

– THROUGHPUT

– SERVICE_TIME– NONE

y Das Workload Respository muss nicht verwendet werden (Setting NONE)

2UDFOH���J� /RDG�%DODQFLQJ�$GYLVRU\=LHO��*RDOV��SUR�6HUYLFH

!CRM_DB

2UDFOH���J� 5XQWLPH�/RDGEDODQFLQJ(LQVWHOOXQJHQ�LQ�GHP�(QWHUSULVH�0DQDJHU

Page 28: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 28

*H]LHOWH�$SSOLNDWLRQVEHQDFKULFKWLJXQJ6HUYHU�VHLWLJ�RGHU�UHPRWH��EHU�216

Oracle Cluster Ready Services (CRS)HA Framework

Server / RAC Knoten ONS

)$1�

(YHQW

ClientClient C-Applik.JAVA

+++ Node 2

down ++++++ Instance down

on node 1 +++

¼��@��������� ¡ @�n� ¡  �� » � �@¢@� ��� ¢����� ¡ @�n� ¡  �� »� ������n� ¡  ����� � ��

c

c

cc

cc

c cccc c

Ú Û Ü Ý Þ Û ß àZá Ú Û Ü Ý Þ Û ß àHâ Ú Û Ü Ý Þ Û ß àHã

ä � °n°�²�±"� � � °�å �H�@æ

ç èHénê�ë ì íî�ï ð ñ ò;î"óZï ô ð õ ö

÷ µ�ø�ùú�ø�ù ³Wø�ù

ç èHénê�ë ì íñiû ü î�ï ð ñ üiõ ï õ ö ç èHénê�ë ì íý ï ü;þ ÿ�� � õ ô î"õ ö

'HU�,PSOL]LWH�&RQQHFWLRQ�3RRO

Page 29: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 29

¼��@��������� ¡ @�n� ¡  �� » � �@¢@� ��� ¢����� ¡ @�n� ¡  �� »� ������n� ¡  ����� � ��

cc

ccc

cc cc

c

'HU�LPSOL]LWH�&RQQHFWLRQ�3RRO*UXQGODJH�I�U�)DVW�&RQQHFWLRQ�)DLORYHU��)&)�

y Der implizite Connection Cache registriert sich am ONS

y Damit werden automatisch FAN-Events empfangen

y Auf ein „(Service) DOWN“-Event reagiert der Connection Pool mit:– Terminierung bestehender Connections gegen den Service– Folge: Applikation bekommt unmittelbar einen ORACLE Fehler

– Connection Pool leitet neu eingehende Connections um– Bereits erfolgte Connections werden nach den Vorgaben des

Load Balancing Advisory umverteilt, wenn Services verfügbar

=XVDPPHQIDVVXQJ

Aktiver� � ���� ��� Ä�������Z Z� �����¼���»

Aktiver� � ���� ��� Ä�������Z Z� �����¼���»

��²�� æ ����� æ � ±��"� � � ° ä æ ����� ²�� ������ æ � ±��"� � � ° ä � °n°�²�±"� � � °�å �H�@æ

c

c

cc

cc

c ccc

y TAF– Klassische Failover Absicherung

– TAF-eigene Fehlermeldungen– Voraussetzung: OCI-Zugriff

y FAN mit FCF– Failover Absicherung

– Workload Absicherung– ORACLE-Fehlermeldungen– Schnelle Benachrichtigung

– Voraussetzung:Impliziter Connection Pool

– TAF und FAN schließen sich für eine Datenbankverbindung bzw. für denselben Service aus

Page 30: Markus Michalewicz - ALSO · surviving instance. y Clients already connected do not need to reconnect if a secondary instance is available and TAF has been pre-configured. y It provides

��

Page 30

5$&�XQG�&56�,QWHUQHW�6HPLQDUH�RAC und Oracle CRS Teil 1 –

Release 2 stellt sich vor http://www.oracle.com/global/de/download/2005_09_07_R

AC_und_CRS_Teil_1_Markus_Michalewicz.zip

RAC und Oracle CRS Teil 2 –

Installation und Konfigurationhttp://www.oracle.com/global/de/download/2005_10_05_R

AC_und_CRS_Teil_2_Markus_Michalewicz.zip

RAC und Oracle CRS Teil 3 –Die Oracle HA-API

http://www.oracle.com/global/de/download/2005_11_14_RAC_und_CRS_Teil_3_Markus_Michalewicz.zip

RAC und Oracle CRS Teil 4 –TAF, FAN und hochverfügbare Anwendungenhttp://www.oracle.com/global/de/download/2005_11_30_R

AC_und_CRS_Teil_4_Markus_Michalewicz.zip


Recommended