Как стать автором
Обновить

Установка Oracle 10g XE в Windows 7 x64

Данная статья написана отнюдь не специалистом по базам данных Oracle и не специалистом по Microsoft Windows, поэтому глубоких изысканий и теории не будет. Также, решение описанное в этой статье может быть в чём-то не верным. А по сути оно — шаманство. Но я смог успешно установить Oracle 10g XE на Windows 7 x64.

Цель этой статьи — помочь тем, кто столкнулся с установкой Oracle 10g Express (XE) на Windows 7 x64 и не может понять, почему у него не получается установить. Проблема заключается в том, что вроде бы база устанавливается — инсталлятор не выдаёт никаких ошибок, сервисы создаются и запускаются, но файлы базы не инициализируется, и, естественно, после установки сервер БД просто не работает. Гугл и другие поисковики выдают несколько ссылок по этой проблеме, но ни одного полноценного решения я не нашёл, поэтому пришлось самому докапываться до истины.

В статье я приведу несколько действий или правил, которые помогли мне справиться с проблемной установкой. Не могу сказать, всё ли верно и применимо, однако, эти действия позволили мне установить сервер базы данных Oracle 10g XE и клиент Oracle 10g XE Client на несколько машин с Windows 7 x64. Думаю, эти же действия помогут и при установке на Windows Server 2008.

Предисловие

Зачем это всё понадобилось? От субподрядчика, разработавшего программный комплекс, который мы поддерживаем, осталась зависимость от базы данных Oracle. С субподрядчиком мы уже давно благополучно разошлись, но зависимость осталась, после чего мы дописали несколько важных подсистем, которые тоже требуют наличия этой СУБД. Клиентам наиболее полезна именно Express (XE) версия — она бесплатна и вполне устраивает их даже со своими ограничениями. А Express версия существует только версии 10g.

Клиенты уже думают о переходе на Windows 7 (или для серверов Windows Server 2008), а некоторые уже перешли, так что придётся выкручиваться.

Общие шаги

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

Первое. Oracle 10g XE отказывается устанавливаться под доменным пользователем, даже если он состоит в группе Администраторы. При этом если запускать установку, запуская инсталлятор от имени локального администратора, то опять таки база будет установлена криво. Чем это обусловлено — абсолютно не ясно. Решение таково — зайти в систему под локальным администратором и выполнять установку от его имени. Такое решение пришло после того, как на одинаковых операционных системах на одной СУБД не установилась. Разница была в том, что одна из машин была в домене, а другая — нет. Если кто знает почему так просходит — прошу просветить.

Второе. Oracle Database требует ряд системных переменных среды при работе у установке, но инсталлятор их не будет создавать (однако Path поправит), поэтому их надо предварительно добавить вручную (Компьютер — Свойства — Дополнительные параметры системы — Дополнительно — Переменные среды… — Системные переменные — Создать...) или же BAT-сценарием. Какие конкретно переменные нужно создать, я ниже напишу. Все ли обязательны, я не берусь сказать — по идее те, которые не будут заданы, будут иметь значение по умолчанию.

Установка сервера Oracle 10g XE Database

Начнём.

0. Заходим в систему под именем локального администратора. Скачаем куда-либо, допустим, себе на рабочий стол инсталлятор БД — OracleXEUniv.exe.

1. Добавим ряд системных переменных. Можно создать и вручную, но я предлагаю добавлять командой setx с ключём -m (или /m), который позволит добавить системную переменную среды, а не пользовательскую, которая добавилась бы без этого ключа. Синтаксис команды такой: setx /m Переменная Значение.

Переменные нам нужны следующие: имена сервиса, пути к базе и утилитам, путь к настройкам в реестре и прочее. Если вы будете устанавливать БД по другим путям, то поправьте переменные. Самый простой вариант добавления всех параметров — написать небольшой BAT сценарий следующего содержания:

rem Имя сервиса
setx /m ORACLE_HOME_NAME XE
rem Корневой путь установки базы
setx /m ORACLE_BASE "C:\oraclexe"
rem Путь в реестре. Для x86 системы было бы "SOFTWARE\ORACLE\KEY_XE"
setx /m ORACLE_HOME_KEY "SOFTWARE\Wow6432Node\ORACLE\KEY_XE"
rem Имя сервиса
setx /m ORACLE_SID XE
rem Путь к бинарникам и настройкам
setx /m ORACLE_HOME "C:\oraclexe\app\oracle\product\10.2.0\server"
rem Путь, куда будет писать Oracle MTS. Остальные параметры ORAMTS - по умолчанию
setx /m ORAMTS_CP_TRACE_DIR "C:\oraclexe\app\oracle\product\10.2.0\server\oramts\trace"
rem Далее идут языковые параметры, они не столь важны, но могут быть полезны
setx /m NLS_NUMERIC_CHARACTER ". "
setx /m NLS_DATE_FORMAT "dd.mm.yyyy"
rem Сообщения от базы в консоли будут писаться не крякозябликами или знаками вопроса, а нормально - по-английски
setx /m NLS_LANG "AMERICAN_AMERICA.CL8MSWIN1251"


Сохраняем этот сценарий с расширением .bat и явно запустим с правами администратора (правой кнопкой мыши — Запуск от имени администратора). После каждой строки сценария должна быть запись «Успешно».

Теперь надо проверить, все ли переменные добавились так, как мы хотели. Проходим длинный путь Компьютер — Свойства — Дополнительные параметры системы — Дополнительно — Переменные среды… и смотрим Системные переменные. Всё хорошо? Если да, то приступаем к установке.

2. Запускаем инсталлятор. Установка вполне тривиальна — в отличие от 10g Standart и выше, тут используется инсталлятор InstallShield, который уж совсем прост. Путь установки указываем тот, который мы указали в переменной ORACLE_BASE, то есть по умолчанию это будет C:\oraclexe. После установки переходим в браузере на 127.0.0.1:8080/apex/ и пытаемся зайти под логином SYS и паролем, которым мы указали при инсталляции.

У меня всё заработало. И у вас должно. Далее создаём пользователя БД, накатываем скрипты, импортируем схему, и так далее. Единственное, надо будет разрешить TCP соединение порт 1521 в системном или стороннем брандмауэре.

Установка клиента Oracle 10g XE Client

А теперь на клиентские машины надо установить клиент БД Oracle. Приступим.

Шаги тут будут схожи, за исключением некоторых нюансов.

0. Опять же, заходим в систему под именем локального администратора. Положим поближе инсталлятор клиента БД — OracleXEClient.exe.

1. Добавим ряд системных переменных. BAT-сценарий для их добавления будет такой:

rem Имя сервиса
setx /m ORACLE_HOME_NAME XEClient
rem Корневой путь установки базы
setx /m ORACLE_BASE "C:\XEClient"
rem Путь в реестре. Для x86 системы было бы "SOFTWARE\ORACLE\KEY_XEClient"
setx /m ORACLE_HOME_KEY "SOFTWARE\Wow6432Node\ORACLE\KEY_XEClient"
rem Путь к бинарникам и настройкам
setx /m ORACLE_HOME "C:\XEClient"
rem Путь, куда будет писать Oracle MTS. Остальные параметры ORAMTS - по умолчанию
setx /m ORAMTS_CP_TRACE_DIR "C:\XEClient\oramts\trace"
rem Языковые параметры, они не столь важны, но могут быть полезны
setx /m NLS_NUMERIC_CHARACTER ". "
setx /m NLS_DATE_FORMAT "dd.mm.yyyy"
rem Английский язык сообщений
setx /m NLS_LANG "AMERICAN_AMERICA.CL8MSWIN1251"


Сохраняем сценарий .bat и запускаем с правами администратора.

2. Запускаем инсталлятор клиента в режиме совместимости с Windows Vista — иначе у меня не получилось. Установка совсем проста — надо указать лишь путь.

После установки надо как-то проверить, всё ли получилось. Запускаем в консоли (cmd) sqlplus и попытаемся законнектится к базе. Тут хочу сказать, что sqlplus по какой-то причине достаточно часто крашится. Но уж если запустился, то работает честно.

Далее ставим наш софт и проверяем, всё ли работает. Опять же, у меня заработало и успешно работает.

Вывод

Вот такими не совсем внятными действиями мы добились успешной работы Oracle 10g XE Database и ПО, который требует Oracle 10g XE Client. На нахождение верного пути я убил достаточно много нервов и времени, поэтому, надеюсь, для кого-то эта статья окажется весьма полезной.

Жду справедливой критики.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.