Есть рабочий сервер с установленным 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" :-) выходим из инсталлера.
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 из него)
#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То есть, комментируем "лишнее" :-)
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
---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---
Вот и всё