Документация iSZN
12. Установка и настройка СУБД Oracle на Linux-сервере
Подготовка к установке Oracle
ORAINST-I
Скопировать во временный каталог файлы1) orainst.pl
, dbora
.
Сконвертировать все переводы строк в этих файлах в UNIX-стандарт командой:
dos2unix *.pl dbora
Выполнить в этом каталоге команду:
perl orainst.pl -i
BASEDIRS
Из-под root
сделать пользователя oracle
и группу oinstall
владельцами каталогов, в которых будут храниться файлы базы данных.
chown -R oracle:oinstall /Base?
ORACLE-INSTALL: Установка Oracle
Подготовка
Выполнить действия, требуемые скриптом orainst.pl
:
- Зайти как
oracle
на другой консоли. - Запустить X Window (
startx
). - Вставить и смонтировать первый диск дистрибутива Oracle 9i.
- Не делать
cd
в каталог со смонтированным компакт-диском, иначе потом его невозможно будет размонтировать.
Для предотвращения ошибки2) при запуске установщика необходимо выполнить скрипты gccFedora/gccfedora.sh
и gccFedora/rpm/rpm.sh
(при этом находясь внутри каталогов, в которых они расположены).
В CentOS 5.1 необходимо дополнительно установить пакет libXp
. Это делается командой yum install libXp
.
Установка
- Запустить
/mnt/cdrom/runInstaller
(либо/media/cdrom/runInstaller
, либо/media/cdrecorder/runInstaller
). - Установить Oracle в каталог
/opt/oracle
(создаётся вorainst.pl
); Inventory будет в/opt/oracle/oraInventory
. - Unix Group Name:
oinstall
. - Destination: Oracle Home Name —
Ora920
, Path —/opt/oracle/product/9.2.0
. - Выбрать установку Oracle Database, Enterprise Edition (2.04 GB).
- В качестве модели базы данных выбрать только Data Warehouse.
- Имя базы данных и Service:
orcl
. - Файлы баз данных помещать в каталог
/opt/oracle/oradata
. - Кодировку базы данных выбрать явно: Cyrillic CL8MSWIN1251.
Проблемы при линковке
ins_oemagent.mk: около 70%
Ошибка «Error in invoking target install of makefile /opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk».
Необходимо выполнить следующие действия (не нажимая кнопок в диалоге ошибки):
- Заменить файл
/opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk
готовым, исправленным файломins_oemagent.mk
или
- Открыть в редакторе файл
/opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk
. - В строке 18:
LDFLAGS= …
после$(STDMODE)
добавить параметрL$(LIBHOME)/stubs
. - Записать файл.
- Нажать на кнопку Retry в диалоге ошибки.
ins_ctx.mk: около 85%
В диалоге с сообщением об ошибке «Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk» нажать на кнопку Ignore.
Запуск Oracle Enterprise Manager
Для работы с табличными пространствами необходимо открыть Oracle Enterprise Manager (OEM). Он автоматически запускается после выхода из инсталлятора Oracle. Кроме того, OEM может также быть запущен на рабочей станции с установленным Oracle Client'ом или на сервере (из-под X Window) командой oemapp console
.
С помощью Oracle Enterprise Manager открыть локальный сервер (логин SYS
, вход в качестве SYSDBA
), раздел Storage.
Создание табличных пространств
Создать два табличных пространства:
NEW
в датафайле/opt/oracle/oradata/NEW.dbf
,NEW_I
в датафайле/Base2/NEW_I.dbf
(при наличии только одного диска —/opt/oracle/oradata/NEW_I.dbf
).
Если база будет очень большой и на диске для этого имеется свободное место, можно создать несколько датафайлов с предельным максимальным размером (32767 МБ).
- Для датафайлов обоих табличных пространств включить Autoextend (автоматическое расширение) с шагом в 100 Мбайт. Файлы расширятся до нужного размера при первом восстановлении дампа.
- Максимальный размер всех датафайлов рабочих табличных пространств, а также временного и откатного (
TEMP
иUNDOTBS
) нужно ограничить так, чтобы при их одновременном расширении до этого размера на разделе осталось ещё несколько гигабайт свободного пространства.
Следует учитывать, что ограничения на максимальный размер табличных пространств NEW
, NEW_I
, TEMP
и UNDOTBS
должны быть не ниже 5 Гбайт каждое.
ORAINST-F
Закрыть Enterprise Management Console. Из-под root
выполнить завершение установки: perl orainst.pl -f
.
Создание файла настроек базы данных
INITORCL.ORA
Переместить файл initorcl.ora
и открыть его для редактирования:
mv /opt/oracle/admin/orcl/pfile/initorcl.ora.* /opt/oracle/product/9.2.0/dbs/initorcl.ora mcedit /opt/oracle/product/9.2.0/dbs/initorcl.ora
В разделе [Optimizer]
исправить:
star_transformation_enabled=FALSE
Добавить:
query_rewrite_integrity=TRUSTED optimizer_index_cost_adj=75
В разделе [Pools]
исправить:
java_pool_size=150000000 shared_pool_size=150000000
В конец файла добавить:
utl_file_dir='/FiServ'
CREATE-SPFILE
Под пользователем oracle
выполнить:
cd /opt/oracle/product/9.2.0/dbs sqlplus "/ as sysdba"
В запустившемся sqlplus
выполнить следующие команды
shutdown immediate create spfile from pfile='initorcl.ora';
Должно появиться сообщение «File created». После этого надо выйти из sqlplus
(quit
или exit
).
REBOOT
Перезагрузить сервер (reboot
) и проверить запуск Oracle. После перезагрузки инстанция должна запуститься сама, то есть команда ps ax | grep ora_
должна показывать процессы tnslsnr
, ora_pmon_orcl
, ora_dbw0_orcl
, ora_lgwr_orcl
, ora_ckpt_orcl
, ora_smon_orcl
, ora_reco_orcl
, ora_cjq0_orcl
, ora_qmn0_orcl
, ora_s000_orcl
, ora_d000_orcl
. В случае установки shared_servers также должны присутствовать процессы серверов ora_sXXX_orcl
.
Установка патчсета
PATCHSET-INSTALL
Для патчсета 9.2.0.6 нужно исправить версию дистрибутива в /etc/redhat-release
, иначе установщик патчсета не запустится:
echo 3 > /etc/redhat-release
Для патчсета 9.2.0.8 содержимое файла с версией дистрибутива должно быть исправлено следующим образом:
echo "Red Hat Enterprise Linux ES release 4 (Nahant)" > /etc/redhat-release
После этого необходимо остановить экземпляр СУБД Oracle. Из под root
выполнить: /etc/init.d/dbora stop
Предположим, что архив с патчсетом находится в каталоге /FiServ
и называется Oracle_9.2.0.6_Linux.zip
. Последовательность команд:
# Переходим во временный каталог cd /tmp # Распаковываем архив с патчсетом unzip /FiServ/Oracle_9.2.0.6_Linux.zip # Устанавливаем полный доступ ко всем распакованным файлам для всех пользователей chmod -R 777 Disk1 # Переходим в каталог с установщиком cd Disk1/install/ # Запускаем установщик ./runInstaller
При первом запуске необходимо выбрать установку продукта Oracle Universal Installer. После завершения установки Universal Installer'а закрыть установщик и запустить его заново. Только после этого выбирать установку Oracle Patchset.
PATCHSET-CATPATCH
Пользователем oracle
выполнить:
cd /opt/oracle/product/9.2.0 sqlplus "/ as sysdba"
В запустившемся sqlplus
выполнить:
spool patch.sql startup migrate @rdbms/admin/catpatch.sql
Дождаться завершения выполнения скрипта (выполняется более получаса) и проверить отображаемые в консоли результаты установки. Версии установленных продуктов должны соответствовать версии патчсета, состояние должно быть VALID
, UPGRADED
либо OPTION OFF
.
Всё ещё находясь в sqlplus
, выполнить:
spool off shutdown startup
Выйти из sqlplus
.
PATCHSET-LOWMEM
Если на сервере менее 1 Гбайта ОЗУ: отредактировать файл /opt/oracle/product/9.2.0/dbs/initorcl.ora
:
В разделе [Pools]
:
java_pool_size=50000000 [исправить существующий] shared_pool_size=50000000 [исправить существующий]
Повторить шаг CREATE-SPFILE.
LOADJAVA
Из-под пользователя oracle
выполнить:
loadjava -user sys/<пароль пользователя SYS> -r -s -g public /opt/oracle/product/9.2.0/jlib/regexp.jar
DBSHUT-FIX
Подправить скрипт завершения работы СУБД dbshut
на использование команды немедленного отключения (shutdown immediate
).3)
Под пользователем oracle
:
vi `which dbshut`
Все (два) вхождения shutdown
(кроме строки sqldba command=shutdown
) заменить на shutdown immediate
, либо скопировать готовый (уже исправленный) файл dbshut
в каталог /opt/oracle/product/9.2.0/bin/
.