Вы находитесь на странице: 1из 219
Oracle OCP Краткое пособие по подготовке к экзамену 1Z0-060 И. Гавриков
Oracle OCP Краткое пособие по подготовке к экзамену 1Z0-060 И. Гавриков

Oracle OCP

Краткое пособие по подготовке к экзамену

1Z0-060

И. Гавриков

И.С. Гавриков, к.ф.-м.н., Oracle OCP 10g, 11g, 12c, HP HP-UX CSA, CSE

e-mail: xbir@yahoo.com

Условия и ограничения использования

Copyright 2015. И. Гавриков.

Никакая часть данной публикации не может быть распространена, занесена в публичные или частные базы, или системы хранения/восстановления текстов/изображений, или сохранена в любой форме любыми средствами без письменного разрешения автора.

Oracle, Solaris, Oracle Solaris являются зарегистрированными марками Oracle Corporation и/или филиалов компании Oracle.

HP, HP-UX являются зарегистрированной маркой Hewlett-Packard Development Company, L.P. и/или филиалов компании Hewlett-Packard Development Company, L.P.

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

2

О чем хотел сказать автор   10 Дополнительные источники

О

чем хотел сказать автор

 

10

Дополнительные источники знаний

10

Новые возможности

СУБД Oracle 12c

11

Утилита Enterprise

Manager Express

11

Использование

Enterprise Manager Express

11

Настойка порта

для EM Express

14

Использование ассистентов OUI, DBCA для установки и настройки базы данных

15

Ассистент создания базы данных (Database Create Assistant (DBCA))

30

Введение в модель арендованной контейнерной базы данных (Multitenant Container Database (CBD))

36

Преимущества контейнерной базы данных

 

36

Описание арендной архитектуры

37

Создание и настройка контейнерной базы данных и перемещаемых баз данных

37

 

Создание

и

настройка

контейнерной БД

(CDB)

37

Создание

и

настройка

перемещаемой БД (PDB)

39

Создание перемещаемой БД из seed

 

40

Клонирование перемещаемой БД

40

Включение извлеченной перемещаемой БД в контейнерную БД

41

Создание перемещаемой БД на основе монолитной

41

Удаление

перемещаемой базы данных

42

Преобразование монолитной базы Oracle данных в перемещаемую базу данных

42

Управление контейнерными и перемещаемыми базами данных

43

Запуск и остановка контейнерной (CDB)/перемещаемой (PDB) базы данных

45

Изменение параметров экземпляра для контейнерной (CDB) или перемещаемой (PDB) БД

47

Управление табличными пространствами, общими и локальными пользователями,

привилегиями

и ролями

48

 

Управление табличными пространствами контейнерной (CDB) или перемещаемой (PDB) БД

48

Управление пользователями и привилегиями в контейнерной (CDB) или перемещаемой (PDB)

БД

49

 

Создание

общего пользователя

49

Создание

локального пользователя

50

3

Привилегии общих и локальных пользователей

50

Резервное копирование, восстановление и ретроспективный откат для контейнерной и перемещаемой БД

52

Выполнение резервного копирования контейнерной или перемещаемой БД

52

Восстановление контейнерной или перемещаемой БД

53

Выполнение ретроспективного отката на контейнерной базе данных

55

Управление жизненным циклом информации и оптимизация работы с дисковой памятью

57

Использование управления жизненным циклом информации (Information Lifecycle Management,

ILM)

57

Горячая карта (Heat Map)

57

Автоматическая оптимизация данных (Automatic Data Optimization, ADO)

57

Выполнение отслеживания изменений и автоматизированное размещение данных

57

Перенос файлов данных online

60

Внутреннее архивирование (In-Database Archiving) и временная актуальность данных (Valid-Time Temporal)

61

Различие между управлением жизненным циклом информации (Information Lifecycle Management, ILM) и временной актуальностью

61

Установка и использование временной актуальности

62

Работа с внутренним архивированием строк (In-Database archiving)

65

Аудит

66

Включение и настройка унифицированного аудита

66

Запрет унифицированного аудита

67

Создание и включение политик аудита

70

Привилегии

73

Использование административных привилегий

73

Создание, разрешение и анализ использования привилегий

75

Редактирование (redaction) данных Oracle

77

Применение и управления политиками редактирования данных Oracle

77

RMAN и ретроспективный архив данных

81

Применение расширений RMAN

81

Восстановление отдельных таблиц из резервных копий

81

Интерфейс командной строки RMAN

81

Дупликация активной базы данных

81

Опция NOOPEN для дупликации

81

4

Многосекционные

копии образа (Multisection Image Copies)

82

Многосекционные инкрементальные резервные наборы

82

Оптимизация моментального снимка дисковой памяти (Storage Snapshot Optimization)

82

Новые возможности ретроспективных архивов (Flashback Data Archive)

83

Отслеживание операций базы данных в реальном времени

84

Реализация отслеживания операций базы данных в реальном времени

84

Настройка SQL

87

Использование адаптивных планов выполнения

87

Адаптивные

планы

87

Адаптивные

статистики

88

Использование расширенных возможностей сбора статистики

89

Конкурентные статистики

90

Автоматическое определение групп столбцов (Automatic column group detection)

90

Использование управления адаптивными SQL планами

91

Аварийный контроль (Emergency Monitoring), контроль реального времени (Real-Time ADDM), сравнительный контроль (Compare Period ADDM) и анализ истории активных сессий (ASH Analytics)

 

93

Выполнение аварийного контроля и контроля реального времени

93

ADDM реального времени

94

Создание сравнительного отчета ADDM по периоду

96

Диагностика проблем производительности с использованием новых возможностей ASH

97

Менеджер ресурсов и другие расширения контроля производительности

98

Использование менеджера ресурсов для контейнерной и подключаемых баз данных

98

Различие между мультипроцессной и многопотоковой архитектурой в Oracle

99

Использование флэш кэша (flash cache)

100

Расширенные возможности при работе с индексами и таблицами

101

Применение расширенных возможностей работы с индексами

101

Применение расширенных возможностей работы с таблицами

102

Применение расширенных возможностей online операций

103

Улучшения программы диагностики ADR (Automatic Diagnostic Repository)

105

Описание улучшений ADR

105

Журнал отладки (Debug Log)

105

Улучшения Oracle Data Pump, SQL*Loader, External Tables Online операций

106

Обзор улучшений Oracle Data Pump

106

5

Применение расширенных возможностей загрузчика SQL*Loader и внешних таблиц

109

Возможности "прямого" NFS (Direct NFS)

110

Расширенные возможности секционирования

111

Обзор расширенных

возможностей секционирования

111

Секционирование

по ссылочному интервалу (interval-reference)

111

Операции множественного обслуживания секций таблиц

111

Каскадная функциональность (Cascade Functionality)

113

Перемещение секций "на ходу"

113

Расширенные возможности индексирования для секционированных таблиц

114

Асинхронное обслуживание индексов

114

Частичные индексы (partial indexes)

114

ONLINE перемещение секций

115

Улучшения в

SQL

116

Настройка расширенных типов данных

116

Применение ограничений количества строк в выборке (Top-N SQL запросы)

116

Безопасные файлы (Secure Files)

117

Применение Oracle Database Migration Assistant для преобразования в Unicode

118

Ключевые навыки администратора базы данных

120

Основы администрирования

120

Общие замечания об администрировании

120

Основы архитектуры базы данных

121

Понятия "база данных" и "экземпляр"

121

Системная глобальная область System Global Area (SGA)

123

Установка и начальная настройка базы данных

125

Настройка сетевой поддержки для сервера и клиента базы данных

130

Метод локальных имен (Local Naming Method)

132

Метод простого соединения (Easy Connect Naming Method)

132

Метод

службы каталога (Directory

Naming Method)

133

Метод внешних имен (External Naming Methods)

133

Отслеживание

оповещений базы данных

134

Адаптивные пороги (Adaptive Thresholds)

134

Выполнение ежедневного сопровождения базы данных

135

Установка и анализ исправлений

137

6

Online

исправления

137

Центр управления EM Cloud Control и обновления

138

Запросы к каталогу исправлений

139

Резервное копирование и восстановление базы данных

141

Создание резервных копий

144

Инкрементальные резервные копии

145

Отслеживание изменения блоков (Block Change Tracking)

145

Восстановление файлов базы данных

146

Диагностирование сетевых проблем и проблем базы

148

Обнаружение и восстановление сбоев данных с помощью Data Recovery Advisor

150

Сбои

150

Восстановление с помощью Data Recovery Advisor

151

LIST FAILURE

151

ADVISE FAILURE

151

CHANGE FAILURE

152

REPAIR FAILURE

152

Реализация технологии ретроспективного отката

153

Ретроспективный

откат таблиц

153

Ретроспективные

версионные запросы

153

Запросы ретроспективных транзакций

155

Ретроспективный

откат базы данных

156

Загрузка и выгрузка

данных

159

Обслуживание заданий Data Pump

159

Параметры

expdp

161

Параметры

impdp

162

Сетевые операции Data Pump

163

SQL-Loader

163

Перемещение объектов из пространства SYSAUX

166

Создание постоянного табличного пространства "по умолчанию"

167

Использование консультанта для определения размеров журналов повторов (redo)

168

Применение безопасных файлов для хранения данных LOB

169

Применение прямого NFS клиента

171

Управление производительностью

172

7

Проектирование размещения базы данных

172

Контроль производительности

173

Управление памятью

176

Автоматическое управление разделяемой памятью (Automatic Shared Memory Management)

177

Буферный кэш

177

Выявление и анализ проблем производительности

179

Проведение реального тестирования приложений

182

SQL Performance Analyzer

182

Используемые представления словаря данных

182

Последовательность действия

при анализе изменения производительности

183

Повтор выполнения базы данных

184

Применение ресурсного менеджера для управления распределением ресурсов

186

Директивы ресурсного плана

186

Ограничения сессий по вводу/выводу или потреблению циклов процессора

187

Замечания по настройке производительности

188

Дисковая память

189

Управление объектами базы данных

189

Табличные пространства (Tablespaces)

190

Управление табличным пространством отката (Undo)

190

Группы журналов повторов (Redo Log Groups)

191

Архивные журналы (Archive Logs)

191

Управляющие файлы (Control Files)

192

Управляемые Oracle файлы

192

Администрирование ASM

194

Полностью квалифицированная форма имен файлов

195

Алиасы имен файлов

196

Управление

дисками ASM и

дисковыми группами

197

Атрибуты

дисковых

групп

197

Создание

дисковой

группы

198

