Установка Java, Oracle 11g на Debian/Ubuntu/Mint

Установка 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

8 thoughts on “Установка Java, Oracle 11g на Debian/Ubuntu/Mint

  1. Спасибо, отличная статья!
    Исправте описку:
    # sudo service procps start
    на
    # sudo service procps restart

  2. Добрый день!
    Спасибо за статью. Очень полезная. Оказалось не так то просто установить казалось бы отточенную до мелочей систему.
    Лично я никогда не работал с vim, поэтому очень долго не мог понять, как им пользоваться. Установил, а вот как дальше сохранять правки — пришлось разбираться долго.
    Думаю, многим бы помогло, если бы вы хотя бы кратко написали в статье, как сохранить файл. Сэкономит много времени менее подготовленным читателям.

  3. У меня все получилось, как описано в статье, но есть одна проблема, я не могу зайти через браузер в админскую панель, ошибка 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

  4. при вводе команды su — oracle. Система просит пароль? Это какой пароль, который я указывал при конфигурации бд?

    • У меня тоже на этом моменте произошёл затык.
      Подскажите какой пароль?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.