Oracle Database

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 23:08, 10 сентября 2018.

Oracle Database или Oracle RDBMS — объектно-реляционная система управления базами данных компании Oracle.[Источник 1]

Oracle Database
Oracle.png
OracleDatabase-01.png
Разработчики: Oracle Corporation
Предыдущий выпуск: 12.2 / 19 сентября 2016[1]
Написана на: Java, C, C++
Платформа: кроссплатформенное программное обеспечение
Лицензия: коммерческая, для разработчиков
Веб-сайт www.oracle.com/database/

История

  • 1977 год — Ларри Эллисон, Боб Майнер и Эд Оутс основали компанию Software Development Laboratories (SDL).
  • 1979 год — SDL сменила имя на Relational Software, Inc. (RSI) и выпустила СУБД под наименованием Oracle v2. Эта версия не поддерживала транзакции, но реализовывала основную функциональность SQL. Это была первая коммерческая система управления реляционными базами данных (РСУБД) на основе языка запросов SQL. RSI не выпускала версию 1 по маркетинговым соображениям — первая версия получила имя version 2. Первая версия была написана на ассемблере, работала на системе PDP-11 под управлением операционной системы RSX-11, используя 128 кб оперативной памяти. Выпуском Oracle v2, RSI опередила IBM, в лаборатории которой была разработана теория и прототип реляционной базы данных System R.
  • 1982 год — RSI вновь сменила своё имя и стала называться Oracle Systems.
  • 1983 год — выпущена версия 3, переписанная на Си и поддерживающая функции COMMIT и ROLLBACK для реализации транзакций. В этой версии поддержка платформ была расширена: помимо реализации на DEC VAX/VMS появилась реализация на Unix. Oracle v3 являлась первой РСУБД, работающей одновременно на мейнфреймах, мини-компьютерах и ПК.
  • 1984 год — выпущена версия 4, содержащая средства управления параллельным выполнением операций, такие как многоверсионное согласованное чтение и другие необходимые для параллельных вычислений возможности.
  • 1985 год — выпущена версия 5, одна из первых РСУБД, работающих в клиент-серверных средах. Появляется поддержка распределённых запросов, Oracle Link, кластеров таблиц (реализация для DEC VAX).
  • 1986 год — выпущена версия 5.1.
  • 1988 год — выпущена версия 6, с поддержкой блокировок на уровне строк и средств «горячего» резервирования. Появляется поддержка встроенного языка PL/SQL в средстве разработки приложений Oracle Forms v3 (в 6-й версии СУБД ещё нет поддержки PL/SQL).
  • 1989 год — выпущена версия 6.2, с поддержкой средств оперативной обработки транзакций (OLTP). Oracle переносит свою штаб-квартиру в комплекс зданий в Редвуд Шорз, штат Калифорния.
  • 1992 год — выпущена версия 7, с поддержкой ссылочной целостности, хранимых процедур и триггеров.
  • 1994 год — выпущена версия 7.1, в том числе для IBM PC — до этого времени компания Oracle не рассматривала данную платформу как серверную, ограничиваясь лишь созданием для неё клиентских частей своей СУБД.
  • 1996 год — выпущена версия 7.3, включающая Universal Server, позволяющий управлять данными любых типов — текстами, видеоматериалами, картами, аудиозаписями или графическими изображениями.
  • 1997 год — выпущена версия 8 (8.0), основными особенностями которой стали более высокая надёжность по сравнению с предыдущей версией, а также поддержка большего числа пользователей и больших объёмов данных. Появляется поддержка средств объектно-ориентированной разработки и мультимедийных приложений; секционирование. Oracle становится объектно-реляционной СУБД.
  • 1998 год — выпущена версия 8i Release 1 (8.1.5), «i» в названии обозначает «Internet», символизируя поддержку Интернета. Начиная с версии 8.1.5, появляется встроенная в СУБД виртуальная машина Java (JVM). На Java написаны клиентские утилиты, инсталлятор, средства администрирования.
  • 1998 год — выпущена версия 8i Release 2 (8.1.6), поддерживающая XML и содержащая некоторые новшества, связанные с созданием хранилищ данных.
  • 2000 год — выпущена версия 8i Release 3 (8.1.7), содержащая Java Virtual Machine Accelerator и Internet File System. Последний набор обновлений (англ. patchset), выпущенный для данной версии — 8.1.7.4.1 (2002 год). Последнее обновление (для платформы Win32) — 8.1.7.4.29 (16 января 2007 года).
  • 2001 год — выпущена версия 9i Release 1 (9.0.1). В версии 9i появляются: средства прямой обработки XML-документов, хранящихся в базе данных, через интерфейс «XML DB»; технология Oracle RAC (Real Application Clusters), как замена Oracle Parallel Server (OPS); механизм создания репликаций Oracle Streams; скроллируемый курсор для программ на Си и C++; встроенная в СУБД поддержка OLAP и Data Mining; переименование столбцов и ограничений целостности; поддержка Java 1.3.1 и Unicode 3.1.
  • 2004 год — выпущена версия 10g Release 1 (10.1.0); «g» в названии обозначает «grid» («сеть»), символизируя поддержку грид-вычислений.
  • 2005 год — выпущена версия 10g Release 2 (10.2.0.1).
  • 2007 год — выпущена версия 11g Release 1 (11.1.0.6). Появляется возможность создания в базе данных резидентного пула соединений (DRCP), позволяющего поддерживать пул из постоянных соединений с базой данных (например, для веб-серверов Apache, IIS, приложений на PHP, Perl и т. п.).
  • 2009 год — выпущена версия 11g Release 2 (11.2.0.1), в которой введена принципиально новая для Oracle возможность «горячего», без остановки сервера, внесения изменений в метаданные и бизнес-логику на PL/SQL. Это сделано с помощью механизма одновременной поддержки нескольких версий схемы и логики, именуемых editions.
  • 2013 год — вышла версия 12c (12.1.0.1), основное новшество — поддержка подключаемых баз данных (англ. pluggable database), обеспечивающая свойства мультиарендности и живой миграции баз данных, суффикс «c» в названии обозначает англ. cloud (облако).

