Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
2010 г.

Новые возможности Oracle TimesTen 11g – интеграция с Oracle Clusterware

Сигалаев Г.Г., OCP
Oracle CIS

Содержание

1. Введение
2. Установка Oracle Clusterware
3. Установка Oracle TimesTen 11g
4. Создание базы данных
5. Конфигурирование Active-Standby pair репликации и Oracle Clusterware
6. Проверка работы конфигурации
Заключение
Литература

1. Введение

Oracle TimesTen - это реляционная СУБД, оптимизированная для работы с оперативной памятью. Она обеспечивает приложениям возможность мгновенного реагирования и очень высокую скорость обработки данных, необходимых современным предприятиям и отраслям, работающим в реальном времени (телекоммуникации, рынки ценных бумаг, системы обороны и т. п.).

В версии 11.2.1 Oracle TimesTen приобрел несколько новых возможностей (поддержка OCI, PL/SQL, и т.д.). В данной статье рассматривается возможность управления active-standby pair репликацией Oracle TimesTen 11g с помощью Oracle Clusterware.

Целью данной статьи является создание 2-х узловой Active – Standby pair репликации Oracle TimesTen из виртуальных машин на базе Oracle VM-сервера (управление репликацией будет осуществляться с помощью Oracle Clusterware).

2. Установка Oracle Clusterware

Вначале установим Oracle Clusterware.

На момент написания статьи, интеграция Oracle TimesTen и Oracle Clusterware возможна только на платформах Linux x86 и Linux x86-64, и только с версией Oracle Clusterware 11.1.0.7., поэтому после установки 11.1.0.6. необходимо установить патчсет 11.1.0.7.

Процессу установки Oracle Clusterware посвящено достаточно много статей. Поэтому я не буду детально описывать этот процесс, отмечу только, что все машины должны использовать Network Time Protocol (NTP) или похожую систему для устранения расхождения во времени между машинами на интервал более чем 250 миллисекунд.

Данное ограничение связано с функционированием active-standby pair репликации в Oracle TimesTen.

В данном примере я создал 2-ух узловой кластер (установлено только Oracle Clusterware) из виртуальных машин на базе Oracle VM-сервера 2.2.0 (x86 64 bit). В качестве гостевой операционной системы использовался Oracle Enterprise Linux 5.3 (x86). В качестве разделяемой системы хранения использовался Openfiler.

Характеристики кластера:

OS username / password:

  • root/oracle
  • oracle/oracle

Hostname raс1:

  • public IP 192.168.2.131
  • virtual IP 192.168.2.31
  • private IP 10.10.10.131
  • IP for openfiler 172.16.2.131

Hostname rac2:

  • public IP 192.168.2.132
  • virtual IP 192.168.2.32
  • private IP 10.10.10.132
  • IP for openfiler 172.16.2.132

Openfiler:

  • Public IP 172.16.2.1

Oracle Clusterware:

  • CRS_HOME=/u01/app/oracle/product/11.1.0/crs

Убедимся, что программное обеспечение Oracle Clusterware установлено и нормально функционирует.

[oracle@rac1 ~]$ crs_stat –t
Name Type Target State Host
------------------------------------------------------------
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2

Также убедимся, что установлена соответствующая версия Oracle Clusterware (11.1.0.7).

[oracle@rac1 ~]$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.1.0.7.0]

3. Установка Oracle TimesTen 11g

После установки Oracle Clusterware инсталлируем Oracle TimesTen 11.2. Его надо установить на те же машины, на которых функционирует Oracle Clusterware, в данном случае на узлах rac1 и rac2. Вначале выполним данную операцию на узле rac1.

Я инсталлирую Oracle TimesTen 11.2.1.4 (дистрибутив можно скачать с otn.oracle.com). Перед этим я настоятельно рекомендую ознакомиться с документацией (Oracle® TimesTen In-Memory Database Installation Guide) и выполнить шаги, описанные в разделе "Installation prerequisites" (для Linux, например, необходимо сконфигурировать huge pages, shared memory и т.д.).

Установка производится пользователем oracle (в дальнейшем, этот пользователь будет администратором экземпляра Oracle TimesTen).

Сначала создадим необходимые директории:
- /etc/TimesTen - необходима для инсталляции.
- /u01/app/oracle/product/11.2.1- здесь будет размещено программное обеспечение Oracle TimesTen.

