Valery's Mlog

Mindlog of a Freak
July 9th, 2006 by Valery Dachev

Oracle Database 10g Express Edition под Linux

Ще си спестя въведението за това кои са Oracle и какъв го дирят в моя блог. Така се случи, че в рамките на една седмица си имам сериозно взимане-даване с техните продукти. Един от тях е Oracle Database 10g Express Edition. Етикетът “Express Edition” стои върху група от продукти предназначени основно за развойна и учебна дейност. Пакетът включва напълно функционална база. Поради целите, които си поставя този edition, софтуерът има някои ограничения (добра статия за това има на този адрес):

  • сървърът може да адресира максимум 1Гб памет;
  • сървърът може да работи само върху един процесор;
  • сървърът поддържа най-много една база данни (не схема !);
  • сървърът се разпростира на максимум 4Гб дисково пространство;

В крайна сметка, тези ограничения не са толкова фатални за повечето случаи. Особено ако става дума за не толкова натоварени web приложения. Това са и част от причините да ми се наложи да се занимавам с нещо подобно, въпреки антипатията си към Oracle по принцип. Сега спирам да разтягам локуми и започвам страшно накратко и стъпка по стъпка – така, както си го записвах, докато инсталирах:

  1. изтегляне на необходимите пакети:

    ЗA DEBIAN НА AMD64: Тъй като Oracle предоставят своята Express Edition база данни комипилирана само за 32-битова архитектура, apt-get не може да се оправи в случаите, когато първичната архитектура на опеарционната система е amd64. Затова тегленето и инсталирането на пакетите трябва да стане наръка. Отделно, трябва да бъдат изтеглени и 32-битовите glibc6 библиотеки (това е пакетът libc-i386), тъй като 32-битово приложение явно не може да използва (тези?) 64-битови библиотеки и обратно.

    ЗА RPM-БАЗИРАНИ ДИСТРИБУЦИИ: Вероятно се изисква допълнително инсталиране на libaio. Тук говоря наизуст, тъй като такава система нямам. Ще се радвам, ако някой изпатил сподели своя опит.

    • за DEB-базирани дистрибуции с apt-get:
      • в /etc/apt/sources.list се добавя реда:

        deb http://oss.oracle.com/debian/ unstable main non-free

      • изпълнява се командата:

        apt-get -d libaio oracle-xe

    • за DEB-базирани дистрибуции без apt-get:
      • от тук се изтегля libaio пакета;
      • от там се изтегля oracle-xe пакета;
    • за RPM-базирани дистрибуции:
  2. инсталиране на сървъра:
    • за DEB-базирани дистрибуции с apt-get:

      apt-get install oracle-xe

    • за DEB-базирани дистрибуции без apt-get:

      dpkg -i libaio_0.3.104-1_i386.deb
      dpkg -i oracle-xe_10.2.0.1-1.1_i386.deb

    • за DEB-базирани дистрибуции на AMD64:

      apt-get install libc6-i386
      dpkg -i –force-architecture libaio_0.3.104-1_i386.deb
      dpkg -i –force-architecture oracle-xe_10.2.0.1-1.1_i386.deb

    • за RPM-базирани дистрибуции:

      rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm

  3. първоначално конфигуриране на сървъра:

    Конфигурирането вече е независимо от дистрибуцията. Преди да се извършването на тази операция сървърът все още не работи. След като тръгне обаче, той ще отвори два TCP порта – един порт за изключително приятната web администрация (Application Express) и още един за комуникация със самия сървър (Database Listener). Струва си обаче да се отбележи, че докато Database Listener слухти на всички IP адреси, Application Express кисне само на 127.0.0.1, което го прави малко неудобен, ако базата данни е инсталирана на отдалечен сървър. Установих, че това може да се промени едва на по-късен етап в самата web администрация, но до тогава лично аз си инсталирах малката програмка redir (пакетът в Debian е едноименен), с която пренасочих всички заявки към порт 8080 на публичния IP адрес към
    127.0.0.1. След като приключи работата, тя лесно може да бъде спряна, като по този начин се запази сигурността от недоброжелатели.

    1. изпълнява се командата:

      /etc/init.d/oracle-xe configure

    2. избира се порт за Application Express (обикновено 8080);
    3. избира се порт за Database Listener (обикновено 1521);
    4. избира се парола за системните потребители;
    5. указва се дали сървърът да тръгва при стартиране на машината;
    6. в този момент сървърът пали и е готов за работа;
    7. добре е променливите необходими на Oracle клиентите да са налични в средата. Файлът /etc/profile е много удачен за целта:

      export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

    8. също така е добра идея пътят до Oracle библиотеките да бъде описан в /etc/ld.so.conf в случай, че някакъв допълнителен софтуер ще ги използва:

      echo ‘/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib’ >> /etc/ld.so.conf
      /sbin/ldconfig

  4. администрация на Oracle Database 10g Express Edition:

    Веднъж инсталиран, сървърът може да бъде администриран с всевъзможни инструменти:

    • шаренкият Application Express, който по подразбиране се намира на адрес:

      http://127.0.0.1/apex/

      Отдалеченият достъп може да бъде включен с в SQL*Plus конзолата като sysdba се изпълни:

      EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

    • стандартният конзолен инструмент SQL*Plus, който обикновено се намира в:

      /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/sqlplus

    • графичният инструмент Oracle SQL Developer;

    ЗАБЕЛЕЖКА: SID по подразбиране за така инсталираната база е XE.

От тук нататък следва щастие !.. освен ако не се наложи инсталиране клиентската част…

P.S.: Всеки може да се чувства свободен да поправи грешките, които определено съм допуснал. :)

Leave a Reply

%d bloggers like this: