1. Устанавливаем пакеты, требуемые для оракла
apt-get install unzip build-essential x11-utils rpm ksh lsb-rpm libaio1
apt-get install libc6 libc6-dev linux-libc-dev alien binutils libdb1-compat make gcc libgcc1 sysstat unixODBC unixODBC-dev pdksh elfutils libelf-dev
apt-get install libaio-dev libstdc++6
apt-get install libstdc++6-4.3-dev # libstdc++-dev
apt-get install gdc lib32c-dev libc6-i386 libc6-dev-i386
apt-get install ssh lsh-client
apt-get install rlwrap # для врапера sqlplus
apt-get install sysv-rc-conf # для настройки демона автозапуска прослушивателя
2. Качаем либы C++ версии 5, требуемые для оракла, доставляем их руками
wget mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
cd /usr/lib64/
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
cd
wget security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
sudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
cd /usr/lib32
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
2.1 Доставляем библиотеку (после того как мы руками создали линки на библиотеки)
apt-get install ia32-libs # ia64-libs
3. Создаем пользователя и группу
sudo su — addgroup oinstall
addgroup dba
addgroup nobody
useradd -s /bin/bash -g oinstall -G dba oracle -d /opt/oracle
passwd oracle
mkdir /opt/oracle
chown -R oracle:oinstall /opt/oracle
4. Создаем ссылки на ПО по образу рэд-хата
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
mkdir /etc/rc.d
for i in 0 1 2 3 4 5 6 S; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d; done
mkdir -p /opt/oracle/database
chown -R oracle:oinstall /opt/oracle/database
5. Правим параметры sysctl
В файле /etc/sysctl.conf (предварительно делаем бэкап файла)
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65535
vm.swappiness=5
В файле /etc/security/limits.conf (предварительно делаем бэкап файла)
oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535
Активируем новые настройки командой
sysctl -p
6. Запускаем инсталлер (предварительно логинимся пользователем oracle)
!!! Перед запуском обязательно устанавливаем переменные окружения:
export ORACLE_HOME=/opt/oracle/database
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32
cd db_linux64_install
./runInstaller -ignoreSysPrereqs
При ошибке: ins_emdb (error invoking target 'collector' ...) просто жмакаем «Continue»
7. Правим профайл юзера оракла (/opt/oracle/.bashrc) (или лучше системный профайл /etc/profile), добавляем
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=ndb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
export JAVA_HOME=/usr/lib/jvm/java-6-sun
8. Послеустановочные действия
DBCA на различные действия (создание БД например) может ругаться
ORA-27125: unable to create shared memory segment
решение такое:
cd $ORACLE_HOME/bin
mv oracle oracle.bin
vi oracle # и вносим строчки в него
#!/bin/bash
export DISABLE_HUGETLBFS=1
exec $ORACLE_HOME/bin/oracle.bin $@
chmod +r oracle
chmod +x oracle
9. Настраиваем автозапуск прослушивателя
su — cd /etc/init.d
vi listener # создаем демон запуска/остановки прослушивателя
— file begin — #!/bin/bash
#
# chkconfig: 345 51 49
# description: startup and shutdown the Oracle 10g listener
#
echo «Oracle 10g listener start/stop/restart/status»
ORA_OWNER=oracle
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=navdb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
case $1 in
start)
echo -n «Starting oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl start»
echo
;;
stop)
echo -n «Shutting down oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop»
echo
;;
status)
echo -n «Status of oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl status»
echo
;;
restart)
echo -n «Restarting oracle listener:»
$0 stop
$0 start
echo
;;
*)
echo «Usage: listener [ start | stop | restart | status ]»
exit 1
esac
exit 0
— file end — chmod 700 listener
sysv-rc-conf --level 2345 listener on # в некоторых версиях не работает так, приходится ручками править через sysv-rc-conf (она графическая в консоли)
10. Настраиваем автозапуск инстанса
создаем файл /etc/init.d/oracle, который будет читать настройки из файла /etc/oratab и запускать соответствующие инстансы
— file begin — #!/bin/bash
#
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and Web Interface
echo «Oracle 10g database start/stop/restart»
ORA_OWNER=oracle
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=navdb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
# if the executables do not exist — display error
if [! -f $ORACLE_HOME/bin/dbstart -o! -d $ORACLE_HOME ]
then
echo «Oracle startup: cannot start»
exit 1
fi
# depending on parameter — startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n «Starting Oracle: „
su $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl start»
su $ORA_OWNER -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
# su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo «OK»
;;
stop)
# Oracle listener and instance shutdown
echo -n «Shutdown Oracle: „
su $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop»
su $ORA_OWNER -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
# su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo «OK»
;;
restart)
$0 stop
$0 start
;;
*)
echo «Usage: `basename $0` start|stop|restart»
exit 1
esac
exit 0
— file end — chmod 700 oracle
sysv-rc-conf --level 2345 oracle on
Настраиваем нужные инстансы в /etc/oratab, заменяет :N на :Y при необходимости автостарта
11. Особенности:
При установке оракл запоминает привязку IP к имени компа в /etc/hosts. Был такой случай когда я поменял привязку
127.0.1.1 ubuntu-server-test
на
127.0.1.1 server-test
после этой замены экземпляры оракла перестали запускаться с ошибкой:
ubuntu ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
добавление в /etc/hosts старой привязки исправило ситуацию.
12. Все.
apt-get install unzip build-essential x11-utils rpm ksh lsb-rpm libaio1
apt-get install libc6 libc6-dev linux-libc-dev alien binutils libdb1-compat make gcc libgcc1 sysstat unixODBC unixODBC-dev pdksh elfutils libelf-dev
apt-get install libaio-dev libstdc++6
apt-get install libstdc++6-4.3-dev # libstdc++-dev
apt-get install gdc lib32c-dev libc6-i386 libc6-dev-i386
apt-get install ssh lsh-client
apt-get install rlwrap # для врапера sqlplus
apt-get install sysv-rc-conf # для настройки демона автозапуска прослушивателя
2. Качаем либы C++ версии 5, требуемые для оракла, доставляем их руками
wget mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
cd /usr/lib64/
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
cd
wget security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
sudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
cd /usr/lib32
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
2.1 Доставляем библиотеку (после того как мы руками создали линки на библиотеки)
apt-get install ia32-libs # ia64-libs
3. Создаем пользователя и группу
sudo su — addgroup oinstall
addgroup dba
addgroup nobody
useradd -s /bin/bash -g oinstall -G dba oracle -d /opt/oracle
passwd oracle
mkdir /opt/oracle
chown -R oracle:oinstall /opt/oracle
4. Создаем ссылки на ПО по образу рэд-хата
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
mkdir /etc/rc.d
for i in 0 1 2 3 4 5 6 S; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d; done
mkdir -p /opt/oracle/database
chown -R oracle:oinstall /opt/oracle/database
5. Правим параметры sysctl
В файле /etc/sysctl.conf (предварительно делаем бэкап файла)
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65535
vm.swappiness=5
В файле /etc/security/limits.conf (предварительно делаем бэкап файла)
oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535
Активируем новые настройки командой
sysctl -p
6. Запускаем инсталлер (предварительно логинимся пользователем oracle)
!!! Перед запуском обязательно устанавливаем переменные окружения:
export ORACLE_HOME=/opt/oracle/database
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32
cd db_linux64_install
./runInstaller -ignoreSysPrereqs
При ошибке: ins_emdb (error invoking target 'collector' ...) просто жмакаем «Continue»
7. Правим профайл юзера оракла (/opt/oracle/.bashrc) (или лучше системный профайл /etc/profile), добавляем
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=ndb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
export JAVA_HOME=/usr/lib/jvm/java-6-sun
8. Послеустановочные действия
DBCA на различные действия (создание БД например) может ругаться
ORA-27125: unable to create shared memory segment
решение такое:
cd $ORACLE_HOME/bin
mv oracle oracle.bin
vi oracle # и вносим строчки в него
#!/bin/bash
export DISABLE_HUGETLBFS=1
exec $ORACLE_HOME/bin/oracle.bin $@
chmod +r oracle
chmod +x oracle
9. Настраиваем автозапуск прослушивателя
su — cd /etc/init.d
vi listener # создаем демон запуска/остановки прослушивателя
— file begin — #!/bin/bash
#
# chkconfig: 345 51 49
# description: startup and shutdown the Oracle 10g listener
#
echo «Oracle 10g listener start/stop/restart/status»
ORA_OWNER=oracle
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=navdb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
case $1 in
start)
echo -n «Starting oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl start»
echo
;;
stop)
echo -n «Shutting down oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop»
echo
;;
status)
echo -n «Status of oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl status»
echo
;;
restart)
echo -n «Restarting oracle listener:»
$0 stop
$0 start
echo
;;
*)
echo «Usage: listener [ start | stop | restart | status ]»
exit 1
esac
exit 0
— file end — chmod 700 listener
sysv-rc-conf --level 2345 listener on # в некоторых версиях не работает так, приходится ручками править через sysv-rc-conf (она графическая в консоли)
10. Настраиваем автозапуск инстанса
создаем файл /etc/init.d/oracle, который будет читать настройки из файла /etc/oratab и запускать соответствующие инстансы
— file begin — #!/bin/bash
#
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and Web Interface
echo «Oracle 10g database start/stop/restart»
ORA_OWNER=oracle
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=navdb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
# if the executables do not exist — display error
if [! -f $ORACLE_HOME/bin/dbstart -o! -d $ORACLE_HOME ]
then
echo «Oracle startup: cannot start»
exit 1
fi
# depending on parameter — startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n «Starting Oracle: „
su $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl start»
su $ORA_OWNER -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
# su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo «OK»
;;
stop)
# Oracle listener and instance shutdown
echo -n «Shutdown Oracle: „
su $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop»
su $ORA_OWNER -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
# su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo «OK»
;;
restart)
$0 stop
$0 start
;;
*)
echo «Usage: `basename $0` start|stop|restart»
exit 1
esac
exit 0
— file end — chmod 700 oracle
sysv-rc-conf --level 2345 oracle on
Настраиваем нужные инстансы в /etc/oratab, заменяет :N на :Y при необходимости автостарта
11. Особенности:
При установке оракл запоминает привязку IP к имени компа в /etc/hosts. Был такой случай когда я поменял привязку
127.0.1.1 ubuntu-server-test
на
127.0.1.1 server-test
после этой замены экземпляры оракла перестали запускаться с ошибкой:
ubuntu ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
добавление в /etc/hosts старой привязки исправило ситуацию.
12. Все.
Комментариев нет:
Отправить комментарий