Модификация дисковой группы

199

Управление экземпляром ASM

200

Остановка экземпляра ASM

201

Управление очень большими данными (VLDB)

203

8

Общие замечания

203

Методы секционирования

203

Одноуровневое секционирование

203

Композитное секционирование

204

Управление табличным пространством

205

Базовая компрессия таблиц (Basic Table Compression)

206

Расширенная строковая компрессия (Advanced Row Compression)

206

Гибридное колоночное сжатие (Hybrid Columnar Compression)

206

Сжатие сегментов (Segment Shrink)

207

Запуск сжатия динамического сжатия сегментов

207

Примеры

208

Безопасность

209

Разработка и внедрение политики безопасности

209

Пользователи

209

Привилегии и

роли

209

Аудит

210

Настройка и управление аудитом

211

Создание файла паролей

213

Шифрование столбцов и табличных пространств

215

Шифрование

столбцов

217

Шифрование

табличных пространств

217

Словарь

219

9

О чем хотел сказать автор

Вначале несколько "не".

Эта книга не заменяет курс "Oracle Database 12c: New Features for Administrators", читаемый в Oracle University.

Эта книга не содержит списка вопросов, которые могут быть заданы на реальном экзамене 1Z0-060, но содержит ответы на них.

В этом пособии содержится описание

а) основных изменений, сделанных в СУБД Oracle версии 12с по сравнению с 11g;

и

б)

основных

навыков

администратора

СУБД,

которые

могут

пригодиться

как

для

сдачи

экзамена 1Z0-060, так и в повседневной работе.

В упомянутом курсе Oracle University раскрываются специфические возможности релиза 12с. В

данном руководстве несколько глав посвящено существенно более широким темам, например, повседневным обязанностям администратора СУБД (DBA). Потенциальный круг вопросов по данной тематике может быть очень широким. В Oracle считают, и в этом автор полностью согласен с ними,

что люди, сдающие экзамен 1Z0-060, работали или работают в качестве DBA и знают большую часть этих тем на практике. Если это не так, то нужно запланировать достаточное время для работы с реальной базой данных.

Дополнительные источники знаний

Основными источниками информации по подготовке к экзамену являются:

документация Oracle http://docs.oracle.com/ книги независимых авторов Oracle http://docs.oracle.com/
документация Oracle http://docs.oracle.com/ книги независимых авторов книги независимых авторов

т. н . White papers и статьи на Oracle Learning Library .н. White papers и статьи на Oracle Learning Library

Материалы Oracle Learning Library являются наиболее полными и точными, т.к. созданы специалистами Oracle и проверены значительным количеством сторонних лиц.

При подготовке к экзамену желательно использовать несколько источников учебных материалов. Разные точки зрения помогут составить более полное представление о рассматриваемой теме, что, несомненно, поможет пониманию работы СУБД Oracle.

10

Новые возможности СУБД Oracle 12c

Утилита Enterprise Manager Express

Использование Enterprise Manager Express Enterprise Manager Express это утилита, предназначенная для управления базой данных (БД) Oracle с использованием интернет-браузера. Она встроена в БД и позволяет отслеживать, управлять производительностью БД и также выполнять некоторые общие административные функции. С помощью веб-интерфейса можно просматривать, создавать и изменять различные объекты базы данных. Утилита EM Express спроектирована, как легковесное приложение, оказывающее незначительное воздействие на производительность. С EM Express не связаны какие-либо фоновые процессы и задачи. При работе она использует только внутренние компоненты БД, такие как XDB и SQL*Net и данные, собранные существующими процессами Oracle. EM Express запрашивает данные с сервера базы данных только при работе пользователя с веб-интерфейсом. Запрошенная информация обрабатывается внутри интернет-браузера, что минимизирует нагрузку на сервер базы данных. Утилита EM Express не может функционировать без базы данных, поэтому EM Express не может выполнять любые действия вне ее, в частности осуществить запуск или остановку экземпляра. Следует сказать, что, поскольку EM Express использует Shockwave Flash (SWF) файлы, то используемый браузер должен поддерживать Flash plug-in.

EM Express доступен через ссылку, выдаваемую ассистентом DBCA при создании базы данных:

DBCA при создании базы данных: Рис. 1 Сообщение об успешном

Рис. 1 Сообщение об успешном создании БД. Ссылка на EM Express

Если неизвестно, какой порт был назначен для EM Express ("по умолчанию" используется 5500/tcp), то порт можно определить с помощью следующего SQL-запроса:

11

SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() FROM dual;

DBMS_XDB_CONFIG.GETHTTPSPORT()

------------------------------

5500

Ссылка на EM Express будет выглядеть так:

https://database-hostname:portnumber/em/

Например:

https://ora-1123:5500/em/ или https://192.168.150.196:5500/em/

Если экземпляр БД и прослушиватель запущены, то по указанному адресу в браузере откроется начальная страница EM Express. Если база данных неактивна, то нужно запустить ее до попытки зайти в EM Express. Зарегистрироваться в EM Express можно с использованием учетной записи, имеющей достаточный уровень полномочий, а именно, обладающей одной из ролей EM_EXPRESS_BASIC или EM_EXPRESS_ALL. Первоначально такими пользователями являются SYS и SYSTEM. В реальной работе использование учетной записи SYS нежелательно. В место этого для администрирования БД рекомендуется создать отдельную учетную запись, заменяющую SYS или SYSTEM, и присвоить этой учетной записи роль EM_EXPRESS_BASIC или EM_EXPRESS_ALL.

При входе в EM Express будет отображена страница приглашения:

страница приглашения : Рис. 2 Регистрация в EM Database Express

Рис. 2 Регистрация в EM Database Express 12c

12

После регистрации открывается домашняя страница EM Express. На этой странице отображается общее состояние БД и текущая активность. Административные задачи, доступные в Enterprise Manager Express, сгруппированы в четыре меню в верхней части страницы:

Настройка (Configuration) - EM Express позволяет менять инициализационные параметры базы Configuration) - EM Express позволяет менять инициализационные параметры базы данных. На странице показано текущее распределение памяти и список 10 процессов с максимальным потреблением памяти. Администратор может также посмотреть список используемых опций и свойства БД.

Дисковая Память (Storage) - Функции администрирования дисковой памятью позволяют DBA (Storage) - Функции администрирования дисковой памятью позволяют DBA управлять redo-журналами (журналы повторов), архивными журналами и табличными пространствами. Имеется возможность запустить консультант (advisor) по UNDO пространству (пространство отката) и статистике. EM Express также отображает информацию от содержании управляющего файла.

Безопасность (Secirity) - Меню безопасности EM Express позволяет DBA создавать и изменять (Secirity) - Меню безопасности EM Express позволяет DBA создавать и изменять пользователей, роли, профили, выдавать и отзывать привилегии.

Производительность (Performance) - Центр производительности EM Express отображает информацию о (Performance) - Центр производительности EM Express отображает информацию о производительности БД за определенный период. Отображаемая информация включает SQL Monitor, ASH Analytics (анализ истории активных сессий) и ADDM (Automatic Database Diagnostic Monitor). Центр производительности также включает в себя набор метрик, описывающих характеристики нагрузки и использование ресурсов базы данных.

ресурсов базы данных. Рис. 3 Домашняя страница базы

Рис. 3 Домашняя страница базы данных EM Express

13

Настойка порта для EM Express При необходимости порт EM Express может быть изменен. Каждый экземпляр БД на данном сервере должен иметь уникальный порт. Если порт не был настроен, то доступ к EM Express невозможен. Для настройки порта нужно выполнить несколько шагов:

1. Нужно проверить, что Oracle Net Listener уже настроен и запущен. Для запуска, остановки и проверки состояния прослушивателя нужно использовать утилиту lsnrctl.

2. Если прослушиватель запущен на порту, отличном от порта "по умолчанию", 1521, то файл init.ora базы данных, которая будет управляться EM Express, должен содержать параметр local_listener. Параметр local_listener должен ссылаться на параметр в TNSNAMES, указывающий на корректный прослушиватель. Например, запись local_listener=orcl будет необходима для экземпляра, определенного в файле TNSNAMES.ORA с нестандартным портом 1527:

orcl= (DESCRIPTION= (ADDRESS=

(PROTOCOL=tcp)(HOST=ora-1123)(PORT=1527)

)

(CONNECT_DATA=

(SERVICE_NAME=orcl)(SERVER=DEDICATED)

)

)

Диспетчер TCP должен быть включен. Для этого нужно добавить запись в файл init.ora для управляемой EM Express базы данных

dispatchers="(PROTOCOL=TCP)(SERVICE=<sid>XDB)"

3. Базу данных необходимо перезапустить, чтобы изменения в init.ora стали активными

4. С помощью PL/SQL процедуры DBMS_XDB_CONFIG.SETHTTPSPORT следует назначить порт HTTPS для EM Express. Эта процедура изменит значение порта HTTPS в файле xdbconfig.xml из Oracle XML DB Repository. Для выполнения этих действия необходимо подключиться к БД с привилегией SYSDBA. В следующем примере устанавливается порт 5600 для EM Express:

SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(5600);

Следует отметить что, если вызов SETHTTPSPOST производился при запущенном процессе прослушивателя, то некоторое время EM Express будет доступен как на старом, так на новом порту. Если такое поведение является неприемлемым, то нужно перед вызовом функции остановить процесс прослушивания, произвести замену порта и запустить процесс прослушивания.

Для получения большей информации о EM Express необходимо обратиться к документу Oracle "Database 2 Day DBA" и крайне полезно установить СУБД Oracle 12c, чтобы более подробно ознакомиться с EM Express.

Проверить успешность смены порта можно с помощью команды lsnrctl status (на рисунке выделен фрагмент с описанием сервиса EM Express, зарегистрированного на нужном порту):

14

Рис. 4 Информация о порте EM Database Express 12c Использование ассистентов

Рис. 4 Информация о порте EM Database Express 12c

Использование ассистентов данных

Установка СУБД Oracle обоснованно считается действием, требующим понимания специфики операционной системы (ОС). Даже при наличии опыта успешных установок для используемой ОС рекомендуется ознакомиться с соответствующим руководством. В данной главе описан опыт установки Oracle 12c на Oracle Solaris 10 (SPARC).

базы

OUI, DBCA для установки

и настройки

Для

установки

файлов

программного

обеспечения

СУБД

для

Solaris

10

(SPARC)

выделить следующий объем дискового пространства:

нужно

Издание СУБД Oracle 12c

Требуемый размер дискового пространства, GB

Enterprise Edition

6.1

