Как установить Oracle 11gR2 на Ubuntu 14.04?

Ответы:

72

Шаг 1: Загрузите Oracle Database Express Edition.

Шаг 2: Инструкции перед установкой Oracle

  1. Скопируйте загруженный файл и вставьте его в домашний каталог.

  2. Разархивируйте с помощью команды:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. Установите необходимые пакеты с помощью команды:

    sudo apt-get install alien libaio1 unixodbc
    
  4. Войдите в папку Disk1 с помощью команды:

    cd Disk1/
    
  5. Преобразуйте формат пакета RPM в формат пакета DEB (который используется Ubuntu) с помощью команды:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. Создайте необходимый сценарий chkconfig с помощью команды:

    sudo pico /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
    
  7. Измените разрешение файла chkconfig с помощью команды:

    sudo chmod 755 /sbin/chkconfig  
    
  8. Установите параметры ядра. Oracle 11gR2 XE требует дополнительных параметров ядра, которые необходимо установить с помощью команды:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. Скопируйте в файл следующее и сохраните:

    # 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 
    
  10. Проверьте изменения, используя команду:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. Вы должны увидеть, что вы ввели ранее. Теперь загрузите параметры ядра:

    sudo service procps start
    
  12. Убедитесь, что новые параметры загружены с помощью:

    sudo sysctl -q fs.file-max
    

    Вы должны увидеть значение file-max, которое вы ввели ранее.

  13. Настройте точку монтирования / dev / shm для Oracle. Создайте следующий файл с помощью команды:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. Скопируйте следующее в файл и сохраните.

    #!/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
    *)
        echo error
        exit 1
        ;;
    
    esac 
    
  15. Измените права доступа к файлу с помощью команды:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. Теперь выполните следующие команды:

    sudo ln -s /usr/bin/awk /bin/awk 
    sudo mkdir /var/lock/subsys 
    sudo touch /var/lock/subsys/listener
    

    Теперь перезагрузите вашу систему

Шаг 3: Установите Oracle

  1. Установите СУБД oracle с помощью команды:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. Настройте Oracle с помощью команды:

    sudo /etc/init.d/oracle-xe configure 
    
  3. Настройте переменные среды, отредактировав файл .bashrc:

    pico ~/.bashrc
    
  4. Добавьте следующие строки в конец файла:

    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
    
  5. Загрузите изменения, выполнив свой профиль:

    . ~/.bashrc
    
  6. Запустите Oracle 11gR2 XE:

    sudo service oracle-xe start
    
  7. Добавьте пользователя YOURUSERNAME в группу dba, используя команду:

    sudo usermod -a -G dba YOURUSERNAME
    

Шаг 4: Использование командной оболочки Oracle XE

  1. Запустите сервер Oracle XE 11gR2 с помощью команды:

    sudo service oracle-xe start
    
  2. Запустите командную строку как системный администратор с помощью команды:

    sqlplus sys as sysdba
    

    Введите пароль, который вы указали при настройке Oracle ранее. Теперь вы окажетесь в среде SQL, которая понимает только команды SQL.

  3. Создайте учетную запись обычного пользователя в Oracle с помощью команды SQL:

    create user USERNAME identified by PASSWORD;
    

    Замените ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ на имя пользователя и пароль по вашему выбору. Пожалуйста, запомните это имя пользователя и пароль. Если при выполнении вышеприведенного сообщения произошла ошибка с сообщением о сбросе журналов, выполните следующую команду SQL и повторите попытку:

    alter database open resetlogs;
    
  4. Предоставьте привилегии учетной записи пользователя с помощью команды SQL:

    grant connect, resource to USERNAME;
    

    Замените ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ на имя пользователя и пароль по вашему выбору. Пожалуйста, запомните это имя пользователя и пароль.

  5. Выйдите из оболочки sys admin с помощью команды SQL:

    exit;
    
  6. Запустите оболочку командной строки как обычный пользователь с помощью команды:

    sqlplus
    

    Теперь вы можете запускать команды sql ...

Сайкат Кунду
источник
На шаге 6 я получаюStarting Oracle Net Listener...touch: cannot touch '/var/lock/subsys/listener': No such file or directory Done Configuring database... Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details
Skynet
2
@Skynet. Я получил ту же ошибку. Хотя я не могу понять эти команды , я попытался настроить oracle XE или linux mint.
Джит
@Skynet. А также попробовал эту ссылку . Поиск контента Ссылка в комментарии после раскрытия: чтобы заставить его работать, мне нужно было добавить следующие строки в начало файла "/etc/init.d/oracle-xe"... между шагами 6 (i) и 6 (ii) если [-L / dev / shm]; тогда rm -rf / dev / shm mkdir / dev / shm mount -t tmpfs shmfs -o размер = 2048m / dev / shm fi, если [! -d / var / lock / subsys]; затем mkdir / var / lock / subsys touch / var / lock / subsys / listener fi
Jeet
1
/etc/rc2.d/S01shm_loadкажется пропущенным, ;;указывая на конец альтернативы в строке 7.
user3523935
2
Пришлось использовать sudo service procps restartвместоsudo service procps start
ossbuntu
0

Спасибо за подробный урок, но я получаю ошибку

touch: cannot touch '/var/lock/subsys/listener' .. 

в шаге sudo /etc/init.d/oracle-xe configure. Так как предложено на http://meandmyubuntulinux.blogspot.in/2012/05/install-oracle-11g-r2-express.html, я добавил следующие строки в/etc/init.d/oracle-xe

if [ -L /dev/shm ]; then
    rm -rf /dev/shm
    mkdir /dev/shm
    mount -t tmpfs shmfs -o size=2048m /dev/shm
fi

if [ ! -d /var/lock/subsys ]; then
 mkdir /var/lock/subsys
 touch /var/lock/subsys/listener
fi

... и это работает нормально для меня

drichirich
источник
Вы получаете ошибку, потому что /etc/rc2.d/S01shm_loadв ответе Сайката есть ошибка в сценарии . Исправление это было бы более чистым решением. Я отредактирую ответ с правильным сценарием.
Фураж
Забудьте об этом, рецензенты - идиоты. После того, как первая и вторая попытки исправить сценарий потерпели неудачу, я сдаюсь. По-видимому, важнее бездумно голосовать, чтобы набрать очки, чем реально пытаться понять, что делается.
Фураж
0

Это работало нормально, однако я получил следующую ошибку:

sudo /etc/init.d/oracle-xe start
[....] Starting oracle-xe (via systemctl): oracle-xe.serviceJob for oracle-xe.service failed because the control process exited with error code. See "systemctl status oracle-xe.service" and "journalctl -xe" for details.
 failed!

Глядя на это:

systemctl status oracle-xe.service
Jan 27 10:01:05 <myusername> su[29699]: No passwd entry for user 'oracle'

Я решил это, просто добавив пользователя:

sudo adduser oracle

Надеюсь, это кому-нибудь поможет.

user2750563
источник