Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • Не выбирать шаблон с данными, выбрать 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 минут до нескольких часов, в зависимости от мощности машины и выбранных опций

 

Image Added

7. Поменять параметр реестра через regedit, чтобы окончательно отучить утилиты командной строки Oracle (sqlplus) говорить по-русски с неправильной кодировкой. Целевое значение для ключа NLS_LANG: AMERICAN_AMERICA.CL8MSWIN1251

Image Added

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 адрес)

    Блок кода
    titlelistener.ora
    linenumberstrue
    collapsetrue
    # 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
    
    
    
    Блок кода
    titletnsnames.ora
    linenumberstrue
    collapsetrue
    # 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>