Standard Edition

5.9

Standard Edition One

5.9

Дополнительно требуется также 1GB свободной памяти в директории /tmp. Сервер, на котором будет функционировать база данных, должен иметь не менее 2 GB оперативной памяти и соответствующее количество памяти swap'а:

Оперативная память сервера(RAM), GB

Пространство swap

1 - 2

1.5 размера оперативной памяти (RAM)

2 - 16

равно размеру оперативной памяти

> 16

16GB

15

Если выполнены эти базовые требования, то можно перейти к анализу дополнительных требований к ресурсам. Проводить установку можно только после выполнения всех требований к параметрам ОС, описанных в руководстве по установке (Oracle® Database Installation Guide 12c Release 1 (12.1) for Oracle Solaris документ № E17752-12).

Подготовка ОС Solaris 10 для установки ПО Oracle включает следующие основные действия:

следующие основные действия: В файл / etc/system необходимо

В файл /etc/system необходимо добавить следующие параметры ядра (см. также

перегрузить сервер.

bash-3.2# more /etc/system

*ident "@(#)system

*

* SYSTEM SPECIFICATION FILE

1.18 05/06/27 SMI" /* SVR4 1.5 */

.

.

set pcie:pcie_aer_ce_mask=0x1 set segkmem_lpsize=0x400000

. set pcie:pcie_aer_ce_mask=0x1 set segkmem_lpsize=0x400000 В файл /etc/inittab необходимо

В файл /etc/inittab необходимо добавить строки для настройки стека tcp/ip:

tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000 > /dev/console tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500 > /dev/console tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000 > /dev/console tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500 > /dev/console

-set /dev/udp udp_largest_anon_port 65500 > /dev/console Нужно модифицировать профиль

Нужно модифицировать профиль пользователя root, а именно снять ограничения "по умолчанию":

projmod -s \ -K "process.max-file-descriptor=(basic,65536,deny),(priv,65536,deny)" \ -K "process.max-sem-nsems=(priv,2048,deny)" \ -K "project.max-sem-ids=(priv,1024,deny)" \ -K "project.max-shm-ids=(priv,256,deny)" \ -K "project.max-shm-memory=(priv,18446744073709551615,deny)" \

user.root

\ user.root Требуется создать группы

Требуется создать группы операционной системы:

# groupadd oinstall

# groupadd dba

системы: # groupadd oinstall # groupadd dba Требуется создать пользователя -

Требуется создать пользователя-владельца инсталляции СУБД:

# /usr/sbin/useradd -g oinstall -G dba s /bin/bash -d /home/oracle \ -m -k /etc/skel oracle

16

Рекомендуется установить bash в качестве рабочей среды для владельца инсталляции Oracle, поскольку часть скриптов, содержащихся в инсталляционных пакетах не работает корректно под оболочкой Bourne.

корректно под оболочкой Bourne. Требуется создать профиль

Требуется создать профиль пользователя oracle:

projadd -p 200 -c "Oracle user" -U oracle \ -G dba,oinstall \ -K "process.max-file-descriptor=(basic,65536,deny),(priv,65536,deny)" \ -K "process.max-sem-nsems=(priv,2048,deny)" \ -K "project.max-sem-ids=(priv,1024,deny)" \ -K "project.max-shm-ids=(priv,256,deny)" \ -K "project.max-shm-memory=(priv,18446744073709551615,deny)" \ oracle.user

Нужно добавить следующую строку в файл /etc/user_attr etc/user_attr

oracle::::project=oracle.user

чтобы привести файл в следующий вид:

bash-3.2# cat /etc/user_attr

#

#

Copyright 2007 Sun Microsystems, Inc. All rights reserved.

#

Use is subject to license terms.

#

#

/etc/user_attr

#

#

execution attributes for profiles. see user_attr(4)

#

07/01/31 SMI"

#

#

adm::::profiles=Log Management lp::::profiles=Printer Management postgres::::type=role;profiles=Postgres Administration,All root::::auths=solaris.*,solaris.grant;profiles=Web Console Management,All;lock_after_retries=no;min_label=admin_low;clearance=admin_high oracle::::project=oracle.user

bash-3.2#

#ident "@(#)user_attr 1.1

Нужно убедиться, что у пользователя oracle установлен активный профиль oracle.user

bash-3.2# su - oracle Oracle Corporation

bash-3.2$ id -pa uid=100(oracle) gid=100(oinstall) groups=100(oinstall),101(dba)

projid=200(oracle.user)

bash-3.2$ logout

SunOS 5.10

Generic Patch

January 2005

bash-3.2$ logout SunOS 5.10 Generic Patch January 2005 Необходимо создать начальную

Необходимо создать начальную базовую структуру директорий

# mkdir -p /u01/app/oracle

17

# chown oracle:oinstall /u01/app/oracle

# chmod -R 775 /u01/

Дистрибутивы СУБД доступны на сайте Oracle после регистрации. Для 64-bit версии Oracle требуется выгрузить solaris.sparc64_12cR1_database_1of2.zip и solaris.sparc64_12cR1_database_2of2.zip в подходящую директорию, извлечь содержимое архивов с помощью программы unzip и запустить инсталлятор Oracle runInstaller. Для работы инсталлятора обязательно наличие графической среды.

Если все требования по предварительной настройке ОС выполнены, то инсталлятор выведет экран "Configure Security Updates" установки.

Шаг 1. "Configure Security Updates" - На этом экране необходимо ввести адрес почты, на который Oracle сможет присылать информацию о проблемах с безопасностью ПО базы данных. Дополнительно можно получать исправления и дополнения по безопасности с My Oracle Support.

по безопасности с My Oracle Support. Рис. 5 Установка ПО Oracle 12c. Экран

Рис. 5 Установка ПО Oracle 12c. Экран 1

18

Шаг 2. Загрузить обновления программного обеспечения - При необходимости можно выгрузить обновления ПО с My Oracle Support. Для доступа нужна учетная запись и соответствующий уровень оплаченной поддержки. Дополнительно можно выбрать использование ранее полученных обновлений или вообще отказаться от них.

или вообще отказаться от них . Рис. 6 Установка ПО Oracle 12c. Экран 2

Рис. 6 Установка ПО Oracle 12c. Экран 2

19

Шаг 3. Опции установки - На этом шаге можно выбрать один из возможных типов установки СУБД: установку ПО и создание БД, просто установку ПО или модернизацию существующей базы данных

существующей базы данных Рис. 7 Установка ПО Oracle 12c. Экран

Рис. 7 Установка ПО Oracle 12c. Экран 3

20

Шаг 4. Grid опции установки - На этом шаге осуществляется выбор типа установки: установка обычной инстанции, узла кластера Oracle Real Application Cluster или одноузлового кластера Oracle RAC One Node.

кластера Oracle RAC One Node. Рис. 8 Установка ПО Oracle 12c. Экран

Рис. 8 Установка ПО Oracle 12c. Экран 4

21

Шаг 5. Выбор языка - На экране осуществляется выбор дополнительных языков для БД. Рекомендуется выбирать все доступные.

выбирать все доступные . Рис. 9 Установка ПО Oracle 12c. Экран

Рис. 9 Установка ПО Oracle 12c. Экран 5

22

Шаг 6. Тип СУБД - На этом шаге вы обязаны выбрать один из типов редакции СУБД: Enterprise (база данных большого предприятия), Standard Edition (средние предприятия и большие отделы) и Standard Edition One

и большие отделы ) и Standard Edition One Рис. 10 Установка ПО Oracle 12c.

Рис. 10 Установка ПО Oracle 12c. Экран 6

23

Шаг 7. Определение пути установки. - На этом шаге выбирается местоположение ПО СУБД в файловой системе.

ПО СУБД в файловой системе. Рис. 11 Установка ПО Oracle 12c.

Рис. 11 Установка ПО Oracle 12c. Экран 7

24

Шаг 8. Создание inventory - На экране предлагается указать место хранения метаданных инсталляции, если ПО Oracle устанавливается первый раз, и группу операционной системы, владеющей данной директорией. Все последующие инсталляции ПО Oracle независимо от версий и типов будут использовать указанное место хранения.

указанное место хранения. Рис. 12 Установка ПО Oracle 12c.

Рис. 12 Установка ПО Oracle 12c. Экран 8

25

Шаг 9. Задание групп операционной системы - На шаге присваиваются привилегии БД существующим группам операционной системы.

группам операционной системы . Рис. 13 Установка ПО Oracle 12c.

Рис. 13 Установка ПО Oracle 12c. Экран 9

26

Шаг 10. Проверка соответствия. - Инсталлятор проверяет, что все параметры системы удовлетворяют требованиям ПО СУБД. Если проверка завершается неудачно, то список ошибок выводится на экран. Рекомендуется перед продолжением установки привести все параметры ОС в соответствие с требованиями Oracle. При нажатии клавиши ignore инсталлятор продолжит работу, несмотря на встретившиеся ошибки.

Шаг 11. Сводка - Инсталлятор выводит итоговое сообщение обо всех опциях, выбранных ранее. На этом шаге можно изменить часть опций.

шаге можно изменить часть опций. Рис. 14 Установка ПО Oracle 12c.

Рис. 14 Установка ПО Oracle 12c. Экран 11

27

Шаг 12. Установка продукта. - На этом шаге инсталлятор производит копирование файлов и другие инсталляционные задачи (линковку, задание полномочий, флагов выполнения и т.д.). Ход установки отображается в процентах выполнения и стадиях.

процентах выполнения и стадиях. Рис. 15 Установка ПО Oracle 12c.

Рис. 15 Установка ПО Oracle 12c. Экран 12

28

Шаг 12а. root скрипты. - Завершающий шаг установки требует, чтобы два скрипта были запущены под суперпользователем root. Этот шаг специфичен для Unix-подобных систем.

для Unix- подобных систем. Рис. 16 Установка ПО Oracle 12c.

Рис. 16 Установка ПО Oracle 12c. Выполнение root скриптов

29

Шаг 13. Завершение - Это то, к чему стремились!

- Это то, к чему стремились! Рис. 17 Установка ПО Oracle 12c.

Рис. 17 Установка ПО Oracle 12c. Завершение установки

Ассистент создания базы данных (Database Create Assistant (DBCA)) В ранних версиях Oracle действие "создание базы данных" означало выполнение команды CREATE DATABASE , которая делала все необходимые действия. Команда требовала введения массы параметров. Вряд ли кто-то сожалеет, что теперь можно обойтись без этого. Database Create Assistant (DBCA)) является существенно более простым средством создания базы данных. По завершении работы DBCA база данных готова к работе, тогда как база, созданная при помощи CREATE DATABASE, требует запуска нескольких скриптов прежде, чем работа с ней будет возможна! Утилита DBCA может быть запущена прямо из инсталлятора, или же она может быть запущена как отдельное приложение в любой момент после завершения установки ПО Oracle.

