Установка oracle database 11g на linux

ENG: Installing Oracle 11g Release 2 (11gR2) on Linux. Introduction. (Part 1).

Этот документ представляет собой пошаговую инструкцию с комментариями по установке Oracle Grid Infrastructure (ASM + Restart) + Oracle Database на Linux.

Установка описана на примере установки Oracle 11g Release 2 (11.2.0.3) x64 на Oracle Linux 6 (OL 6.2) x64 (на другие версии установка будет аналогичной).

Установка других релизов Oracle, например 11gR1, на Linux будет аналогичной. Установка Oracle на другие версии Linux, например на Red Hat Enterprise Linux Server 5 (5.5) будет аналогичной. Разница будет в: системных требования и списке необходимых пакетов. Эти детали можно уточнить в документации. Но общий ход установки будет одинаковым .

Установка 32-битной версии ОС и Oracle будет аналогичной.

Для промышленной системы я не рекомендую использовать 32-битную архитектуру вообще. На моей практике очень много случаев, когда людям кажется, что БД будет маленькой и не нагруженной, через пару лет они начинаю сталкиваться с проблемами ограниченности 32-битной архитектуры. Тем более что купить сейчас 4Гб памяти и более вообще не проблема. Поэтому на промышленную БД лучше сразу ставить 64-битное ПО.

Для установки используется виртуальная машина VMware ESXi 5.0.0, т.к. описать процесс установки на реальный сервер технически гораздо сложнее. Установка на реальный сервер ничем отличаться не будет, кроме конфигурирования дисковой подсистемы (настройка RAID и разбиения дисков).

Автор готов принять любые конструктивные замечания и предложения. Любое цитирование должно производиться с указанием на источник.

Т.к. объем информации очень большой я разбил всё на несколько статей.

Для установки есть официальная документация — Oracle® Grid Infrastructure Installation Guide 11g Release 2 (11.2) for Linux + Oracle® Database Installation Guide 11g Release 2 (11.2) for Linux (и есть укороченный вариант только СУБД без GRID — Oracle® Database Quick Installation Guide 11g Release 2 (11.2) for Linux x86-64). В документации описан процесс установки на все случаи жизни. Поэтому теоретической информации так много, что можно запутаться.

Перед установкой полезно ознакомиться с некоторыми статьями MOS, т.к. в них содержится много полезной информации, которой нет в документации. Вот статья, откуда можно начать (корень) — RAC and Oracle Clusterware Best Practices and Starter Kit (Platform Independent) (Doc ID 810394.1). В этой статье приводятся ссылки на другие документы и описаны платформо-НЕзависимые примечания. Следующая статья — RAC and Oracle Clusterware Best Practices and Starter Kit (Linux) (Doc ID 811306.1). В этой статье приводятся ссылки на другие документы и описаны платформо-зависимые примечания и самое главное дана ссылка на pdf-документ — RACGuides_Rac11gR2OnLinux.pdf. Это очень полезный документ, т.к. описана практическая установка. Правда там описана установка RAC, но для понимания установки Grid Infrastructure статья очень подходит.

Ещё полезные статьи:

При первоначальном конфигурировании сервера всегда возникает множество вопросов касающихся конфигурирования дисковой подсистемы (она же система ввода/вывода). Какой уровень RAID выбрать? Как разбить диск на разделы? и т.п. За всю мою практическую деятельность у меня сложилось такое мнение — Нет точных и идеальных рекомендаций по конфигурированию дисковой подсистемы. То, что хорошо для одной железки для другой совершенно не подходит. Поэтому каждый раз приходиться экспериментировать, полагаясь на свою интуицию. Идеальные параметры для конкретного сервера можно подобрать, пожалуй, только серией полномасштабных нагрузочных тестирований. Т.е. устанавливаете сочетание параметров — прогоняете тест, меняете параметр — опять прогоняете тест. Строите графики. Так можно понять, как влияет на производительность какой-то параметр. Потом всё то же самое проделываете для другого параметра. Потом их сочетание. Но на практике так обычно не делается, т.к. это займёт очень много времени, т.к. сочетаний различных параметров может быть бесконечно много.

