Данная инструкция предназначена для установки Oracle Database 11g на ОС Windows 7 64bit исключительно для целей разработки и тестирования на локальной машине разработчика.

Исходя из этого, Oracle настраивается с минимально необходимым количеством доступных ресурсов для разработки небольших проектов в рамках курса. Рекомендации, описанные ниже абсолютно неприменимы для развертывания Oracle Database для промышленной эксплуатации и/или работы под большой нагрузкой с существенными объемами данных.

  1. Скачайте дистрибутив Oracle с официального сайта http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html Все редакции Oracle (без патчей) доступны бесплатно для целей разработки и тестирования, функциональность и объемы памяти/диска не ограничены.


  2. Распакуйте оба архива в одну директорию D:\temp\oracle
  3. Запустите D:\temp\oracle\database\setup.exe и выберите настройки, как указано на скриншотах ниже.
    Ключевые моменты:
    1. Выбрать "Install database software only" - только устанавливает ПО, не создавая экземпляр Oracle. Это будет сделано вручную после установки
    2. Исключить из списка русский язык, чтобы все сообщения были на английском, таким образом избавив себя от некоторых проблем с кодировками
    3. Выбрать 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_LANGAMERICAN_AMERICA.CL8MSWIN1251

8. После создания экземпляра Oracle необходимо сделать несколько проверок:

  1. Панель управления → Администрирование → Службы: Должны появиться 2 ключевых сервиса: OracleOraDB11g_home1TnsListener и OracleServiceORCL. Эти службы должны быть запущены, но, если вы не пользуетесь Oracle постоянно, для экономии памяти их можно поставить в режим "Manual" и включать при необходимости. Названия служб может меняться в зависимости от того, как вы назвали Listener и экземпляр.
  2. В командной строке ввести 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.ora Network Configuration File: D:\app\Eugene\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = D:\app\Eugene\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Eugene\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = HH2)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
    
    ADR_BASE_LISTENER = D:\app\Eugene
    
    
    
    tnsnames.ora
    # tnsnames.ora Network Configuration File: D:\app\Eugene\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )
    
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = HH2)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCL)
        )
      )
    

    после изменения 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>

 

 

 

  • Нет меток