DBCA работает в двух режимах: интерактивном и пакетном. Интерактивный режим использует графический интерфейс и проводит пользователя через несколько шагов создания и настройки БД. Пакетный режим позволяет создать БД с помощью скрипта. Утилита DBCA запускается в пакетном режиме при задании аргументов командной строки и файла ответов, либо аргументов и файла ответов. В главе описан только интерактивный режим.

30

Для запуска DBCA нужно зарегистрироваться на сервере БД под пользователем, имеющим права для создания и запуска БД. Для запуска DBCA на UNIX/Linux или в командной строке Microsoft Windows нужно ввести команду dbca. Исполняемый модуль dbca расположен в директории ORACLE_HOME/bin. После запуска DBCA нужно ответить на ряд вопросов о типе, размещении и планируемым параметрам базы данных и создать БД. Рассмотрим процедуру создания базы данных "по шагам".

Шаг 1. Операции с БД. На этом шаге нужно выбрать одну из операций: создание базы данных, настройку или удаление базы данных (опции недоступны при отсутствии настроенных БД), настройку шаблонов создания БД или управление перемещаемыми (pluggable) БД (опция недоступна при отсутствии настроенных перемещаемых БД).

настроенных перемещаемых БД). Рис. 18 Создание базы данных при

Рис. 18 Создание базы данных при помощи DBCA. Экран 1

31

Шаг 2. Режим создания БД. На этом шаге необходимо выбрать имя базы данных, тип дисковой памяти, расположение файлов и области быстрого восстановления (fast recovery area), используемый набор символов и пароль администратора БД. Если используется Enterprise версия также можно создать базу контейнерного типа. В расширенном (Advanced) режиме возможно задание много других параметров БД.

много других параметров БД. Рис. 19 Создание базы данных при

Рис. 19 Создание базы данных при помощи DBCA. Экран 2

32

Шаг

3.

Проверка

соответствия

требованиям.

-

необходимые условия для создания БД

DBCA

проверяет,

что

выполняются

все

проверяет, что выполняются все Рис. 20 Создание базы данных при

Рис. 20 Создание базы данных при помощи DBCA. Экран 3

33

Шаг 4. Сводка - На этом экране показано, с какими параметрами будет создана БД в данный момент.

будет создана БД в данный момент. Рис. 21 Создание базы данных при

Рис. 21 Создание базы данных при помощи DBCA. Экран 4

34

Шаг 5. Процесс создания БД - На экране отображается процесс создания базы данных.

процесс создания базы данных. Рис. 22 Создание базы данных при

Рис. 22 Создание базы данных при помощи DBCA. Экран 5

Когда DBCA завершит свою работу, база данных будет полностью готова к использованию, т.е. можно подключаться к БД и создавать пользователей и объекты.

После создания, смены версии БД или установки исправлений следует запустить скрипт utlrp.sql. Этот скрипт перекомпилирует все PL/SQL модули, включая пакеты, процедуры и триггеры, которые могут быть в недействительном состоянии. "По умолчанию" скрипт производит параллельную перекомпиляцию, основываясь на значении параметра CPU_COUNT. Этот шаг необязателен, но Oracle рекомендует сделать его сразу после создания базы данных, а не позднее.

35

Введение в модель арендованной контейнерной базы данных (Multitenant Container Database (CBD))

Преимущества контейнерной базы данных В версии Oracle 12c вводится принципиально новая архитектура - арендованная база данных (опция Multitenant Enterprise Edition). Новая архитектура позволяет рассматривать базу данных Oracle как контейнерную БД (Container database, CDB), которая предоставляет ресурсы для нескольких перемещаемых баз данных (pluggable databases, PDBs), каждая из которых может быть добавлена или удалена из CDB. Существующие БД Oracle могут быть адаптированы для помещения в контейнерную базу. Обратное неверно. Новые перемещаемые БД (PDB) в свою очередь могут быть доступны всем клиентам без необходимости изменения существующих приложений.

К преимуществам модели арендованной контейнерной базы данных относятся:

Консолидация баз данных - Множество перемещаемых баз данных могут находиться внутри - Множество перемещаемых баз данных могут находиться внутри единственной контейнерной БД. В рамках CDB они разделяют единый набор фоновых процессов, серверной и системной памяти при полном разделении данных в рамках индивидуальных PDB. В рамках этой архитектуры отсутствует необходимость в дополнительном обслуживании или смешивании данных как в случае виртуальной БД (Virtual Private Database). Это позволяет размещать много больше перемещаемых баз (PDBs) на используемом оборудовании, нежели в случае использования привычной архитектуры Oracle.

Снижение стоимости - Консолидация нескольких баз может значительно снизить стоимость - Консолидация нескольких баз может значительно снизить стоимость требуемого серверного оборудования. Также контейнерная БД, содержащая десяток перемещаемых баз PDBs требует значительно меньше обслуживания, чем десять отдельных БД. В итоге нужно меньше персонала, правда, более квалифицированного.

Быстрое развертывание - Перемещаемые БД делают очень быстрым процесс миграции или - Перемещаемые БД делают очень быстрым процесс миграции или развертывания данных и кода. Вставка перемещаемой БД в контейнерную, извлечение и вставка в другую контейнерную базу занимают незначительное время.

Упрощенное управление - Управление и мониторинг одной контейнерной БД значительно проще, - Управление и мониторинг одной контейнерной БД значительно проще, чем работа с несколькими отдельными базами, так как есть единый набор файлов и единственная инстанция для обслуживания. При этом упрощаются процедуры резервного копирования и восстановления после сбоев.

Разделение административных обязанностей - Учетные записи арендованных баз являются либо общими, т.е. при их - Учетные записи арендованных баз являются либо общими, т.е. при их использовании возможно подключение к любому контейнеру, в котором у них есть привилегии, либо локальными, т.е. возможно подключение только к одной перемещаемой базе. Обязанности DBA в свою очередь могут быть разделены между контейнером CDB и арендной базой PDB. Администраторы CBD используют общие учетные записи для администрирования CDB. Администраторы PDB пользуются локальными учетными записями для администрирования отдельных перемещаемых баз PDB. Привилегии определены только в рамках контейнера, где они выданы. Локальный пользователь одной перемещаемой базы не имеет привилегий на другую базу внутри общей контейнерной базы CDB.

36

Упрощение настройки - Контроль и настройка одной базы данных проще, чем настройка - Контроль и настройка одной базы данных проще, чем настройка десятка БД.

Упрощение установки обновлений - Установка обновлений или замена версии одной базы данных - Установка обновлений или замена версии одной базы данных значительно проще и менее продолжительны, нежели те же операции с несколькими БД.

Описание арендной архитектуры Арендная архитектура это технология, которая позволяет базе данных Oracle работать как контейнерная база с несколькими, от 0 до 253, перемещаемыми базами (PDB). Контейнер представляет собой набор схем, объектов и связанных с ними конструкций, хранимый в арендованной базе данных. Контейнер это либо перемещаемая БД (PDB), либо корневая база (root или CDB$ROOT). Каждая PDB с точки зрения приложения является отдельной базой данных. В рамках CDB каждая PDB должна иметь уникальный идентификатор ID и имя. Перемещаемая БД (PDB) изолирует данные и операции, поэтому с точки зрения пользователя или приложения, получающего доступ по сети Oracle Net, каждая PDB выглядит так, как будто она являются традиционной базой.

Каждая контейнерная база включает в себя следующие контейнеры:

