10.05.2012

Template for Enterprise Manager Cloud Control 12c

Новые возможности Enterprise Manager Cloud Control 12c известны уже многим благодаря многочисленным материалам, опубликованным на сайте Oracle


Но для того, чтобы попробовать новые возможности, почему то не у всех получается развернуть Enterprise Manager Cloud Control 12c в своём окружении; у некоторых опускаются руки уже во время подготовки ОС и распаковки дистрибутива :-). 

12-го апреля на сайт https://edelivery.oracle.com/oraclevm был выложен шаблон виртуальной машины с предустановленным Enterprise Manager Cloud Control 12c.
Теперь, для того, чтобы познакомиться с продуктом, достаточно просто развернуть уже готовую виртуальную машину и всего лишь ответить на несколько вопросов при её запуске.

После скачивания Oracle VM Template for Enterprise Manager Cloud Control 12c Media Pack v1 for x86 (64 bit) обязательно прочитайте readme. В этом файле подробно описан процесс распаковки того что вы скачали: сначала нужно разархивировать три архива, а затем объединить полученное в один tar-файл и распаковать.

# unzip V31982-01.zip
# unzip V31983-01.zip
# unzip V31984-01.zip
# cat OVM_EM12*.tgz | tar -xzvf -

В этом же файле readme вы найдёте две инструкции по запуску виртуальной машины:
- Creating Guest Virtual Machine from Oracle VM Template using Oracle Enterprise Manager Cloud Control Console
- Creating Guest Virtual Machine from Oracle VM Template from Oracle VM server terminal

Очевидно Вам нужна вторая, т.к. консоли OEM у вас ещё нет (за исключением тех случаев, когда кто то из вас захочет развернуть в уже существующем Oracle Cloud подклауды :-)

Для разворачивания же на Oracle VM server можно использовать не только Oracle VM 3.0 , а также и OVM 2.2 .

Но тут может возникнуть новая сложность, не все ещё знакомы с OVM  или просто нет в наличии отдельной физической машины для установки OVM server.

Для таких случаев предлагаю воспользоваться другой технологией виртуализации -  Oracle VM VirtualBox. 


Сначала нужно распаковать архивы V3198*-01.zip как указано выше.
Если вы используете VirtualBox for Windows, то вместо "cat OVM_EM12*.tgz" используйте  команду copy:
copy /b OVM_EM12_1of3.tgz+OVM_EM12_2of3.tgz+OVM_EM12_3of3.tgz OVM_EM12.tgz

Полученный файл OVM_EM12.tgz распакуйте и вы получите директорию с тремя файлами:

07.03.2012  03:41    28 994 112 000 em12.img
07.03.2012  03:42     6 720 053 760 System.img
14.03.2012  10:38               305 vm.cfg
               3 File(s) 35 714 166 065 bytes

 

Теперь нужно преобразовать образы дисков виртуальной машины OEM12c к формату , понятному VirtualBox, с помощью утилиты VBoxManage:
D:\OVM_EM12>"C:\Program Files\Oracle\VirtualBox\VBoxManage" convertdd System.img System.vdi
Converting from raw image file="System.img" to file="System.vdi"...
Creating dynamic image with size 6720053760 bytes (6409MB)...

D:\OVM_EM12>"C:\Program Files\Oracle\VirtualBox\VBoxManage" convertdd em12.img em12.vdi
Converting from raw image file="em12.img" to file="em12.vdi"...
Creating dynamic image with size 28994112000 bytes (27651MB)...




Далее нужно просто создать в VirtualBox новую виртуальную машину, указав в качестве носителей полученные образы жёстких дисков:


После старта этой виртуальной машины вы должны будете ответить на несколько вопросов:
IP address, netmask address, hostname, default gateway IP address, DNS server IP address, password for the database account, password for the Agent secure registration, email address if you want Oracle to contact you with security updates.
После ответа на эти вопросы начнётся процесс автоматического конфигурирования всего технологического стека, необходимого для OEM 12c , по окончании которого вам достаточно зайти браузером по адресу https://<вашIP>:7779/em






01.05.2012

Columnar Compression on Axiom storage