[root@rac1 ~]$ mkdir /etc/TimesTen
[root@rac1 ~]$ chown oracle:oinstall /etc/TimesTen
[root@rac1 ~]$ mkdir /u01/app/oracle/product/11.2.1
[root@rac1 ~]$ chown oracle:oinstall /u01/app/oracle/product/11.2.1

Далее разархивируем дистрибутив.

[oracle@rac1 ~]$ pwd
/home/oracle
[oracle@rac1 ~]$ ls
timesten112140.linux86.tar.gz
[oracle@rac1 ~]$ gunzip timesten112140.linux86.tar.gz
[oracle@rac1 ~]$ tar -xf timesten112140.linux86.tar

Далее переходим в директорию linux86 и запускаем установку.

[oracle@rac1 ~]$ cd linux86
[oracle@rac1 linux86]$ ./setup.sh
NOTE: Each TimesTen installation is identified by a unique instance name.The instance name must be a non-null alphanumeric string, not longer than 255 characters.

Вначале, предлагается ввести имя экземпляра Oracle TimesTen (или согласиться с именем по умолчанию). В данном примере имя экземпляра tt1.

Please choose an instance name for this installation? [ tt1121 ] tt1
Instance name will be 'tt1'.
Is this correct? [ yes ]

Далее, предлагается выбрать компоненты для установки. В данном примере я устанавливаю все компоненты ("Client/Server and Data Manager").

Of the three components:

[1] Client/Server and Data Manager
[2] Data Manager Only
[3] Client Only

Which would you like to install? [ 1 ]

Далее необходимо выбрать директорию для установки программного обеспечения. В данном случае пользуемся уже созданной директорией.

Of the following options :

[1] /home/oracle
[2] /u01/distr/linux86
[3] Specify a location
[q] Quit the installation

Where would you like to install the tt1 instance of TimesTen? [ 1 ] 3
Please specify a directory to install TimesTen? [ /home/oracle ] /u01/app/oracle/product/11.2.1

Далее предлагается ввести директорию "основного демона", самого главного процесса экземпляра Oracle TimesTen, в которой будут размещаться файлы для работы с базами данных, и др. Также предлагается установить директорию для размещения журналов работы основного демона. В данном примере используются значения по умолчанию.

Where would you like to create the daemon home directory? [/u01/app/oracle/product/11.2.1/TimesTen/tt1/info]
The daemon logs will be located in /u01/app/oracle/product/11.2.1/TimesTen/tt1/info
Would you like to specify a different location for the daemon logs? [ no ]
Installing into /u01/app/oracle/product/11.2.1/TimesTen/tt1 ...
Uncompressing ...

Далее, необходимо определить порт для работы основного демона. Используются значения по умолчанию. Затем всем пользователям, кроме входящих в группу oinstall ограничиваем доступ к инфраструктуре Oracle TimesTen (TimesTen data stores, TimesTen files and shared memory). Опять используются значения по умолчанию.

NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the daemon port number must be the same across all TimesTen installations managed within the same Oracle Clusterware cluster.

NOTE: All installations that replicate to each other must use the same daemon port number that is set at installation time. The daemon port number can be verified by running 'ttVersion'.

The default port number is 53384.

Do you want to use the default port number for the TimesTen daemon? [ yes ]
The daemon will run on the default port number (53384).

NOTE: For security, we recommend that you restrict access to the
TimesTen installation to members of a single OS group. Only members of
that OS group will be allowed to perform direct mode connections to
TimesTen, and only members of that OS group will be allowed to perform
operations that access TimesTen data stores, TimesTen files and shared
memory. The OS group defaults to the primary group of the instance
administrator. You can default to this group, choose another OS group
or you can make this instance world-accessible. If you choose to make
this instance world-accessible, all database files and shared memory
are readable and writable by all users.

Restrict access to the the TimesTen installation to the group 'oinstall'?
[ yes ]

Далее, предлагается активировать возможность поддержки PL/SQL. Опять соглашаемся (по умолчанию).

NOTE: Enabling PL/SQL will increase the size of some TimesTen libraries.

Would you like to enable PL/SQL for this instance? [ yes ]

