betacode

Структура базы данных и облачные функции в Oracle 12c

  1. Введение
  2. 4 особенные свойства Oracle 12c
  3. Структура Oracle 12c
  4. Работа с Oracle через SQLPlus

1. Введение

В этой статье я ознакомлю вас с структурой Oracle 12c и облачными функциями недавно представленные в этой версии.

2. 4 особенные свойства Oracle 12c

Oracle Database 12c имеет 4 выделяющихся функций:
  • Во-первых, она может объединить компонентную базу данных 252 (так же является продуктом Oracle) в 1 контейнер базы данных (container database), через который оптимизирует вычислительные ресурсы и сокращает расходы аппаратной инфраструктуры. Если в предыдущей системе Database, 1 сервер мог установить максимум 50 Database нужно было 20GB памяти, то с новой технологией Database 12c, емкость ресурсов памяти могла быть уменьшена в 6 раз.
  • Во-вторых, автоматизировать механизм оптимизации данных, чтобы контролировать систему хранения. Автоматизирована манипуляция перемещения данных в подходящий уровень хранения с технологией Data Heat Map: основан на термальной карте который отмечает частоту вхождения данных. Решение Oracle помогает бизнесу решать о перемещении данных с меньшим доступом в подходящее устройство хранения (малодоступные данные будут перемещены в устройства с меньшим расходом, многодоступные данных будут перемещены в устройства с высокой скоростью и дорогими расходами).
  • В-третьих, имеется функция редактирования (Redaction), которая помогает скрыть данные, если данные предназначены для последнего пользователя. Например код кредитной карты, Работники в Отделе Персонаа могут видеть все цифры кода карты, но другие отделы могут видеть только последние 4 цифры. Данная защитная функция помогает организациям, бизнесам чувствовать себя безопаснее при соединении их базы данных в облаке.
  • В-четвертых, помогает бизнесам найти возможность от обработки больших объемов данных (Big Data) включая неструктурированные данные (например социальные сети) и данные с обычной структурой

3. Структура Oracle 12c

Для начала нам нужно сравнить структуру Oracle 11g и 12c
Структура Oracle включает:
  1. Программное обеспечение Oracle
  2. И Database
ORACLE 11G
После установки Oracle Database 11g вы можете создать один или более Database (Обычно вам нужно создать только один Database). В каждом Database вы можете создать 1 или более SCHEMA, каждая SCHEMA это система таблиц, и объектов как function (функция), procedure (процедура), package, ... Структура Oracle 11g похожа на следующую иллюстрацию:
ORACLE 12C
Oracle 12c имеет реальные изменения в структуре по сравнению с Oracle 11g. Oracle 12c это на самом деле облачная база данных.
Понятие database в 11g похоже на Container Database (CDB) в 12c. То есть после установки программы Oracle 12c вы можете создать 1 или более Container Database (CDB). (На самом деле нужен только 1).
В Oracle 12C есть новое понятие - это CDB$ROOT (Или еще называется CDB Root), CDB$Root это специальный Plugin Database, объект находящийся в CDB. SCHEMA могут быть прикреплены к CDB$ROOT. Или другие обычные Plugin Database (PDB) прикреплены к CDB$ROOT. Каждый Plugin Database содержит 0 или более SCHEMA.
PDB$SEED это шаблонный (Template) Plugin database который используется как шаблон (по умолчанию) чтобы создать новый Plugin Database. Вы конечно можете взять любой Plugin Database для шаблона и создать новый Plugin Database.

Я покажу команды создания нового Plugin из SEED или из какого-нибудь 1 PDB далее в этой статье.
В плане хранения на жестком диске, Oracle 12c имеет структуру как в иллюстрации ниже:
Детали:
Controlfiles
Каждая база данных Oracle имеет контрольную папку, это бинарный файл который записывает физическую структуру базы данных. Контрольные папки включают:
  • Название базы данных
  • Название и местоположение свзязанных datafiles и файлов redo log
  • Временная метка создания базы данных
  • Последовательный номер в журнале
  • Информация Checkpoint
Все контрольные файлы должны быть готовы для записи сервером базы данных Oracle в любое време когда база данных открыта. Без контрольного файла, база данных не может быть смонтирована и восстановление будет трудным.
datafiles
Datafiles это физические фалы сохраненные на диске. Эти файлы используются для хранения даннах на диске.
tempfiles
Tempfiles это физические файлы сохраненные на диске. Эти файлы используются для временного хранения данных на диске.
redo logs
Самая важная структура для восстановления операций это redo log, который включает два или более предопределенных файлов (preallocated files), который хранит все изменения выполненные в базе данных. Каждый объект базы данных Oracle имеет один связанный redo log для защиты базы данных в случае неполадки объекта.

4. Работа с Oracle через SQLPlus

SQL Plus это простой инструмент Console позволяющий вам выдавать команды SQL. Обычно мы работаем с более визуальным инструментом (не имеется после установки Oracle), вам нажно установить дополнительно, это может быть программа предоставленная третьей стороной.
Чтобы войти в SQLPlus вы можете войти через CMD:
-- Login to Oracle using the user database 'system', as Database Admin (dba)
-- Note: If you have never logged in with any user, use the syntax:
system/Abc#123 as sysdba

-- If you are connected to a user, you want to switch to another user, using the syntax:
connect username/password

-- Or connect as system database administrator.
connect username/password as sysdba
Вы вошли в Database.
Проверить является ли Database Container Database (CDB)
При установке Oracle 12c если вы не выбрали установку вида nếu Container Database (CDB), то ваш database будет являться CDB, и напротив это будет Non-CDB (Похож на модель Oracle 11g)
На SQLPlus вы можете проверить является ли ваш Database CDB или нет.
-- Query the 'View' contains the databases.

SELECT CDB FROM V$DATABASE;
Проверить ID или название текущего Container
-- Show ID of current Container.

SHOW CON_ID


-- Show name of current Container.

SHOW CON_NAME
Информация Container в Container Database (CDB)
View V$CONTAINERS предоставляет информацию про все Container внутри CDB, включая коренной Plugin (CDB$Root) и все Plugin DB (PDB). Чтобы посмотреть эту информацию, вы можете сделать запрос от обычного user, и этот user находится в коренном Container (CDB$Root). Если user находится в PDB, этот view покажет информацию только про этот PDB.
-- Set display column length (For easy viewing)
-- (Optional).

COLUMN NAME FORMAT A8


-- Query containers.
SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS ORDER BY CON_ID;
Посмотреть информацию Plugin Database (PDB)
Два view CDB_PDBS и DBA_PDBS предоставляют информацию про PDBs связанные с CDB, включая статус каждого PDB. Чтобы посмотреть эту информацию, запрос должен быть сделан обычным user на коренном Container (CDB$Root). Если user находится в container который является PDB, все запросы на данном View не вернут результата.
-- Set display column length (For easy viewing)
-- (Optional).

COLUMN PDB_NAME FORMAT A15


-- Query PDBs
SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;