Как вы наверное знаете, технология колоночного сжатия (Hybrid Columnar Compression) работает не только на Exadata, но, в том числе, и на дисковых массивах Pillar Axiom. Рассмотрим процесс настройки и подготовки СУБД для использования HCC на этих системах хранения. В качестве ОС на сервере СУБД был использован Oracle Linux for x86_64. Предполагаем, что на сервере были выполнены все настройки необходимые для доступа к разделам на системе хранения Axiom, то есть был установлен Oracle Linux 5U6, обновлено ядро до последнего UEK и настроен multupathing.

Исходная информация:
  • 1. Поддержка HCC на массивах Axiom есть только начиная с Oracle Database 11.2.0.3.1 и работает только на ASM.

  • 2. Дополнительно параметры совместимости дисковой группы ASM (compatibility и rdbms.compatibility) должны быть выставлены в 11.2.0.3.0

  • 3. Также на дисковой группе, на которой будут размещаться файлы табличных пространств с сжатыми таблицами, должен быть выставлен атрибут storage.type в значение "AXIOM".
Итак, приступим!

Поскольку нам необходимо получить доступ на массиве к объему дискового пространства 10Тб, приходится предварительно создать 5 LUN-ов по 2Тб. Как вы помните, ASM на системах хранения отличных от Exadata, имеет ограничение на размер диска в 2Tb.

Не забудьте создать раздел (primary partition) на каждом из созданных LUN-ов. После этого желательно перегрузить сервер, иначе из-за multipathing-а операционная система может не увидеть новые разделы.

Обычным образом устанавливаем Oracle Grid Infrastructure 11.2.0.3 и создаем дисковую группу с уровнем избыточности External (то есть зеркалирование отдаем на уровень массива) состоящую из 5 разделов. Затем стандартно устанавливаем Oracle Database 11.2.0.3.
Поскольку уже вышел PSU2 (Patch 13696251 - Oracle Grid Infrastructure 11.2.0.3 PSU2) устанавливаем именно его. Перед этим не забываем обновить утилиту OPatch (в обеих каталогах - GI_HOME и DB_HOME!).

Далее нужно создать БД или перенести уже существующую БД на ASM.

Наконец, приступаем к самой ответственной части: настройке БД и ASM.

Устанавливаем параметр compatible на СУБД в значение 11.2.0.3.0:
SQL> alter system set compatible='11.2.0.3.0' scope=spfile sid='*';
System altered.
Корректно останавливаем БД:
[oracle@myhost]$ srvctl stop database orcl

Нужно не забыть также выставить параметр совместимости для нашей вновь созданной дисковой группы ASM.

Переключаемся в окружение Grid Infrastructure:
[oracle@myhost]$ export ORACLE_HOME=/u01/app/11.2.0.3/grid
[oracle@myhost]$ export ORACLE_SID=+ASM

[oracle@myhost]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.3.0 Production on Tue May 1 18:04:06 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options


SQL> alter diskgroup data_hcc set attribute 'compatible.asm'='11.2.0.3.0';

Diskgroup altered.

SQL> alter diskgroup data_hcc set attribute 'compatible.rdbms'='11.2.0.3.0';

Diskgroup altered.
И, наконец, выставляем атрибут дисковой группы storage.type в значение "AXIOM".
SQL> alter diskgroup data_hcc set attribute 'storage.type'='AXIOM';

Diskgroup altered.
Именно в этот момент происходит проверка, что дисковая группа действительно создана на системе хранения Axiom. Если при выполнении этой команды Вы получаете вот такое сообщение об ошибке:
ORA-15287: could not set disk group attribute storage.type due to incompatible disks
ORA-15285: disk '/dev/mapper/XXXXXXXX' violates disk group attribute storage.type
это означает, что по какой-то причине ASM не может прочитать название массива на котором созданы LUN-ы, либо это действительно не массив Axiom :-) .

На этом все!
Можно создавать табличное пространство на вновь созданной дисковой группе и сжимать данные ...

21.04.2012

Ускорение "1С:Предприятие for Oracle" за счет сжатия таблиц

Кроме выступления Вадима Гусева на мероприятии "Модернизация системы управления бизнесом с помощью ERP-решений 1С с помощью инновационной технологической платформы Oracle" Андрей Забелин демонстрировал возможности OLTP-сжатия для увеличения производительности одного из бухгалтерских отчётов приложения "1С:Предприятие 8.2".