Единственный контейнер root - Корневой контейнер содержит метаданные ПО Oracle (например, root - Корневой контейнер содержит метаданные ПО Oracle (например, поставленные Oracle исходные коды PL/SQL пакетов) и общих пользователей. Общий пользователь (common user) это пользователь, известный для всех контейнеров. Корневой контейнер называется CDB$ROOT. Все PDB принадлежат корневому контейнеру. Данные пользователей не следует хранить в корневом контейнере, и системно- определенные схемы корневого контейнера никогда не должны меняться. Исключение составляет создание общих пользователей и роли для административных целей.

Единственный контейнер seed PDB - Seed (англ. "семя", "посевной материал") PDB - системно - seed PDB - Seed (англ. "семя", "посевной материал") PDB - системно-поставляемый шаблон базы данных, который может быть использован при создании новых перемещаемых баз данных. seed PDB называется PDB$SEED. Не следует добавлять или изменять объекты в PDB$SEED.

Пользовательские перемещаемые базы PDB , от 0 до 253. - PDB , созданные пользователями (под термином PDB, от 0 до 253. - PDB, созданные пользователями (под термином пользователь имеется в виду администратор БД), это сущности, содержащие данные и код, предназначенные для реализации определенного набора функций или бизнес-задач. Сразу после создания CDB не содержит PDB. Перемещаемые базы данных (PDB) добавляются к контейнерной базе данных по мере необходимости. Каждая из PBD должна иметь уникальное в пределах CDB имя. Более того, поскольку каждая PDB имеет сервис с собственным именем, имя PDB должно быть уникальным в пределах всех CBD, обслуживаемых общим прослушивателем.

Создание и настройка контейнерной базы данных и перемещаемых баз данных

Создание и настройка контейнерной БД (CDB) Для создания CDB нужно выполнить такие же действия, как и для создания обычной БД Oracle. До начала процедуры нужно знать, для каких целей будет использоваться БД и планировать создание в соответствии с этим. Некоторые предварительные рекомендации включают:

37

Спланировать таблицы и индексы перемещаемых БД, которые будут включены с CDB, и оценить размеры требуемого дискового пространства. CDB, и оценить размеры требуемого дискового пространства.

Спланировать размещение файлов CDB в операционной системе. CDB в операционной системе.

Спланировать количество фоновых процессов в CDB. CDB.

Определить глобальное имя CDB , которое будет задано в параметрах DB_NAME и DB_DOMAIN. CDB, которое будет задано в параметрах DB_NAME и DB_DOMAIN.

Разработать стратегию резервного копирования и восстановления для защиты CDB от аварий. CDB от аварий.

Выбрать подходящий набор символов для интернациональных приложений.для защиты CDB от аварий. Оценить начальный размер

Оценить начальный размер табличного пространства SYSAUX. SYSAUX.

Перед тем, как будет создана новая контейнерная БД (CDB), нужно убедиться в следующем:

Должно быть установлено ПО Oracle 12c с уровнем совместимости не менее 12.0.0. Oracle 12c с уровнем совместимости не менее 12.0.0.

Сервер должен обладать достаточным количеством оперативной памяти.совместимости не менее 12.0.0. Сервер должен обладать

Сервер должен обладать достаточным количеством дисковой памяти, чтобы разместить файлы планируемых перемещаемых баз.количеством оперативной памяти. Контейнерная база CDB может быть

Контейнерная база CDB может быть создана как во время, так и после установки ПО Oracle. База CDB может быть создана либо с помощью Database Configuration Assistant (DBCA), либо SQL- командой CREATE DATABASE. Oracle рекомендует использование DBCA. DBCA является наиболее простым методом, и CDB готова к использованию сразу после завершения работы DBCA.

Ассистент DBCA может быть запущен из Oracle Universal Installer или как отдельное приложение в любое время после установки ПО Oracle. Возможно создание CDB в интерактивном или пакетном режиме. В интерактивном режиме используется графический интерфейс, и настройка БД выполняется пошагово. Пакетный режим использует скрипт создания CDB. Как только CDB создана, в нее с помощью утилиты DBCA можно включить новую перемещаемую БД (PDB).

Использование SQL-оператора CREATE DATABASE по созданию CDB сходно с созданием монолитной БД. По сравнению с созданием CDB при помощи DBCA это более трудозатратный процесс. Однако вручную можно создавать CDB при помощи скриптов и выполнять точную настройку опций, что не получится с DBCA. При использовании SQL-оператора CREATE DATABASE нужно указать имена и расположение root файлов и seed файлов. После завершения создания CDB ее файлы могут использоваться для создание новых PDB. Контейнер seed не может быть модифицирован после создания. Имена и расположение файлов seed должны быть указаны одним из следующих способов:

SEED_FILE_NAME_CONVERT - Этот параметр определяет каким образом формировать имена файлов - Этот параметр определяет каким образом формировать имена файлов seed из имен root файлов. Он может быть использован для задания одного или нескольких шаблонов имен файлов и шаблонов замены имен файлов в форме ('string1','string2',' string3',' string4'). Шаблон string2 замещает string1, string4 - string3. Можно задать столько пар, сколько потребуется. Нечетное количество параметров вызовет ошибку. Может быть задано значение NON, что означает отсутствие преобразования. Если параметр не задан, преобразование не производится. SEED_FILE_NAME_CONVERT задает имена файлов для seed файлов в директории

38

/oracle/pdbseed. Шаблоны имен файлов, указанные в этом инициализационном параметре, не могут совпадать с именами файлов или директорий, управляемых Oracle Managed Files.

Oracle Managed Files - Когда разрешено использование Oracle Managed Files, OMF определяет имена и - Когда разрешено использование Oracle Managed Files, OMF определяет имена и расположение файлов seed.

PDB_FILE_NAME_CONVERT - Инициализационный параметр PDB_FILE_NAME_CONVERT может использоваться для - Инициализационный параметр PDB_FILE_NAME_CONVERT может использоваться для указания имен и расположения файлов seed. Если PDB_FILE_NAME_CONVERT включен при создании CDB в инициализационный файл и ни один из двух других методов не задействован, то он определит имена файлов seed.

Если задан более чем один из описанных методов, то приоритет определяется в приведенном выше порядке. Если в конструкции CREATE DATABASE заданы все три метода, то будет использоваться только параметр SEED_FILE_NAME_CONVERT.

Создание и настройка перемещаемой БД (PDB) Для создания перемещаемой БД (PDB) необходимо выполнение следующих условий:

Должна существовать контейнерная БД (CDB). CDB).

CDB должна быть открыта в режиме read/write. должна быть открыта в режиме read/write.

Текущий пользователь должен быть общим пользователем, с текущим контейнером root. root.

Текущий пользователь должен иметь системную привилегию CREATE PLUGGABLE DATABASE. CREATE PLUGGABLE DATABASE.

Имя PDB должно быть уникально для "своей" CDB и для всех CDB , PDB должно быть уникально для "своей" CDB и для всех CDB, обслуживаемых общим прослушивателем.

Перемещаемые PDB , создаваемые в конфигурации Oracle Data Guard с физической standby базой, PDB, создаваемые в конфигурации Oracle Data Guard с физической standby базой, должны удовлетворять дополнительным специфическим ограничениям, см. руководство Oracle Data Guard Concepts and Administration для детальной информации.

Существует четыре (4) метода создания перемещаемой базы данных (PDB) в арендуемой контейнерной БД (CDB):

Использование seed - Файлы seed копируются в новое место и ассоциируются с новой seed - Файлы seed копируются в новое место и ассоциируются с новой перемещаемой БД

Клонирование существующей PDB - Существующая перемещаемая база данных (PDB) может быть PDB - Существующая перемещаемая база данных (PDB) может быть клонирована и включена в контейнерную БД. Используемая в качестве источника PDB может быть частью локальной CDB или другой CDB. Все файлы, принадлежащие PDB-источнику копируются в новое место и ассоциируются с новой PDB.

Включение извлеченной перемещаемой БД - XML- файл с описанием извлеченной совместно с файлами БД - XML-файл с описанием извлеченной совместно с файлами БД включается в CDB.

Преобразование монолитной БД в контейнерную - Пакет DBMS_PDB может быть использован для создания извлеченной БД из - Пакет DBMS_PDB может быть использован для создания извлеченной БД из монолитной БД 12c. Созданная таким образом PDB может быть включена в CDB.

Все описанные техники включают использование оператора CREATE PLUGGABLE DATABASE в тот или иной момент времени. Этот оператор используется для копирования базы данных и

39

включения перемещаемой БД в контейнерную БД согласно требованиям. Этот оператор имеет дополнительные параметры для установки некоторых характеристик PDB:

Дисковая память - Параметр STORAGE указывает количество памяти, которое может быть - Параметр STORAGE указывает количество памяти, которое может быть использовано всеми табличными пространствами, принадлежащими PDB, и объем памяти во временном табличном пространстве "по умолчанию", разделяемом всеми PDB, который может быть использован сессиями PDB. Если установлен STORAGE UNLIMITED или параметр STORAGE не задан, то PDB не имеет ограничений по количеству дисковой памяти.

Расположение файлов - Всего имеется три параметра, влияющих на имена файлов в PDB. - Всего имеется три параметра, влияющих на имена файлов в PDB. Параметр PATH_PREFIX используется для задания директории и вложенных поддиректорий для расположения файлов PDB, когда заданы относительные пути для объектов и определенных параметров инициализации. Параметр FILE_NAME_CONVERT задает имена файлов PDB после включения ее в CDB. Параметр SOURCE_FILE_NAME_CONVERT задает имена PDB файлов до включения ее в CDB.

Шаблон использования временного файла - Параметр TEMPFILE REUSE указывает, что существующий временный файл - Параметр TEMPFILE REUSE указывает, что существующий временный файл временного табличного пространства в целевой директории может быть использован повторно. Если задан этот параметр, и в директории нет файла, то Oracle создаст новый временный файл. Если параметр не задан, Oracle попытается создать временный файл. Если файл с таким же именем, как и создаваемый, существует, то возникнет ошибка, и CDB не будет создана.

Создание перемещаемой БД из seed Для создания перемещаемой БД (PDB) в рамках контейнерной БД (CDB) можно использовать оператор CREATE PLUGGABLE DATABASE с использованием файлов seed.При создании новой PDB из seed должен быть явно указан администратор базы данных DBA для новой PDB. Новая БД будет создана с тремя табличными пространствами: SYSTEM, SYSAUX, TEMP. Администратор создается как локальный пользователь новой PDB и ему назначается роль PDB_DBA. Для создания PDB из seed нужно:

Зарегистрироваться в корневом контейнере базы CDB с помощью SQL*Plus. CDB с помощью SQL*Plus.

Выполнить CREATE PLUGGABLE DATABASE команду, указав локального администратора для PDB . CREATE PLUGGABLE DATABASE команду, указав локального администратора для PDB. При необходимости нужно указать другие параметры.

Открыть новую перемещаемую базу в режиме read/write , чтобы Oracle смог завершить интеграцию новой PDB в CDB. read/write, чтобы Oracle смог завершить интеграцию новой PDB в CDB.

Выполнить резервное копирование PDB. PDB.

Например:

SQL> CREATE PLUGGABLE DATABASE ocp_pdb ADMIN USER ocp_adm IDENTIFIED BY password;

Клонирование перемещаемой БД С помощью оператора CREATE PLUGGABLE DATABASE можно клонировать существующую PDB. При клонировании существующей БД должен быть задан параметр FROM. PDB-источник может находиться как внутри локальной, так в удаленной CDB. Для клонирования БД пользователь должен

40

обладать привилегией CREATE PLUGGABLE DATABASE в контейнере CBD$ROOT и исходной PDB, а исходная PDB должна быть открыта в режиме read-only. Для клонирования PDB нужно:

Зарегистрироваться в корневом контейнере базы CDB с помощью SQL*Plus. CDB с помощью SQL*Plus.

Выполнить CREATE PLUGGABLE DATABASE команду, указав исходную PDB в параметре FROM . При CREATE PLUGGABLE DATABASE команду, указав исходную PDB в параметре FROM. При необходимости нужно указать другие параметры.

Открыть новую перемещаемую базу в режиме read/write , чтобы Oracle смог завершить интеграцию новой PDB в CDB. read/write, чтобы Oracle смог завершить интеграцию новой PDB в CDB.

Выполнить резервное копирование PDB. PDB.

Следующая существующей pdb1:

команда

создает

новую

перемещаемую

базу

данных

pdb2

на

основе

SQL> CREATE PLUGGABLE DATABASE pdb2 FROM pdb1 PATH_PREFIX = '/u01/oracle/pdb2' FILE_NAME_CONVERT = ('/u01/oracle/pdb1/', '/u01/oracle/pdb2/');

Включение извлеченной перемещаемой БД в контейнерную БД Эта технология использует XML-файл, содержащий описание метаданных существующей перемещаемой БД (PDB), совместно со связанными файлами БД для включения в CDB. XML-файл описывает расположение файлов PDB. Для включения извлеченной PDB в CDB нужно:

Зарегистрироваться в корневом контейнере базы CDB с помощью SQL*Plus. CDB с помощью SQL*Plus.

Запустить процедуру DBMS_PDB.CHECK_PLUG_COMPATIBILITY , чтобы определить совместимость PDB c CBD. Шаг не DBMS_PDB.CHECK_PLUG_COMPATIBILITY, чтобы определить совместимость PDB c CBD. Шаг не является обязательным.

Выполнить команду CREATE PLUGGABLE DATABASE , указав XMP- файл, содержащий описание БД в параметре CREATE PLUGGABLE DATABASE, указав XMP-файл, содержащий описание БД в параметре USING. При необходимости нужно указать другие параметры.

Открыть новую перемещаемую базу в режиме read/write , чтобы Oracle смог завершить интеграцию новой PDB в CDB. read/write, чтобы Oracle смог завершить интеграцию новой PDB в CDB.

Выполнить резервное копирование PDB. PDB.

Например:

SQL> CREATE PLUGGABLE DATABASE ocp_pdb USING '/u01/aux/ocp_pdb.xml' NOCOPY TEMPFILE REUSE;

Создание перемещаемой БД на основе монолитной Существует три способа преобразовать монолитную БД в перемещаемую и включить ее в контейнерную БД:

DBMS_PDB - С помощью пакета DBMS_PDB создать XML- файл , описывающий метаданные БД. - С помощью пакета DBMS_PDB создать XML-файл, описывающий метаданные БД. Этот файл описывает файлы монолитной (классической) БД. Затем возможно включить эти файлы в CDB, используя этот XML-файл, как это описано ранее. Чтобы использовать эту технологию, монолитная БД должна быть версии 12с. Более старые версии должны быть модернизированы до 12с.

41

Oracle Data Pump - В данном методе используется утилиты Oracle Data Pump для экспорта - В данном методе используется утилиты Oracle Data Pump для экспорта данных из монолитной БД, которые затем импортируются в перемещаемую БД (PDB).

GoldenGate Replication - В данном методе используется репликация данных из монолитной БД - В данном методе используется репликация данных из монолитной БД в перемещаемую с помощью продукта GoldenGate. Когда перемещаемая БД получит все данные из монолитной, пользователи могут переключиться на перемещаемую.

Удаление перемещаемой базы данных

DROP PLUGGABLE DATABASE.

Перемещаемая БД (PDB) может быть удалена в случае переноса в другую контейнерную БД (CDB) или при отсутствии необходимости в ней. После удаления PDB, управляющий файл CDB модифицируется таким образом, чтобы удалить все ссылки на удаляемую PDB. Команда DROP не производит удаление

каких-либо архивированных redo-журналов и архивных наборов для удаленной БД. Для их удаления нужно использовать Oracle Recovery Manager (RMAN). Когда перемещаемая БД удалена можно либо сохранить, либо удалить файлы данных, связанные с этой БД, используя один из следующих параметров:

Для

удаления

перемещаемой

БД

применяется

команда

KEEP DATAFILES - "по умолчанию". Файлы данных сохраняются. Временный файл - "по умолчанию". Файлы данных сохраняются. Временный файл перемещаемой БД будет удален, даже если включен этот параметр, т.к. этот файл больше не нужен.

INCLUDING DATAFILES - Эта опция удаляет файлы данных с диска. Для перемещаемой БД, - Эта опция удаляет файлы данных с диска. Для перемещаемой БД, созданной с параметром SNAPSHOT COPY, параметр INCLUDING DATAFILES обязательно должен быть указан при удалении перемещаемой БД.

Для удаления перемещаемой БД должны выполняться следующие условия:

PDB должны быть смонтирована или она должна быть закрыта. должны быть смонтирована или она должна быть закрыта.

Пользователь должен иметь SYSDBA или SYSOPER привилегии, выданные глобально или локально в PDB . SYSDBA или SYSOPER привилегии, выданные глобально или локально в PDB. Сессия должна быть установлена с параметром AS SYSDBA или AS SYSOPER.

Для удаления перемещаемой БД нужно:

Зарегистрироваться в корневом контейнере CDB с помощью SQL*Plus. CDB с помощью SQL*Plus.

Выполнить команду DROP PLUGGABLE DATABASE , указав удаляемую БД . DROP PLUGGABLE DATABASE, указав удаляемую БД.

Например,

SQL> DROP PLUGGABLE DATABASE ocp_pdb INCLUDING DATAFILES;

Преобразование монолитной базы Oracle данных в перемещаемую базу данных Как говорилось ранее, существует три способа преобразовать монолитную базу данных (БД) в перемещаемую: при помощи пакета DBMS_PDB, утилитами Oracle Data Pump и с помощью Goldengate репликации. В этом разделе рассматривается процедура DBMS_PDB.DESCRIBE. Утилиты Oracle Data Pump рассматриваются далее, а продукт Golden Gate не включен в изложение, т.к. не является частью экзамена.

42

Чтобы преобразовать монолитную БД в перемещаемую с использованием пакета DBMS_PDB, требуется, чтобы монолитная была в транзакционно-целостном состоянии. Кроме того, она должна быть запущена в режиме read-only. Как только монолитная БД запущена в режиме read-only, следует подключиться к ней и выполнить процедуру DBMS_PDB.DESCRIBE. Эта процедура создаст XML-файл с описанием монолитной БД. В примере создается файл ocp_db.xml в директории /u01/oracle

SQL> BEGIN DBMS_PDB.DESCRIBE( pdb_descr_file => '/u01/oracle/ocp_db.xml'); END;

/

По завершению процедуры создается XML-файл и файлы монолитной базы могут быть включены в контейнерную БД (CDB). В этом момент можно остановить монолитную базу и выдать команду CREATE PLUGGABLE DATABASE с подходящими параметрами, например

SQL> CREATE PLUGGABLE DATABASE ocp_db USING '/u01/oracle/ocp_db.xml' COPY FILE_NAME_CONVERT = ('/u01/oracle/db01/', '/u01/oracle/ocp_db/');

Перед первым открытием новой перемещаемой БД нужно обязательно выполнить скрипт ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql, для чего следует переключиться в созданную перемещаемую базу данных с помощью команды

SQL> ALTER SESSION SET CONTAINER=ocp_db;

и выполнить этот скрипт:

SQL> @?/rdbms/admin/noncdb_to_pdb.sql

После завершения скрипта новая перемещаемая БД должна быть открыта в режиме read- write для завершения интеграции ее в контейнерную базу CDB.

SQL> ALTER SESSION SET CONTAINER=ocp_db;

SQL> ALTER PLUGGABLE DATABASE OPEN;

При попытке открыть новую перемещаемую БД в первый раз в режиме read-only будет выдана ошибка. Как только перемещаемая БД была открыта в режиме read-write, необходимо выполнить резервное копирование новой перемещаемой БД.

Управление контейнерными и перемещаемыми базами данных Приложения могут получать доступ к корневой БД или перемещаемым БД через сервисы. Сервисы БД являются дополнительными свойствами перемещаемых БД. При создании новой перемещаемой БД автоматически создается новый сервис с таким же именем. Если служба Oracle Net Services настроена корректно, то возможен доступ к перемещаемой БД через имя сервиса с использованием либо простого синтаксиса соединения (easy connect syntax) или c использованием имени сервиса из файла tnsnames.ora. При установлении соединения с использованием имени

43

сервиса с непустым именем PDB имя пользователя в сессии определяется в контексте PDB. Если имя сервиса не указано или использовано имя сервиса с пустым значением PDB, то будет считаться, что пользователь относится к контексту root.

Если две и более контейнерных БД используют общий прослушиватель, и эти БД содержат две и более перемещаемых БД с одинаковым именем сервиса, то подключение будет носить случайный характер. Все сервисы для перемещаемых БД должны быть либо уникальны для данной системы, либо каждая контейнерная БД должны иметь свой собственный прослушиватель.

К каждой перемещаемой БД можно подключиться с использованием команды CONNECT SQL*Plus. Альтернативным способом является команда SQL ALTER SESSION SET CONTAINER. Команда CONNECT может быть использована для подсоединения к корню или перемещаемой БД в контейнерной базе. Любой из перечисленных ниже способов может быть использован для доступа к корневому контейнеру через CONNECT из SQL*Plus:

локальное соединениеконтейнеру через CONNECT из SQL*Plus: локальное соединение с

локальное соединение с системной аутентификациейиз SQL*Plus: локальное соединение соединение с БД с использованием

соединение с БД с использованием простого синтаксисас системной аутентификацией соединение с БД с использованием

соединение с БД с использованием имени сервисапростого синтаксиса удаленное соединение с БД с

удаленное соединение с БД с использованием внешней аутентификациейс использованием имени сервиса Чтобы установить сессию с

Чтобы установить сессию с корневым контейнером, необходимо быть общим пользователем и иметь привилегию CREATE SESSION в корневом контейнере. Для подсоединения к корневому контейнеру с использованием команды CONNECT SQL*Plus следует запустить SQL*Plus с параметром /NOLOG

$ sqlplus /nolog

Находясь в SQL*Plus можно установить сессию с корневым контейнером используя:

локальное соединениекорневым контейнером используя : SQL> connect username/password локальное

SQL> connect username/password

локальное соединение с системной аутентификациейсоединение SQL> connect username/password SQL> connect / as sysdba соединение с

SQL> connect / as sysdba

соединение с использование имени сервисааутентификацией SQL> connect / as sysdba SQL> connect username/pasword@ocp_db Любой из

SQL> connect username/pasword@ocp_db

Любой из следующих способов может быть использован для установления соединения с перемещаемой БД с использованием команды CONNECT из SQL*Plus:

соединение с БД с использованием синтаксиса easy connect easy connect

SQL> connect username/password@host[:port][/service_name]

44

соединение с БД с использованием имени сервисаSQL> connect username/password@service_name Чтобы пользователь мог установить

SQL> connect username/password@service_name

Чтобы пользователь мог установить соединение с перемещаемой БД, пользователь должен быть общим, и ему должна быть присвоена привилегия CREATE SESSION глобально или в данной перемещаемой БД, или он должен быть локальным пользователем с привилегией CREATE SESSION. Только пользователь с одной из ролей SYSDBA, SYSOPER, SYSBACKUP, SYSDG может подключаться с перемещаемой БД в смонтированном состоянии. Для соединение с перемещаемой БД с использованием команды CONNECT SQL*Plus нужно запустить SQL*Plus с параметром /nolog

$ sqlplus /nolog

следующая

команда

устанавливает

перемещаемой БД (PDB) ocp_db:

SQL> connect user@ocp_db

соединение

локального

пользователя

user

с

Если сессия установлена для общего пользователя контейнерной БД, то следующая команда может быть использована для перехода в другой контейнер

SQL> ALTER SESSION SET CONTAINER=container_name;

,где container_name может быть одним из следующих:

CDB$ROOT для переключения в корневой контейнер для переключения в корневой контейнер

PDB$SEED для перехода в seed контейнер для перехода в seed контейнер

имя перемещаемой БД (PDB) PDB)

