Przedstawie tutaj jak zainstalować Oracle 10g Enterprise Edition na Slackware 12.0, kernel 2.6.23.8-smp.
Materiały z których korzystałem są tu.
Ściągamy oracle ze strony producenta , jest to 1,7GB, więc można spokojnie na noc włączyć ściąganie
[center]Instalacja[/center]
Po pierwsze musimy podlinkować dwa pliki(jako root):
Kod: Zaznacz cały
ln -s /usr/lib/libgcc_s.so.1 /lib/libgcc_s.so.1
ln -s /usr/i486-slackware-linux/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.5
Kod: Zaznacz cały
groupadd dba
groupadd oinstall
adduser oracle
Ściągnięty plik rozpakowujemy:
Kod: Zaznacz cały
unzip nazwa_pliku.zip
Kod: Zaznacz cały
dd if=/dev/zero of=/directory/with/much/free/space/tempswap bs=1k count=1000000
chmod 600 tempswap
mke2fs tempswap
mkswap tempswap
swapon tempswap
Kod: Zaznacz cały
sysctl -a
Kod: Zaznacz cały
Needed Check with
shmmax = 2147483648 cat /proc/sys/kernel/shmmax
shmmni = 4096 cat /proc/sys/kernel/shmmni
shmall = 2097152 cat /proc/sys/kernel/shmall
shmmin = 1 ipcs -lm |grep "min seg size"
semmsl = 250 cat /proc/sys/kernel/sem | awk '{print $1}'
semmns = 32000 cat /proc/sys/kernel/sem | awk '{print $2}'
semopm = 100 cat /proc/sys/kernel/sem | awk '{print $3}'
semmni = 128 cat /proc/sys/kernel/sem | awk '{print $4}'
file-max = 65536 cat /proc/sys/fs/file-max
ip_local_port_range = 1024 65000 cat /proc/sys/net/ipv4/ip_local_port_range
Kod: Zaznacz cały
/etc/sysctl.conf
Kod: Zaznacz cały
# Kernel Parameters for Oracle 10.1.0
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
Kod: Zaznacz cały
sysctl -p
Kod: Zaznacz cały
mkdir /opt/oracle
chown oracle /opt/oracle
chgrp oinstall /opt/oracle
Kod: Zaznacz cały
su oracle
Kod: Zaznacz cały
./runInstaller -ignoreSysPrereqs
Kod: Zaznacz cały
/opt/oracle
Global database name: nazwa_bazy.myhost
SID: nazwa_bazy
Podczas konfiguracji wyskoczył mi błąd:
ORA-12547: TNS:lost contact
Należy wcisnąć abort i ściągnąć i zainstalować dwie paczki:
libaio-0.3.104-2.i386.tgz i libaio-devel-0.3.104-2.i386.tgz
Ja je ściągnełęm jako rpm'y i przerobiłem na tgz (za pomocą rpm2tgz) z tej strony
Następnie wykonujemy:
Kod: Zaznacz cały
/opt/oracle/bin/relink
[center]Testowanie bazy[/center]
Jako użytkownik oracle trzeba ustawić zmienne :
Kod: Zaznacz cały
export ORACLE_HOME=/opt/oracle
export ORACLE_SID=nazwa_bazy
export ORACLE_BASE=/opt/oracle
Kod: Zaznacz cały
sqlplus /nolog
conn / as sysdba
startup
Tworzymy plik /etc/rc.d/rc.dbora
o następującej treści:
Kod: Zaznacz cały
#!/bin/sh
#
# dbora This scripts starts and shuts down the
# oracle database
#
# chkconfig: 345 99 10
# description: This script calls the dbstart script
# to start Oracle
# and dbshut to stop it
# processname: oracle*
# config: /etc/oratab
#
# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORACLE_HOME.
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle
export ORACLE_SID=ROQDB
ORACLE_HOME=/opt/oracle
ORA_OWNER=oracle
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
su $ORA_OWNER -c $ORACLE_HOME/bin/dbstart &
su $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" &
;;
'stop')
su $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop " &
su $ORA_OWNER -c $ORACLE_HOME/bin/dbshut &
;;
'restart')
su $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop " &
su $ORA_OWNER -c $ORACLE_HOME/bin/dbshut &
sleep 15
su $ORA_OWNER -c $ORACLE_HOME/bin/dbstart &
su $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl start " &
;;
esac
Kod: Zaznacz cały
chmod 755 /etc/rc.d/rc.dbora
Kod: Zaznacz cały
# Start Oracle - roq
if [ -x /etc/rc.d/rc.dbora ]; then
. /etc/rc.d/rc.dbora start
fi
Kod: Zaznacz cały
# Shut down Oracle - roq
if [ -x /etc/rc.d/rc.dbora ]; then
. /etc/rc.d/rc.dbora stop
fi
Kod: Zaznacz cały
nazwa_bazy:/opt/oracle:N
Kod: Zaznacz cały
nazwa_bazy:/opt/oracle:Y