История выпуска версий для различных операционных платформ

История выпуска для Linux x86

сентябрь 1998 года — 8.0 (8.0.5) 23 февраля 1999 года — 8.0 (8.0.5.1.0) 22 ноября 2000 года — 8i Release 3 (8.1.7.0.1) 25 марта 2003 года — 9i Release 2 (9.2.0.4) 21 декабря 2004 года — 10g Release 1 (10.1.0.3) 2 июля 2005 года — 10g Release 2 (10.2.0.1) 10 августа 2007 года — 11g Release 1 (11.1.0.6) 1 сентября 2009 года — 11g Release 2 (11.2.0.1)

История выпуска для Linux x86-64

16 октября 2007 года — 11g Release 1 (11.1.0.6) 1 сентября 2009 года — 11g Release 2 (11.2.0.1) 26 июня 2013 года — 12c (12.1.0.1)

История выпуска для Solaris x86

14 мая 1999 года — 8i Release 1 (8.1.5) для Intel UNIX (DG/UX Intel, SCO UnixWare, Solaris Intel)

История выпуска для Solaris x86-64

23 марта 2006 года — 10g Release 2 (10.2.0.1) 25 ноября 2009 года — 11g Release 2 (11.2.0.1) 26 июня 2013 года — 12c (12.1.0.1)

История выпуска для Solaris SPARC 64-bit

6 ноября 2009 года — 11g Release 2 (11.2.0.1) 26 июня 2013 года — 12c (12.1.0.1)

История выпуска для Windows x86

март 1997 года — 7 (7.3.3) для Windows NT 3.51/4.0 октябрь 1997 года — 7 (7.3.4) для Windows NT 3.51/4.0 1 июля 1998 года — 8.0 (8.0.5) для Windows NT 10 марта 1999 года — 8i Release 1 (8.1.5) для Windows NT и Windows 95/98 20 сентября 1999 года — 8.0 (8.0.6) для Windows NT январь 2000 года — 8i Release 2 (8.1.6) для Windows NT 16 ноября 2000 года — 8i Release 3 (8.1.7) для Windows NT 13 сентября 2001 года — 9i Release 1 (9.0.1.0) для Windows 32-bit 14 мая 2002 года — 9i Release 2 (9.2.0.1) для Windows 32-bit 26 марта 2004 года — 10g Release 1 (10.1.0.2) для Windows 32-bit 7 сентября 2005 года — 10g Release 2 (10.2.0.1) для Windows 32-bit 15 октября 2007 года — 11g Release 1 (11.1.0.6) для Windows 32-bit 5 апреля 2010 года — 11g Release 2 (11.2.0.1) для Windows 32-bit

История выпуска для Windows x86-64