Далее, если необходимо использовать функциональность Oracle TimesTen для кэширования данных из Oracle Database, то необходимо установить на этой машине Oracle Client, и установить значение переменной ORACLE_HOME для переменной TNS_ADMIN (см. ниже). В данном примере я не буду активировать данную возможность

(s=skip).

In order to use the 'In-Memory Database Cache' feature in any databases
created within this installation, you must set a value for the TNS_ADMIN
environment variable. It can be left blank, and a value can be supplied later
using /bin/ttModInstall.

Please enter a value for TNS_ADMIN (s=skip)? [ ] s

NOTE: It appears that you are running version 4.1 of the g++
compiler. TimesTen ships with multiple sets of client libraries and server
binaries : one built for compatibility with g++ 3.4.6 and one with
g++ 4.1.0. The installer has created links to the 4.1.0 library in the
/lib directory and to the 4.1.0 server binary in the
/bin directory. If you want to use a different compiler,
please modify the links to point to the desired library and server binary.

Installing server components ...

Далее, необходимо определить порт для работы серверного процесса Oracle TimesTen, который необходим для клиент-серверного соединения. В данном примере используются значения по умолчанию.

What is the TCP/IP port number that you want the TimesTen Server to listen on? [ 53385 ]

Далее, предлагается установить документацию. Опять используем значения по умолчанию.

Do you want to install QuickStart and the TimesTen Documentation? [ no ]
Would you like to install the documentation (without QuickStart)? [ yes ]
Where would you like to create the doc directory (s=skip)?
[ /u01/app/oracle/product/11.2.1/TimesTen/tt1/doc ]
The TimesTen documentation has been installed in /u01/app/oracle/product/11.2.1/TimesTen/tt1/doc.
Installing client components ...

На следующем этапе установки необходимо прописать home-директорию CRS, после чего инсталлятор показывает доступные узлы для конфигурации active-standby pair репликации. Использую значения по умолчанию, следовательно, моя репликация будет работать на узлах rac1 и rac2.

Would you like to use TimesTen Replication with Oracle Clusterware? [ no ] yes
Please provide the path to the Oracle Clusterware installation on this machine (s=skip)? [ ] /u01/app/oracle/product/11.1.0/crs
NOTE: The TimesTen Clusterware agent port must be the same on all nodes
of the cluster. Please refer to the TimesTen documentation for
additional information.
Please enter a port number for the TimesTen Clusterware agent? [ 53386 ]
Executing '/u01/app/oracle/product/11.1.0/crs/bin/crsctl check cluster' ...
Oracle Clusterware is currently configured on the following nodes :
1. rac1
2. rac2
NOTE: By default, all of the nodes listed above will be added to the TimesTen
Replication with Oracle Clusterware configuration. You can also
specify your own list of nodes based on the list above.
Would you like to specify a node list for TimesTen Replication with Oracle Clusterware? [ no ]
NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.

Run the 'setuproot' script :
cd /u01/app/oracle/product/11.2.1/TimesTen/tt1/bin
./setuproot -install
This will move the TimesTen startup script into its appropriate location.

The startup script is currently located here :
'/u01/app/oracle/product/11.2.1/TimesTen/tt1/startup/tt_tt1'.

The 11.2.1.4 Release Notes are located here :
'/u01/app/oracle/product/11.2.1/TimesTen/tt1/README.html'

Starting the daemon ...
TimesTen Daemon startup OK.
End of TimesTen installation.

Далее выполняем скрипты для автоматического запуска экземпляра Oracle TimesTen после перезапуска системы.

[root@rac1 ~]$ cd /u01/app/oracle/product/11.2.1/TimesTen/tt1/bin
[root@rac1 bin]$ ./setuproot –install
Would you like to install the TimesTen daemon startup scripts into /etc/init.d? [ yes ]
Copying /u01/app/oracle/product/11.2.1/TimesTen/tt1/startup/tt_tt1 to /etc/init.d
Successfully installed the following scripts :
/etc/init.d/tt_tt1
/etc/rc.d/rc0.d/K45tt_tt1
/etc/rc.d/rc1.d/K45tt_tt1
/etc/rc.d/rc2.d/S90tt_tt1
/etc/rc.d/rc3.d/S90tt_tt1
/etc/rc.d/rc5.d/S90tt_tt1
/etc/rc.d/rc6.d/K45tt_tt1
[root@rac1 ~]$

