Создание базы данных Oracle 12c с помощью Database Configuration Assistant
1. Запустите Database Configuration Assistant. Нажмите кнопку Windows на клавиатуре, вы попадете на стартовый экран (Start screen), внизу экрана есть кнопка для вызова экрана приложений (Apps screen). Нажмите ее.
2. На экранее Apps выберите иконку Database Configuration Assistant.
3. Окно Database Configuration Assistant — Database Operation. Выберите Create a Database. Нажмите Следующий.
4. Окно Database Configuration Assistant — Creation Mode. Выберите Advanced mode. Нажмите Следующий.
5. Окно Database Configuration Assistant — Database Template. Выберите Custom Database. Нажмите Следующий.
6. Окно Database Configuration Assistant — Database Identification. Задайте имя базы. В поле Global Database Name введите имя БД. Имя может быть произвольным, не более шести знаков, начинаться с буквы и не содержать спецсимволов, подчеркиваний и пробелов, например test или rp34. В поле SID введите уникальный идентификатор базы данных. Сделайте его таким же, как имя БД. Нажмите Следующий.
Примечание: В этом случае создается простая БД. Здесь же можно создать Container Database (CDB) пустую или сразу с несколькими Pluggable Database (PDB). Основная идея Multitenant Architecture состоит в возможности запустить несколько независимых баз (pluggable database, PDB) в рамках одного экземпляра (container database, CDB). Каждая база имеет свой набор схем и табличных пространств, но при этом у них общая SGA и один набор серверных процессов. Подробнее можно почитать в документации — Introduction to the Multitenant Architecture.
7. Окно Database Configuration Assistant — Management Options. Поставьте галочку Configure Enterprise Manager (EM) Database Express. В поле EM Database Express Port введите номер порта (по умолчанию номер порта предлагается 5500 — оставьте его). Нажмите Следующий.
8. Окно Database Configuration Assistant — Database Credential. Задайте пароли для системных пользователей (в данном примере для всех системных пользователей задаётся одинаковый пароль, на промышленной БД так делать не нужно). Отметьте Use the Same Administrative Password for All Accounts, введите пароль. Введите пароль для Oracle Home User Password – владельца Oracle Home от имени которого запускаться сервисы Oracle (этого пользователя вы создаете или указываете при установке Oracle – Установка Oracle 12c (12.1.0.2.0) на Windows 2012 R2). Нажмите Следующий.
9. Окно Database Configuration Assistant — Network Configuration. Выберите процесс прослушиватель или создайте новый. Нажмите Следующий.
10. Окно Database Configuration Assistant — Storage Locations. Задайте механизм хранения файлов базы (в данном примере задаётся файловая система). Выберите File System. Задайте местоположение файлов базы (в данном примере будут использоваться пути по умолчанию). Отметьте Use Database File Locations from Template.
Задайте опции восстановления базы (в данном примере опции восстановления не используются). Установите галочку Specify Fast Recovery Area. В эту папку по умолчанию делается резервное копирование с помощью RMAN, и сохраняются архивные копии журнальных файлов. По умолчанию папка располагается в {ORACLE_BASE}\fast_recovery_area. В поле Fast Recovery Area вы можете изменить этот путь и явно задать папку для резервного копирования. В параметре Fast Recovery Area Size задаётся лимит на размер этой папки (лучше сделать его равным объёму всего жёсткого диска). Параметр Enable Archiving включает режим архивирования журнальных файлов. Если нажать кнопку Edit Archive Mode Paramets то можно изменить шаблон для имён архивов журнальных файлов, а также дополнительные пути для мультиплицирования архивных копий. Оставьте всё по умолчанию.
ВНИМАНИЕ: Для промышленной базы нужно обязательно включать режим архивирования журнальных файлов. Однако, при достижении лимита папки Fast Recovery Area (т.е. при её полном заполнении) база данных остановиться, и будет ждать свободного места. Поэтому, если вы не можете следить за заполнением этой папки – НЕ включайте режим архивирования журнальных файлов, т.е. не ставьте галочку в поле Enable Archiving.
Нажмите Следующий.
11. Окно Database Configuration Assistant — Database Options. Выберите необходимые компоненты базы. Нажмите Следующий.
12. Окно Database Configuration Assistant — Initialization Parameters. Закладка Memory. Задайте способ распределения и размер памяти. Выберите Typical. В поле Percentage задайте количество физической памяти, которое будет выделено для Oracle. Обычно это 70-80%. Если на сервере кроме Oracle запущены другие ресурсоёмкие процессы, выберете число меньше 70%.
13. Нажмите кнопку All Initialization Parameters… Окно All Initialization Parameters. Исправьте значения (поле Value) следующих параметров:
Обязательные параметры (обязательно изменить!).
open_cursors = 500
Рекомендованные параметры (можно не трогать).
; Для большого количества активных пользователей (более 70-80).
; Считайте РЕАЛЬНЫХ ПОЛЬЗОВАТЕЛЕЙ,
; а не количество компьютеров в сети.
; Если пользователей меньше 70-80 – не трогайте эти параметры.
; Если пользователей больше 100-200 возможно более эффективно
; использовать режим разделяемого сервера (Shared Server Mode).
processes = кол.пользователей*2
sessions = 1,1*processes +5
Нажмите Close. Окно Database Configuration Assistant — Initialization Parameters.
14. Окно Database Configuration Assistant — Initialization Parameters. Закладка Sizing. Выберите размера блока БД. Размер блока БД следует выбирать не менее 8Кб. Если у сервера хорошая дисковая подсистема (SCSI диски или RAID) можно выбрать 16Кб и выше (размер блока более 8Кб имеет смысл только для больших баз). В поле Block Size введите нужное значение (8192 или 16384).
15. Окно Database Configuration Assistant — Initialization Parameters. Закладка Character Sets. Выберите кодировку для БД. Кодировка должна быть CL8MSWIN1251. По умолчанию выбрано Use the default. Если при этом указана правильная кодировка, то менять ничего не нужно. Если указана не правильная кодировка. В этом случае выберите Choose from the list of character sets и в списке выберите правильную кодировку CL8MSWIN1251. В поле Default Language из раскрывающегося списка выбрать значение «Русский» и в следующем поле Default Territory – значение «Россия».
14. Окно Database Configuration Assistant — Initialization Parameters. Закладка Connection Mode. Выберите Dedicate Server Mode. Нажмите Следующий.
15. Окно Database Configuration Assistant — Creation Option. Выберите Create Database. Нажмите Следующий.
16. Окно Database Configuration Assistant — Summary. Проверьте правильность установленных параметров. Нажмите OK.
17. Окно Database Configuration Assistant — Progress Page. Идет процесс создания БД. Дождитесь завершения.
18. Окно Database Configuration Assistant. Создание базы данных завершено. Запишите WEB-адрес для Database Control. Нажмите Закрыть.
19. БД создана и уже запущена. Для соединения с БД из других ORACLE_HOME, необходимо настроить сетевую среду Oracle для них.
20. После создания БД можно изменить некоторые настройки для БД. Для нужно выполнить несколько sql-команд в sqlplus (или TOAD) под SYS и перезапустить БД.
Запустите sqlplus /nolog.
C:\> sqlplus /nolog
соединитесь с БД под пользователем sys as sysdba
SQL> conn sys/sys as sysdba
отключить использование корзины в БД
SQL> alter system set recyclebin=off scope=spfile;
отключить регистрозависимость пароля
SQL> alter system set sec_case_sensitive_logon=FALSE scope=both;
исправить проблему с ORA-29471: DBMS_SQL access denied
SQL> alter system set «_dbms_sql_security_level»=384 scope=spfile;
(по желанию) чтобы не менять пароль пользователям каждые 60 дней
вместо unlimited можно поставить число = количеству дней
SQL> alter profile DEFAULT limit password_life_time unlimited;
перезапуск БД
SQL> shutdown immediate
SQL> startup
21. Старые версии клиентов 8, 9, 10, 11 не могут соединиться с Oracle 12c с ошибками:
ORA-28040: No matching authentication protocol — для forms 6i
ORA-01031: insufficient privileges — для клиента 11g
Для решения проблемы нужно добавить в sqlnet.ora на сервере
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
22. Некоторые клиенты oracle 10 и 11 падают с ORA-01031: insufficient privileges при попытке выполнить
SELECT u.NAME
FROM sys. USER$ u
WHERE u. TYPE# = 1
ORDER BY 1
Starting 12c, the SELECT ANY DICTIONARY privilege no longer permits access to security sensitive data dictionary tables DEFAULT_PWD$, ENC$, LINK$, USER$, USER_HISTORY$, and XS$VERIFIERS. This change increases the default security of the database by not allowing access to a subset of data dictionary tables through the SELECT ANY DICTIONARY privilege.
Обходной маневр:
GRANT SELECT ON sys. USER$ TO PUBLIC;