Запуск и остановка контейнерной (CDB)/перемещаемой (PDB) базы данных

виде

одиночного экземпляра. Процесс запуска контейнерной БД ничем не отличается от запуска

монолитной. Команды STARTUP NOMOUNT, STARTUP MOUNT

контейнерной БД и имеют такое же назначение. Однако статус перемещаемой БД внутри контейнерной БД изменился. Для запуска экземпляра контейнера следует подключиться к корневому контейнеру с привилегией SYSDBA. Как только экземпляр запущен, можно воспользоваться представлением V$PDBS для определения статуса перемещаемых БД. Контейнерная БД может быть

запущена в режиме:

и STARTUP OPEN работают в

За

исключением

среды

Real

Application

Cluster

контейнерная

БД

выполняется

в

NOMOUNT - Если контейнерная БД находится в состоянии NOMOUNT , то инстанция - Если контейнерная БД находится в состоянии NOMOUNT, то инстанция запущена, но перемещаемые БД не имеют статуса, и запрос к V$PDBS не вернет каких- либо данных.

MOUNT - Если контейнерная БД смонтирована, то управляющий файл - Если контейнерная БД смонтирована, то управляющий файл экземпляра открыт. Корневой контейнер и все контейнеры будут в статусе MOUNTED.

OPEN - Если контейнерная БД открыта, то корневой контейнер будет открыт. - Если контейнерная БД открыта, то корневой контейнер будет открыт. SEED контейнер будет открыт в режиме read-only. Все остальные контейнеры будут в состоянии MOUNT.

