Данная инструкция предназначена для установки Oracle Database 11g на ОС Windows 7 64bit исключительно для целей разработки и тестирования на локальной машине разработчика.
Исходя из этого, Oracle настраивается с минимально необходимым количеством доступных ресурсов для разработки небольших проектов в рамках курса. Рекомендации, описанные ниже абсолютно неприменимы для развертывания Oracle Database для промышленной эксплуатации и/или работы под большой нагрузкой с существенными объемами данных.
- Скачайте дистрибутив Oracle с официального сайта http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html Все редакции Oracle (без патчей) доступны бесплатно для целей разработки и тестирования, функциональность и объемы памяти/диска не ограничены.
- Распакуйте оба архива в одну директорию
D:\temp\oracle
- Запустите
D:\temp\oracle\database\setup.exe
и выберите настройки, как указано на скриншотах ниже.
Ключевые моменты:- Выбрать "Install database software only" - только устанавливает ПО, не создавая экземпляр Oracle. Это будет сделано вручную после установки
- Исключить из списка русский язык, чтобы все сообщения были на английском, таким образом избавив себя от некоторых проблем с кодировками
- Выбрать Enterprise Edition и набор необходимых опций. Для данного курса дополнительные опции не потребуются, так что можно снять все чек боксы.
=
4. После установки появится папка D:\app\... со следующими ключевыми файлами:
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\sqlplus - клиент командной строки Oracle. Пока не создан экземпляр базы данных он бесполезен.
- D:\app\Eugene\product\11.2.0\dbhome_1\NETWORK\ADMIN - после настройки Listener и создания базы тут появятся конфигурационные файлы listener.ora и tnsnames.ora в которых прописаны хост, порт и названия инстансов БД для подключения к ним клиентов.
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\dbca.bat - Database Configuration Assistant - UI утилита для создания экземпляра Oracle
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\netca.bat - Network Configuration Assistant - UI утилита для создания Listener-а, который необходим для подключения клиентов к экземпляру Oracle.
5. Запустите D:\app\Eugene\product\11.2.0\dbhome_1\BIN\netca.bat как Administrator (правой кнопкой мыши → Run as administrator)
Добавьте новый листенер, оставив все значения по-умолчанию. По окончании настройки, в консольном окне должно появится сообщение Listener started successfully или сообщение об ошибке.
6. Запустите D:\app\Eugene\product\11.2.0\dbhome_1\BIN\dbca.bat как Administrator (правой кнопкой мыши → Run as administrator)
Большинство параметров можно оставить по-умолчанию, но некоторые необходимо поменять, как на экранах ниже:
- Не выбирать шаблон с данными, выбрать Custom Database
- Имя экземпляра и SID оставить одинаковыми (стандартно для локальной установки берут ORCL, либо другое короткое запоминающееся имя)
- Выключить Enterprise Manager и Automatic Maintenance
- Указать пароли для системных пользователей SYSTEM и SYS (стандартный пароль - manager)
- Выключить Flash Recovery
- Снять все опции на Database Components и "Standard Database Components". Можно оставить только Oracle JVM - с ней идет много полезных по функциональности пакетов, которые могут пригодится в разработке. Некоторые опции можно и оставить, но они существенно замедлят создание базы, Oracle XML DB занимает распространенные сетевые порты компьютера (8080) и может конфликтовать с другими приложениями.
- Уменьшить объем доступной Oracle оперативной памяти до минимума. Если вы оставили Oracle JVM, то рекомендуется оставить больше памяти (например, 1Gb), иначе возможны ошибки во время создания экземпляра, например,
ORA-00604: ошибка на рекурсивном SQL-уровне 1 ORA-04031: невозможно выделить 4096 байт разделяемой памяти ("java pool","unknown object","JOXLE^ebb55619",":SGAClass")
- Указать кодировку для cтрокового типа AL32UTF8 вместо системной по-умолчанию WIN1251. Это позволит хранить символы всех алфавитов в типе VARCHAR2
- Процесс создания экземпляра достаточно долгий и может занимать от 10 минут до нескольких часов, в зависимости от мощности машины и выбранных опций
7. Поменять параметр реестра через regedit, чтобы окончательно отучить утилиты командной строки Oracle (sqlplus) говорить по-русски с неправильной кодировкой. Целевое значение для ключа NLS_LANG
: AMERICAN_AMERICA.CL8MSWIN1251
8. После создания экземпляра Oracle необходимо сделать несколько проверок:
- Панель управления → Администрирование → Службы: Должны появиться 2 ключевых сервиса: OracleOraDB11g_home1TnsListener и OracleServiceORCL. Эти службы должны быть запущены, но, если вы не пользуетесь Oracle постоянно, для экономии памяти их можно поставить в режим "Manual" и включать при необходимости. Названия служб может меняться в зависимости от того, как вы назвали Listener и экземпляр.
- В командной строке ввести
sqlplus system/manager@ORCL
где manager - ваш пароль для аккаунта SYSTEM, указанный при создании экземпляра.
Если после этого вы получили ошибку ORA-12514: TNS:listener does not currently know of service requested in connect
, попробуйте выполнить следующие шаги:
Проверить D:\app\...\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora и tnsnames.ora существуют и содержат примерно следующее (HH2 - это имя вашей машины, либо ее IP адрес)
после изменения listener.ora требуется перезапустить сервис Listener
Зайти в базу данных локально как sysdba, выполнить команду alter system register, которая зарегистрирует инстанс в listener-e форсированно и повторить попытку соединиться через Listener как описано выше.
>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 30 01:35:46 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> alter system register; System altered. SQL> exit
9. Создать своего пользователя, под которым уже создавать свои таблицы и другие объекты.
>sqlplus.exe system/manager@ORCL SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 30 01:37:56 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning and OLAP options SQL> create user eugene identified by mysecretpassword; User created. SQL> grant connect, resource to eugene; Grant succeeded. SQL> connect eugene/mysecretpassword@ORCL Connected. SQL>