Ко всему прочему у всех свои цели для использования серверов. Одно дело файловый сервер, другое сервер СУБД, настройки дисковой подсистемы у них будут разные.

Впрочем, есть несколько рекомендаций общего характера:

1) На промышленном сервере обязательно должна обеспечиваться избыточность (redundant) в том числе и дисковых устройств. В этом случае если одно устройство выходит из строя, другое продолжает работать. Так обеспечивается доступность (availability) системы. Избыточности для дисковой подсистемы можно достигнуть разными способами. Можно использовать RA >аппаратный RAID (не буду вдаваться в подробности).

2) Есть мнение, что самый оптимальный stripe-size — это предложенный производителем по-умолчанию ( default stripe-size ). Его лучше и использовать. Если вы хотите выжать максимум из RAID — проводите нагрузочное тестирование с другими значениями stripe-size.

3) Есть мнение, что для серверов СУБД лучше не использовать RA >RAID 10 .

4) Если на RAID контроллере есть батарейкавключите Write Cache в настройках RAID. Имеет смысл включить и другие механизмы акселерации.

(Картинки даны для примера)

5) На сервере Oracle я предпочитаю выделять отдельные разделы для / (root), tmp, swap, db files, redo logs, FRA .

При этом
/ (root), tmp, swap — я располагаю на файловой системе ОС
db files, redo logs — на ASM
FRA — может быть как на файловой системе ОС так и на ASM.

Ещё иногда выделяют /home, но я этого не делаю.

tmp — выделяется, чтобы не порождать лишней дефрагментации.

swap — выделяется для оптимизации вводавывода в swap. Луше разместить этот раздел на самом быстром дисковом устройстве, например flash disk.

FRA — Основная рекомендация — размещать на ASM db_files и FRA. Но если есть ПО для резервного копирования, которому нужно средствами ОС копировать файлы из FRA, тогда FRA можно разместить на файловой системе ОС.

Читайте также:  Сбросить ip адрес через командную строку

redo logs — Желательно чтобы это были отдельные разделы на самых быстрых устройствах. Поэтому эти устройства можно еще оптимизировать для записи (write). Т.к. как обычно в одна группа журналов состоит из нескольких членов, которые мультиплицируются на разные устройства — то и устройств лучше делать несколько и разносить на них файлы журналов. На эти же устройства можно мультиплицировать контрольные файлы.

В ОС Windows для папки TEMP (TMP) и файла подкачки pagefile.sys также можно создать отдельные разделы.

6) Для некоторых RAID контроллеров, для каждого логического раздела или каждого RAID массива, в настройках можно задать своё соотношение READ/WRITE для кэша. По умолчанию оно обычно равно 75/25. Для разделов под redo logs и FRA имеет смысл устанавливать значения с большим смещением к WRITE (например, 95/5 или 100/0), т.к. на эти разделы в основном идёт запись. Для остальных разделов можно оставить значения по умолчанию.

— Не использовать менеджер логических томов (Logical Volume Manager- LVM) в ОС.

-RAID stripe size должен быть степень двойки и меньше или равен ASM allocation unit (AU).
©Bobrovsky Dmitry
— Использовать ASMLIB.
©Bobrovsky Dmitry
— Чем больше дисков в дисковой группе ASM тем больше распределение данных и больше полоса пропускания. (Не уверен, что если сделать несколько логическом разделов RAID как отдельные диски и собрать на них дисковую группу ASM — это сильно увеличит полосу пропускания. Может быть, если только RAID контроллер имеет несколько каналов и сделать логические разделы на разных каналах? Для этого нужно хорошо понимать, что собой представляет ваш RAID и правильно его сконфигурировать).
Dmitry Bobrovsky
Пока хватит…

Персональный сайт