45

Когда контейнерная БД открыта, можно открыть перемещаемые БД по отдельности или одновременно:

SQL> ALTER PLUGGABLE DATABASE ocp_db OPEN; SQL> ALTER PLUGGABLE DATABASE ALL OPEN; SQL> ALTER PLUGGABLE DATABASE ALL EXCEPT ocp_db OPEN;

Остановка экземпляра контейнерной БД не отличается от остановки данных. Для остановки экземпляра необходимо выполнение следующих условий:

монолитной

базы

БД должна быть открыта или смонтированаусловий: монолитной базы Текущий пользователь должен

Текущий пользователь должен быть общим пользователем с одной из привилегий SYSDBA, SYSOPER, SYSBACPUP, SYSDG SYSDBA, SYSOPER, SYSBACPUP, SYSDG

Текущим контейнером должен быть CDB$ROOT CDB$ROOT

Режим перемещаемой БД может быть изменен SQL командой ALTER PLUGGABLE DATABASE или SQL*Plus командой STARTUP. Для перемещаемой БД возможно одно из следующих состояний:

OPEN READ WRITE - в этом режиме разрешены запросы и пользовательские транзакции с - в этом режиме разрешены запросы и пользовательские транзакции с генерацией журналов изменений.

OPEN READ ONLY - в этом режиме разрешены запросы, но запрещены изменения. - в этом режиме разрешены запросы, но запрещены изменения.

OPEN MIGRATE - в этом режиме разрешен запуск скриптов для модификации словаря - в этом режиме разрешен запуск скриптов для модификации словаря перемещаемой БД. Перемещаемая БД находится в этом режиме после команды ALTER DATABASE OPEN UPGRADE.

MOUNTED - в смонтированном состоянии перемещаемая БД ведет себя - в смонтированном состоянии перемещаемая БД ведет себя аналогично смонтированной монолитной БД. Никакие изменения объектов не разрешены, и объекты доступны только для администраторов.

Если текущим контейнером является корневой, то команда ALTER PLUGGABLE DATABASE изменяет состояние указанных перемещаемых БД (PDB). Если PDB открыта командой ALTER PLUGGABLE DATABASE OPEN, то режим READ WRITE является значением "по умолчанию". Исключением является случай, когда PDB принадлежит контейнерной БД, используемой в качестве физической standby базы данных, для которой значением "по умолчанию" является READ ONLY. Перемещаемые БД, состояние которых должно быть изменено, могут быть указаны:

в виде списка из одной или нескольких БД, разделенных запятыми;изменено, могут быть указаны : параметра ALL , что указывает на

параметра ALL , что указывает на все доступные БД в рамках контейнерной БД; ALL, что указывает на все доступные БД в рамках контейнерной БД;

ALL EXCEPT, что указывает на необходимость изменения всех БД, за исключением , что указывает на необходимость изменения всех БД, за исключением явно указанных.

Примеры:

SQL> ALTER PLUGGABLE DATABASE ocp_db, test OPEN READ WRITE; SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ WRITE; SQL> ALTER PLUGGABLE DATABASE ocp_db OPEN READ ONLY RESTRICTED; SQL> ALTER PLUGGABLE DATABASE ALL EXCEPT ocp_db OPEN;

46

Если текущим контейнером является корневой, то можно использовать команду STARTUP PLUGGABLE DATABASE для открытия отдельной перемещаемой БД. Команда STARTUP PLUGGABLE DATABASE имеет следующие опции:

FORCE - закрывает открытую перемещаемую БД перед последующим открытием - закрывает открытую перемещаемую БД перед последующим открытием в read- write.

RESTRICT - открывает PDB в режиме, позволяющим устанавливать сессии с БД - открывает PDB в режиме, позволяющим устанавливать сессии с БД только пользователям с привилегией RESTRICTED SESSION.

OPEN - открывает перемещаемую БД либо режиме read-write или read-only . Вы можете - открывает перемещаемую БД либо режиме read-write или read-only. Вы можете указать OPEN READ WRITE или OPEN READ ONLY. "по умолчанию" используется READ WRITE.

Примеры:

SQL> STARTUP PLUGGABLE DATABASE ocp_db OPEN; SQL> STARTUP PLUGGABLE DATABASE ocp_db RESTRICT; SQL> STARTUP PLUGGABLE DATABASE ocp_db OPEN READ ONLY; SQL> STARTUP PLUGGABLE DATABASE ocp_db FORCE;

Команда ALTER PLUGGABLE DATABASE также используется для закрытия одной или нескольких перемещаемых БД. Чтобы закрыть PDB, нужно подключиться к корневому контейнеру с привилегией SYSOPER или SYSDBA и выполнить команду ALTER PLUGGABLE DATABASE CLOSE, указав имена закрываемых перемещаемых БД. Если команда содержит ключевой слово IMMEDIATE, то транзакции в выбранной БД откатываются назад и все сессии принудительно закрываются. Если ключевое слово IMMEDIATE отсутствует, то команда "подвисает", ожидая завершения всех сессий с данной перемещаемой БД. Все файлы данных перемещаемой БД будут закрыты и недоступны для пользователей. Команды SHUTDOWN IMMEDIATE и ALTER PLUGGABLE DATABASE CLOSE эквиваленты с точки зрения перемещаемых баз данных.

Примеры:

SQL> ALTER PLUGGABLE DATABASE ocp_db, test CLOSE; SQL> ALTER PLUGGABLE DATABASE ALL CLOSE; SQL> ALTER PLUGGABLE DATABASE ALL EXCEPT testdb CLOSE IMMEDIATE;

Изменение параметров экземпляра для контейнерной (CDB) или перемещаемой (PDB) БД Контейнерная БД имеет единственный бинарный файл параметров SPFILE независимо от количества перемещаемых БД. Любой параметр инициализации, установленный на корневом уровне, устанавливается во всех PDB, которые содержатся в CDB. Многие, но не все, инициализационные параметры могут быть установлены на уровне отдельных перемещаемых БД. Список таких параметров может быть получен следующим запросом:

SQL> SELECT name FROM v$system_parameter WHERE ispdb_modifiable = 'TRUE' ORDER BY name;

47

Любой из этих параметров, неустановленный индивидуально для PDB, наследуется из параметра, установленного в корневом контейнере. Значения параметров задаются на уровне PDB с помощью команды ALTER SYSTEM. Если опция видимости изменений SCOPE установлена в SPFILE или BOTH, то значения параметра будет сохранены после закрытия/повторного открытия перемещаемой БД или после перезапуска контейнерной БД в целом. Параметры, установленные таким образом, также переносятся при клонировании БД и извлечении/включении перемещаемых БД. Любой параметр, не включенный в результат приведенного выше запроса, может быть установлено только для корневого контейнера и, следовательно, является общим для всех PDB.

Управление табличными пространствами, общими и локальными пользователями, привилегиями и ролями

Управление табличными пространствами контейнерной (CDB) или перемещаемой (PDB) БД

Табличные пространства в контейнерной арендуемой БД служат тем же целям и в большинстве случаев используются таким же образом, как и монолитной БД. Синтаксис создания и модификации табличных пространств в целом не изменился. Есть несколько моментов, специфичных для табличных пространств в контейнерной БД:

Постоянное табличное пространство может принадлежать только одному контейнеру.

При создании табличного пространства в контейнере, табличное пространство связывается с контейнером.только одному контейнеру. Контейнерная БД может иметь

Контейнерная БД может иметь только одно табличное пространство отката UNDO или одно активное пространство UNDO для каждого экземпляра RAC CDB. UNDO или одно активное пространство UNDO для каждого экземпляра RAC CDB.

Существует одно временное табличное пространство "по умолчанию" для всей контейнерной БД. Корневой контейнер и перемещаемые БД также могут иметь свое собственное временное табличное пространство "по умолчанию". .

Поскольку постоянное табличное пространство может быть связано только с одним контейнером, каждый контейнер должен иметь собственное постоянное табличное пространство "по умолчанию". Пользователи, подключенные к данному контейнеру и не имеющие явного пространства "по умолчанию", будут использовать пространство "по умолчанию" контейнера. При подключении к CDB команда установки постоянного табличного пространства "по умолчанию" выглядит так

SQL> ALTER DATABASE DEFAULT TABLESPACE tbs_users_cdb;

При

подключении

к

перемещаемой

БД

команда

ALTER

DATABASE

сохранена

для

совместимости, но предпочтимым синтаксисом является:

SQL> ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE tbs_users_pdb;

Контейнерная БД будет иметь только одно временное табличное пространство "по умолчанию" (или группу табличных пространств). Чтобы создать или изменить это табличное пространство нужно, чтобы текущим контейнером был CDB$ROOT. Можно создать дополнительные временные табличные пространства в корне и назначить их пользователям. Аналогично, каждая