31 октября 2005 года — 10g Release 2 (10.2.0.1) 7 ноября 2007 года — 11g Release 1 (11.1.0.6) 2 апреля 2010 года — 11g Release 2 (11.2.0.1) 1 августа 2013 года — 12c Release 1 (12.1.0.1) 8 марта 2017 года — 12c Release 2 (12.2.0.1)

Программно-аппаратные платформы

До выпуска Oracle9i корпорация Oracle портировала движок базы данных на многие платформы, но в последнее время Oracle портирует на меньшее количество платформ. К примеру Oracle RDBMS 10g с июня 2005 года поддерживаются следующие программно-аппаратные платформы:

  • Linux x86
  • Linux x86-64
  • Linux на zSeries
  • Linux Itanium
  • Linux на POWER
  • Microsoft Windows (32-бит)
  • Windows NT (x64)
  • Windows NT (64-бит Itanium)
  • Solaris x86
  • Solaris AMD64/EM64T
  • Solaris SPARC (64-бит)
  • AIX5L
  • HP-UX PA-RISC
  • HP-UX Itanium
  • HP Tru64 UNIX
  • HP OpenVMS Alpha
  • IBM z/OS
  • Mac OS X Server

Редакции

СУБД поставляется в шести различных редакциях, ориентированных на различные сценарии разработки и развертывания приложений (а также отличающиеся ценой).

Название Ограничения Операционные
платформы
Enterprise Edition
Standard Edition не может устанавливаться на системы, имеющие более 4 процессорных разъёмов
Standard Edition One не может устанавливаться на системы, имеющие более 2 процессорных разъёмов; не поддерживает кластеризацию (RAC)
Personal Edition один пользователь
Lite для мобильных и встраиваемых устройств
Express Edition (XE) бесплатная редакция; используемая оперативная память — 1 ГБ, а также используется только 1 процессор, максимальный объём базы данных — 11 ГБ (для 10g — 4ГБ), из них от 0,5 до 0,9 ГБ используются словарём данных, внутренними схемами и временным дисковым пространством Windows x86-64
Linux x86-64

Особенности

  • MVCC (англ. MultiVersion Concurrency Control) — многоверсионность данных для управления параллельными транзакциями.
  • Секционирование.
  • Автономные транзакции.
  • Automatic Storage Management — автоматическое управление хранением файлов БД.
  • Oracle Enterprise Manager — набор инструментов, предназначенных для управления и мониторинга СУБД Oracle и серверов, на которых они установлены.
  • Пакеты.[2]
  • Поддержка последовательностей.
  • Аналитические функции в SQL.
  • Profile manager.
  • Oracle Label Security.
  • Streams.
  • Advanced Queuing.
  • Flashback Query.
  • RAC (англ. Real Application Clusters).
  • RAT (Real Application Testing) — позволяет значительно снизить затраты на испытание новой конфигурации программного или аппаратного обеспечения, так как способна точно воспроизвести на ней нагрузку рабочего сервера.
  • Data Guard — технология, позволяющая создать резервный сервер, который может работать в паре с основным, снижая нагрузку на него, и который может автоматически заменить основной сервер в случае его отказа или планового отключения (есть вариант с постоянной доступностью резервного сервера для чтения — Active Data Guard).
  • Total Recall — даёт возможность разгрузить базу данных от устаревшей, редко используемой информации, сохраняя при этом возможность доступа к ней, так что для пользователя базы данных это изменение остаётся незамеченным.
  • Объектные типы (в смысле объектно-ориентированного подхода).
  • Automatic Database Diagnostic Monitoring — автоматический мониторинг и диагностика баз для выявления проблем производительности и, возможно, автоматической корректировки (если таковая определена администратором).
  • Подсказки для изменения плана выполнения запроса.

Пример работы с БД

Создание представления базы данных в Oracle с помощью SQL

Уровень сложности: Начальный

Требования к данным: Используйте собственные данные

Для отображения таблиц и классов пространственных объектов многопользовательской базы геоданных можно использовать SQL.

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

CREATE TABLE employees (
  emp_id      number(38) unique not null,
  name        varchar2(32),
  department  number not null,
  hire_date   date not null);

Предоставление прав доступа к таблице

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

В данном примере таблица, на базе которой построено представление (employees), принадлежит пользователю gdb. Представление создается пользователем rocket. Также пользователь rocket предоставляет права доступа к представлению другим пользователям. Таким образом, пользователь gdb должен передать пользователю rocket права доступа SELECT и WITH GRANT OPTION, чтобы пользователь rocket мог передавать другим пользователям права доступа SELECT.

