...
- Скачайте дистрибутив 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 и набор необходимых опций. Для данного курса дополнительные опции не потребуются, так что можно снять все чек боксы.
...
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\sqlplus - клиент командной строки Oracle. Пока не создан экземпляра экземпляр базы данных он бесполезен.
- D:\app\Eugene\product\11.2.0\dbhome_1\NETWORK\ADMIN - тут после настройки Listener и создания базы тут появятся конфигурационные файлы tnslistenerlistener.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)
Добавьте новый листенер, оставив все значения по-умолчанию. После добавления, визард предложит добавить еще один листенер, нужно нажать Cancel и выйти из утилитыПо окончании настройки, в консольном окне должно появится сообщение 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 адрес)
Блок кода title listener.ora linenumbers true collapse true # 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
Блок кода title tnsnames.ora linenumbers true collapse true # 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> |