48

контейнерная БД может содержать одно временное табличное пространство "по умолчанию" и временные табличные пространства, которые могут быть назначены пользователям. Когда перемещаемая БД извлекается из контейнерной БД, ее временные табличные пространства тоже извлекаются.

Управление пользователями и привилегиями в контейнерной (CDB) или перемещаемой (PDB) БД Общий пользователь это пользователь БД, имеющий одинаковую идентичность в корневой и любой существующей и будущей перемещаемой БД. Общие пользователи могут подсоединяться и выполнять действия в корневом контейнере и внутри любого контейнера, в котором они имеют привилегии. Пользователь, подключенный к корневому контейнеру, может выполнять определенные операции (ALTER PLUGGABLE DATABASE, CREATE USER, CREATE ROLE), которые влияют на перемещаемые БД. Однако большинство операций может быть выполнено внутри текущего контейнера. Пользователи вначале должны явно переключиться на контейнер, где нужно произвести действия, а потом произвести требуемые операции. Например, общий пользователь не может выполнять запросы к таблицам/представлениям в перемещаемой БД, если она не является текущим контейнером.

Создание общего пользователя Для создания общего пользователя нужно выполнить ряд условий:

Нужно подключиться к корневому контейнеру и обладать общей системной привилегией CREATE USER. CREATE USER.

Текущим контейнером сессии должен быть CDB$ROOT. CDB$ROOT.

Имя общего пользователя должно начинаться с C ## или c ## и содержать только ASCII или EBCDIC символы . C## или c## и содержать только ASCII или EBCDIC символы.

Чтобы явно указать, что пользовательская учетная запись является общей, нужно в команде CREATE USER указать опцию CONTAINER=ALL . Если текущим контейнером является CREATE USER указать опцию CONTAINER=ALL. Если текущим контейнером является корневой, то при отсутствии опции CONTAINER в указанной команде, неявно предполагается CONTAINER=ALL.

Не следует создавать какие-либо объекты в схемах общих пользователей. Такие объекты не могут быть пересекать границы перемещаемых БД и могут вызвать проблемы при их переносе. В следующем примере создается общий пользователь и ему присваиваются привилегии SET CONTAINER и CREATE SESSION, необходимые для перемещения между контейнерами:

SQL> CREATE USER c##ocp_admin IDENTIFIED BY password DEFAULT TABLESPACE ts_cdb_users QUOTA 100M ON ts_cdb_users TEMPORARY TABLESPACE temp_ts CONTAINER = ALL; SQL> GRANT SET CONTAINER, CREATE SESSION TO c##ocp_admin CONTAINER = ALL;

49

Создание локального пользователя Локальные пользователи определены только в той перемещаемой БД, где созданы. Они не могут установить соединение и им не могут быть выданы привилегии в других контейнерах. Возможно, конечно, создать пользователей с одинаковыми именами в разных перемещаемых БД, но эти учетные записи не имеют ничего общего, кроме имени. Чтобы создать локального пользователя нужно:

Нужно подключиться к перемещаемой БД, в которой нужно создать пользователя, и иметь привилегию CREATE USER. CREATE USER.

Имя локального пользователя не может начинаться на C ## или c##. C## или c##.

Опция CONTAINER=CURRENT может быть явно включена в команду CREATE USER , чтобы указать CONTAINER=CURRENT может быть явно включена в команду CREATE USER, чтобы указать пользователя, как локального. При подключении к перемещаемой БД при неуказанном параметре CONTAINER подразумевается CONTAINER=CURRENT.

Например:

SQL> CREATE USER ocp_user IDENTIFIED BY password DEFAULT TABLESPACE ts_pdb_users QUOTA 100M ON ts_pdb_users TEMPORARY TABLESPACE temp_ts PROFILE ocp_profile CONTAINER = CURRENT;

Привилегии общих и локальных пользователей Общие и локальные пользователи могут выдать привилегии друг другу. Определенная привилегия, например CREATE ANY TABLE, не является общей или локальной сама по себе. Если CREATE ANY TABLE выдана общим образом, то она становится общей привилегией, если локально, то локальной.

Общие выданные привилегии:

Привилегия, выданная "в общем", может быть использована в любом существующем и будущем контейнере.Общие выданные привилегии: Только общие пользователи могут

Только общие пользователи могут выдавать привилегии "в общем" и только общим пользователям или ролям.и будущем контейнере. Выдающий привилегии должен быть

Выдающий привилегии должен быть подключен к корневому контейнеру и должен явно указывать параметр CONTAINER=ALL в команде GRANT. CONTAINER=ALL в команде GRANT.

Могут включать в себя системные и объектные привилегии.параметр CONTAINER=ALL в команде GRANT. Не следует выдавать общие

Не следует выдавать общие привилегии роли PUBLIC. PUBLIC.

Локальные привилегии:

Локально выданные привилегии могут быть использованы только контейнере, где были выданы, даже, если этим контейнером был корневой.роли PUBLIC. Локальные привилегии: И общие, и локальные

И общие, и локальные пользователи могут давать привилегии локально.где были выданы, даже, если этим контейнером был корневой. 50

50

И общие, и локальные пользователи могут давать привилегии другим общим или локальным ролям.Выдающий привилегии должен быть подключен к контейнеру и должен

Выдающий привилегии должен быть подключен к контейнеру и должен указать параметр CONTAINER=CURRENT в команде GRANT. CONTAINER=CURRENT в команде GRANT.

Любой пользователь может выдавать привилегии локально любому другому пользователю или роли (общей или локальной) или роли PUBLIC. PUBLIC.

Параметр CONTAINER в команде GRANT или REVOKE определяет, где выдаются или отзываются привилегии. Если параметр CONTAINER явно установлен в ALL, то команда выдает привилегии во всех существующих и будущих контейнерах. При использовании CURRENT привилегии определяются в локальном контейнере. Значение CURRENT ставится "по умолчанию", если опция опущена за исключением, когда вы подключены к корневому контейнеру, тогда "по умолчанию" будет ALL. В примере общему пользователю c##ocp выдается общая привилегия CREATE TABLE. В результате пользователь сможет пользоваться привилегией во всех имеющихся и будущих контейнерах.

SQL> GRANT CREATE TABLE TO c##ocp CONTAINER=ALL;

Общие роли создаются в корневом контейнере и известны во всех существующих и будущих контейнерах. Все предопределенные и поставляемые Oracle роли являются общими. Локальные роли существуют только в перемещаемых БД, где созданы, и могут быть использованы только там. Локальные роли не могут иметь каких-либо общих привилегий. Общие и локальные пользователи взаимодействуют с общими и локальными ролями следующим образом:

Общие пользователи могут создавать общие роли и выдавать их другим общим и локальным пользователям.ролями следующим образом: Общая роль может быть выдана

Общая роль может быть выдана общему пользователю в общем или локально.общим и локальным пользователям. Если общая роль выдана

Если общая роль выдана локальному пользователю, то привилегии роли применимы только в рамках локального контейнера.в общем или локально. Локальные пользователи не могут

Локальные пользователи не могут создавать глобальные роли.в рамках локального контейнера. Локальные пользователи могут

Локальные пользователи могут выдавать общие роли общим локальным пользователям.могут создавать глобальные роли. Если выполняются следующие

Если выполняются следующие условия, то привилегии выданные "в общем" для общей роли применяются в корневом контейнере и во всех существующих и будущих контейнерах:

И выдающий, и получающий роль являются общими пользователями.и будущих контейнерах: Выдающий роль имеет выданную

Выдающий роль имеет выданную "в общем" SET CONTAINER привилегию и опцию ADMIN OPTION для общей роли. SET CONTAINER привилегию и опцию ADMIN OPTION для общей роли.

Команда GRANT содержит опцию CONTAINER_ALL. GRANT содержит опцию CONTAINER_ALL.

Имя общей роли должно начинаться с C## или c## и содержать только ASCII или EBCDIC символы. Это правило не распространяется на поставляемые Oracle роли, такие как DBA. При создании роли параметр CONTAINER должен быть установлен в ALL. За исключением случая, когда вы подключены к корневому контейнеру, отсутствие параметра в команде CREATE ROLE приведет к тому, что роль будет создана в текущей PDB. Если параметр CONTAINER опущен, когда вы подключены к

51

корневому контейнеру, "по умолчанию" роль будет создана как общая. В примере создается общая роль c##ocp

SQL> CREATE ROLE c##ocp container=ALL;

Резервное копирование, восстановление и ретроспективный откат для контейнерной и перемещаемой БД

Выполнение резервного копирования контейнерной или перемещаемой БД Резервное копирование базы данных Oracle в арендной архитектуре можно выполнять с помощью утилиты RMAN или EM Cloud Control. Существует возможность выполнять резервное копирование или восстановление контейнерной БД полностью, т.е. со всеми контейнерами, отдельно корневого контейнера, или любой из перемещаемых БД. Также существует возможность резервировать и восстанавливать отдельные табличные пространства и файлы данных в отдельных перемещаемых БД. Резервирование каждого элемента контейнерной БД отдельно (корневой контейнер и перемещаемые БД) функционально эквивалентно в терминах восстановимости контейнерной БД полностью.

Действия, требуемые для резервного копирования контейнерной БД, эквивалентны операциям полного резервного копирования монолитной БД. При резервировании контейнерной БД целиком, RMAN выполняет резервирование корневого контейнера, всех перемещаемых БД, всех архивированных журнальных файлов. Из полученного резервного набора можно восстановить контейнерную БД в целом, только корневой контейнер или комбинацию перемещаемых баз, включенных в резервный набор. Чтобы выполнить резервное копирование следует запустить RMAN, подключиться к корневому контейнеру, как общий пользователь с полномочиями SYSBACKUP или SYSDBA и к каталогу восстановления, если он используется. База данных должна быть либо открыта, либо смонтирована. После этого можно выдать подходящие команды резервирования в командном интерпретаторе RMAN:

Резервирование контейнерной БД целиком:

RMAN> BACKUP DATABASE;

Выполнить

резервное

копирование

БД,

переключить

активные

архивированные журналы в резервный набор:

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

redo-журналы,

включив

Выполнить резервное копирование корневого контейнера

RMAN> BACKUP DATABASE ROOT;

Выполнить резервное копирование перемещаемой БД

Есть два способа выполнить резервное копирование перемещаемой БД с помощью RMAN:

52

Установить соединение с корневым контейнером, выдать команду BACKUP

Установить соединение с корневым контейнером, выдать команду BACKUP PLUGGABLE DATABASE из командной строки интерпретатора