Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

TAF

VIEWS: 8 PAGES: 5

									REAL APPLICATION CLUSTERS
LAB SOLUTIONS GUIDE
Real Application Custers. Lab solutions guide.




Лабораторная работа 4 : Технология Transparent Application Failover

Целью данной лабораторной работы является изучение технологии Transparent Application Failover –
механизма защиты от сбоя узла Real Application Cluster.

Подключитесь через ssh-клиента напрямую на узел rac1, и с помощью команды srvctl cоздайте сервис
SRVTAF с настройками механизма TAF на стороне сервера.
Необходимо использовать тип SELECT, метод BASIC. В случае переподключения должно выполняться
3 попытки через 5 секунд каждая.


         rac1-> srvctl add service -d racdb -s SRVTAF -e SELECT -m BASIC -w 5 -z 3 -r
         "racdb1,racdb2"

         rac1-> srvctl start service -s srvtaf -d racdb


На клиенте (хост racc), пожалуйста создайте дескриптор соединения для подключения к сервису
SRVTAF, добавив следующую строку соединения в файл $ORACLE_HOME/tnsnames.ora
       SRVTAF =
         (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = SRVTAF.rac.com)
            )
         )

Установите соединение с БД под пользователем rscott, используя созданный дескриптор соединения и
проверьте, что механизм TAF включен:

         racc -> sqlplus rscott/rtiger@srvtaf

         SQL> select FAILOVER_TYPE, FAILOVER_METHOD from v$session where
         sid=sys_context ('userenv', 'sid');



Далее, пожалуйста создайте две таблицы: accounts_new и taf

         SQL> create table accounts_new as select * from accounts where rownum< 101;

         SQL> create table taf ( id number );




Далее определите, к какому узлу вы подключились:


         SQL> select dbms_utility.current_instance from dual;



Выполните следующий запрос:
Запрос вернет несколько строк и будет ожидать нажатия клавиши Enter.
Пожалуйста, нажмите клавишу Enter ОДИН раз, для получения первой порции запроса:

         SQL> set pause 'Press ENTER key...'

                                                                                          Page 2 of 5
Real Application Custers. Lab solutions guide.



         SQL> set pause on
         SQL> select * from accounts_new;



Далее для имитации сбоя, нужно аварийно завершить экземпляр на котором выполняется наш запрос.

Откройте новую ssh-сессию к тому узла кластера, на котором выполняется наш запрос в SQL*Plus, под
пользователем oracle. Подключитесь к экземляру и аварийно остановите его (приведен пример для
второго узла):


         rac2-> ~]$ sqlplus / as sysdba

         SQL> shutdown abort;
         ORACLE instance shut down.
         SQL>


Попытайтесь продолжить выполнение запроса до конца, несколько раз нажав клавишу Enter. Вы должны
увидеть продолжение выполнения запроса, как ни в чем не бывало:

                363 41324704774436514600 USD                   41744712   3 ACT 03-MAR-11
                364 37140425003833325737 USD                    6708760   9 ACT 03-MAR-11
         Press ENTER key...

             ACC_ID ACC_NUM              ACC    ACC_BAL     CUS_ID ACC ACC_DATE_
         ---------- -------------------- --- ---------- ---------- --- ---------
                365 72468671723738055823 CYP   40229441          2 ACT 03-MAR-11

         100 rows selected.


Далее снова (в этой же сессии, в которой вы выполняли запрос!) определите: к какому экземпляру вы
сейчас имеете сессию. Убедитесь, что сейчас ваша сессия создана на ДРУГОМ узле:


         SQL> set pause on
         SQL> select dbms_utility.current_instance from dual;



Для продолжения экспериментов, пожалуйста, запустите остановленный экземпляр:

         rac2-> ~]$ sqlplus / as sysdba

         SQL> startup;
         ORACLE instance started.

         Total System Global Area                836976640   bytes
         Fixed Size                                1347396   bytes
         Variable Size                           293601468   bytes
         Database Buffers                        536870912   bytes
         Redo Buffers                              5156864   bytes
         Database mounted.
         Database opened.
         SQL>




                                                                                          Page 3 of 5
Real Application Custers. Lab solutions guide.



Давайте повторим эксперимент но уже с активной транзакцией (не зафиксированным DML-оператором).
В той же сессии где вы выполняли запрос выполните следующий оператор вставки (но НЕ фиксируйте
изменения!):

         SQL> insert into taf values( 1 );

         1 row created.

         SQL>



Откройте новую ssh-сессию к тому узла кластера, на который вы переключились после сбоя, под
пользователем oracle. Подключитесь к экземляру и аварийно остановите его (приведен пример для
первого узла):


         rac1-> ~]$ sqlplus / as sysdba

         SQL> shutdown abort;
         ORACLE instance shut down.
         SQL>



И далее снова повторите запрос, нажав к конце клавишу Enter только ОДИН раз, для получения первой
порции запроса

         SQL> set pause 'Press ENTER key...'
         SQL> set pause on
         SQL> select * from accounts_new;




В заключение, пожалуйста выдайте команду rollback и снова определите к какому узлу вы подключены, и
факт того, что ваша сессия помечена в представлении v$session как подключенная после сбоя:


         SQL> set pause off
         SQL> select dbms_utility.current_instance from dual;
         SQL> select FAILED_OVER from v$session where sid=sys_context ('userenv',
         'sid');



Для завершения лабораторной работы, пожалуйста, запустите остановленный экземпляр:

         rac1-> ~]$ sqlplus / as sysdba

         SQL> startup;
         ORACLE instance started.

         Total System Global Area                836976640   bytes
         Fixed Size                                1347396   bytes
         Variable Size                           293601468   bytes
         Database Buffers                        536870912   bytes
         Redo Buffers                              5156864   bytes
         Database mounted.
         Database opened.
         SQL>


                                                                                         Page 4 of 5
Real Application Custers. Lab solutions guide.



Удалите таблицы в схеме RSCOTT:


         SQL> drop table accounts_new;
         SQL> drop table taf;



Остановите и удалите сервис SRVTAF

         rac1-> srvctl stop service -s SRVTAF -d racdb
         rac1-> srvctl remove service -s SRVTAF -d racdb




                                                           Page 5 of 5

								
To top