Ролик можно посмотреть здесь.

Как это ни странно на первый взгляд: при сжатии не только уменьшается объем данных на диске, но и возрастает скорость выполнения запроса !

Это происходит за счет уменьшения ввода-вывода (СУБД меньше читает и пишет на диск), а это самая ресурсоёмкая операция. И это происходит не на каком-то искусственном тесте, а в реальном приложении !



Программное окружение было аналогичным как в демонстрации Вадима.

Сервер приложений "1C:Предприятие" также работал под управлением ОС Oracle Linux x64 5U6.



Основная идея демонстрации – показать:

  • Возможности Enterprise Manager для быстрого обнаружения ресурсоёмкого SQL-запроса, который являлся причиной долгого выполнения одного из бухгалтерских отчётов приложения "1С:Предприятие 8.2";

  • Быстрота и удобство анализа плана SQL-запроса;

  • Удобство навигации от плана запроса к редактированию свойств таблицы;

  • Эффективность сжатия данных с помощью Advanced Compression, которое позволяет не только уменьшить объём данных на диске, но и значительно ускорить выполнение запроса за счёт уменьшения количества обрабатываемых блоков.



Поскольку Андрей (как и все мы впрочем) не является специалистом в бухгалтерском учёте, выбранный отчёт «Анализ субконто» и параметры этого отчёта могут показаться опытному бухгалтеру некорректными, но цель была одна - нагрузить БД таким образом, чтобы набор обрабатываемых данных был наибОльшим в тестовой БД.



К сожалению, в текущей версии "1С:Предприятие" не поддерживается настройка сжатия данных таблицы через интерфейс самой 1С, что приводит к возможной потери этой настройки при обновлении конфигурации 1С, но это уже совсем другая история ... Следите за следующими публикациями !



Приятного просмотра!

Cсылка: видео.

15.04.2012

Updates for Oracle Linux now free!

Пришла хорошая новость по поводу поддержки Oracle Linux. Теперь скачивание обновлений для этой ОС стало бесплатным !
Раньше для этого нужно было приобретать подписку на ULN (Unbreakable Linux Network).
Для настройки обновлений воспользуйтесь инструкцией на сайте http://public-yum.oracle.com. Затем выполните команду yum update
Рис. 1 Установка обновлений на Oracle Linux


Но ведь RedHat берет за обновление деньги ... :-)

10.04.2012

Присоединяйтесь к JavaOne & Oracle Develop 2012

To ensure delivery directly to your inbox, please add replies@oracle-mail.com to your address book today.

JavaOne and Oracle Develop 2012 Russia. 17-18 April. Russian Academy of Sciences, Moscow

Присоединяйтесь к JavaOne & Oracle Develop 2012 сегодня!

Программа JavaOne сессий уже доступна!

В этом году мы снова приглашаем Вас на JavaOne & Oracle Develop, которые опять расположатся в Российской Академии Наук. Oracle предлагает сообществу разработчиков 2 уникальных дня обучения и общения.

Не упустите возможность приобрести билет по цене 1200 рублей.

В этом году мы снова приглашаем Вас на JavaOne & Oracle Develop, которые опять расположатся в Российской Академии Наук. Oracle предлагает сообществу разработчиков 2 уникальных дня обучения и общения.


Конференция JavaOne состоит из четырех потоков Базовая платформа Java, Клиентские технологии, Java Enterprise Edition, Web-сервисы и Облачные Вычисления и Java Micro Edition, Мобильные и Встраиваемые Платформы, Java-карты. А также мастер-классов и Хак-зоны.


В треке Базовая платформа Java четыре доклада представляют инженеры по производительности компании Oracle - Алексей Шипилёв и Сергей Куксенко, которые поделятся накопленным опытом с участниками конференции. Сергей Куксенко об одном из своих докладов: Многоядерные машины стали частью сурового быта: десятком, а то и сотней логических процессоров уже мало кого удивишь. Однако мы до сих пор учимся писать быстрые и корректные программы для этих почти ручных монстриков. Этот доклад посвящён разбору типичных проблем с производительностью параллельных программ, работающих на машинах с разделяемой памятью; описанию их симптомов, а также обсуждению типичных подходов к диагностике и решению проблем


Дуглас Кларк - директор компании Oracle расскажет о настоящем и будущем персистентности в Java и готовности Java к переходу к облачным приложениям.


