Установка Oracle Instant Client на Ubuntu
Конвертируем .rpm файлы в .deb пакеты и устанавливаем с помощью «alien».
Например, для версии 12.1.0.2.0-1 for Linux x86_64 (64-bit):
alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
Проверьте установку. Используйте «sqlplus» или «sqlplus64» для проверки соединения с БД:
Можно попасть на ошибку:
В этом случае читайте ниже про ORACLE_HOME.
Если sqlplus не может найти файл libsqlplus.so, то читайте ниже про Integrate Oracle Libraries
Если sqlplus не может найти файл libaio.so.1, выполните:
Или, если у вас 32-битный клиент:
sudo apt-get install libaio1:i386
Integrate Oracle Libraries
Если sqlplus не может найти библиотеки, вы можете добавить Oracle Libraries в переменную LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/usr/lib/oracle/ /client(64)/lib/$
Например, версия 12.1 для Linux x86_64:
Или добавьте в системные библиотеки:
sudo vi /etc/ld.so.conf.d/oracle.conf && sudo chmod o+r /etc/ld.so.conf.d/oracle.conf
И пропишите путь первой строкой, например:
ORACLE_HOME
Многие оракловые приложения ищут свой софт в переменной ‘ORACLE_HOME’.
sudo sudo vi /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh
export ORACLE_HOME=/usr/lib/oracle/ /client(64)
Или каждый пользователь может переопределить переменную в
Примечание: с ubuntu 11.04 (и 14.04) sqlplus не находится без строки в oracle.sh:
SDK fix
Некоторые сборки могут требовать ‘oci.h’ в $ORACLE_HOME/include, или в $ORACLE_HOME/rdbms/public
Instant client иногда размещает include файлы, такие как oci.h, в /usr/include/oracle/ /client.
Если там нет папки ‘include’ ниже ORACLE_HOME, и она расположена в /usr/include/oracle/ , создайте символическую ссылку:
sudo ln -s /usr/include/oracle/11.2/client $ORACLE_HOME/include
sudo ln -s /usr/include/oracle/12.1/client64 $ORACLE_HOME/include
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.
Установка Oracle Instant Client на Ubuntu
Данный кусок статьи был выдран из инета и размещён как есть. Перевод любительский. Работоспособность не гарантируется, но нашим админам он помог в настройке Oracle Instant Client на ubuntu. Сам не настраивал.
Install RPMs
Конвертируем .rpm файлы в .deb пакеты и устанавливаем с помощью «alien».
Например, для версии 12.1.0.2.0-1 for Linux x86_64 (64-bit):
Проверьте установку. Используйте «sqlplus» или «sqlplus64» для проверки соединения с БД:
Можно попасть на ошибку:
В этом случае читайте ниже про ORACLE_HOME.
Если sqlplus не может найти файл libsqlplus.so, то читайте ниже про Integrate Oracle Libraries
Если sqlplus не может найти файл libaio.so.1, выполните:
Или, если у вас 32-битный клиент:
Integrate Oracle Libraries
Если sqlplus не может найти библиотеки, вы можете добавить Oracle Libraries в переменную LD_LIBRARY_PATH:
Например, версия 12.1 для Linux x86_64:
Или добавьте в системные библиотеки:
И пропишите путь первой строкой, например:
ORACLE_HOME
Многие оракловые приложения ищут свой софт в переменной ‘ORACLE_HOME’.
Или каждый пользователь может переопределить переменную в
Примечание: с ubuntu 11.04 (и 14.04) sqlplus не находится без строки в oracle.sh:
SDK fix
Некоторые сборки могут требовать ‘oci.h’ в $ORACLE_HOME/include, или в $ORACLE_HOME/rdbms/public
Instant client иногда размещает include файлы, такие как oci.h, в /usr/include/oracle/ /client.
Если там нет папки ‘include’ ниже ORACLE_HOME, и она расположена в /usr/include/oracle/ , создайте символическую ссылку:
LinuxSoID
Интересные и полезные заметки связанные с ОС Linux
вторник, 3 февраля 2009 г.
Установка клиента ORACLE
Внимание!
На самом деле, если у вас Oracle установлен мо умолчанию, то переменную NLS_LANG лучше записать как вывод скрипта nls_lang.sh,
но часто NLS_LANG не соответствует стандартным региональным настройкам. Например у меня это AMERICAN_AMERICA.
Далее настраиваем алиасы:
sudo nano /etc/tnsnames.ora
Ставим редство управления «Tora»
Дело в том, что просто установить тору из репозитария — это мало. По умолчанию она не подключиться к ораклу, так как не будет в своем составе иметь нужного провайдера.
Ее нужно скомпилировать.
Если у вас указаны все необходимые переменные, о которых идет речь выше, то при сборке Make-файла все произойдет автоматом, руками ничего указывать не надо.
PERL
Для написаний скриптов на PERL — необходимо установить соответствующие модули: DBI и DBD.
с DBI проблем не возникнет, он ставиться из репозитария
Пара слов про установку Oracle на Ubuntu
Не так давно мне нужно было быстро поднять маленькую виртуалку под Linux, чтобы проверить переносимость одного модуля в своем приложении, написанного на Java и вызывающего Oracle SQL Loader через java.lang.Process API.
Поскольку, как известно, Oracle SQL Loader не входит в поставку Oracle Instant Client, то для такой задачи надо или копировать руками нужные библиотеки с машины, где установлен сервер, либо ставить на этой виртуалке полный сервер Oracle.
Установка Oracle Enterprise Edition под Ubuntu это задача не на 5 минут. Полная и точная (по словам автора — я сам пробовал многочисленные похожие инструкции, все равно полностью без ошибок поставить ни разу не удавалось) инструкция находится здесь — www.excession.org.uk/blog/installing-oracle-on-ubuntu-karmic-64-bit.html. Сравните, насколько это геморройнее и сложнее, чем установка того же Oracle EE под Windows — там запустил OUI (Oracle Universal Installer) и следуешь его указанием. Короче, отличный пример протекающей абстракции в Linux среде (хотя, казалось бы, user-friendly дистрибутив) в духе Джоэля Спольски.
Но для Express (XE) версии есть все же человеческое решение.
Оригинал по английки тут — www.varyonic.com/2010/01/installing-oracle-xe-on-ubuntu., и я наткнулся на него не сразу, наверное потому что сначала пытался поставить Enterprise Edition.
Мой вольный перевод на русский:
Oracle XE официально доступен только под x86 системы, хотя, возможно, его можно с помощью бубна, удачи и чьей-то матери поставить и на x64. Требует это чудо природы 512Мб памяти и 1Гб свопа.
Для установки на Ubuntu через apt-get добавьте в файл /etc/apt/sources.list следующую строчку:
deb oss.oracle.com/debian unstable main non-free
и потом запустите под рутом (т.е. sudo . он спросит пароль текущего юзера и исполнит команду под рутом):
wget oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add —
apt-get update
apt-get install oracle-xe
Библиотеки libaio и bc доступны в самом репозитории, и будут подтянуты автоматически по зависимостям, ставить их вручную больше не нужно.
Надеюсь, кому-то это будет полезно.
Ой, у вас баннер убежал!
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.
Похожие публикации
Oracle Data Integrator. SubstitutionAPI: Порядок выполнения подстановок. Часть 2
Docker. Best practices на примере образа Oracle xe 11g
Настройка двухсторонней синхронизации БД Oracle (Oracle Streams)
Заказы
AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Комментарии 11
>… unstable main non-free
Желаю вам удачи и всяческих удовольствий в проверке. Заодно видимо и проверите насколько unstable 🙂
А в установке SE/EE на бубунту ничего сложного нет, если конечно не считать сложным поставить чучуть пакетов из стандартных репов, скачнуть две сборки либы, да вписать немножко буковок в sysctl.
К сожалению оригинальную статью найти не могу, но для себя писал howto-ку, под катом. Для разных версий бубунты могут отличаться названия пакетов, но несложно понять какие именно нужны, поискав через aptitude search
Устанавливаем Oracle 10gR2 на Ubuntu-10.04
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
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
Активируем новые настройки командой
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 при необходимости автостарта
При установке оракл запоминает привязку 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 старой привязки исправило ситуацию.