В данной статье мы рассмотрим вопрос установки и настройки Oracle Database Enterprise Edition 11gR2 на Oracle Linux 6.X (основана на RedHat, лицензия GNU GPL — бесплатна для коммерческого использования). Если поставить этот процесс «на поток», то по скорости установки и настройки он не будет уступать Windows.. и даже быстрее получится 🙂 Описание установки показано на примере Oracle Linux 6.Х, но точно также это можно установить на CentOS 6.Х и RHEL 6.Х. Небольшое отличие вы найдете по ходу текста.

*запись дополнена 21.03.2016

Из нюансов: придется использовать X-сервер (графику), т.к. установка и настройка Oracle Database через responseFile не очень удобна.

Пометки: символ # перед командой, значит что ее нужно запускать от имени root. Если символа нет, то от имени пользователя oracle. Это важно.

1) Устанавливаем Oracle Linux 6.Х

Тут все довольно просто, я думаю достаточно обойтись общими советами…

а) Разметка диска. Если это у нас виртуальный сервер, то можно все устанавливать в один раздел («Use All Space»). Если же полноценный боевой сервер, то рекомендую делать следующее («Create Custom Layout»): разбить диск на 2 логических (200 гб для системы, остальное для oracle и его баз). Сам Oracle и базы будут установлены в папку /home/oracle. Соответственно, папка home — это будет смонтированный второй логический раздел диска (это как аналог диска D в Windows). Все это можно сделать в графике. У меня, на тестовой машине, это выглядит так:

Если данные в базах на вашем сервере будут строго конфиденциальны, то здесь же можно установить «шифрование на лету» для папки home. Оно будет потреблять минимум ресурсов, т.к. реализовано на уровне ядра Linux.

б) Ставим галочки возле «Desktop», а внизу «Oracle Linux Server», «UEK3 kernel repo». Далее и.. устанавливаем.

в) Настраиваем сеть через конфиги. Опишем этот процесс (думаю тут все понятно, комментарии не нужны):

Устанавливаем свои параметры. UUID и HWADDR — лучше оставить родные:

Прописываем свой IP в hosts:

Включение и выключение сетевого интерфейса:

Удаляем NetworkManager. Он будет только мешать на сервере:

2) Обновляем систему.

Обновление системы выполняется одной командой:

Далее, подключаем Oracle public репозиторий:

В CentOS и RHEL дополнительно надо подключить gpg-ключ:

3) Открываем порты в firewall.

Порты открываются для работы Oracle DB и VNC.

Туда вставить (порт 1521 – для Oracle, остальные для VNC):

4) Подготовка к установке Oracle.

А тут самый красивый «финт ушами» 🙂 В Oracle Linux предусмотрена одна единственная команда для подготовки системы к установке Oracle Database. Она разрешает все зависимости в системе, устанавливает все необходимые пакеты, модифицирует параметры ядра ОС, создает пользователя oracle и дает ему все необходимые права, также создает группы dba и oinstal. Иными словами — выполняется куча подготовительной работы. Итак…

Зададим пароль пользователю oracle:

Дадим права sudo для пользователя oracle, чтобы в дальнейшем работать только с ним (запуск команд для управления БД без ввода пароля):

Проведем ряд манипуляций с этим конфигом (ориентируйтесь на закомментированные строки):

После возвращаем все на место:

Все! Теперь пользователь oracle может работать с админскими правами через sudo.

5) Настройка Screensaver и удаленного доступа по VNC.

Логинимся в графическом режиме под пользователем oracle.

а) Первым делом отключаем автоматическую блокировку экрана. Заходим System >>> Preferences >>> Screensaver. Там все будет очевидно.

б) Далее, включаем удаленный доступ по VNC. Заходим System >>> Preferences >>> Remote Desktop. Устанавливаем все галочки, как указано на скриншоте (пароль доступа по VNC должен совпадать с паролем пользователя oracle):

в) Чтобы по VNC можно было подключится после перезагрузки системы, необходимо настроить авто-логин для пользователя oracle. Делается это так, в конфиг:

А потом перезагружаемся:

г) Чтобы gnome-keyring не блокировался после перезагрузки системы и мы могли спокойно подключится без подтверждения со стороны сервера, необходимо сделать следующее… Идем в Applications >>> Accessories >>> Passwords and Encryption Keys. Правый клик на Passwords, потом Unlock (вводим пароль). Потом правой кнопкой – Change password (см. второй скриншот). Вводим старый пароль, остальное оставляем пустым. Потом на вопрос отвечаем “Use Unsafe Storage”.

Читайте также:  К энергонезависимым устройством памяти относятся

Все! Теперь мы можем когда угодно подключается удаленно к нашему рабочему столу (по паролю) причем несколькими пользователями одновременно, не выбивая при этом друг друга.

д) Чуть настроим файловый менеджер nautilus, чтобы пользоваться им стало приятнее:

После данных манипуляций, выглядеть он будет так:

6) Устанавливаем Oracle DB.

Устанавливать будем в графическом режиме. Конечно, есть возможность установки с консоли используя -responseFile, но это бессмысленно… т.к. администрировать базы всеравно придется из графики. Сначала необходимо закачать дистрибутив. Используйте для этого что вам удобно, к примеру filezilla c sftp с логином и паролем oracle в папку /home/oracle/odb.

Даем права на папку установщика:

Потом, зайдя на сервер в графическом режиме под учеткой oracle, запускаем установку командами:

Для теста, мы рассмотрим вариант установки всего «по дефолту» с созданием тестовой базы “orcl”, обратите внимание на настройки:

Перед завершением установки, от имени root в консоли нужно выполнить два скрипта. Не забудьте!

Даем права на папку установленного Oracle:

7) Прописываем переменные

Чтобы заработала команда sqlplus в консоли, необходимо прописать глобальные переменные (под пользователем oracle):

8) Работа с СУБД, пример создания базы и работы с ней

Итак, попробуем создать базу и поработать с ней. Для этого, подключаемся к нашему серверу по VNC, потом заходим сюда: /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin. Тут вы увидите все привычные утилиты для работы с Oracle Database. Например dbca (database configuration assistant) или netca (network configuration assistant). Далее, все как обычно.

Если нам нужен будет на инстанции веб-интерфейс Enterprise Manager, то необходимо поставить галочку:

Запомните адрес веб-интерфейса, порт и SID базы:

После установки инстанции, чтобы ее активировать, необходимо поправить конфиг:

Команды для запуска сервисов (от пользователя oracle):

а) Управление listener:

б) Запуск и остановка database:

Успешность запуска баз можно проверить по логам тут: /home/oracle/app/oracle/product/11.2.0/dbhome_1/startup.log

в) Запуск dbconsole (веб-интерфейс, Enterprise Manager)…

Запускается по очереди, для каждой базы по отдельности. Сначала указываем ORACLE_SID — потом запускаем dbconsole. Для каждой базы будет свой веб-интерфейс на своем порту. Откройте нужный порт в п.3 для нового веб-интерфейса. Но учтите! Enterprise Manager — может быть и удобный инструмент, но он — монстр! Очень сильно нагружает сервер и увеличивает общий объем базы.

Проверка статуса и остановка службы:

А так он выглядит в браузере:

Запуск и остановка баз

Команды dbstart/dbshut запускают/останавливают все базы, которые обозначены в файле /etc/oratab символом Y в конце. Если будет символ N — то они их игнорируют. Если dbstart использовать дважды — уже запущенные базы будут перезапущены (соответственно — остановлены и запущены). Т.е. если мы хотим запустить/остановить только несколько баз или какую-то одну, то сначала ее нужно обозначить в файле /etc/oratab. Также, у нас полноценно работает sqlplus и мы можем остановить базу оттуда.

Т.е. например вводим команду:

Все, база корректно остановлена.

9) Автозапуск при старте системы (скрипт демона init)

Итак… сделаем автозапуск Oracle при старте, и запакуем его в сервис. Сначала нужно создать скрипты запуска и остановки, скрипты будут лежать в директории /home/oracle/scripts

Создаем скрипт запуска:

Создаем скрипт остановки:

Делаем эти скрипты исполняемыми:

И создаем скрипт автозапуска init:

Права на скрипт:

Добавляем службу в систему:

Все! Служба готова. Теперь работает автозапуск и стандартные команды запуски/остановки службы спод root:

Или спод oracle:

Выводы

Сравнивания с Windows, мы имеем полноценную альтернативную ОС для серверов БД. Только вместо RDP у нас VNC, вместо cmd у нас bash. Можно спокойно подключится по VNC и управлять сервером как будет угодно, включая запуск терминала под графикой… а можно подключится под putty по SSH и работать только в командной строке. Залить/скачать файлы? Да запросто, по защищенному протоколу sFTP через FileZilla, Total Commander или WinSCP — как душе угодно, никакие права и расшаривания папок не нужны.

Очевидным недостатком является, пожалуй, не совсем красивый процесс остановки/запуска баз (не так как в Windows, через остановку и запуск служб – по отдельности для каждой БД). Поэтому данная конструкция больше подходит для работы в виртуальной среде, по 1-2 базы на одной ВМ… нежели на одном большом сервере БД. Можно, конечно, и один большой сервер соорудить – но тогда все придется разруливать через sqlplus.

Установка и настройка Oracle Database 11g на Oracle Linux 6.X : 3 комментария

Статья очень полезная! Спасибо! Очень помогла!
Только, почему-то после удаления NetworkManager у меня сеть отвалилась, но это фигня …
Восстановил.

Кто додумался на черном фоне серые буквы?
Весь мозг сломал вчитываясь и не все прочел.
Многие и вчитываться не станут, сразу уйдут.
Смените цвета

Так никто же и не заставляет читать, не читайте.

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

Для отправки комментария вам необходимо авторизоваться.

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

Недавно я попытался установить Oracle 11g на 64-битной Ubuntu. Это оказалось не так просто, как можно было бы ожидать. Есть много блогов и статей на эту тему и я попробовал их все. Но мало что работало, я пробовал и пробовал найти решение и собрал все необходимое в статье «Установка Java, Oracle 11g на Debian/Ubuntu/Mint».

Установка Java

Т.к Oracle работает на java, то нужно нам ее установить. Начнем с установки Java на машине. Мое личное предпочтение использовать Oracle Java JDK. Установка этого JDK не сложная и не займет много вашего времени.

Читайте также:  Dsi что это такое

Добавим репозиторий java:

В ходе установки нажимаем «OK» и соглашаемся с лицензий нажав на «YES». После чего начнется установка. Можно проверить какую версию java мы используем:

Следующий шаг — установить переменную окружения JAVA_HOME. Чтобы сделать это, откройте:

Сохраните файл и закройте редактор. Чтобы загрузить изменения, выполните следующую команду:

Результатом этого заявления должны быть следующие:
/usr/lib/jvm/java-7-oracle

Установка Oracle 11g

Для установки Oracle 11g R2 Express Edition (XE), нужно установить пару дополнительных пакетов. Эти пакеты могут быть установлены путем выполнения следующей команды:

Перейдем в папку:

Нужно скачать oracle 11 с официального сайта (буду думать что уже скачали) затем нужно установить его.
Следующим шагом будет распаковка скачанного архива с оракл:

Данный архив довольно большой и на распаковку потребуется некоторое время, ждем окончания и после чего переходим в нужную директорию для установки:

Теперь мы должны преобразовать пакет Red Hat (RPM) в пакет Debian. Это может быть сделано с помощью команды alien. Параметр «-d » используется для информирования, что пакет Debian уже сформирован. Выполняем преобразование:

Этот шаг может занять некоторое время, мне потребовалось подождать около минут 15 наверное, по этому если хотите жди окончания, а можно еще открыть один терминал для работы и в нем уже выполнять следующие шаги.

Пакет Red Hat, полагается на файл /sbin/chkconfig, который не используется в Ubuntu. Для успешной установки Oracle XE мы используем простой трюк.

Сохраните файл и закройте редактор. Теперь мы должны предоставить файл с соответствующими привилегиями исполнения.

Установим дополнительные параметры ядра. Откройте файл, выполнив:

Скопируйте и вставьте следующий код в файле. Kernel.shmmax является максимально возможное значение физической памяти в байтах. 536870912/1024/1024 = 512 Мб.

Сохраните файл. Изменения в этом файле могут быть проверены командой:

Загружаем параметры для ядра ОС:

Изменения могут быть вновь проверено командой:

Должны увидеть следующий вывод на экран:

После этого, выполните следующие инструкции, чтобы сделать еще несколько необходимых изменений:

Все сделал, но осталось установить уже пересобранный пакет (убедитесь в этом хорошо, а то не будет работать):

Возможно вы увидите следующее сообщение о ошибке « Execute the following to avo >«Исправляем это с легкостью.

Нужно удалить папку:

Монтируем папку для работы:

Создаем файл и пропишем параметры в него

Сохраните файл, закройте редактор и предоставить соответствующие привилегии выполнения:

После такого должно все заработать!

Настройка Oracle 11g

Если вы успешно установили на сервер Oracle 11g, пора настроить сервер. Чтобы начать конфигурацию сервера, выполните следующую команду и следовать «wizard» в терминале. Значения по умолчанию показаны в скобках для каждого вопроса.

Теперь настало время для настройки некоторых параметров для переменных среды:

Сохраните файл и закройте редактор. Чтобы загрузить изменения, выполните следующую инструкцию:

Чтобы проверить изменения, которые вы можете выполните:

Должны увидеть следующее:
/u01/app/oracle/product/11.2.0/xe

После этого шага рекомендуется перезагрузить компьютер. После перезагрузки запускаем сервер с oracle:

reconfigure Oracle

Нужно было мне переконфигурировать настройки oracle, долго мучался и не знал что и как сделать, но после долгого старания, все таки нашел решение. Сейчас я покажу как это сделать. Открываем файл и немного мы его видоизменим:

И после этого можно запустить уже переконфигурацию настроек сервера с ораклом:

Бывает так, что не помогает и это, тогда просто удаляем файл с настройками и запускаем переконфигурирование:

Должно работать! Проверено!

Удаление Oracle

Чтобы это сделать нужно выполнить:

или можно вот так:

Удаляем все файлы и папки с настройками:

Вот такое простое удаление.

Работа с Oracle 11g

Чтобы можно было работать с sqlplus и другие программами, пользователь Oracle требует специфичных переменных окружения. Я ниже сделал описание, как сделать, чтобы эти переменные устанавливались автоматически при каждом входе в Oracle:

Копируем все нужны для работы файлы пользователя и добавьте в .profile скрипт Oracle env:

Настройка удаленного доступа.

По дефолту, графический часть юзера Oracle Database XE доступна только на locahost. Но нужно я сейчас активирую удаленный доступ к графическому интерфейсу.

Чтобы это изменить нужно для начала войти как юзер Oracle, далее, войдем в систему управления БД как SYSDBA:

Не получается войти в админскую часть которая на сайте? Сейчас исправим это:

Вводим новый пароль и порт на котором размещен сервер oracle, после чего открываем браузер и переходим в админ часть, у меня это выглядит следующим образом:
http://178.62.54.68:8081/apex
http://178.62.54.68:8081/apex_admin

Создание нового пользователя в Oracle 11.

Подключаемся чтобы создать пользователя:

Создаем пользователя «captain» с паролем «captain»:

Даем только что созданному юзеру право на подключение к базе:

Даем так же права на использование ресурсов:

Даем право на использование таблицы:

Создание новой базы данных (БД) в Oracle 11.

После чего вводим пользователя ( я например его создал немного выше, имя которого — captain) и пароль.

Создаем БД (создам 3 базы):

У меня возникла проблема, показало ошибку « ORA-01100: database already mounted «, решаем ее следующим образом:

После чего можно уже создавать свои базы данных и использовать их. Если нужно подключится к серверу oracle с другого сервера (UnixLinux), то это делается следующим образом:

На этом завершаю я свою тему «Установка Java, Oracle 11g на Debian/Ubuntu/Mint» и благодарю за использование сайта http://linux-notes.org

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

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