Направление клиентских приложений будет представлено инженерами Санкт-Петербургского центра разработок Oracle непосредственно участвующих в создании технологии JavaFX. Вы узнаете о новом языке FXML, о тонкостях создания быстрых приложений на JavaFX, увидите интеграцию JavaFX приложения с игровой приставкой, получите возможность принять участие в конкурсе и выиграть ценные призы.


Java занимает все более твердые позиции во встроенных системах. Уже сегодня вы можете прикоснуться к мобильным технологиям, которые завтра будут поддерживаться миллионами устройств по всему миру.


Не пропустите доклады от экспертов признанных сообществом Java разработчиков. Впервые в Москве выступит Бёрт Эртман – обладатель звания Java Champion и являющийся идейным вдохновителем Java User Group в Нидерландах. Берт расскажет о том нужно ли, и если да, то как перейти от Spring к JavaEE 6. Антон Архипов – один из основателей devclub.eu поделится опытом продуктивной разработки JavaEE приложений.

Больше информации на JavaOne and Oracle Develop 2012.

Региcтрация на сайте

Дополнительная информация


адрес: oracle@javaone2012.ru,


телефон: 8 (499) 391-25-72

Hardware and Software, Engineered to Work Together
Oracle Corporation

Copyright © 2012, Oracle
and/or its affiliates.

All rights reserved.

Contact Us | Legal Notices and Terms of Use | Privacy Statement


01.04.2012

Особенности работы с сервисами в серверных пулах

Начиная с версии Oracle Database 11.2 появилась новая концепция – серверные пулы (server pools). Работа с сервисами в серверном пуле имеет свои особенности, которые нужно учитывать.
Итак, серверный пул представляет собой группу серверов в кластере, объединенных в некоторое логическое понятие (пул). В кластере могут быть определены несколько серверных пулов. При создании пула указывается набор серверов, минимальное количество серверов в пуле, максимальное количество серверов в пуле и важность (приоритет) пула. Альтернативно, при создании пула можно указать перечень входящих в него узлов.






[oracle@rac2 ~]$ srvctl add srvpool -h

Adds a server pool to the Oracle Clusterware.

Usage: srvctl add srvpool -g  [-l ] [-u ] [-i ] [-n ""] [-f]
    -g      Server pool name
    -l      Minimum size of the server pool (Default value is 0)
    -u      Maximum size of the server pool (Default value is -1 for unlimited maximum size)
    -i      Importance of the server pool (Default value is 0)
    -n ""   Comma separated list of candidate server names
    -f      Force the operation even though some resource(s) will be stopped
    -h      Print usage


При необходимости в серверный пул можно добавлять серверы или же, наоборот, удалять серверы из пула. При создании БД с помощью Database Configuration Assistant [DBCA] определяется тип конфигурации этой БД:
  • Admin-Management (экземпляры создаваемой БД будут жестко привязаны к узлам заданным при создании БД);
  • Policy-Management (экземпляры создаваемой БД НЕ будут привязаны к конкретным узлам кластера, а будут выполняются на любом из серверов пула).

Рис. 1 Создание БД в серверном пуле

