Есть рабочий сервер с установленным Slackware-9.1(можно и на Slackware-9.0 - разницы практически нет)
Переустанавливать linux на сервере на тот, который сертифицирован Oracle, нет ни возможности, ни желания :-)
По умолчанию, та версия Oracle(9.2.0.1), которую можно утянуть с офсайта поставить не получается - при установке возникают 3 ошибки линкования и СУБД после этого нормально не работает.
После вдумчивого искания на всяческих поисковиках, во всяческих группах, "курения" документации и общения с друзьями-ораклистами (и не только с друзьями - просто с ораклистами :-), примерно нащупал решение - решил проверить на рабочей машине

Итак, начнём...
Скачиваем с сайта Oracle собственно сам oracle(три файла солидного размера).
Для скачки требуется бесплатная регистрация на сайте.
Скачиваем (если есть доступ на металинк, если нет - берём у друзей) файл p3095277_9204_LINUX.zip (тоже солидного размера).
Если используете OLAP - надо достать(с металинка или у друзей) файл p3084634_9204_LINUX.zip - исправляет ошибки, допущенные в 9.2.0.4 патчсете(я не пользую{пока} - не ставил)
Сам процесс установки описывать не буду - он описан на множестве сайтов, к примеру
http://oracle-inf.narod.ru/install9.htm
http://www.puschitz.com/InstallingOracle9i.html
Скажу лишь, что применительно для Slackware я проделал:
1) в файл /etc/sysctl.conf прописал следующее:
---cut-/etc/sysctl.conf---
kernel.sem=250 32000 100 128
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.shmall=2097152
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
---end-of-cut-/etc/sysctl.conf---
2) в стартовые скрипты(rc.local например) прописал:
if [ -f /etc/sysctl.conf ]; then                                                                                 
    /sbin/sysctl -p /etc/sysctl.conf                                                                         
fi
3) в домашний каталог пользователя oracle положил следующие файлы
.bashrc(с точкой в начале :-)
---cut-.bashrc---
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/9.2.0
ORACLE_SID=some_sid ### поправить на нужный
ORACLE_TERM=xterm
NLS_LANG=AMERICAN
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
DISPLAY=localhost:0.0
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH ORACLE_TERM NLS_LANG ORA_NLS33 DISPLAY
---end-of-.bashrc---
и сделал симлинки
ln -s .bashrc .bash_login
ln -s .bashrc .bash_profile
После почти успешной - с 3-мя ошибками, которые мы игнорируем(то есть, нажимаем "Ignore" :-) выходим из инсталлера.
Дополнение
Одну ошибку, связанную с линкованием, можно вылечить в момент установки.
"Когда появится окно с ошибкой линкования, нужно отредактировать файл $ORACLE_HOME/ctx/lib/env_ctx.mk:
добавить в строке начинающийся с INSO_LINK=
новое значение
$(LDLIBFLAG)dl
т.е.
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
нажать кнопку повторить в модальном окне."
За дополнение большое спасибо Askhat A. Nadjibev.
Разархивируем куда-нибудь первый патчсет(3095277), после чтения README.html из патчсета делаем следующие вещи
root@db # su - oracle
oracle@db % cd $ORACLE_BASE/oui/bin/linux
oracle@db % ln -s libclntsh.so.9.0 libclntsh.so
oracle@db % cd $ORACLE_HOME/bin
oracle@db % ./runInstaller
выбираем путь в разархивированному патчсету(конкретно к products.jar из него)
Сначала патчим сам инсталлер до версии 2.2.0.18.0(что в патчсете), дожидаемся окончания установки инсталлера, выходим из него, запускаем заново, проверяем на всякий случай версию(а вдруг не обновилась :-)
Затем выбираем установку самого патчсета(в меню он называется "Oracle9iR2 Patch Set 3 9.2.0.4.0") и устанавливаем его
После установки по идее надо запустить Oracle Database Assistant, но мы его сначала подправим :-)
Открываем в любимом редакторе файл $ORACLE_HOME/bin/dbca, и в самом конце приводим к такому виду
#if [ -f /etc/rac_on ]; then
# Run DBCA
$JRE_DIR/bin/jre -native -DORACLE_HOME=$OH...
#else
# Run DBCA
#$JRE_DIR/bin/jre -DORACLE_HOME=$OH...
#fi
То есть, комментируем "лишнее" :-)
Можно и сделать проще - создать файл /etc/rac_on, т.е.
# touch /etc/rac_on
После этого можно смело запускать dbca и создавать базу
Да, при создании базы желательно залочить пользователя SCOTT :-))
После создания базы заходим(из-под пользователя oracle) в каталог $ORACLE_HOME/dbs
oracle@db % cat initdw.ora |sed s/"#db_name = MY_DB_NAME"/"db_name = _SID_"/|sed s/#control_files/control_files/ > init_SID_.ora
("_SID_" заменить на SID, с которым создавали базу) Теперь от рута правим файл /etc/oratab
_SID_::/opt/oracle/9.2.0:Y
Затем настраиваем listener
oracle@db % $ORACLE_HOME/bin/netca
После создания базы и настройки listener надо озаботиться написанием стартового скрипта
---cut-rc.oracle---
#!/bin/sh
ORACLE_HOME=/opt/oracle/9.2.0
ORACLE_OWNER=oracle

oracle_start() {
	echo -n "Starting Oracle:"
	echo -n " listener"
    su - $ORACLE_OWNER -c "source /home/oracle/.bashrc;$ORACLE_HOME/bin/lsnrctl start" > /dev/null 2>&1
	echo " db"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart" > /dev/null 2>&1
	}
oracle_stop() {
	echo -n "Stopping Oracle:"
	echo -n " db"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut" > /dev/null 2>&1
	echo " listener"
    su - $ORACLE_OWNER -c "source /home/oracle/.bashrc;$ORACLE_HOME/bin/lsnrctl stop" > /dev/null 2>&1
}
case "$1" in
'start')
    oracle_start
    ;;
'stop')
    oracle_stop
    ;;
'restart')
    oracle_stop
    oracle_start
    ;;
*)
    echo "usage $0 start|stop|restart" ;;
esac
---end-of-rc.oracle---
Вот и всё

Дополнение
После накатывания 9.2.0.4-патчсета ломается экспорт
Лечится это следующими действиями:
1) Оракл переводится в startup migrate мод
2) @?/rdbms/admin/catpatch.sql
3) Делается shutdown и startup в normal моде
4) connect / as sysdba
5) alter system set "_system_trig_enabled"=false;
6) @?/rdbms/admin/catnools.sql (если у Вас в системе нет этого скрипта, возьмите его тут
7) @?/rdbms/admin/utlrp.sql
8) @?/rdbms/admin/prvtxdb.plb
После этого экспорт будет работать.
P.S. Не надо меня просить выслать вам патчи - у меня у самого нет доступа на металинк

P.P.S. Замечания, дополнения, тыканья носом приветствуются :-)
© 2003 Dmitry A. Koptev