Установка Java, Oracle 11g на Debian/Ubuntu/Mint
Недавно я попытался установить Oracle 11g на 64-битной Ubuntu. Это оказалось не так просто, как можно было бы ожидать. Есть много блогов и статей на эту тему и я попробовал их все. Но мало что работало, я пробовал и пробовал найти решение и собрал все необходимое в статье «Установка Java, Oracle 11g на Debian/Ubuntu/Mint».
Установка Java
Т.к Oracle работает на java, то нужно нам ее установить. Начнем с установки Java на машине. Мое личное предпочтение использовать Oracle Java JDK. Установка этого JDK не сложная и не займет много вашего времени.
Добавим репозиторий java:
# sudo add-apt-repository ppa:webupd8team/java
Обновим систему:
# sudo apt-get update
Устанавливаем java-1.7:
# sudo apt-get install oracle-java7-installer
В ходе установки нажимаем «OK» и соглашаемся с лицензий нажав на «YES». После чего начнется установка. Можно проверить какую версию java мы используем:
# java -version
Следующий шаг — установить переменную окружения JAVA_HOME. Чтобы сделать это, откройте:
# sudo vim /etc/bash.bashrc
#листаем в самый низ файла и добавляем следующие строки кода export JAVA_HOME=/usr/lib/jvm/java-7-oracle export PATH=$JAVA_HOME/bin:$PATH
Сохраните файл и закройте редактор. Чтобы загрузить изменения, выполните следующую команду:
# source /etc/bash.bashrc
Проверяем работу:
# echo $JAVA_HOME
Результатом этого заявления должны быть следующие:
/usr/lib/jvm/java-7-oracle
Установка Oracle 11g
Для установки Oracle 11g R2 Express Edition (XE), нужно установить пару дополнительных пакетов. Эти пакеты могут быть установлены путем выполнения следующей команды:
# sudo apt-get install alien libaio1 unixodbc
Перейдем в папку:
# cd /usr/local/src
Нужно скачать oracle 11 с официального сайта (буду думать что уже скачали) затем нужно установить его.
Следующим шагом будет распаковка скачанного архива с оракл:
# unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Данный архив довольно большой и на распаковку потребуется некоторое время, ждем окончания и после чего переходим в нужную директорию для установки:
# cd Disk1
Теперь мы должны преобразовать пакет Red Hat (RPM) в пакет Debian. Это может быть сделано с помощью команды alien. Параметр «-d » используется для информирования, что пакет Debian уже сформирован. Выполняем преобразование:
# sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
Этот шаг может занять некоторое время, мне потребовалось подождать около минут 15 наверное, по этому если хотите жди окончания, а можно еще открыть один терминал для работы и в нем уже выполнять следующие шаги.
Пакет Red Hat, полагается на файл /sbin/chkconfig, который не используется в Ubuntu. Для успешной установки Oracle XE мы используем простой трюк.
# sudo vim /sbin/chkconfig
#!/bin/bash # Oracle 11gR2 XE installer chkconfig hack for Ubuntu file=/etc/init.d/oracle-xe if [[ ! `tail -n1 $file | grep INIT` ]]; then echo >> $file echo '### BEGIN INIT INFO' >> $file echo '# Provides: OracleXE' >> $file echo '# Required-Start: $remote_fs $syslog' >> $file echo '# Required-Stop: $remote_fs $syslog' >> $file echo '# Default-Start: 2 3 4 5' >> $file echo '# Default-Stop: 0 1 6' >> $file echo '# Short-Description: Oracle 11g Express Edition' >> $file echo '### END INIT INFO' >> $file fi update-rc.d oracle-xe defaults 80 01 #EOF
Сохраните файл и закройте редактор. Теперь мы должны предоставить файл с соответствующими привилегиями исполнения.
# sudo chmod 755 /sbin/chkconfig
Установим дополнительные параметры ядра. Откройте файл, выполнив:
# sudo vim /etc/sysctl.d/60-oracle.conf
Скопируйте и вставьте следующий код в файле. Kernel.shmmax является максимально возможное значение физической памяти в байтах. 536870912/1024/1024 = 512 Мб.
# Oracle 11g XE kernel parameters fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912
Сохраните файл. Изменения в этом файле могут быть проверены командой:
# sudo cat /etc/sysctl.d/60-oracle.conf
Загружаем параметры для ядра ОС:
# sudo service procps restart
Изменения могут быть вновь проверено командой:
# sudo sysctl -q fs.file-max
Должны увидеть следующий вывод на экран:
fs.file-max = 6815744
После этого, выполните следующие инструкции, чтобы сделать еще несколько необходимых изменений:
# sudo ln -s /usr/bin/awk /bin/awk # mkdir /var/lock/subsys # touch /var/lock/subsys/listener
Все сделал, но осталось установить уже пересобранный пакет (убедитесь в этом хорошо, а то не будет работать):
# sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
Возможно вы увидите следующее сообщение о ошибке «Execute the following to avoid getting a ORA-00845: MEMORY_TARGET error. Note: replace “size=4096m” with the size of your (virtual) machine’s RAM in MBs.«Исправляем это с легкостью.
Нужно удалить папку:
# sudo rm -rf /dev/shm
Создаем папку:
# sudo mkdir /dev/shm
Монтируем папку для работы:
# sudo mount -t tmpfs shmfs -o size=4096m /dev/shm
Создаем файл и пропишем параметры в него
# sudo vim /etc/rc2.d/S01shm_load
#!/bin/sh case "$1" in start) mkdir /var/lock/subsys 2>/dev/null touch /var/lock/subsys/listener rm /dev/shm 2>/dev/null mkdir /dev/shm 2>/dev/null mount -t tmpfs shmfs -o size=4096m /dev/shm ;; *) echo error exit 1 ;; esac
Сохраните файл, закройте редактор и предоставить соответствующие привилегии выполнения:
# sudo chmod 755 /etc/rc2.d/S01shm_load
После такого должно все заработать!
Настройка Oracle 11g
Если вы успешно установили на сервер Oracle 11g, пора настроить сервер. Чтобы начать конфигурацию сервера, выполните следующую команду и следовать «wizard» в терминале. Значения по умолчанию показаны в скобках для каждого вопроса.
# sudo /etc/init.d/oracle-xe configure
Теперь настало время для настройки некоторых параметров для переменных среды:
# sudo vim /etc/bash.bashrc
#В самый низ добавляем следующие строки [...] export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Сохраните файл и закройте редактор. Чтобы загрузить изменения, выполните следующую инструкцию:
# source /etc/bash.bashrc
Чтобы проверить изменения, которые вы можете выполните:
# echo $ORACLE_HOME
Должны увидеть следующее:
/u01/app/oracle/product/11.2.0/xe
После этого шага рекомендуется перезагрузить компьютер. После перезагрузки запускаем сервер с oracle:
# sudo service oracle-xe start
reconfigure Oracle
Нужно было мне переконфигурировать настройки oracle, долго мучался и не знал что и как сделать, но после долгого старания, все таки нашел решение. Сейчас я покажу как это сделать. Открываем файл и немного мы его видоизменим:
# vim /etc/default/oracle-xe
[...] #Ищем строчку CONFIGURE_RUN=true # заменяем на следующую CONFIGURE_RUN=false [..]
И после этого можно запустить уже переконфигурацию настроек сервера с ораклом:
# sudo /etc/init.d/oracle-xe configure
Бывает так, что не помогает и это, тогда просто удаляем файл с настройками и запускаем переконфигурирование:
# rm -rf /etc/default/oracle-xe # sudo /etc/init.d/oracle-xe configure
Должно работать! Проверено!
Удаление Oracle
Чтобы это сделать нужно выполнить:
# sudo dpkg --purge oracle-xe
или можно вот так:
# apt-get autoremove oracle-xe
Удаляем все файлы и папки с настройками:
# sudo rm -rf /u01/app/oracle/ # sudo rm -rf /etc/default/oracle-xe # sudo rm -rf /etc/init.d/oracle-xe
Вот такое простое удаление.
Работа с Oracle 11g
Чтобы можно было работать с sqlplus и другие программами, пользователь Oracle требует специфичных переменных окружения. Я ниже сделал описание, как сделать, чтобы эти переменные устанавливались автоматически при каждом входе в Oracle:
# su - oracle
Копируем все нужны для работы файлы пользователя и добавьте в .profile скрипт Oracle env:
# cp /etc/skel/.bash_logout ./ # cp /etc/skel/.bashrc ./ # cp /etc/skel/.profile ./ # echo "" >>./.profile # echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >>./.profile
Настройка удаленного доступа.
По дефолту, графический часть юзера Oracle Database XE доступна только на locahost. Но нужно я сейчас активирую удаленный доступ к графическому интерфейсу.
Чтобы это изменить нужно для начала войти как юзер Oracle, далее, войдем в систему управления БД как SYSDBA:
# su - oracle # sqlplus / as sysdba # SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); # exit
ВСЕ!
Не получается войти в админскую часть которая на сайте? Сейчас исправим это:
# su - oracle # cd $ORACLE_HOME/apex # sqlplus / as sysdba # @apxconf.sql
Вводим новый пароль и порт на котором размещен сервер oracle, после чего открываем браузер и переходим в админ часть, у меня это выглядит следующим образом:
http://178.62.54.68:8081/apex
http://178.62.54.68:8081/apex_admin
Создание нового пользователя в Oracle 11.
Подключаемся чтобы создать пользователя:
# su - oracle # sqlplus / as sysdba
Создаем пользователя «captain» с паролем «captain»:
# CREATE USER captain IDENTIFIED BY captain;
Даем только что созданному юзеру право на подключение к базе:
# GRANT CONNECT TO captain;
Даем так же права на использование ресурсов:
# GRANT RESOURCE TO captain;
Даем право на использование таблицы:
# GRANT ALL ON captain.tablename TO captain;
Создание новой базы данных (БД) в Oracle 11.
Подключаемся:
# su - oracle # sqlplus / as sysdba
или выполняем:
# connect
После чего вводим пользователя ( я например его создал немного выше, имя которого — captain) и пароль.
Создаем БД (создам 3 базы):
SQL> create database oracleitoutsourcer; SQL> create database oracleclients; SQL> create database oraclevnuk;
У меня возникла проблема, показало ошибку «ORA-01100: database already mounted«, решаем ее следующим образом:
SQL>shutdown immediate; SQL>startup nomount;
После чего можно уже создавать свои базы данных и использовать их. Если нужно подключится к серверу oracle с другого сервера (Unix\Linux), то это делается следующим образом:
# ssh -X oracle@server_or_ip_address
На этом завершаю я свою тему «Установка Java, Oracle 11g на Debian/Ubuntu/Mint» и благодарю за использование сайта http://linux-notes.org
Спасибо, отличная статья!
Исправте описку:
# sudo service procps start
на
# sudo service procps restart
Спасибо, исправил.
Добрый день!
Спасибо за статью. Очень полезная. Оказалось не так то просто установить казалось бы отточенную до мелочей систему.
Лично я никогда не работал с vim, поэтому очень долго не мог понять, как им пользоваться. Установил, а вот как дальше сохранять правки — пришлось разбираться долго.
Думаю, многим бы помогло, если бы вы хотя бы кратко написали в статье, как сохранить файл. Сэкономит много времени менее подготовленным читателям.
можно использовать nano
У меня все получилось, как описано в статье, но есть одна проблема, я не могу зайти через браузер в админскую панель, ошибка 404
Не получается войти в админскую часть которая на сайте? Сейчас исправим это:
# su - oracle
# cd $ORACLE_HOME/apex
# sqlplus / as sysdba
# @apxconf.sql
Вводим новый пароль и порт на котором размещен сервер oracle, после чего открываем браузер и переходим в админ часть, у меня это выглядит следующим образом:
http://178.62.54.68:8081/apex
http://178.62.54.68:8081/apex_admin
при вводе команды su — oracle. Система просит пароль? Это какой пароль, который я указывал при конфигурации бд?
У меня тоже на этом моменте произошёл затык.
Подскажите какой пароль?