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