Pull to refresh

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

Жду справедливой критики.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.