conn gdb/gdb.bdg

GRANT SELECT 
 ON gdb.employees 
 TO rocket WITH GRANT OPTION;

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

В этом примере пользователь rocket создает представление таблицы employees и ограничивает доступ к нему только пользователям из отдела 201:

CREATE VIEW view_dept_201 
 AS (SELECT emp_id,name,department,hire_date)
 FROM gdb.employees 
 WHERE department = 201;

Выдача прав доступа к представлению

Права доступа к представлению можно предоставлять определенным пользователям, не передавая им права доступа к базовой таблице (employees). В данном примере пользователю mgr200 предоставлены права доступа SELECT к представлению view_dept_201:

conn rocket/nopeeking

GRANT SELECT
 ON rocket.view_dept_201
 TO mgr200;

Тестовые права доступа

Войдите в систему как mgr200 и выберите записи view_dept_201:

conn mgr200/topsecret

SELECT * FROM rocket.view_dept_201; 

EMP_ID     NAME       DEPT     HIRE_DATE 
112        LOLLI POP  201      06/30/2007 
134        VAN CHIN   201      10/15/2007 
150        DON GUN    201      03/01/2009

Как ожидалось, выводятся только записи для сотрудников отдела 201.

Основные команды

Войдите в систему SQL * Plus

SQLPLUS [{ username [/ passward] [@ connect_identifier ] | /}
          [AS {SYSDBA | SYSOPER}]
        | / NOLOG
        ]

Список разделов справки, доступных в SQL * Plus

HELP [ INDEX | topic ]

Выполнять команды хоста

HOST [ command ]

Показать системные переменные SQL * Plus или настройки среды

SHOW { ALL | ERRORS | USER | system_variable [, system_variable] ...}


Изменение системных переменных SQL * Plus или настроек среды

SET system_variable value

Запуск базы данных

STARTUP [ PFILE = filename ]
[ MOUNT [ dbname ] | NOMOUNT ] 

Подключение к базе данных

CONNECT [{username[/password] [@connect_identifier] | /}
           [AS {SYSOPER | SYSDBA}
        |{proxy_user [ username ] 
           [/password] [@connect_identifier]}
        ]

Редактировать содержимое SQL-буфера или файла

EDIT [ filename [ .ext ] ]

Выполнять команды, хранящиеся в буфере SQL

/

Отключиться от базы данных

DISCONNECT

Запустить листенер

lsnrctl start

Остановить листенер

lsnrctl stop

Проверить статус листенера

lsnrctl status

Зайти под администратором

sqlplus "/as sysdba"

Стартовать БД

SQL> startup;

Стартовать БД на standby

SQL> startup mount;

Остановить БД

SQL> shu immediate;

Посмотреть список датафайлов в табличном пространстве

SQL> select FILE_NAME, BYTES from dba_data_files where TABLESPACE_NAME = '<ts_name>';

Добавить к табличному пространству файл данных размером ~32Гб

SQL> alter tablespace <ts_name> add datafile '<path_to_file.dbf>' size 32767M;

Посмотреть список пользователей

select username, account_status from dba_users;

Запустить sql-файл

SQL> @<sql_file.sql> 

Запустить накат архивных логов на standby

SQL> alter database recover managed standby database disconnect from session;

Остановить накат архивных логов на standby

SQL> alter database recover managed standby database cancel;

Посмотреть на standby, какие архивные логи зарегистрированы и какие из них накатились

SQL> select SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED from V$ARCHIVED_LOG order by SEQUENCE#;

Зарегистрировать архивный лог на standby

SQL> alter database register logfile '<path_to_log_file.dbf>';


Установка

Установка Oracle Database 12c на Windows 10 Professional 64 bit:[Источник 2]


Примечания

Источники

  1. Oracle Database или Oracle RDBMS // Википедия. [2013–2017]. Дата обновления: 09.09.2017. URL: https://ru.wikipedia.org/wiki/Oracle_Database (дата обращения: 21.10.2017)
  2. Установка Oracle Database 12c на Windows 10 Professional 64 bit // YouTube. [2017–2017]. Дата обновления: 11.12.2017. URL: https://www.youtube.com/watch?v=clk6uA-j8H4 (дата обращения: 11.12.2017)

Ссылки