В данной статье мы познакомим Вас с установкой Oracle 10g на платформу linux. Подробно раскажем обо всех ньюансах и проблемах, связанных с уставкой oracle 10.2 g на платформу Linux. Также данная статья поможет избежать многих ошибок, связанных с установкой Oracle 10g на linux.
Для того, чтобы установить Oracle 10g скачайте дистрибутив с официального сайта oracle.com бесплатно. прежде чем скачать Вас попросят зарегистрироваться, не бойтесь, это не займет много времени. После регистрации Вы получите ссылку для скачивания.
Файл ship.db.lnx32.cpio.gz размером около 602 Мб должен появиться у Вас.
Разверните этот архив:
$ gunzip ship.db.lnx32.cpio.gz
$ cpio -idmv < ship.db.lnx32.cpio
runInstall будет помещен в Disk1/. Теперь нужно немного подговить систему к установке Oracle.
Создайте скрипт который создает нужные группы и директории.
groupadd oinstall
groupadd dba
mkdir -p /u01/app/oracle
useradd -g oinstall -d /u01/app/oracle -G dba oracle
passwd oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
Теперь нужно поменять некоторые настройки ядра Linux, для этого нужно добавить эти строки в файл /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
И запустить:
# sysctl -p
Мы уже подговились к инсталляции. Если у Вас большие базы, которые требуют надежности и отказоустойчивости, лучше выделите отдельный для файлов базы данных и монтировать в /u02/.
Приступим к установки oracle 10g на linux:
$ su — oracle
Далее необходимо зайти в Disk1/ и запустить:
./runInstall -ignoreSysPrereqs
Ключ -ignoreSysPrereqs задается, чтобы Ваш инсталлятор работал на любом дистрибутиве linux, по умолчанию он поддерживает RedHat, SuSE, UnitedLinux. После включения опции можно будет ставить и на Mandrake, Debian, Gentoo и др.
Но у этого ключа есть один побочный эффект, необходимо найти и закоментировать пару строчек в root.sh
Чтобы root.sh не вылетал при попытке запуска под Linux, отличным от RedHat и UnitedLinux, нужно найти и закомментировать следующие две строчки:
$LNS $ID/init.cssd $rc/»$RC_START»init.cssd // { $ECHO $?; exit 1; }
$LNS $ID/init.cssd $rc/»$RC_KILL»init.cssd // { $ECHO $?; exit 1; } В зависимости от подверсии 10g они могут находиться как рядом, так и в двух соседних циклах for/done.
Запускаем инсталлятор в режиме X-Window, так как инсталлятор у нас графический. Жмем Next. Затем запустим скрипт от имени root и установим пароли для системных пользователей.
Вот и все. Теперь:
# . <путь к Oracle>/root.sh
В окне инсталлятора нажмем OK. В результате — создались все нужные файлы, Oracle стартовал, а вместе с ним запустились всяческие полезные сервисы.
Теперь необходимо научиться стартовать oracle вручную, так как после первой перезагрузки Oracle будет недоступен.
Для этого зайдем в файл /etc/oratab, в котором определяются, какие базы будут стартовать автоматически при запуске утилиты dbstart
В последней строке Вы найдете:
orcl:<путь к Oracle>:N
Необходимо поменять N на Y. Это значит, что инстанцию Oracle нужно загружать. Начнем.
Подготовка:
Пропишем это в .bash_profile, потому что иначе придется устанавливать эти переменные всякий раз при необходимости воспользоваться какими-либо инструментами Oracle. Еще их должен иметь каждый пользователь системы, намеревающийся работать с инструментами или программами, использующими БД.
$ export ORACLE_HOME=<путь к Oracle>
$ export ORACLE_SID=orcl
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
$ export PATH=$PATH:$ORACLE_HOME/bin
Непосредственно запуск:
$ dbstart
$ lsnrctl start
Если хотите остановить:
$ dbshut
$ lsnrctl stop
Теперь займемся пользователеями:
В этой версии Oracle пользователь scott заблокирован. При попытке войти под ним скорее всего случится следующее:
$ sqlplus scott/tiger@orcl
ERROR:
ORA-28000: the account is locked
Чтобы разблокировать пользователя Scott, нужно будет познакомиться с командами управления пользователями. Простейший способ пообщаться с Oracle — запустить sqlplus. В sqlplus мы сможем задавать команды и просматривать ответы на команды.
$ sqlplus system@orcl
Вводим пароль, заданный при установке, и попадаем в командную строку.
Введем:
alter user scott account unlock;
Создание пользователя выглядит так:
create user osama identified by binladen;
Крутим настройки
У Oracle есть и web-интерфейс, в котором Вы можете управлять Вашей БД, создавать схемы, следить за загрузкой и размерами базы. Называется Oracle Enterprise Manager. Чтобы им воспользоваться, нужно сделать следующее:
$ emctl start dbconsole
После чего нужно зайти на http://имя.машины:5500/em/. Если Oracle установлен локально, то имя будет localhost. Очевидное удобство здесь в том, что с помощью того же менеджера можно рулить сервером, установленным где угодно, с той же простотой, то есть кликая мышкой и глядя на красивый GUI.
Умения и таланты Oracle поистине неисчерпаемы. С большинством из них Вы столкнетесь тогда, когда начнете изучать диалект SQL, на котором разговаривает эта СУБД. Имя ему — PL/SQL. Если Вы думаее, что на нем можно только писать запросы, то глубоко ошибаетесь. В отличие от стандартного SQL, его Oracle»овый диалект — настоящий язык программирования, на котором можно писать встроенные процедуры, триггеры — обработчики, определяющие поведение базы в различных ситуациях, и многое другое.
Также PL/SQL — это способ доступа к уникальным функциям, отличающим Oracle от других СУБД. Дело в том, что в основу сервера баз данных положено несметное количество алгоритмов и подходов, главная цель которых сводится к обеспечению надежности и целостности данных. Для всех изменений, происходящих в базе, ведется лог, из которого можно полностью восстановить картину происходивших изменений. Благодаря такому подходу можно делать такие вещи, как, например, flashback, которая позволяет вычитывать записи из «снимка» таблицы, какой она была раньше, в определенный момент времени:
select * from table_name as of timestamp to_timestamp(‘дата/время’, ‘формат’);
С помощью той же функции можно восстановить ранее прибитую командой drop таблицу со всем имевшимся на тот момент содержимым:
flashback table <удаленная.таблица> to before drop;
Оптимизатор запросов Oracle тоже очень мощный. Принцип его действия называется cost-based (стоимостный). На основе статистики, которая собирается по таблицам и индексам, он сам строит оптимальный план выполнения запроса и решает, подключать или не подключать при этом индексы.
Также Oracle изначально приспособлен для работы в кластере. Это значит, что сервер можно «распределить» по нескольким компьютерам и не бояться того, что один из них случайно упадет.