Идея серверных пулов состоит в отсутствии привязки ресурсов предоставляемых пользователю в кластере (приложения и базы данных) от конкретных физических серверов. Теперь при создании БД, в ней можно указывать не конкретные серверы, как это было раньше до версии 11.2, а серверный пул. При этом, в случае отсутствия серверного пула, можно сразу же его создать в DBCA. Также при этом задается количество экземпляров БД в пуле (cardinality). Если посмотреть экземпляры БД созданной в серверном пуле, можно увидеть ннтересную картину:
[oracle@rac2 ~]$ srvctl status database -d racdb
Instance racdb_1 is running on node rac2
Instance racdb_2 is running on node rac3
Instance racdb_3 is running on node rac4
Хорошо видно, что любой экземпляр может быть запущен на любом из узлов входящем в пул, и жестко не привязан к определенному узлу, как это было до версии 11.2. Как видите, теперь в локальном каталоге ORACLE_HOME узла не хранится информация об экземпляре. Информация о пулах и о конфигурац2ии БД теперь централизованно храниться в OCR. Управление серверными пулами и ресурсами в нем осуществляется Clusterware. Попробуем добавить сервер в пул, увеличив максимальное число узлов в пуле до 4-х (эксперимент проводился на 4-х узловом кластере):
[oracle@rac2 ~]$ srvctl modify serverpool -g main -u 4 -f
[oracle@rac2 ~]$ srvctl status database -d racdb
Instance racdb_4 is running on node rac1
Instance racdb_1 is running on node rac2
Instance racdb_2 is running on node rac3
Instance racdb_3 is running on node rac4
Автоматически на новом сервере был запущен новый экземпляр, при этом для него “на лету” были созданы undo-табличное пространство и redo-поток ! Понятно, что при использовании пулов для доступа к БД мы обязаны использовать Single Access Client Name [SCAN], поскольку заранее не знаем: на каких конкретно узлах будет выполняться тот или иной экземпляр БД. Данная технология в сочетании c делегированием DNS в домен кластера (Grid Naming Service) называется Grid Plug In Play [GPnP], и позволяет изменять состав серверного пула без необходимости изменения клиентских (файл tnsnames.ora) и сетевых (DNS-сервер) настроек.

Поскольку теперь экземпляры не привязаны к конкретному узлу и могут работать на любом сервере, входящем в пул, при создании сервиса мы не можем указать списки предпочтительных и резервных узлов.

Для решения этой проблемы вводится понятие "тип сервиса", который может иметь два значения:
  • Uniform
  • Singleton
Сервисы типа iniform одновременно могут выполняться на всех узлах серверного пула, типа singleton – в каждый момент времени выполняются только на одном экземпляре внутри пула. При создании сервиса с помощью утилиты srvctl, его тип задается с помощью ключа “–c” который может иметь значения UNIFORM для сервиса одновременно работающих на всех узлах пула :
[oracle@rac2 ~]$ srvctl add service -d racdb -s dss -c uniform
[oracle@rac2 ~]$ srvctl start service -d racdb -s dss
[oracle@rac2 ~]$ srvctl status service -d racdb -s dss
Service dss is running on nodes: rac1,rac2,rac3,rac4
Очевидно, что тип сервиса можно указывать только для Policy-Management БД. Если нужно гарантировать, чтобы сервис всегда работал только одном узле, то в значении ключа указывается SINGLETON:
[oracle@rac2 ~]$ srvctl add service -d racdb -s oltp -c singleton
[oracle@rac2 ~]$ srvctl start service -d racdb -s oltp
[oracle@rac2 ~]$ srvctl status service -d racdb -s oltp
Service oltp is running on nodes: rac1
В случае, если необходимо принудительно переместить сервис с одного узла на другой, точно также применяется команда relocate service утилиты srvctl, только вместо экземпляров указывается имена серверов (hostname):
[oracle@rac2 ~]$ srvctl relocate service -s oltp -d racdb -c rac1 -n rac2 -f
[oracle@rac2 ~]$ srvctl status service -d racdb -s oltp
Service oltp is running on nodes: rac2

Где:
- параметр –c определяет сервер, на котором нужно остановить сервис;
- параметр –t определяет сервер, на котором нужно запустить сервис.
- опциональный параметр –f определяет необходимость принудительно завершить все текущие сессии на узле заданном параметром -c, в случае его отсутствия все активные сессии продолжают свою работу, а новые будут создаваться только на узле заданном параметром –n.

12.03.2012

TAF метод SELECT

В общем случае TAF, переключив приложение на другой узел кластера, не может прозрачно продолжить работу этого приложения, поскольку у погибшей сессии был контекст который неоткуда взять (активные транзакции, значения переменных PL/SQL, параметры сессии установленне с помощью команд ALTER SESSION). Однако существуют приложения, для которых это возможно прозрачно сделать. Это DSS-приложения, то есть приложения ориентированные на получение отчетов. В процессе работы приложения этого типа в основном выполняют SQL- запросы.
В отличие от типа SESSION, при использовании метода SELECT Oracle Client помимо создания новой сессии производит восстановление открытых курсоров “погибшей” сессии.

Проверим, как работает метод SELECT, предварительно определив в файле tnsnames.ora следующий алиас:
RACDB_SELECT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.cluster.us.oracle.com)(PORT = 1521))
    (FAILOVER = yes)
    (CONNECT_DATA =
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
      )
      (SERVICE_NAME = racdb.us.oracle.com)
    )
  ) 