Проверим работу экземпляра Oracle TimesTen.

[oracle@rac1 ~]$ ttstatus
TimesTen status report as of Fri Feb 19 08:54:30 2010
Daemon pid 12978 port 53384 instance tt1
TimesTen server pid 13016 started on port 53385
------------------------------------------------------------------------
Accessible by group oinstall
End of report

Ограничения: В данной установке Oracle TimesTen не конфигурирован для кэширования данных из Oracle Database (переменная TNS_ADMIN не задана). Если в дальнейшем данная функциональность понадобится, то ее можно активировать с помощью утилиты ttmodinstall.

На этом инсталляция Oracle TimesTen завершена. Повторите процедуру установки на втором узле. Для более легкого управления рекомендуется устанавливать программное обеспечение под одним пользователем и в те же директории.

Дополнение: если вы вначале установили Oracle TimesTen и после этого установили Oracle Clusterware, то для активации возможности интеграции данных продуктов необходимо воспользоваться утилитой ttmodinstall.

4. Создание базы данных

На данном этапе создадим базу данных, которую будем реплицировать. Для этого создадим на обоих узлах следующие директории:

  • /u01/app/datastore - для хранения всех баз данных Oracle TimesTen
  • /u01/app/datastore/ha_ds – для базы данных «ha_ds», которую будем реплицировать.
[root@rac1 ~]$ mkdir /u01/app/datastore
[root@rac1 ~]$ chown oracle:oinstall /u01/app/datastore
[root@rac1 ~]$ mkdir /u01/app/datastore/ha_ds
[root@rac1 ~]$ chown oracle:oinstall /u01/app/datastore/ha_ds

Далее выбираем один из узлов кластера для создания базы данных. В данном случае - это узел rac1. Создадим сущность в файле sys.odbc.ini.

[ha_ds]
Driver=/u01/app/oracle/product/11.2.1/TimesTen/tt1/lib/libtten.so
DataStore=/u01/app/datastore/ha_ds
PermSize=40
TempSize=32
PLSQL=1
DatabaseCharacterSet=AL32UTF8
…

Далее соединяемся с базой данных «ha_ds» как администратор экземпляра Oracle TimesTen (в данном примере это oracle - он устанавливал экземпляр Oracle TimesTen) и создадим в ней необходимых пользователей:

  • adm – администратор базы данных и репликации (для этого данному пользователю

необходима привилегия ADMIN).

  • app – пользователь имеющий минимальный набор привилегий, владелец объектов.
[oracle@rac1 ~]$ ttisql ha_ds
Copyright (c) 1996-2009, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=ha_ds";
Connection successful: DSN=ha_ds;UID=oracle;DataStore=/u01/app/datastore/ha_ds;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;DRIVER=/u01/app/oracle/product/11.2.1/TimesTen/tt1/lib/libtten.so;PermSize=40;TempSize=32;TypeMode=0;
(Default setting AutoCommit=1)
Command> create user adm identified by adm;
User created.
Command> grant ADMIN to adm;
Command> create user app identified by app;
User created.
Command> grant create session, create table to app;
Command> exit;
Disconnecting...
Done.
[oracle@rac1 ~]$

После этого соединяемся с базой данных под пользователем app и создаем таблицу plans.

[oracle@rac1 ~]$ ttisql "DSN=ha_ds;UID=app;PWD=app"
Copyright (c) 1996-2009, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=ha_ds;UID=app;PWD=app";
Connection successful: DSN=ha_ds;UID=app;DataStore=/u01/app/datastore/ha_ds;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;DRIVER=/u01/app/oracle/product/11.2.1/TimesTen/tt1/lib/libtten.so;PermSize=40;TempSize=32;TypeMode=0;
(Default setting AutoCommit=1)
Command> create table plans ( Id number(12),
> Name varchar(32 char),
> PricePerMin binary_double,
> Status char(3 char),
> primary key (Id) );
Command> exit;
Disconnecting...
Done.
[oracle@rac1 ~]$

Содержание Вперёд

Новости мира IT:

Архив новостей

Последние комментарии:

С Новым Годом!! :) (1)
Среда 04.01, 04:47
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...