18 сент. 2012 г.

Oracle Client Oracle Linux 6


На днях от нечего делать решил попробовать Oracle Linux, а именно - опробовать на нем Oracle Client 11g. Компании ежегодно тратят кучу бабла на лицензию Red Hat, зачастую даже не подозревая что есть такой замечательный дистрибутив Oracle Linux.


Выдержка из интернета:
Из отличий дистрибутива Oracle Linux 6.3 от RHEL 6.3 отмечается исправление ошибок, обновление версий драйверов для сетевых устройств и систем хранения. В составе Oracle Linux 6.3 поставляется два варианта пакетов с Linux-ядром: классический вариант от компании Red Hat (kernel-2.6.32-279.el6) и созданный силами Oracle пакет с ядром Linux, основанный на ветке 3.0 с бэкпортированием некоторых возможностей более новых ядер серии 3.x (kernel-uek-2.6.39-200.24.1.el6uek). По умолчанию в базовую поставку входят оба ядра, но подготовленный в Oracle пакет с ядром загружается по умолчанию. Готовые бинарные сборки ядра от Oracle для совместимых c RHEL дистрибутивов и src.rpm-пакеты представлены на сайте public-yum.oracle.com, там же можно загрузить и другие присутствующие в дистрибутиве пакеты. Oracle не накладывает никаких ограничений на поставку подготовленного в Oracle ядра в сторонних продуктах.

То есть тот же Rad Hat только бесплатный. Администрирование системы проходит как обычно, ничего левого неизвестного не добавили. Но меня интересовала работа клиента.

Oracle начали разделять клиент на части. На сайте можно скачать по частям Instant Client. Обязательно нужен пакет Basic остальное зависит от того что вам нужно. Я ставлю 64x версию.

Скачиваем: 
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm

Готовим пользователей:
[root@test]# groupadd oinstall
[root@test]# groupadd dba
[root@test]# useradd -g oinstall -G dba oracle
[root@test]# passwd oracle


Готовим папки:
[root@test]# mkdir -p /u01/app/oracle/product/11.2/crs
[root@test]# mkdir -p /u01/app/oracle/product/11.2/db_1
[root@test]# chown -R oracle:oinstall /u01




Устанавливаем клиент
[root@test]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
[root@test]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
[root@test]# rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm


Далее проще залогиниться под пользователем oracle.

5) Редактируем переменные окружения:
[oracle@test]# nano .bash_profile
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1; export ORACLE_HOME
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib; export LD_LIBRARY_PATH
TNS_ADMIN=/u01/app/oracle/product/11.2/db_1/network/admin; export TNS_ADMIN

Создаем tnsnames.ora:
[oracle@test]# mkdir -p /u01/app/oracle/product/11.2/db_1/network/admin
[oracle@test]# nano /u01/app/oracle/product/11.2/db_1/network/admin/tnsnames.ora

TEST=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=10.10.12.6)
      (PORT=1521)
    )
    (CONNECT_DATA=
      (SID=TEST)
    )
  )

Можно пробовать, так как у меня 64 разрядная версия то:

[oracle@test]# sqlplus64 test/test1@test
SQL*Plus: Release 11.2.0.3.0 Production on Tue Sep 18 14:35:19 2012
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
ORA-21561: OID generation failed
Опа, не работает, оказывается забыл еще момент:

В файле hosts прописать маппинг:
[root@test]# hostname
client-machine
[root@test]# nano /etc/hosts
127.0.1.1   client-machine

[oracle@test]# sqlplus64 test/test1@test
SQL*Plus: Release 11.2.0.3.0 Production on Tue Sep 18 14:35:19 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 Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

Все ОК! До этого клиент ставил только с GUI)))

3 комментария:

  1. Круто, теперь добавлю свои мысли: сегодня Oracle выдает обновления бесплатно, а завтра политика поменяется и что тогда делать?
    Не знаю как сейчас, но раньше DB Oracle была сертифицирована только под rhel5 и oracle 5. Как же так, что новейшая ОС вендора с особым "оптимизированным" ядром несовместима с его собственной БД?
    Оракл пилет кластерную файловую систему OCFS, исходники открыты, GPL, все дела. Есть rpm под Oracle 6 и нет под RHEL6. Ну ладно, думаю, соберу под CentOS6 из исходников и... и обломахтунг - не компилируется! Так что к черту такого вендора, который тырит у конкурента дистрибутив и на тех фронтах где имеет преймущество, ломает программы так, чтобы они работали только на его дистрибутиве.
    Не хочется платить за RHEL - ставь CentOS.

    ОтветитьУдалить
  2. Политика не поменяется, потому что - Oracle есть откуда деньги брать: сервера, бд. Им нафиг не надо брать деньги за "переделку". Свои БД они сертифицируют не конкретно под RHEL, а под unbreakable ядро, конкретно для 6 поколения сертифицировали в марте вроде. В данный момент делаю кластер на OracleLinux 6 но не на OCFS, ее думаю попробовать позже. Напишу заметку как делал скоро))))Если сделаю....А вообще - не вижу принципиальных отличий, что RHEL что Centos что OL)))

    ОтветитьУдалить
    Ответы
    1. Что-то не убедительно, мол Ораклу есть откуда деньги брать. Поэтому они переманивают клиентов редхата втрое более низкой стоимостью подписки на поддержку? История передачи openoffice в Апач тоже известна. Солярис решили сами пилить без поддержки сообщества, и нет больше opensolaris. Т.е. для оракла смена курса на 180% достаточно характерна.

      Удалить