Откроем сессию в sqlplus с помощью вышеприведенного дескриптора соединения и по традиции проверим, к какому узлу кластера мы имеем соединение:

C:\RACDD4D\v4.1>sqlplus rscott/rtiger@racdb_select
SQL*Plus: Release 11.2.0.3.0 Production on Sat Jan 28 16:58:19 2012
Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, Real Application Clusters and Automatic Storage Management options

SQL> SELECT dbms_utility.current_instance FROM dual;

CURRENT_INSTANCE
----------------
               2

Таблица accounts в схеме rscott содержит 200 тыс. записей. Поле acc_id этой таблицы было заполнено с помощью генерации последовательных значений последовательности (sequence).
SQL> SELECT COUNT(*) FROM accounts;

  COUNT(*)
----------
    200000

SQL>DESC accounts
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ACC_ID                                    NOT NULL NUMBER(6)
 ACC_NUM                                            VARCHAR2(20)
 ACC_CUR                                            VARCHAR2(3)
 ACC_BAL                                            NUMBER
 CUS_ID                                             NUMBER(6)
 ACC_STATUS                                         VARCHAR2(3)
 ACC_DATE_CREATED                                   DATE

SQL>

Запустим на выполнение простой запрос к этой таблице. После начала его выполнения подключимся непосредственно на второй узел и аварийно завершим экземпляр, на котором выполняется запрос, с помощью команды SHUTDOWN ABORT:
SQL> SELECT acc_id FROM accounts ORDER BY 1;
    151619
    151620
    151621
    151622
    151623
    151624

    ACC_ID
----------
    151625
    151626
    151627
    151628


В момент сбоя выполнение запроса “замораживается” на несколько секунд, а потом продолжается со следующей записи как ни в чем ни бывало!
151629
    151630
    151631
    151632
    151633
... ... ...
    199998
    199999
    200000

200000 rows selected.

   SQL> SELECT dbms_utility.current_instance FROM dual;

CURRENT_INSTANCE
----------------
               3


Как вы видите, с использованием типа SELECT, технология TAF позволяет помимо сессии также восстановить и состояние курсоров приложения. При этом продолжение выполнения запроса произошло абсолютно прозрачно для приложения: оно и не подозревало, что запрос завершил свое выполнение на другом (в данном случае третьем) узле.
На самом деле для того, чтобы обеспечить такую “магию”, Oracle Client производит большую работу. До момента сбоя, выполняя запрос, Oracle Client хранит в памяти клиентского компьютера:
  • текст запроса и значение его параметров (переменных привязки);
  • SCN на момент начала запроса;
  • количество прочитанных строк до момента сбоя;
  • рассчитанную контрольную сумму прочитанных строк.

Рис. 1 Иллюстрация алгоритма работы типа SELECT


После сбоя, переключившись на другой узел, Oracle Client производит следующие действия:
  • выполняет на этом узле запрос на момент времени заданный SCN на начало запроса;
  • незаметно для приложения прочитывает столько же строк результата запроса, сколько было прочитано до сбоя;
  • снова рассчитывает контрольную сумму прочитанных строк.
  • сравнивает полученную контрольную сумму с той, которая была до момента сбоя;
  • если значения старой и новой контрольных сумм совпадают, то продолжает чтение следующих строк и возвращает их приложению;
  • если значения старой и новой контрольных сумм не совпадает, то приложению выдается исключение “ORA-25408: can not safely replay call”, и выполнение запроса прерывается.
SCN на момент начала запроса нужен для того, чтобы гарантировать неизменность содержимого выборки после переключения на другой узел, поскольку за время прошедшее от начала выполнения до момента сбоя, содержимое запроса могло измениться.
Расчет контрольной суммы прочитанных строк необходим для проверки того, что порядок возвращаемых строк в запросе не изменился. Как вы помните, Oracle Database не гарантирует порядок результирующих строк запроса, если конечно это явно не определено фразой ORDER BY. Поэтому может получиться так, что после переключения, строки будут возвращены в другом порядке.

Часто и в OLTP-приложениях имеются модули формирования отчетности, поэтому применение метода SELECT также может быть востребовано и в транзакционных системах.