Основы Oracle


Оглавление (нажмите, чтобы открыть):

Оракл для начинающих | Oracle for beginners (18+)

Оракл для начинающих. Советы программистам, администраторам, IT-специалистам, только начинающим изучать СУБД Oracle. Оракл для чайников.

INNER JOIN vs LEFT RIGHT FULL OUTER JOIN

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

INNER JOIN
Inner join или просто join возвращает только те строки из двух таблиц, которые удовлетворяют условию указанному в ON:

SELECT
s.id,
s.supplier_name,
o.order_date
FROM suppliers s
INNER JOIN orders o
ON o.supplier_ >
OUTER JOIN
Outer join возвращает все строки, удовлетворяющие условию, указанному в ON, а также некоторые строки, которые не удовлетворяют этому условию:

  • LEFT JOIN — дополнительно возвращает все строки из левой части условия;
  • RIGHT JOIN — дополнительно возвращает все строки из правой части условия;
  • FULL JOIN — дополнительно возвращает все строки из обеих частей условия.

Поясняющая картинка из статьи на CodeProject:

Полнотекстовый поиск при помощи Oracle Text

Oracle Text — это бесплатная компонента, входящая в состав Oracle Database, предназначенная для создания приложений с использованием полнотекстового поиска. В предыдущих версиях Oracle имела также названия ConText и interMedia Text. Начиная с 11ой версии входит во все редакции СУБД.

Полнотекстовый поиск — поиск документов в базе данных текстов с использованием полнотекстового индекса. Полнотекстовый индекс — это индекс, в котором перечислены все слова, встречающиеся в тексте, и указаны позиции, на которых эти слова встречаются. Полнотекстовый индекс позволяет производить поиск очень быстро, в отличие например от поиска при помощи оператора like. Кроме того, системы полнотекстового поиска обычно включают в себя функционал, расширяющий возможности поиска, например поиск с учетом морфологии языка, синонимов, созвучных слов, с учетом меры близости между словами в запросе и другие.

Oracle Text позволяет строить полнотекстовые индексы 4-ёх типов:

  • CONTEXT — основной тип индекса. Применяется для индексирования содержимого одной или нескольких колонок таблицы;
  • CTXCAT — применяется для индексации небольших текстовых фрагментов, не требует периодической переиндексации;
  • CTXRULE — применяется при создании приложений для классификации документов;
  • CTXXPATH — предназначен для ускорения работы с полями типа XMLType.

Рассмотрим пример создания контекстного полнотекстового индекса по таблице документов docs.

Создадим таблицу документов и наполним ее данными:

create table docs (id number not null, text varchar2(1000) not null);
insert into docs values (1, ‘Шла Саша по шоссе и сосала сушку.’);
insert into docs values (2, ‘London is the capital of The United Kingdom of Great Britain and Northern Ireland.’);

Создадим настройки для полнотекстового индекса и выполним его построение:

begin
ctx_ddl.create_preference(‘my_wordlist’, ‘BASIC_WORDLIST’);
ctx_ddl.create_preference(‘my_lexer’, ‘AUTO_LEXER’);
ctx_ddl.set_attribute(‘my_lexer’, ‘INDEX_STEMS’,’YES’);
end;

create index docs_idx on docs (text) indextype is ctxsys.context parameters (‘LEXER my_lexer WORDLIST my_wordlist’);

Тестируем построенный индекс:

select * from docs where contains(text, ‘саша’) > 0;

ID TEXT
1 Шла Саша по шоссе и сосала сушку.

select * from docs where contains(text, ‘$идти’) > 0;

ID TEXT
1 Шла Саша по шоссе и сосала сушку.

Обратите внимание, что слово ‘идти’ в тексте документов не встречается, но благодаря использованию оператора стемминга $, найден документ, в котором встречается словоформа слова ‘идти’, т.е. слово ‘шла’.

select * from docs where contains(text, ‘united’) > 0;

ID TEXT
2 London is the capital of The United Kingdom of Great Britain and Northern Ireland.

Характеристика СУБД Oracle

Надежность, безопасность, высокая производительность, удобство в работе. Это главное, что характеризует продукты Oracle на протяжении уже многих лет. Наиболее важным — это является для СУБД, ставшей на сегодняшний день практически обязательной частью любой серьезной информационной системы. Но не только эти характеристики позволяют продуктам Oracle удерживать лидерство на рынке СУБД. Стремительно развивающиеся информационные технологии требуют от современных СУБД расширения классической функциональности лишь по хранению и обработке данных. Двигаясь в ногу со временем, корпорация Oracle по сути ломает сложившиеся взгляды на СУБД, наделяя ее все новыми и новыми возможностями.

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

Механизмы масштабирования в СУБД Oracle последней версии позволяют безгранично увеличивать мощность и скорость работы сервера Oracle и своих приложений, просто добавляя новые и новые узлы кластера. Это не требует остановки работающих приложений, не требует переписывания старых приложений, разработанных для обычной одно-машинной архитектуры. Кроме того, выход из строя отдельных узлов кластера также не приводит к остановке приложения.

Встраивание в СУБД OracleJavaVM, полномасштабная поддержка серверных технологий (JavaServerPages, Java-сервлеты, модули EnterpriseJavaBeans, интерфейсы прикладного программирования CORBA), привело к тому, что Oracle на сегодняшний день де-факто является стандартом СУБД для Internet.

Еще одной составляющей успеха СУБД Oracle является многоплатформенность, так как она поставляется практически для всех существующих на сегодня операционных систем. Работая под SunSolaris, Linux, Windows или на другой операционной системе с продуктами Oracle не будет возникать никаких проблем в работе. СУБД Oracle одинаково хорошо работает на любой платформе. Таким образом, компаниям, начинающим работу с продуктами Oracle не приходится менять уже сложившееся сетевое окружение. Существует лишь небольшое количество отличий при работе с СУБД, обусловленных особенностями той или иной операционной системы. В целом же это всегда та же самая безопасная, надежная и удобная СУБД Oracle.

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

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

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

OracleDatabaseEnterpriseEdition. Полнофункциональная СУБД, возможности которой ограничены, пожалуй, лишь аппаратными ресурсами. По сути в OracleDatabaseEnterpriseEdition включены все новейшие разработки по безопасному хранению, обработке и конечному представлению данных. Широкие возможности по масштабированию позволяют обеспечить работу сервера базы данных 24 часа в сутки, 7 дней в неделю, 365 дней в году, а развитые средства резервного копирования .исключить возможность потери стратегически важной информации.

· Рассчитана на организации любого масштаба;

· Предназначена для обслуживания баз данных объемом до 8 экзабайт;

· Минимальное кол-во лицензий 25 пользователей на процессор, максимальное кол-во процессоров не ограничено;

· Поддерживается на любых платформах;

· Контролирует все данные клиента;

· Интегрирует всю информацию на предприятии;

· Обеспечивает работу всех приложений на предприятии;

· Обеспечивает постоянную доступность информации;

· Проверенная система обеспечения безопасности;

· Быстрая установка, удобное администрирование;

· Изначальная ориентация на сетевые вычисления на базе архитектуры Grid.

OracleDatabaseStandardEdition. СУБД, обладающая несколько ограниченными по сравнению с OracleDatabaseEnterpriseEdition возможностями, что находит свое отражение в стоимости каждой из них. Может быть установлена на серверах поддерживающих не более четырех процессоров. OracleDatabaseStandardEdition является наилучшим решением для развертывания информационных систем в небольших организациях, рабочих группах или подразделениях больших предприятий.

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

· Минимальное кол-во пользовательских лицензий 5, максимальное кол-во процессоров 4,

· Для организаций, имеющих до 1000 пользователей,

· Объем баз данных — до 500 Гб,

· Встроенная поддержка технологии RealApplicationCluster для обеспечения высокого уровня готовности и надежности систем,

· Быстрая установка и конфигурирование, встроенные средства автоматизированного управления

· Поддержка всех данных, всех приложений,

· Проверенные временем производительность, готовность, безопасность и надежность,

· Полностью модернизируемая до редакции OracleDatabase 11g EnterpriseEdition.

OracleDatabasePersonalEdition. предоставляет одному пользователю средства разработки и развертывания приложений, которые требуют полной совместимости с базами данных OracleDatabaseStandardEditionOne, OracleDatabaseStandardEdition и OracleDatabaseEnterpriseEdition..

OracleLite. Совсем облегченная мобильная СУБД, позволяющая синхронизировать информацию, хранимую на laptop-ах и карманных компьютерах с корпоративными базами данных. Доступ к данным Oracle 8iLite поддерживается посредством стандартных интерфейсов (ODBC, OCI, JDBC), что позволяет создавать приложения с помощью обычных средств разработки.

В октябре 2006 года в г Сан-Франциско на ежегодной конференции OracleOpenWorld президент компании Oracle Ларри Эллисон объявил о начале бетта тестирования новой версии флагманского продукта компании – СУБД Oracle 11g. Она поддерживает много новых функций, обеспечит большее быстродействие, обеспечит более высокую защиту данных и надежность работы приложения.

Все новые возможности 11g можно разделить на несколько групп:

1. Развитие СУБД Oracle как платформы для GRID вычислений. С этой целью был реализован ряд новых возможностей в области обеспечения высокой надежности и устойчивости работы (HighAvailability), в области облегчения управления СУБД и повышения ее самоуправляемости, реализован ряд новых возможностей для ускорения работы системы

2. Управление информацией. С этой целью была улучшена работа со всеми типами данных (включая реализацию Native XML), реализован механизм эффективной работы с файлами, хранимыми в СУБД, а не в файловой системе (SecureFiles), а также реализованы механизмы для поддержки жизненного цикла информации – ILM (InformationLifecycleManagement)

3. Разработка и тестирование приложений. С этой целью были реализованы новые подходы к разработке и модификации пользовательских приложений СУБД, позволяющие выполнять работы по модификации приложений СУБД без остановки их работы. Новые режимы работы Standby (резервной) базы позволят ее использовать для тестирования работы приложений, самой СУБД, отдельных SQL операторов и т д. Все это позволит значительно снизить время плановых простоев системы.

Распространение программных продуктов Oracle осуществляется путем предоставления лицензий на их использование.

Лицензия – это неисключительное, бессрочное и непередаваемое право на использование Программ, предоставляемое Конечному Пользователю на условиях компании Oracle. Авторские права и права собственности на лицензируемые программные продукты сохраняются за компанией-производителем.

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

Стоимость лицензии не зависит от версии программного обеспечения Oracle (8i, 9i, 10g, 11g) и платформы (Windows, Linux, Unix и т.д.).

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

Лицензируемые Программы предоставляются по каналам электронной связи или на носителях CD-ROM.

У заказчика есть возможность выбрать способ приобретения лицензии: по пользователям – NamedUserPlus или по процессорам – Processor.

Лицензия на обновление программного обеспечения Oracle и поддержку

Лицензия на обновление программного обеспечения и поддержку (далее SoftwareUpdateLicense&Support) предоставляет клиентам право на обновление (далее Upgrade) продукта и техническую поддержку в режиме 24×7 в течение пяти лет со дня выпуска продукта.

Upgrade продукта включает в себя обновление версий программного обеспечения, техническое обслуживание релизов и предоставление патчей (исправлений).Клиенты получают прямой доступ к специалистам Oracle по конкретным вопросам, касающимся установки и эксплуатации программного обеспечения Oracle.Web-поддержка осуществляется через MyOracleSupport (бывшийOracleMetaLink).MyOracleSupport обеспечивает клиентов про-активными (заблаговременными) уведомлениями, настраиваемой домашней страницей, техническими библиотеками и форумами, информацией о жизненном цикле продукта, базой данных ошибок (bug) и возможностью отправить Технический запрос на обслуживание (SR – ServiceRequest).

SoftwareUpdateLicense&Support предоставляется в течение одного года и приобретается одновременно с Лицензиями на продукты Oracle.

Стоимость SoftwareUpdateLicense&Support составляет 22% от стоимости приобретенных Лицензий на продукты Oracle.

SoftwareUpdateLicense&Support продлевается путем внесения ежегодной абонентской платы.

Регулярное ежегодное продление SoftwareUpdateLicense&Support обеспечивает оптимизацию расходов по обновлению продуктов Oracle в последующие периоды.

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

NamedUserPlus (Именованный пользователь)

С помощью метрики NamedUserPlus (NUP) лицензируются так называемые именованные пользователи.

Именованный пользователь – лицо, уполномоченное использовать Программы, установленные на одном или нескольких серверах, не зависимо от того, использует ли оно программу в данный момент времени или нет. Автоматическое устройство (не требующее участия человека) при возможности доступа к Программам считается пользователем (NUP) в дополнение ко всем лицам, уполномоченным использовать Программы.

Для подсчета числа лицензируемых пользователей программы по данной метрике следует определить количество всех лиц, имеющих право доступа к программе, а не только фактически ее использующих в определенное время. Например, если сервер Oracle эксплуатируется в организации посменно 3 группами операторов по 50 человек, то лицензию необходимо приобретать на 150 NamedUserPlus.

Особенность лицензирования по NamedUserPlus заключается в том, что один и тот же сотрудник предприятия, имея пользовательскую лицензию на OracleDatabase, может работать с любым сервером на предприятии, на котором стоит OracleDatabase. То есть, для сотрудника нужна только одна лицензия для работы с 10 серверами OracleDatabase.

Лицензируя Oracle по NUP, следует выбирать наибольшее значение между реальным количеством пользователей и лицензионным минимумом, который составляет:

– StandardEditionOne – 5 лицензий на каждый сервер

– StandardEdition – 5 лицензий на каждый сервер

– EnterpriseEdition – 25 лицензий на каждый процессор

В случаях, когда пользователей сосчитать нельзя или их число очень велико (например, интернет-ориентированные приложения), применяется метрика Processor (CPU), с помощью которой лицензируются все процессоры системы, на которой установлены и/или запускаются Программы.

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

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

При лицензировании StandardEditionOne и StandardEdition в расчет берется только количество процессоров (sockets) на сервере, т.е. не учитывается количество ядер в каждом процессоре.

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

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

Количество процессоров * Количество ядер * Лицензионный коэффициент

Тип многоядерного процессора Лицензионный коэффициент
Sun UltraSparcT1 (4,6 или 8 ядер, 1GHz или 8 ядер, 1.2 GHz) 0,25
AMD, Intel, Xeon, Sun UltraSparcT1 (1.4 GHz) 0,50
Sun UltraSPARC IV, IV+, HP PA-RISC, IBM Power5 0,75
IBM Power6-7, System z, Все остальные многоядерные процессоры 1,00

При получении нецелого числа нужно округлить его в большую сторону.

Формула распространяется на лицензирование EnterpriseEdition как по CPU, так и по NUP.

Опасности, связанные с нарушением условий лицензионных соглашений.

Oracle не использует ключи доступа к программному обеспечению. Клиент может просто установить программное обеспечение и использовать его. Однако незаконное копирование программного обеспечения, намеренное или неосознанное, подвергает вашу компанию риску. Правильное управление программным обеспечением, напротив, будет во многих отношениях полезно компании.

Стоимость

MySQL

MySQL — это одна из наиболее популярных и эффективных систем управления базами данных, которая очень часто используется при построении современных веб-сайтов. На основе данной системы можно строить, как небольшие веб-сайты, так и крупные Интернет-проекты. СУБД MySQL поддерживает язык запросов SQL. Это позволяет совершать такие операции, как запись данных в базу, редактирование данных, извлечение или удаление данных из базы данных.


Происхождение

MySQLвозниклакакпопыткаприменитьmSQL к собственнымразработкамкомпании: таблицам, для которыхиспользовались ISAM — подпрограммынизкогоуровня. В результатебылвыработанновый SQL-интерфейс, но API-интерфейсостался в наследство от mSQL. Откудапроисходитназвание «MySQL» — доподлиннонеизвестно. Разработчикидают два варианта: либо потому, чтопрактически все наработкикомпанииначинались с префиксаMy, либо в честь девочки по имениMy, дочери Майкла МонтиВидениуса, одного изразработчиковсистемы.

Логотип MySQL в видедельфинаноситимя «Sakila». Он былвыбранизбольшогоспискапредложенныхпользователями «имёндельфина». Имя «Sakila» былоотправленоOpenSource-разработчикомAmbroseTwebaze.

Историявыпусков

ПервыйвнутреннийвыпускMySQLсостоялся 23 мая 1995 года;

Версия для Windows систем (Windows 95 и NT) выпущена 8 января 1998;

Версия 3.23: бета-версия в июне 2000, релиз в январе 2001;

Версия 4.0: бета в августе 2002, релиз в марте 2003;

Версия 4.1: бета в июне 2004, релиз в октябре 2004;

Версия 5.0: бета в марте 2005, релиз в октябре 2005;

Версия 5.1: разработка велась с ноября 2005, релиз в ноябре 2008;

Версия 5.4: бета в апреле 2009;

Версия 6.0: в разработке.

Лицензирование

MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL.

GNU GeneralPublicLicense (переводят как Универсальная общественная лицензия GNU, Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) — лицензия на свободное программное обеспечение.

Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку.

Платформы

MySQLпортирована на большоеколичество платформ: Linux, MacOSX, Solaris, SunOS, Windows 95, Windows 98, WindowsNT, Windows 2000, WindowsXP, WindowsVista и Windows 7. Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Да какие ж вы математики, если запаролиться нормально не можете. 8423 — | 7326 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Oracle

Oracle — мощная и устойчивая СУБД, способная работать с базами данных под управлением различных операционных систем, включая Windows 98, Windows 2000, Windows ХР, несколько вариантов Unix, ряд операционных систем для больших ЭВМ и Linux [15]. Она имеет длительную историю разработки и использования и является самой популярной СУБД в мире, о чем свидетельствует отчет компании International Data Company (IDC) за май 2006 г: в общем объеме продаж программного обеспечения систем хранения данных Oracle занимала 44,6%, Microsoft — только 16,8%. Значительная часть технологии Oracle открыта для разработчика, что обеспечивает большую гибкость при ее конфигурировании и настройке.

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

Существует много конфигураций программного пакета Oracle (табл. 4.5). Во-первых, есть две различные версии ядра СУБД Oracle: для индивидуального использования (Personal Oracle) и для организаций (Enterprise Oracle). Кроме того, имеется программа для разработки форм и отчетов (Forms and Reports), программа Oracle Designer и множество средств для публикации баз данных Oracle в WWW.

Семейства программных продуктов Oracle

Oracle 9i Database Enterprise Edition

Сервер баз данных для большого количества пользователей или базы данных большого размера, с усовершенствованным управлением, расширяемостью и эффективностью; предназначен для ответственных приложений OLTP (Online Transaction Processing — оперативная обработка транзакций) и хранилищ данных; ориентирован на рынок интернет-приложений и отвечает самым строгим требованиям к качеству обслуживания; обладает возможностями кластеризации, мощными и экономичными средствами безопасности, исключает потери данных и позволяет интерактивно обмениваться информацией

Oracle 9i Database Standard Edition

Сервер баз данных для небольшого числа пользователей и базы данных небольшого размера

Oracle 9i Database Personal

Однопользовательская версия сервера, обычно предназначенная для разработки приложений, функционирующих под управлением Oracle 9i Database Standard/Oracle 9i Database Enterprise

Окончание табл. 4.5

Упрощенная машина базы данных для систем мобильной связи и небольших офисов, для обработки данных на карманных и портативных компьютерах (ноутбуках)

Oracle 9i Internet Developer Suite (IDS)

Содержит полный набор интегрированных средств быстрого создания интернет-приложений для настраиваемых Web-порталов и развертывания Web-сервисов

Application Server (Oracle9i AS)

Сервер приложений, позволяющий решать широкий спектр задач по поддержке приложений в интернет- и интранет-системах

Oracle Database 10g

Первый в мире сервер баз данных, специально предназначенный для работы в сетях распределенных вычислений (Grid); служит для эффективного развертывания на базе различных типов оборудования, от небольших серверов до мощных многопроцессорных серверных систем, от отдельных кластеров до корпоративных распределенных вычислительных систем; поставляется в одной из четырех редакций в зависимости от масштаба информационной системы, в рамках которой предполагается ее применение: Enterprise Edition, Standard Edition, Standard Edition One, Personal Edition

Oracle Developer Suite lOg

Полный набор интегрированных средств для разработки интернет-приложений; включает удобную интегрированную среду разработки со средствами проектирования баз данных (Oracle Designer) и хранилищ данных (Oracle Warehouse Builder), программирования, разработки компонентов, бизнес-анализа и составления отчетов.

Oracle SQL Plus — это утилита для обработки запросов на языке SQL и создания таких компонентов, как хранимые процедуры и триггеры. Данная утилита неизменно присутствует во всех вариантах конфигурации продукта. С помощью SQL Plus можно передавать Oracle команды на языках SQL и PL/SQL. PL/SQL — это язык, расширяющий возможности SQL за счет включения в него конструкций, характерных для языков программирования.

Помимо этого, есть еще несколько служебных программ Oracle. Так, имеется утилита Oracle Loader для ввода больших объемов информации в базу данных Oracle. Другие утилиты предназначены для измерения и оптимизации производительности Oracle.

Oracle поддерживает объектно-ориентированные структуры, которые разработчики могут использовать для создания собственных абстрактных типов данных. С помощью Oracle можно также создавать и обрабатывать базы данных, представляющие собой гибриды традиционных и объектных баз данных. Такие гибриды называются объектно-реляционными базами данных. Типы данных (табл. 4.6) несколько отличаются от стандартных типов SQL.

Некоторые типы данных СУБД Oracle

Сохраняет символьные данные постоянной длины (размер по умолчанию равен 1)

Такое же, как для типа данных char(size), за исключением максимальной длины, определяемой набором национальных символов базы данных

Сохраняет символьные данные переменной длины

Такое же, как для типа данных varchar2, и с теми же условиями, как и для типа данных nchar

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

Хранит числа с фиксированной точкой или с плавающей точной, где / — длина, a d — количество десятичных цифр в дробной части. Например, число типа number (5, 2) не может быть больше, чем 999.99

1,0-10 ш . 9,99-10 +125

Такое же, как и для number. Предусмотрен для совместимости со стандартом языка SQL

integer, int или smallint

Предусмотрен для совместимости со стандартом языка SQL. Преобразуется в тип данных number(38)

Окончание табл. 4.6

Хранит даты за период с 1 января 4712 г. (до и. э.) до 31 декабря 4712 г. (н. э.)

Большой двоичный объект

Большой символьный объект

Двоичные данные, не имеющие заранее определенного формата (например, последовательность графических символов или оцифрованное изображение)

Версия Oracle для предприятий (Oracle Database Enterprise) предусматривает обработку распределенных баз данных, которые хранятся более чем на одном компьютере.

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

С помощью Oracle администратор определяет пользователей и привилегии. Роль — это группа привилегий и других ролей. Одному и тому же пользователю может быть дано множество ролей, и одна и та же роль может быть дана множеству пользователей.

В процессе резервного копирования и восстановления в Oracle используются три типа файлов: файлы данных, текущие и архивные файлы отката и управляющие файлы. При работе в режиме ARCHIVELOG Oracle записывает в журнал все изменения, произведенные в базе данных. В случае сбоя приложения или экземпляра Oracle может восстановить базу данных без использования архивного файла журнала. Однако для восстановления после сбоя носителя данных архивные файлы необходимы. Резервные копии могут быть согласованными и несогласованными. Несогласованную копию можно сделать согласованной, обработав архивный файл журнала.

Основы администрирования баз данных Oracle

· Запуск и останов БД

· Перенос БД на другой сервер (либо временное удаление БД)

· Экспорт и импорт данных

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

· Перевод БД на другую версию сервера Oracle ( upgrade и downgrade )

· Настройка БД Oracle

· Пути повышения производительности запросов СУБД Oracle

· Некоторые полезные команды SQL

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

· Что применять для ввода команд: SVRMGR 30 , SQL Plus или SQL Worksheet ?

· Описание ряда особенностей при работе с Oracle

· Что делать при изменении сетевого адреса сервера

· Возможные аварийные ситуации

Запуск и останов БД

Запуск БД

Процесс запуска БД проходит 3 стадии:

· NOMOUNT , когда открывается файл INIT SID >. ORA и в ОЗУ компьютра создается экземпляр БД

· MOUNT , когда открываются управляющие файлы ( CTL 1 SID >. ORA и т.д.)

· OPEN , когда открываются файлы табличных пространств

Если запустить утилиту SVRMGR 30 и ввести команду

startup pfile=%ORACLE_HOME%\DATABASE\INIT .ORA

то произойдет запуск БД до состояния OPEN (по умолчанию). Можно ввести команду ORASTART . NCF , что приведет к аналогичному эффекту. Можно ввести эту же команду, но добавить параметр NOMOUNT . При этим произойдет запуск БД до первого состояния. Чтобы затем ее открыть, нужно последовательно задать команды:

alter database mount ;

alter database open ;

Останов БД

Для останова БД можно запустить ORASTOP . NCF , но при этом БД будет останавливаться по технологии IMMEDIATE , что не очень желательно. Лучше в SVRMGR 30 ввести команду SHUTDOWN NORMAL .

Перенос БД на другой сервер (либо временное удаление БД)

Если не пользоваться механизмами экспорта / импорта или резервного копирования / восстановления, то общая схема такова («сюрпризы» в MS Windows NT 4 здесь не описаны):

Для временного удаления (например, перед форматированием диска):

· Остановите БД (можно запустить ORASTOP . NCF , лучше скомандовать SHUTDOWN NORMAL )

· Запакуйте разделы % ORACLE _ HOME %\ DATABASE и % ORACLE _ HOME %\ NET 80\ ADMIN с помощью архиватора, сохраняющего длинные имена файлов (например, PKZIP или WINZIP ).

Пакуйте с учетом скрытых файлов. Скопируйте архивы в безопасное место (не на диск, который будет форматироваться).

· Если действительно предстоит форматирование диска, то на всякий случай, чтобы система не кричала:

· Выгрузите Oracle (запустите ORAUNLD . NCF )


· Деинсталлируйте Oracle Server

· Удалите каталог %ORACLE_HOME%

Для восстановления БД (после форматирования диска):

· Проинсталлируйте Oracle Server

· Верните на место файлы из архивов

· Загрузите Oracle (запустите ORALOAD . NCF )

При переносе БД на другой сервер:

· Проинсталлируйте на нем Oracle Server

· Создайте тот же SID

· Установите в вышеупомянутые каталоги файлы из архивов

· В файле % ORACLE _ HOME %\ NET 80\ ADMIN \ TNSNAMES . ORA исправьте адреса Ваших сервисов (лучше с помощью Oracle Net8 Easy Config ). Кстати, это необходимо делать также при изменении TCP / IP -адреса сервера c Oracle .

Экспорт и импорт данных

Экспорт данных

Экспорт данных выполняется утилитой командной строки EXP 80 (Часть 1, Глава 6, Утилиты командной строки, EXP 80. EXE …) либо утилитой Oracle Data Manager пакета OEM (Часть 1, Глава 6: Утилиты из пакета Oracle Enterprise Manager , Oracle Data Manager ).

Импорт данных

Импорт данных выполняется утилитой командной строки IMP 80 (Часть 1, Глава 6, Утилиты командной строки, IMP 80. EXE …) либо утилитой Oracle Data Manager пакета OEM (Часть 1, Глава 6: Утилиты из пакета Oracle Enterprise Manager , Oracle Data Manager ).

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

Это самые необходимые операции, которые должен уметь использовать администратор БД. Рекомендуется использовать не «горячее» (при запущенном экземпляре), а «холодное» (после останова БД) резервное копирование средствами используемой операционной системы.

Резервное копирование БД Oracle удобно выполнять утилитой Oracle Backup Manager из пакета OEM (см. Часть 1, Глава 6: Oracle Backup Manager ( Var . exe ) ).

Перевод БД на другую версию сервера Oracle ( upgrade и downgrade )

Перевод БД на старую версию сервера Oracle называется downgrade , на новую – upgrade . И то и другое обычно описывается в технической документации. Например, перевод БД с версии 8.0.3 на версию 8.0.4 сервера Oracle для Novell Netware 5 в [13] (в разделе Upgrading an Oracle 8 Database ) описывается слишком упрощенным способом (используя который без опыта, можно иногда «запороть» БД):

· Шаг 1 : Остановите БД версии 8.0.3.

· Шаг 2: Создайте резервную копию БД версии 8.0.3.

· Шаг 3: Поправьте параметр compatible в файле INIT .ORA для БД версии 8.0.3. ( Имеется ввиду – введите номер новой версии сервера Oracle).

· Шаг 4: Проинсталлируйте Oracle8 Enterprise Edition Release 8.0.4 ( имеется ввиду серверная часть ).

· Шаг 5: Запустите скрипт CAT 8004. SQL .

По-настоящему, все, конечно, значительно сложнее: например, в документации забыли указать, что необходимо перекомпилировать все модули, перезапустить некоторые постпроцедуры, перед запуском CAT 8004. SQL необходимо запустить БД, причем она должна быть открытой (в состоянии OPENED ), а присоединяться нужно как INTERNAL и т.д. А вообще, это все тоже может не привести к ожидаемому результату, потому что Словарь БД оказывается разрушенным, в результате чего Oracle не видит пользователя SYSTEM , а целый ряд постпроцедур и важных скриптов из-за этого не выполняется.

Существуют и другие способы для upgrade БД. Например, сделать полный экспорт БД, инсталлировать новую версию сервера и сделать импорт и пр.

Настройка БД Oracle

Настройка БД Oracle включает в себя, в частности, настройку конфигурационных параметров (в файле INIT SID >. ORA ) и настройку параметров заполнения таблиц и расширения табличных пространств. Настройка конфигурационных параметров уже описывалась в Главе 2 Части 1, здесь же будут приведены некоторые методы определения их оптимальности. Далее эта глава будет постоянно дополняться и уточняться.

Определение оптимальности некоторых конфигурационных параметров

· Для определения, нужно ли изменять размер буферного кэша, введите запрос:

select NAME, VALUE from V$SYSSTAT where NAME in

(‘CONSISTENT_GETS’, ‘DB_BLOCK GETS’, ‘PHYSICAL_READS’);

Затем вычислите коэффициентт попадания в SGA по следующей формуле:

HIT_RATIO = 1-(PHYSICAL READS / (DB BLOCK_GETS + CONSISTENT_GETS)

Если HIT_RATIO меньше 0.7 — увелич ь т е параметр DB_BLOCK_BUFFERS

· Для определения, нужно ли изменять размер разделяемого пула, введите запросы:

select sum(PINS) PINS, sum(RELOADS) RELOADS from V$LIBRARYCACHE;

Если PINS / RELOADS больше 1 – увеличте параметр SHARED_POOL_SIZE

select sum(GETS) GETS, sum(GETMISSES) GETMISSES from V$ROWCACHE;

Если GETS / GETMISSES больше 0.1 — увеличте параметр SHARED_POOL_SIZE

· Для определения, нужно ли изменять размер области сортировки, введите запрос:

select NAME, VALUE from V$SYSSTAT where NAME like ‘sort%’

Возможен такой результат запроса:

sorts (memory) 231

Если sorts ( disk ) больше 0, значит для параметра SORT _ AREA _ SIZE требуется больше памяти

Для параметра SORT _ AREA _ SIZE _ RETAINED можно установить минимальный размер

· Для определения, имеется ли конкуренция за журнальные файлы, введите запрос:

from V$LATCH where NAME in (‘REDO ALLOCATION’, ‘REDO COPY’)

Вычислите два значения :

Если любое значение больше 1, то имеетсяся конкуренцияция за защелку.

· чтобы снизить конкуренцию за защелку выделения журнального буфера – уменьшите параметр LOG _ SMALL _ ENTRY _ MAX _ SIZE

· чтобы снизить конкуренцию за защелку копирования журнала – увеличьте параметр LOG _ SIMULTANEOUS _ COPIES

Некоторые рекомендации по настройке объектов БД

1. Рекомендуемые параметры для таблиц :

Общая р екомендация

Для относи-тельно статичных таблиц

Для таблиц с интенсив-ными изме-нениями

5 или меньше (но не 0)

10240 или 20480

Все даннае должны помещаться в 1 экстенте с небольшим запасом

Мастер Йода рекомендует:  Топ-5 систем управления версиями с открытым исходным кодом

10240 или 20480

От 25% до размера INITIAL

Должно выполняться всегда следующее: PCTFREE + PCTUSED

2. Рекомендации по количеству сегментов отката:

· ж елательно на 5 пользователей 1 RBS;

· обязательно MINEXTENTS не менее 2 и PCTINCREASE не может быть указан

· Если количество одновременных транзакций :

· меньше 16 — использовать 4 RBS

· 16-32 — использовать 8 RBS

· более 32 использовать 1 RBS на 4 транзакции, но меньше 50

3. Для определения, имеется ли конкуренция за сегменты отката, введите запрос:

select R.NAME, S.GETS, S.WAITS

from V$ROLLSTAT S, V$ROLLNAME R where S.USN=R.USN

Возможен такой результат запроса:

NAME GETS WAITS

Если WAITS / GETS >= 2 — нужно сделать больше RBS

· Для определения, имеется ли конкуренция за ввод-вывод, введите запрос:

from V$DATAFILE D, V$FILESTAT F

Возможен такой результат запроса:

NAME PHYRDS PHYWRTS

D:\ORAWIN95\DATABASE\SYS1ORCL.ORA 648 34

D:\ORAWIN95\DATABASE\USR1ORCL.ORA 0 0

D:\ORAWIN95\DATABASE\RBS1ORCL.ORA 65 75

D:\ORAWIN95\DATABASE\TMP1ORCL.ORA 0 0

D:\ORAWIN95\DATABASE\PLIS1.ORA 6 31

· Для определения степени фрагментации, введите запрос:

TABLESPACE_NAME, sum(BYTES), max(BYTES),

from DBA_FREE_SPACE GROUP BY TABLESPACE_NAME

order by TABLESPACE_NAME

Если count(TABLESPACE_NAME) >10 -15, то необходима дефрагментация

· Для определения, происходит ли чрезмерное динамическое расширение, введите запрос:

select OWNER, SEGMENT_NAME, SUM(EXTENTS)

where SEGMENT_TYPE in (‘TABLE’,’INDEX’)

group by OWNER, SEGMENT_NAME

order by OWNER, SEGMENT_NAME

Рекомендации по уменьшению количества записей на диск и др.

Если при эксплуатации БД Oracle происходят интенсивные транзакции (например, более 10 000 удалений-добавлений-изменений за 1 транзакцию, и более 10 таких транзакций друг за другом при участии нескольких таблиц с количеством записей 100 000 – 1 000 000), то для ускорения работы с жестким диском помогут приведенные ниже рекомендации.

Рекомендуется увеличить размер (например, до 8-16 М) и количество журнальных файлов (например, до 4-8, причем для повышения надежности сделать их 2-4 группами на разных дисках). При этом уменьшится количество переключений журнальных файлов, а при включенной архивации уменьшится количество записей архивных копий журнальных файлов.

Рекомендуется для очень больших таблиц с интенсивными транзакциями (в описываемой СИСТЕМЕ — BOOK , FEATURES , WORKS , PROFILES , KMCOL ) установить режим прямой записи минуя журнальные файлы. Это выполняется командой ( ATbNolog . sql ):


alter table BIGTABLE nologging

Для этих же таблиц рекомендуется отключить триггер на запись ( ТАБЛИЦА_ LOG ) в Журнал изменений ( EDITIONS ). Это приведет как к уменьшению обращений к диску, так и замедлению роста Журнала изменений. Отключение триггера выполняется в утилите Oracle Schema Manager (см. Часть 1, Глава 6: Oracle Schema Manager ( Vas . exe ) ) или с помощью команды ( ATrigDis . sql ):

alter trigger TABLE_LOG disable

Рекомендуется в конфигурационном файле сделать установку для активизации всех сегментов отката при запуске БД. Это приведет к уменьшению количества процессов по активизации сегментов отката при большом количестве транзаций. Установка выполняется с помощью параметра ROLLBACK _ SEGMENTS следующим образом ( R 01.. R 10 – имена сегментов отката):

Рекомендуется установить параметр OPTIMAL для всех сегментов отката не менее 4 М. Можно, например, по следующей схеме: для первого сегмента 32, далее — 16, 16, 8, 8, 4, 4, 4, 4, 32 (если последний используется для процесса PURGE в репликационном механизме). Это приведет к тому, что после достижения данного размера, сегмент отката уже не будет сокращаться процессом Oracle меньше данного значения, и в дальнейшем не будет тратиться время на его расширение. Установку параметра удобно выполнять с помощью утилиты Oracle Storage Manager (вкладка Extents , опция Optimal Size — см. Часть 1, Глава 6: Oracle Storage Manager ( Vag . exe ) ) или с помощью команды:

alter rollback segment R01 storage (optimal 4M)

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

Рекомендуется проанализировать транзакционную нагрузку таблиц и разделить их на группы, установив для каждой группы свои параметры PCTUSED и PCTFREE , например ( ATabPct . sql ):

· Журнал изменений EDITIONS (большая таблица, много добавлений, удалений (очисток), нет правок): PCTUSED = 20, PCTFREE = 5;

· Некоторые «тяжелые» таблицы, указанные в приведенных выше рекомендациях 2-3 (очень большие таблицы, очень много добавлений, правок, удалений): PCTUSED = 20, PCTFREE = 10;

· Рабочие таблицы и справочники отдельных филиалов (среднее количество вводов, правок, удалений): PCTUSED = 30, PCTFREE = 30;

· Общие справочники (очень мало ввода, правок, удалений): PCTUSED = 80, PCTFREE = 10;

Установка данных параметров выполняется с помощью утилиты Oracle Schema Manager (см. Часть 1, Глава 6: Oracle Schema Manager ( Vas . exe ) ) или команды:

alter table ТАБЛИЦА pctused 20 pctfree 5

Пути повышения производительности запросов СУБД Oracle

Пути сокращения времени поиска нужных записей в таблицах

Для улучшения временных характеристик процесса соединения таблиц (или поиска записей в таблицах) необходимо индексировать столбцы, на основании которых происходит соединение таблиц, или соединять таблицы в кластеры (в этом случае индексирование выполняет Oracle ). Кроме того, во фразе FROM таблицы нужно указывать в порядке убывания числа строк таблиц (таблицу с наибольшим числом строк указывать первой, таблицу с наименьшим числом строк — последней и т.д.)

Оптимизация запросов Oracle

Даже не пользуясь индексами или кластерами, Oracle способен производить достаточно быстрый поиск в одной небольшой таблице. Однако, если во фразе where в операторе SELECT используется столбец, для которого установлен индекс или кластер, то выборка данных производится гораздо быстрее.

1. Если во фразах where встречается много столбцов, то определение того, какой столбец или столбцы будут “руководить” поиском в базе данных или служить отправной точкой для такого поиска, ведется по определенной схеме. Каждое из выражений (предикатов) во фразе where , связанных между через and , получает отдельную оценку в следующей последовательности:

· where ROWID = константа ;

· where уникальный индексированный столбец = константа;

· where полный уникальный составной ключ = константа;

· where полный неуникальный составной ключ = константа;

· where полный несжатый индекс >= нижняя граница;

· where полный сжатый индекс >= нижняя граница;

· where неуникальный индекс = константа

and неуникальный индекс = константа

· where наибольший несжатый индекс >= нижняя граница;

· where наибольший сжатый индекс >= нижняя граница;

· where уникальный индексированный столбец between нижнее значение and верхнее значение или

· where индексированный столбец like ‘С%’ (диапазон с границами);

· where неуникальный индексированный столбец between нижнее значение and верхнее значение или

· where индексированный столбец like ‘С%’ (диапазон с границами);

· where уникальный индексированный столбец константа (диапазон без границ);

· where неуникальный индексированный столбец константа (диапазон без границ);

· order by полный индекс ;

· where max или min от одного индексированного столбца;

· where неиндексированный столбец = константа или

· where столбец is NULL или

· where столбец like ‘%С%’ (поиск по всей таблице).

Термин «составной ключ» означает либо ключ, состоящий из многих столбцов одной и той же таблицы, либо ключ кластера.

2. Использование несжатых индексов иногда способно существенно ускорить выборку соединений и обработку фраз where , в которых указан полный ключ. (Это обусловлено тем, что Oracle может считывать полное значение ключа из индексного блока, не тратя времени на чтение и поиск его в блоке данных).

3. Другой способ оценки применяется для каждого соединения или внешнего соединения. Соединения оцениваются по числу таблиц, которые должны соединяться без пользования индекса и по числу декартовых произведений. Если какой-нибудь предикат во фразе WHERE имеет низкую оценку на поиск и он представляет собой лишь соединение таблиц без использования индексов, то для “ведущего” столбца будет выбран другой предикат, который выполняет соединение с использованием индексов. Оценка соединения всегда преобладает над суммарной оценкой предикатов.

4. Предикаты, связанные друг с другом через or , обрабатываются отдельно. Это означает, что предикаты, связанные через or или выражения in (список значений) будут обрабатываться медленнее, чем вложенные запросы.

Запрос с индексированным DEPTNO :

select ENAME, SAL from EMP where DEPTNO in (10,20,40);

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

select ENAME, SAL from EMP where DEPTNO in

(select DEPTNO from TEMTABLE);

где таблица TEMTABLE содержит значения DEPTNO:10,20,40 .

5. В данной версии все предикаты равноправны и первая таблица во фразе from будет “управляющей” таблицей. Если одна из таблиц в соединении значительно меньше, чем другая, то самую маленькую таблицу следует указать первой.

Некоторые полезные команды SQL

· После создания БД, дабы в этом убедиться, можно выполнить запрос

select NAME from V$DATABASE;

(предварительно нужно приконнектиться как SYSTEM )

· Если Вы хотите узнать версию установленного сервера Oracle с для установленной БД — запустите утилиту Oracle SQL * Plus , присоединитесь к БД любым пользователем, и, при успешном соединении с БД, в окне Oracle SQL * Plus появятся сообщения с версией Oracle SQL * Plus и версией самой БД. Один из распространенных случаев, когда необходимо уточнить версию сервера Oracle – выдача сообщений утилитами экспорта/импорта о несовместимости версий. Это происходит, когда серверная часть старее клиентской.

· Е c ли с БД Oracle возникли проблемы, требующие внимательного изучения конфигурационных параметров, а у Вас нет доступа к файлу INIT SID >. ORA , находящемуся на сервере в каталоге % ORACLE _ HOME %\ DATABASE — воспользуйтесь недокументированной командой утилиты SVRMGR 30 – sh ( ow ) parameters . При этом на экран отобразяться все настройки, указанные явно в INIT SID >. ORA и используемые Oracle по умолчанию. Удобнее предварительно задать команду SPOOL МойДиск.МойПуть.МойФайл. LST : тогда вывод будет дублирован в указанный протокол, который Вы сможете не торопясь изучить и сделать свои пометки. Можно также использовать команду show для определения конкретного параметра. Можно также просмотреть конфигурационные параметры с помощью утилиты Oracle Instance Manager из пакета OEM (см. Часть 1, Глава 6 : Oracle Instance Manager (Vai.exe)).

· Запомните удобную команду spool – при этом не потребуется копировать результаты запросов из окна Oracle SQL * Plus или Oracle SQL Worksheet в файл через буфер обмена. Не забудьте только отключить спулинг после выполнения скрипта ( spool off ), т.к. файл протокола не будет закрыт и будет имееть нулевой размер. И не нужно ставить «;» после этой команды (как и после set echo on ), т.к. это не SQL -команда, а команда самой утилиты.

· Если Вы, например, отлаживаете хранимые процедуры в Oracle SQL * Plus или Oracle SQL Worksheet , то очень поможет команда show errors , показывающая, в каких строках и какие ошибки имели место. Имейте только ввиду: если процедура начинается с комментариев, они не посчитаются за строки. Чтобы этого не произошло, рекомендуется не очень красивый, но используемый профессионалами способ – сначала писать create procedure Процедура (…) as , затем вводить заголовочные комментарии, а затем продолжать описание процедуры.

· После создания БД также удобно просматривать ее на наличие таблиц, например, такими командами:

(при этом выводится описание структуры таблицы)

select TABLE_NAME from USER_TABLES; — ( ИЛИ … from TABS);

select OBJECT_NAME from USER_OBJECTS where OBJECT_TYPE=’TABLE’;

(или можно использовать представление OBJ вместо USER _ OBJECTS )

· Запросы к Словарю БД для просмотра описания или важных параметров пользовательских объектов:

· Просмотр параметра LAST NUMBER в последовательности:

select LAST_NUMBER from USER_SEQUENCES

· Просмотр т екста триггера:

where TABLE_OWNER=’PLIPEKN’ and TRIGGER_NAME=’ACCID_LOG’;

· Просмотр т екст а функции:

select substr(TEXT,1,500) from USER_SOURCE

where TYPE=’FUNCTION’ and NAME=’BRANCH_ID’;

· Просмотр п рав для пользователя:

select PRIVILEGE from SESSION_PRIVS;

· Просмотр ролей для пользователя:

select ROLE from SESSION_ROLES;

· Просмотр прав для роли:

select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=’DBA’;

· Просмотр ролей для роли:

select PRIVILEGE from ROLE_SYS_PRIVS

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

В Oracle 8 существуют следующие встроенные модули (подчеркнутые – используемые в настоящей документации) [2, с.568]:

· DBMS _ ALERT – Синхронное взаимодействие соединений (сеансов)

· DBMS _ APPLICATION _ INFO – Регистрация приложений для трассировки

· DBMS _ AQ и DBMS _ AQADM – Управление средством Oracle 8 Advanced Queuing

· DBMS _ DEFER , DBMS _ QUERY и DBMS _ DEFER _ SYS – Создание отложенных вызовов удаленных процедур и управление этими вызовами (используется в репликационном механизме Multimaster )

· DBMS _ DDL – PL / SQL -эквиваленты для некоторых команд DDL

· DBMS_SESCRIBE – Описание хранимых подпрограмм

· DBMS _ JOB – Планирование выполнения процедур PL / SQL

· DBMS _ LOB – Работа с объектами LOB в Oracle 8

· DBMS_LOCK – Блокировки, определяемые пользователями

· DBMS _ OUTPUT – Вывод информации на экран

· DBMS _ PIPE — Асинхронное взаимодействие соединений (сеансов)

· DBMS _ REFRESH и DBMS _ SNAPSHOT – Работа с моментальными снимками

· DBMS _ REPCAT , DBMS _ REPCAT _ ADMIN , DBMS _ REPCAT _ AUTH – Работа со средством симметричного тиражирования Oracle (используется в репликационном механизме Multimaster )

· DBMS _ ROWID – Получение информации из идентификаторов строк ( ROWID ). Преобразование ROWID Oracle7 в ROWID Oracle8 и наоборот

· DBMS_SESSION – PL/SQL- эквивалент команды alter session

· DBMS _ SHARED _ POOL – Управление разделяемым пулом

· DBMS _ SQL – Динамические PL / SQL и SQL (пример в Главе 3 Части 1)

· DBMS_TRANSACTION – Команды управления транзакциями

· DBMS_UTILITY – Дополнительные служебные процедуры


· UTL_FILE – Файловый ввод-вывод

Эти модули иногда бывают очень полезны (вывод на экран, обмен сообщениями), а в ряде случаев без них не обойтись. Например, при импорте схемы в БД для замены устаревших данных в таблицах данного пользователя необходимо сначала отключить все триггеры и ограничения для этих таблиц, затем удалить все данные, и только после этого производить импорт. Затем нужно опять включить ограничения и триггеры. Чтобы в скрипте не перечислять имена всех таблиц, триггеров и ограничений, можно их выбрать из Словаря данных ( USER _ OBJECTS и др.) и затем использовать как параметры. Это достигается с помощью модуля DBMS _ SQL (в Главе 5 Части 1 это будет подробно описано).

Что применять для ввода команд: SVRMGR 30, SQL Plus или SQL Worksheet ?

Указанные в заголовке утилиты предназначены для ввода команд SQL ( DML и DDL ), запуска скриптов, просмотра ошибок выполнения команд и ввода других команд, необходимых для управления БД. Следует отметить, что большинство «ручных» действий (т.е. выполняемых фактически в режиме командной строки), можно проще, нагляднее и быстрее осуществить в диалоговом режиме с помощью утилит пакета Oracle Enterprise Manager и других. В то же время, наиболее «тонкое» управление БД, также как и самую исчерпывающую информацию (находящуюся в Словаре БД, состоящим из многих групп таблиц и представлений), можно получить только в режиме командной строки.

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

· SVRMGR 30 . Главное удобство – можно пользоваться на сервере Novell Netware . Имеется также удобная команда show parameters для просмотра конфигурационных параметров. Удобна для запуска больших скриптов (например, генерации БД или запроса к большой таблице), т.к. не имеет буфера для хранения исполненных команд. Недостатки – обычные недостатки утилит командной строки, где все действия нужно определять вводом команд. Но это также является мощным достоинством – эту утилиту можно использовать в командных файлах ( BAT и NCF ), что позволяет набор однотипных действий выполнить одним нажатием клавиши. Впрочем, был обнаружен более существенный недостаток – выполняемый в этой утилите скрипт ломался на комментариях более 1000 символовOracle SQL * Plus все прошло нормально). Следовательно, и слишком длинные SQL -выражения (часто встречающиеся в insert и update ) также не пройдут.

· Oracle SQL * Plus . Главные удобства: имеется везде; можно использовать для запуска больших скриптов (т.к. буфер ограничен); выводит после соединения версию БД. Неудобства: никаких удобств (нельзя «ползать» по вводимой строке для ее правки; нельзя повторить предыдущий ввод и т.д.). Еще один недостаток – при соединении нельзя указывать as dba (как в Oracle SQL Worksheet ) – для этого нужно явно вводить команду (как и вообще последующие команды connect ). И еще неудобство – по умолчанию длинные строки переносятся (в отличие от Oracle SQL Worksheet ). Впрочем, при определенном навыке, работа с Oracle SQL * Plus перестает казаться неудобной.

· Oracle SQL Worksheet . Это наиболее удобный «командный» пульт. Имеет неограниченный буфер выполненных команд и их результатов, имеет историю команд ( Ctrl — P – ввод предыдущей комнды, Ctrl — N – ввод следующей команды), позволяет редактировать вводимую строку. Запуск команды осуществляется кнопкой с молнией или клавишей Ctrl — Enter (в SVRMGR 30 и Oracle SQL * Plus надо было вводить «;», затем нажимать Enter ). Имеется также кнопка для соединения с БД. Утилитой можно пользоваться только на клиенте, где установлен пакет OEM . Главный недостаток (запомните!) – нельзя использовать для запуска больших скриптов (например, генерации Словаря БД), т.к. при заполнении буфера происходит пропорциональное замедление обработки следующих команд. Если Вам не повезет и в голову придет идея запустить скрипт генерации БД (да еще без спулинга), то через несколько часов Вы все равно снимите эту задачу, а потом потратите не известно сколько времени, чтобы понять, что было создано, а что еще нет (и что надо удалять и заново пересоздавать). Еще один недостаток – если скрипт большой или запрос выполняется долго, а Вы переключились в другое окно, то, вернувшись, кроме песочных часов можете обнаружить белый экран. В Oracle SQL * Plus такая проблема возникает реже — Вы почти всегда видите весело бегущие строчки. Так что — да здравствует неудобный Oracle SQL * Plus . А если и он немеет – посмотрите, не «отвалилась» ли сетка. Такое, к сожалению, часто бывает.

Описание ряда особенностей при работе с Oracle

Некоторые особенности

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

· Свойства связи между БД определены в объекте dblink , среди которых есть и пароль пользователя для основной схемы БД (которой принадлежат все таблицы). Смена этого пароля сделает dblink неверным.

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

Обнаруженные некорректности

· Неточности и подводные камни в технической документации:

· Никогда не делайте просто shutdown (как сплошь и рядом написано в документации) – компьютер виснет надолго, а, может, и навсегда (до перезагрузки, что чревато). Всегда указывайте конкретно, например, shutdown normal или shutdown immediate .

· Для останова БД рекомендовано запускать ORASTOP . NCF , а для запуска – ORASTART . NCF . Посмотрите вызываемые в них файлы STOPDB . SQL и STARTDB . SQL – и Вы не всегда будете пользоваться этими командными файлами, либо их откорректируете:

· в останове БД выполняется immediate (хотя при отсутствии сервисов лучше делать normal );

· БД запускается как nomount (потом надо делать alter database open либо «переключить светофор» в Oracle Instance Manager из OEM ).

· Хотя и декларируется, что Novell Netware 5 допускает длинные имена файлов (и это на самом деле так), но при генерации БД имена файлов для табличных пространств следует задавать все-таки 8-значными (например, не INDX 1 ORCL . ORA , а IND 1 ORCL . ORA ), иначе файл не будет создан.

· Неприятности с версиями Oracle:

· Если БД создана в Oracle Enterprise Edition 8.0.3. for Novell Netware 5 , а на рабочем месте установлен Oracle Client 8.0.3. for Novell Netware , то Вы сможете лицезреть некорректную работу Oracle ODBC Driver : если в MS Access 97 в присоединяемой к Oracle таблице имеются пустые поля типа даты, то соответствующие записи могут отображаться как ошибочные (метка «Ошибка» в каждом поле такой записи), запросы к таким таблицам выполняться не будут, а формы, источниками строк в которых являются эти запросы, будут падать.

· Если БД создана в Oracle Enterprise 8.0.3. for Novell Netware 5 , а на рабочем месте установлен Oracle Client 8.0.4. for Novell Netware , то работа Oracle ODBC Driver исправляется, но утилиты EXP 80. EXE и IMP 80. EXE , а также Oracle Data Manager из пакета OEM выдают при работе ошибку: Не могу выполнить экспорт/импорт с БД устаревшей версии.

· Единственная корректная версия Oracle для Novell Netware 5 – 8.0.4. Установите сервер и клиент именно этой версии и затем генерите БД. Не стоит создавать БД на сервере 8.0.3, а затем делать ее upgrade , т.к. этот процесс более трудоемкий, чем об этом написано в сопроводительной документации (в частности, там ничего не говорится о необходимости перекомпиляции хранимых процедур, модулей и других объектов).

· Существуют свои засады и с версиями Oracle , серверная часть которого установлена на сервере MS Windows NT 4.0 , а клиентская – на MS Windows NT 4.0 , MS Windows 95 и MS Windows 98 .

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

Сначала о своих намерениях сообщите разработчикам, поскольку при изменении сетевого адреса сервера необходимо откорректировать файл TNSNAMES . ORA — как в Компании, так и во всех Объединениях, а также перестроить в Компании все снимки на Ваши таблицы. Кроме того, это чревато перегрузкой сервера в Компании из-за многочисленных безуспешных попыток чтения таблиц в снимки, а также переполнением журналов снимков записями об ошибках. Т.е. дело это хлопотливое, опасное и делается по взаимному согласованию.

Возможные аварийные ситуации

Молния вывела из строя маршрутизатор

При этом вышла из строя связь по TCP / IP -протоколу. Если другие протоколы работоспособны, введите их описание в файл TNSNAMES . ORA (см. Часть 1, Глава 2: Создание строки соединения TNS (корректировка TNSNAMES . ORA ) ), причем строку описания работающего протокола переместите на первое место, а аварийного – на последнее.

Oracle Database

Разработчики: Oracle
Дата последнего релиза: 2020/04/29
Технологии: СУБД

Содержание

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

СУБД Oracle имеет большое количество различных версии и типов.

Хроника

Исправление 10 уязвимостей

17 октября 2020 года стало известно, что компания Oracle исправила 219 опасных уязвимостей в разных линейках продуктов. Oracle Database получила 10 исправлений.Подробнее здесь.

Обзор ключевых функций Oracle Database 19c

25 апреля 2020 года стало известно о том, что корпорация Oracle представила ключевые функции, включенные в Oracle Database 19c. Сама версия была представлена на Oracle Live SQL в начале 2020 года.

Функция Automatic Indexing создает индексы автоматически с использованием алгоритмов машинного обучения, причем, как показали тесты, она часто справляется с этой задачей лучше, чем человек.

«Эта база данных может сама определить оптимальный набор индексов. При их создании учитываются структура данных, сами данные и запросы. Это означает, что базу данных можно создать и начать использовать вовсе без каких-либо индексов или с очень небольшим набором индексов. База данных проанализирует ресурсоемкие запросы, чтобы понять, какие индексы потенциально нужны, проверит полезность отобранных кандидатов, а затем сама построит индексы, причем все это займет меньше времени, чем создание индексов вручную».

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

«Часто они создаются для отчетов или пакетных заданий, в которых уже больше нет нужды. Это не так безобидно, поскольку индексы увеличивают потребность базы данных в вычислительных ресурсах и ресурсах хранения».

Эта возможность Oracle Database 19c помогает эффективнее использовать резервную базу данных, зеркальную копию рабочей базы данных, предназначенную для аварийного восстановления.

Для этого в Oracle Database 11g корпорация Oracle предложила опцию Oracle Active Data Guard, с помощью которой можно открывать резервную базу данных на чтение, создавать на ней отчеты и выполнять бэкапы. В Oracle Database 19c реализована дополнительная возможность Active Data Guard DML Redirect, которая позволяет изменять данные в резервной базе данных.

«Одна из причин такого нововведения в том, что многим приложениям при создании отчетов требуется не только читать данные, но и делать некоторые записи в базе данных. С помощью Active Data Guard DML Redirect операции записи немедленно и прозрачно перенаправляются в первичную базу данных и после занесения в нее реплицируются в резервную БД. С точки зрения пользователя это выглядит так, как будто он обновляет данные в резервной базе данных».

Active Data Guard DML Redirect работает одинаково качественно при размещении резервной базы данных как в локальной среде, так и в облаке, а также когда и основная, и резервная базы данных выполняются в облачной среде.

Гибридные секционированные таблицы (Hybrid Partitioned Tables) позволяют совмещать в рамках одной таблицы как секции, которые находятся внутри стандартного табличного пространства, так и секции, которые размещаются на внешних дешевых системах хранения вне базы данных.

Все возможности аналитики СУБД Oracle можно использовать тогда, когда данные размещены на внешней недорогой системе хранения. Эти системы хранения данных могут располагаться как в локальном ЦОД клиента, так и в облаке. Некоторые секции таблицы, размещенные в БД вашего ЦОД, могут лежать в облаке. Данные вне базы данных Oracle доступны только для чтения и не нуждаются в регулярном бэкапе, но к ним можно обращаться из Oracle Database.

Поддержка JSON появилась еще в Oracle Database 12c, где было реализовано нативное хранилище документов JSON и SQL-доступ. Она получила дальнейшее развитие в версии 18c с внедрением аналитики для документов JSON.

В Oracle Database 19c появилась поддержка интерфейсов прикладного программирования Simple Oracle Document Access (SODA) для Java, Python, C и Node.js.

«Вы можете работать с широким спектром API-интерфейсов NoSQL, которые получают строки из документов JSON в базе данных. Общая производительность витрины данных или хранилища данных может резко упасть при частом выполнении запросов с очень высокими требованиями к ресурсам ЦПУ и вводу-выводу. СУБД Oracle Database 19c может автоматически помещать эти запросы в карантин (Query Quarantine) и блокировать их выполнение, если уровень потребления ресурсов превосходит заданные для них пороговые значения».

Oracle Database обеспечивает стабильность приложений и локальных инсталляций баз данных. [1]

«Стабильность является целью Oracle Database 19c — это релиз с долгосрочной поддержкой. Циклы обновления локальных СУБД у наших клиентов достаточно длительные, и многие клиенты ждали релиз Oracle Database 19c, чтобы перейти на него с Oracle Database 11g или Oracle Database 12c».

2020: Amazon хочет отказаться от ПО Oracle. Ларри Эллисон говорит, что это невозможно

7 августа 2020 года соучредитель Oracle Ларри Эллисон прокомментировал слухи о планах Amazon отказаться от использования программного обеспечения Oracle. По словам бизнесмена, Amazon едва ли сможет это сделать, поскольку раньше это не получилось ни у самой компании, ни у конкурентов Oracle. Подробнее здесь.

2015: Облачная платформа Oracle Database Cloud

18 ноября 2015 года корпорация Oracle выпустила продукты Oracle Database Cloud, дополняющие портфолио сервисов Oracle Cloud Platform для разворачивания в облаке надежных, масштабируемых, защищенных решений и приложений, основанных на базах данных.

Представление Oracle Database Cloud (2015)

Теперь доступны критически важные возможности:

  • кластеризация для обеспечения отказоустойчивости и масштабируемости по требованию,
  • аварийное восстановление с нулевыми потерями данных
  • сервис Oracle Database Exadata Cloud Service.

Oracle также представила бесплатный сервис, позволяющий администраторам баз данных и разработчикам испытать возможности Oracle Database в среде Oracle Cloud без финансовых затрат и рисков.

Возможности Oracle Database Cloud:

  • Платформа для критически важных приложений: Сервис Oracle Database Exadata Cloud Service обеспечивает непревзойденную масштабируемость, производительность и доступность Oracle Database. Предприятия могут в полной мере использовать преимущества Oracle Exadata Database Machine для выполнения критически важных приложений и консолидации баз данных в среде Oracle Cloud.
  • Доступность и масштабируемость: предприятия могут эффективно использовать решение Oracle для кластеризации баз данных в облачной среде. Продукт Oracle Real Application Clusters, входящий в состав Oracle Database Cloud Service и Oracle Database Exadata Cloud Service, обеспечивает масштабируемость по требованию и отказоустойчивость баз данных.
  • Аварийное восстановление: теперь можно развернуть облачное решение для аварийного восстановления в реальном времени, которое защищает базы данных Oracle в случае сбоя на уровне площадки или региона. Продукт Oracle Active Data Guard, входящий в состав Oracle Database Cloud Service и Oracle Database Exadata Cloud Service, обеспечивает непрерывную репликацию баз данных, развернутых непосредственно на предприятии или в среде Oracle Cloud, в активную резервную базу данных в Oracle Cloud с нулевыми потерями данных. Также предприятия могут более эффективно использовать ресурсы и повысить продуктивность, переместив операции подготовки отчетов, выполнения специальных запросов и резервного копирования на активную резервную базу данных Oracle Database.
  • Сервисы разработки и тестирования: Oracle предлагает бесплатные пробные версии, которые разработчики могут эффективно использовать для создания облачных приложений уровня подразделения, предприятия и web-приложений. Разработчикам предлагается полный комплекс сервисов для разработки/тестирования с Oracle Database Cloud, включая новый бесплатный сервис и доступ к Oracle Java Cloud Service, Oracle Database Backup Service и Oracle Storage Cloud Service.

Портфолио сервисов Oracle Database Cloud

Oracle Database Cloud предлагает обширное портфолио облачных сервисов для обеспечения мощности и уровней обслуживания в соответствии с потребностями разработчиков, небольших компаний и глобальных предприятий. Базы данных могут развертываться в облаке за несколько минут, предлагая полную совместимость с локальными базами данных и встроенную безопасность со сквозным шифрованием. Клиенты могут выбрать управляемое Oracle или полностью автоматизированное администрирование, которое включает автоматическое применение пакетов исправлений и обновлений, резервное копирование и восстановление. В результате ИТ-службы могут значительно повысить гибкость и сократить затраты.

  • Oracle Database Cloud Service: Компании могут развернуть полностью управляемую базу данных для быстрой разработки и внедрения приложений уровня подразделения или автоматизированную облачную базу данных для поддержки критически важных корпоративных приложений. Доступен широкий спектр вариантов использования функций и опций Oracle Database для максимального повышения производительности, доступности, безопасности и консолидации.
  • Oracle Database Exadata Cloud Service: Предприятия теперь могут развертывать критически важные производственные базы данных OLTP и хранилища данных в среде Oracle Cloud. Этот сервис работает на платформе Oracle Exadata, используемой на тысячах площадок по всему миру. Oracle Database Exadata Cloud Service имеет встроенные средства обеспечения высокой производительности и доступности, такие как Oracle Multitenant, Oracle Database In-Memory, Oracle Real Application Clusters, Oracle Active Data Guard, InfiniBand Fabric и Smart Flash Cache.
  • Oracle Database Backup Service: Семейство Oracle Database Cloud также включает масштабируемое и недорогое решение, позволяющее предприятиям хранить резервные копии баз данных Oracle, развернутых непосредственно на предприятии или в среде Oracle Cloud, не заботясь о сокращающихся окнах для резервного копирования, потерях данных или неполном восстановлении. Резервное копирование баз данных в Oracle Cloud может выполняться с использованием того же процесса, который применяется для локального резервного копирования на диск или ленту. Данные шифруются на источнике и трижды зеркалируются в облаке для обеспечения безопасности и восстановления в любых ситуациях.

В числе лидеров мирового рынка СУБД

На 2013 год на мировом рынке корпоративных систем управления базами данных (СУБД) доминирующее положение занимает традиционная тройка продуктов: IBM DB2, Microsoft SQL Server и Oracle. Более 80% рынка СУБД в течение долгих лет контролируется тремя компаниями производителями: IBM, Oracle и Microsoft.

Oracle9i — СУБД для средних компаний

Ядром СУБД Oracle9i является сервер базы данных, который поставляется в одной из четырех редакций в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. [2]

Для интернет-систем (public) и систем масштаба крупной организации (enterprise) предлагается продукт Oracle9i Database Enterprise Edition (корпоративная редакция), для которого имеется целый набор опций, архитектурно и функционально расширяющих возможности сервера. Продукт Oracle9i Database Standard Edition (стандартная редакция) ориентирован на организации среднего масштаба или подразделения в составе крупной организации (workgroup). Для персонального использования предлагается «персональный Oracle» (Oracle9i Database Personal Edition), и для систем мобильной связи и небольших офисов — Oracle9i Database Lite. В стандартной, персональной и мобильной редакциях основной акцент сделан на невысокую стоимость, простоту установки и сопровождения. При этом все варианты сервера Oracle имеют в своей основе один и тот же исходный код и функционально идентичны , за исключением некоторых дополнительных опций, которые необходимы для специфических конфигураций (например, для поддержки кластерных архитектур необходима опция Oracle9i Real Application Clusters).

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

Одной из основных характеристик СУБД Oracle является функционирование системы на большинстве платформ. В том числе на больших ЭВМ, UNIX-серверах, персональных компьютерах и т. д.

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

Поддержка Oracle большинства популярных компьютерных платформ и архитектур достигается за счет жесткой технологической схемы разработки кода СУБД. Разработку серверных продуктов выполняет единое подразделение корпорации Oracle, изменения вносятся централизованно. После этого все версии подвергаются тщательному тестированию в базовом варианте, а затем переносятся на все платформы, где также детально проверяются. Возможность переноса Oracle обеспечивается специфической структурой исходного программного кода сервера баз данных. Приблизительно 80% программного кода Oracle — это программы на языке программирования C, является платформо-независимым. Примерно 20% кода, представляющее собой ядро сервера, реализовано на машинно-зависимых языках; и эта часть кода, разумеется, переписывается для различных платформ.

Однa из отличительных особенностей сервера Oracle — возможность хранения и обработки различных типов данных. Данная функциональность интегрирована в ядро СУБД и поддерживается модулем interMedia в составе Oracle Database. Он обеспечивает работу с текстовыми документами, включая различные виды поиска, в том числе контекстного; работу с графическими образами более 20-ти форматов; работу с аудио и видеоинформацией.

СУБД Oracle не только предоставляет расширенный набор встроенных типов данных, но и позволяет за счет использования Object Option конструировать новые типы данных со спецификацией методов доступа к ним. Это означает фактически, что разработчики получают в руки инструмент, позволяющий строить структурированные типы данных, непосредственно отображающие объекты предметной области.

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

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

Компонент Oracle Enterprise Manager представляет собой универсальное средство администрирования баз данных, снабженное удобным графическим интерфейсом и позволяющее администратору баз данных выполнять широкий спектр операций над множеством баз данных Oracle,включая создание, модификацию и удаление любых объектов внутрикаждой из них.

Модуль Advanced Replication Option позволяет выполнять репликацию данных в широком диапазоне возможностей, включая синхронную, асинхронную, каскадную и другие типы репликации.

Модуль Oracle Workflow представляет собой средство для автоматизации стандартных бизнес-процедур организации, для разработки процедур управления потоками работ. Он предлагает расширенные возможности автоматизации прохождения и обработки информации произвольного типа и формализации сложных бизнес процедур и алгоритмов обработки информации.

Одна из ключевых возможностей сервера БД Oracle — механизм хранения и обработки очередей сообщений, который называется Oracle Advanced Queuing (AQ). Он поставляется вместе с сервером баз данных, и его не нужно лицензировать отдельно. Компонент AQ относится к классу Message Oriented Middleware (ПО промежуточного слоя для обработки сообщений). Наличие такого компонента позволяет построить на базе сервера полнофункциональную инфраструктуру для обработки сообщений и исключает необходимость приобретения для этой цели дополнительных средств третьих фирм (таких как IBM MQ Series), обеспечивая, в то же время, связь с ними в неоднородных средах за счет продукта Oracle Messaging Gateways.

Начиная с версии Oracle8i, в состав сервера (во все редакции) включена виртуальная Java-машина (JServer Enterprise Edition) .

Компонент Oracle Obects for OLE предоставляет возможность доступа к базам данных Oracle-приложений, разработанных на C++, Microsoft Visual Basic, OLE 2.0. Полная поддержка языка макроопределений в Visual Basic позволяет получать данные из Oracle непосредственно в электронных таблицах Microsoft Excel.

Редакции: от Express Edition до Enterprise Edition


На 2012 год компания предлагает следующие редакции СУБД:

  • Oracle Express Edition (XE): это редакция начального уровня. Является бесплатной для разработки, развертывания и распространения. Так же является отличным выбором для разработчиков, студентов и маленьких организаций. Редакция Oracle XE очень проста в установке и администрировании, может быть установлена практически на любой компьютер, с любым количеством процессоров и объемом памяти. Но, существует ряд ограничений, а именно объем пользовательских данных не может превышать 4 Гб, и Oracle XE не может использовать более 1 Гб оперативной памяти. На данный момент, эта редакция не сопровождаеться службой поддержки Oracle — My Oracle Support (ранее Metalink), но зачастую ответы на интересующие вопросы можно найти на форумах посвященных Oracle и разработке под эту СУБД.
  • Oracle Personal edition (PE): Эта редакция поддерживает однопользовательские среды для разработки и развертывания, которые требуют полную совместимость с Oracle Database Standard Edition One, Oracle Database Standard Edition и Oracle Database Enterprise Edition. Oracle PE содержит все компоненты, опции и функциональность, которые включены в редакцию Enterprise Edition, за исключением опции Oracle Real Application Clusters (RAC). Из отрицательных сторон этой редакции — она доступна только для Windows платформы (Windows 2000, Windows NT, Windows XP, Windows Vista и Windows Server 2003/32-bit и 64-bit версии), так же в эту редакцию не включен Management Pack.
  • Oracle Standard Edition One (SEO): хорошее соотношение цена/производительность, подходит для рабочих групп, отдельных подразделений и создания Web-приложений. Эта редакция рекомендована для использования в различных средах, от выделенного сервера, для небольшого бизнеса, до распределенных сред, практически любого масштаба. Oracle Database SEO содержит все необходимое для построения бизнес-критичных приложений.
  • Oracle Standard Edition (SE): Предлагает недорогую альтернативу для небольшого и среднего бизнеса, или приложений уровня подразделений, которые хотят иметь всю мощь Oracle. Эта редакция содержит все преимущества Oracle SEO, плюс поддержку больших машин и кластеризации с использованием Real Application Clusters (бесплатно в этой редакции). Ранее, RAC не включался в редакции Standard Edition, до версии Oracle Database version 10g.
  • Oracle Enterprise Edition (EE): Является самой дорогой и функциональной редакцией, предоставляет наибольшую, по сравнению с другими редакциями, производительность, доступность, масштабируемость и безопасность, критичные для бизнес-приложений. Например, приложений OLTP, хранилищь данных с высоким количеством обращений, распределенных приложений. Oracle Database EE включает все доступные компоненты Oracle Database, и позволяет расширить свои функциональные возможности, за счет приобретения дополнительных пакетов и компонент.

Политика лицензирования

На 2012 год распространение программных продуктов Oracle (далее «Программы») осуществляется путем предоставления лицензий на их использование.

Продажа лицензий в России и странах СНГ производится только уполномоченными партнерами компании Oracle.

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

Стоимость лицензий и технической поддержки рассчитывается на основании всемирного Прейскуранта Oracle (Oracle Global Price List). Лицензируемые программы предоставляются по каналам электронной связи или на носителях CD-ROM. Лицензирование Программ означает приобретение прав на их использование, а не покупку самих программных продуктов.

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

Поддержка языков программирования

На 2012 год СУБД поддерживаются следующие языки программирования:

Также обеспечивается ряд Pro предкомпиляторов, которые позволяют включать SQL и МН / SQL в C, C ++, COBOL или прикладные программы FORTRAN. Обеспечивается поддержка для ODBC посредством Oracle’s ODBC Driver. Имеется Oracle Call Interface (OCI), которое является прикладным программным интерфейсом (API) для языков третьего поколения.

Oracle Database может взломать любой пользователь

Базы данных Oracle может взломать любой пользователь, такие выводы представили эксперты 20 сентября 2012 года на конференции по безопасности в Аргентине, сообщил TechCrunch.

Аналитик AppSec Inc Эстебан Мартинез Файо (Esteban Martinez Fayo) представил концепцию атаки на базы данных Oracle, согласно которой любой человек, имеющий доступ к именам пользователей и протоколу аутентификации, может воспользоваться брешью в продукте корпорации.

AppSec Inc не в первый раз сообщает о возможности взлома продукции Oracle. Ранее компания сообщила о бреши в мае 2010 года, ошибка была зафиксирована вендором в середине 2011 года. При этом, в последние несколько месяцев Oracle выявил несколько серьезных недостатков в безопасности своих систем. На этом фоне, эксперты прогнозируют возможный всплеск хакерской активности в отношении продуктов компании.

По словам Эстебана Мартинеза Файо? Oracle пока не планирует как-либо реагировать на новую брешь в продукте. «Они никогда не исправляли текущих версий, поэтому версии 11.1 и 11.2 могут потенциально быть взломаны», — сказал он.

Утечка происходит на этапе аутентификации — не существует промежуточного этапа для обеспечения дополнительной безопасности. Эксперты в области ИБ советуют системным администраторам обратить на это внимание и разработать пути устранения бреши в компаниях.

Во второй декаде сентября 2012 года Salesforce.com объявил о возможности единого входа для корпоративных приложений на Dreamforce. Таким образом, появление новой бреши в Oracle делает вопросы безопасности и идентификации еще более актуальными.

2010: Доля СУБД Oracle на российском рынке — 60%

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

1992: Выпуск СУБД Oracle 7

Помимо общего повышения эффективности ввода/вывода, использования центрального процессора и работы с памятью, версия СУБД Oracle 7 обладала рядом инновационных архитектурных решений: разделяемый SQL-кэш на сервере (сервер распознает посылаемые клиентами SQL-утверждения, которые ранее уже были проанализированы и скомпилированы и в данный момент находятся в кэш-памяти, за счет чего экономится время анализа, оптимизации и трансляции, а также память, требуемая для хранения SQL-утверждения) и разделяемый пул процессов сервера вместо отдельного процесса для каждого клиента, что позволяет сэкономить значительный объем памяти. В области администрирования баз данных также был введен ряд новшеств: зеркальный журнал транзакций, динамическое создание журналов данных, команда ANALYZE, позволяющая собирать статистику об использовании таблиц, индексов и других физических объектов (эта статистика используется оптимизатором запросов), профили пользователей на использование системных ресурсов: ЦПУ, ввода/вывода и т.д.

В версии 7 были полностью реализованы декларативные ограничения референциальной целостности в соответствии со стандартами ANSI/ISO. В рамках этих ограничений (первичные и внешние ключи) пользователь может специфицировать каскадное удаление связанных с некоторым первичным ключом записей. Процедуры PL/SQL могут описываться на уровне схемы базы данных (хранимые процедуры) и вызываться любым приложением, другими процедурами и триггерами. Взаимосвязанные процедуры могут быть сгруппированы в пакеты и использовать общие переменные и определения. Значения переменных, объявленных на уровне пакета, сохраняются в течение всей пользовательской сессии и могут совместно использоваться процедурами и функциями пакета. Другим важным нововведением явились триггеры базы данных.

Триггер представляет собой пару (событие+действие), где событие — это удаление/занесение/обновление записей таблицы, а действие (тело триггера) — процедура PL/SQL, выполняемая при совершении события. Триггеры могут определяться на уровне утверждений (DELETE, INSERT, UPDATE) или на уровне отдельных строк (FOR-EACH-ROW-триггеры, которые, к тому же, могут работать со старыми и новыми значениями строк). С помощью триггеров можно реализовать сложные правила контроля целостности, прав доступа, вывода значений и пр. Управление безопасностью и целостностью существенно упростилось благодаря введению ролей. Роль — это совокупность прав доступа к объектам базы данных (INSERT, UPDATE, SELECT и др.) и системных прав (CREATE TABLE, ALTER SYSTEM и т.д.). Определив роль, администратор базы данных может с помощью одной команды дать пользователю привилегии для работы с некоторым приложением. Эффективность выполнения распределенных запросов была повышена за счет глобальной оптимизации: в версии 7 оптимизатор обладает информацией об индексах и статистике удаленных таблиц, и, например, скорость соединения таблиц, расположенных в разных узлах сети, существенно возрастает благодаря тому, что из удаленных таблиц выбираются лишь строки, соответствующие строкам локальной таблицы.

1988: Выпуск СУБД Oracle 6

Разработчики версии 6 стремились создать инструмент построения крупномасштабных информационных систем, ориентированных на обработку транзакций в режиме реального времени. Были введены генераторы последовательностей и блокировка на уровне записи, а это вместе с моделью «непротиворечивости чтения» означало, что процессы чтения и записи больше не блокируют друг друга (в состояние ожидания переходит лишь процесс записи при попытке обновить строку таблицы, которая уже контролируется другим процессом записи). В это же время Oracle стал первым многопользовательским сетевым сервером баз данных для OS/2, Xenix, Banyan Vines и Macintosh.

В версии 6 были заложены принципиально новые возможности, в полном объеме реализованные позже. Во-первых, SQL-утверждения могли использоваться совместно с утверждениями процедурного языка PL/SQL и посылаться для исполнения на сервер как анонимные процедуры. Во-вторых, тот же язык PL/SQL был введен в язык четвертого поколения SQL*Forms в качестве средства программирования приложений (в версии 7 расширенный язык PL/SQL стал средством описания процедур и триггеров базы данных). В-третьих, в описание схемы базы данных на синтаксическом уровне были введены (в соответствии с ANSI/ISO-стандартом) декларативные определения ограничений референциальной целостности.

1986: Выпуск СУБД Oracle 5.1

В 1986 году в версии 5.1 были впервые разрешены распределенные запросы — запрос мог обращаться к данным, физически размещенным в разных узлах. Несколько взаимодействующих серверов могли создать у пользователя многих физически разнесенных баз данных иллюзию единой логической базы данных.

1985: СУБД Oracle 5.0

В 1985 году Oracle выпустила на рынок версию СУБД: 5.0, в которой была впервые введена архитектура клиент/сервер и реализована программа SQL*Net, поддерживающая неоднородные среды.

1983: Выпуск Oracle 3

Следующая версия — Oracle 3, выпущенная на рынок в 1983 году, — была уже полностью написана на языке C. Решение использовать C и поддерживать одно множество исходных кодов стало ключом к решению проблемы переносимости Oracle на широкий спектр платформ. Были внесены изменения в язык SQL, существенно улучшена эффективность, расширена архитектура системы и введено атомарное выполнение SQL-утверждений и транзакций (SQL- утверждение либо выполнялось полностью, либо не выполнялось вообще, соответственно, транзакция либо завершалась успешно по всем изменениям базы данных, либо откатывала все сделанные ею изменения).

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

В версии 4 была существенно повышена надежность Oracle, выполнены переносы системы на большие компьютеры в ОС VM и MVS, а также на персональный компьютер с 640 килобайтами оперативной памяти. Была реализована модель контроля доступа к базе данных, которая гарантировала, что результат запроса не противоречит состоянию базы данных на начало запроса (благодаря этому было устранено известное противоречие между процессами чтения и записи).

1979: Выпуск СУБД Oracle 2

В июне 1979 года появилась первая система компании Эллисона — Oracle 2. В маркетинговом отношении Эллисон оказался талантливее Билла Гейтса. В отличие от основателя Microsoft, который первую версию Windows так и назвал — Windows 1.0, он проявил маркетинговую смекалку, поэтому свет увидела сразу вторая версия продукта. Это должно было как бы дать понять заказчикам, что система надежна и даже прошла проверку временем. Эллисона можно понять: у него не было одобрения со стороны IBM, которое было у Гейтса. Даже напротив: Эллисон создавал продукт, который мог стать конкурентом решениям IBM.

Главным конкурентным преимуществом СУБД Oracle была высокая скорость обработки огромных массивов информации, которую тогда отметили все эксперты. В отличие от System R, для работы которой был необходим мощный суперкомпьютер — мейнфрейм, Oracle 2 справлялась с обработкой информации на гораздо более скромных машинах. Это и поспособствовало невероятно широкому распространению детища Эллисона в начале 80-х годов.

Oracle стала исторически первой и одной из наиболее развитых реализацией архитектуры клиент/сервер. Открытость (переносимость + масштабируемость) всегда была основной идеей разработчиков Oracle. Успех компании на рынке СУБД, безусловно, стал прямым следствием открытости системы.

Вторая версия Oracle (первой не существовало вообще) работала на мини-компьютере PDP-11 фирмы Digital Equipment в операционной среде RSX-11. Большая часть Oracle была написана на ассемблере PDP-11, а отдельные компоненты — на новом для того времени языке C. Уже в те дни система была портируемой и работала в других операционных средах PDP-11: IAS, RSTS и UNIX. Тогда же было принято решение о переносе Oracle в новую ОС VMS. Благодаря этому СУБД Oracle заняла обширную нишу корпоративных информационных систем на быстро растущем рынке VAX.

Тогда самое сильное впечатление на пользователей произвела полная реализация возможностей нового языка запросов SQL — подзапросы, операция соединения и непроцедурность, — благодаря чему многократно выросла производительность программирования. Стандартный SQL (IBM) был расширен утверждением CONNECT BY, позволяющим обрабатывать древовидные структуры, что становится уникальным для SQL-систем.

Конечно, вторая версия Oracle была чрезвычайно проста — в частности, не поддерживалось понятие транзакции, и, если в процессе обновления базы данных происходил сбой, состояние базы данных могло стать некорректным, поэтому пользователи были вынуждены часто делать резервные копии базы данных во избежание потерь информации.

1977: Основание Oracle для разработки реляционной СУБД

История Oracle началась в Кремниевой долине, штат Калифорния, США. В 1977 году молодой программист Ларри Эллисон бросил учебу в Йельском университете, чтобы начать собственный бизнес. Ларри Эллисон, в распоряжении которого тогда было всего 1200 долларов, уговорил Боба Майнера и Эда Оутса, своих бывших коллег, создать собственную компанию. До этого все трое разрабатывали по заказу ЦРУ проект под названием… Oracle.

16 июня 1977 года Эдом Оутсом, Бобом Майнером и Ларри Эллисоном в Калифорнии (США) была основана компания Software Development Laboratories, вскоре переименованная сначала с Relational Software Inc. Молодые программисты, чьи общие вложения в бизнес составили $2 тыс., начали разработку системы управления базами данных (СУБД), построенной на принципах реляционной алгебры.

Позднее все сложные СУБД стали реляционными, но, когда в 1970 году сотрудник исследовательской лаборатории IBM Эдгар Кодд предложил новый метод организации баз данных, у многих специалистов были сомнения в том, что он вообще оправдает себя. Поэтому до середины 1970-х годов информация в базах данных распределялась по старинному иерархическому, или «древовидному», принципу, который до сих пор используется для представления файлов в ПК.

В IBM, впрочем, профинансировали создание прототипа системы на принципах, предложенных Коддом, и в 1976 году появился проект System R, который вдохновил будущих основателей Oracle на создание реляционной СУБД.

Платформы

На 2013 год СУБД Oracle поддерживают свыше 80 вариантов операционной среды в широком диапазоне, включая мэйнфреймы IBM, мини-компьютеры DEC VAX, UNIX, Windows и множество других платформ.

Локальная

Oracle database портирована на большое количество платформ: 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.

Оракл для начинающих | Oracle for beginners (18+)

Оракл для начинающих. Советы программистам, администраторам, IT-специалистам, только начинающим изучать СУБД Oracle. Оракл для чайников.

INNER JOIN vs LEFT RIGHT FULL OUTER JOIN

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

INNER JOIN
Inner join или просто join возвращает только те строки из двух таблиц, которые удовлетворяют условию указанному в ON:

SELECT
s.id,
s.supplier_name,
o.order_date
FROM suppliers s
INNER JOIN orders o
ON o.supplier_ >
OUTER JOIN
Outer join возвращает все строки, удовлетворяющие условию, указанному в ON, а также некоторые строки, которые не удовлетворяют этому условию:

  • LEFT JOIN — дополнительно возвращает все строки из левой части условия;
  • RIGHT JOIN — дополнительно возвращает все строки из правой части условия;
  • FULL JOIN — дополнительно возвращает все строки из обеих частей условия.

Поясняющая картинка из статьи на CodeProject:

Полнотекстовый поиск при помощи Oracle Text

Oracle Text — это бесплатная компонента, входящая в состав Oracle Database, предназначенная для создания приложений с использованием полнотекстового поиска. В предыдущих версиях Oracle имела также названия ConText и interMedia Text. Начиная с 11ой версии входит во все редакции СУБД.

Полнотекстовый поиск — поиск документов в базе данных текстов с использованием полнотекстового индекса. Полнотекстовый индекс — это индекс, в котором перечислены все слова, встречающиеся в тексте, и указаны позиции, на которых эти слова встречаются. Полнотекстовый индекс позволяет производить поиск очень быстро, в отличие например от поиска при помощи оператора like. Кроме того, системы полнотекстового поиска обычно включают в себя функционал, расширяющий возможности поиска, например поиск с учетом морфологии языка, синонимов, созвучных слов, с учетом меры близости между словами в запросе и другие.

Oracle Text позволяет строить полнотекстовые индексы 4-ёх типов:

  • CONTEXT — основной тип индекса. Применяется для индексирования содержимого одной или нескольких колонок таблицы;
  • CTXCAT — применяется для индексации небольших текстовых фрагментов, не требует периодической переиндексации;
  • CTXRULE — применяется при создании приложений для классификации документов;
  • CTXXPATH — предназначен для ускорения работы с полями типа XMLType.

Рассмотрим пример создания контекстного полнотекстового индекса по таблице документов docs.

Создадим таблицу документов и наполним ее данными:

create table docs (id number not null, text varchar2(1000) not null);
insert into docs values (1, ‘Шла Саша по шоссе и сосала сушку.’);
insert into docs values (2, ‘London is the capital of The United Kingdom of Great Britain and Northern Ireland.’);

Создадим настройки для полнотекстового индекса и выполним его построение:

begin
ctx_ddl.create_preference(‘my_wordlist’, ‘BASIC_WORDLIST’);
ctx_ddl.create_preference(‘my_lexer’, ‘AUTO_LEXER’);
ctx_ddl.set_attribute(‘my_lexer’, ‘INDEX_STEMS’,’YES’);
end;

create index docs_idx on docs (text) indextype is ctxsys.context parameters (‘LEXER my_lexer WORDLIST my_wordlist’);

Тестируем построенный индекс:

select * from docs where contains(text, ‘саша’) > 0;

ID TEXT
1 Шла Саша по шоссе и сосала сушку.

select * from docs where contains(text, ‘$идти’) > 0;

ID TEXT
1 Шла Саша по шоссе и сосала сушку.

Обратите внимание, что слово ‘идти’ в тексте документов не встречается, но благодаря использованию оператора стемминга $, найден документ, в котором встречается словоформа слова ‘идти’, т.е. слово ‘шла’.

select * from docs where contains(text, ‘united’) > 0;

ID TEXT
2 London is the capital of The United Kingdom of Great Britain and Northern Ireland.

Oracle — что это? Oracle — база данных

Многие пользователи, если не все, часто имеют дело с базами данных, даже не задумываясь об этом. Все веб-сайты, приложения, игры имеют свои собственные базы. Что это такое? Все просто. Это собранная информация, которая организована определенным способом. Простой пример – это телефонная книга. Здесь есть имена и фамилии, номера и, возможно, адреса. Все это упорядочено по какому-то принципу. Например, в алфавитном порядке.

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

Особенности

Главное, что характеризует продукты от этой компании, – это безопасность, надежность, удобство и очень хорошая производительность. Но это не все характеристики, позволяющие им уверенно лидировать на рынке систем управления БД. Так как информационные технологии развиваются очень быстро, от СУБД требуется не только классический набор функций, которые позволяют хранить и обрабатывать данные. Компания Oracle старается успевать за потребностями и наделяет свои продукты новыми возможностями, ломая тем самым стереотипы.

Что такое СУБД?

Oracle – что это? Современная СУБД – это очень серьезный комплекс, который дает возможность разрабатывать программы, обладающие невероятной сложностью. Ну а ядром его является сама база данных, в которой хранится информация. И ее количество, благодаря предоставляемым функциям масштабирования, может быть безграничным. С этими данными может работать сколько угодно пользователей, если это позволяет мощность аппаратных средств. И эффективность при этом нисколько не падает. Даже если число пользователей резко увеличится, все останется стабильным.

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

То, что в систему управления встроена виртуальная машина Java и полная поддержка всех серверных технологий, привело к тому факту, что сегодня Oracle – это стандарт СУБД для всей всемирной паутины.

Поддержка всех платформ

Многоплатформенность является еще одним фактором, благодаря которому продукт имеет огромный успех. СУБД поставляется для любой операционной системы, существующей на рынке в данное время. И работа с ней на всех платформах не вызывает никаких проблем, так как везде все одинаково хорошо.

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

Переход к новым версиям

Миграционная политика компании не вызывает никаких вопросов. Так как процедура перехода с устаревшей версии базы данных на более новую – трудоемкий процесс из-за тестирования работы существующих программ в обновленном окружении, компания, выпуская новые версии продуктов, большое внимание уделяет совместимости старых и новых версий. Это делает переход полностью безболезненным. Если нужно перенести информацию из СУБД других производителей в СУБД от Oracle, компания может предложить бесплатные инструменты для реализации сей процедуры. Это средство обладает дружелюбным пользовательским интерфейсом и поможет пошагово выполнить всю процедуру переноса данных.

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

Версии

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


Enterprise Edition

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

Standard Edition

Что такое Oracle: стандартное издание? Это система управления, которая обладает немного урезанными возможностями в сравнении с предыдущей версией. И это находит отражение в стоимости. Эта версия устанавливается на серверы, которые поддерживают только до четырех процессоров. Данный вариант – это самое лучшее решение для того, чтобы развернуть информационную систему в небольшой организации, рабочей группе или одном подразделении крупного предприятия.

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

Personal Edition

Персональная версия СУБД Oracle — база данных, предназначенная для одного пользователя. Ее используют в целях обучения и при разработке и использовании программ для классических версий операционной системы от «Майкрософт». Этот вариант включает все возможности версии Enterprise. Но для операционной системы Windows 95 и 98 они ограничены из-за невозможности их реализации, так как старые платформы многого не умеют.

Lite Edition

Версия Lite – это самый облегченный, мобильный вариант системы управления базами данных, который позволяет проводить синхронизацию информации, хранящейся на слабых компьютерах и мобильных устройствах с корпоративной базой данных. Доступ к ним обеспечивается при помощи стандартного интерфейса. Это позволяет делать программы обычными средствами разработки.

Итак, можно сказать, что виртуальная машина Java и Oracle – это очень просто. С помощью этой связки можно управлять огромными базами данных с огромным комфортом, а главное — безопасно. СУБД Oracle – что это за программа? После вышесказанного такой вопрос должен отпасть. Это лучший выбор как для серьезных организаций, так и для мелких фирм.

К слову, знание данной технологии — это огромный плюс в копилку соискателя должности программиста. В требованиях к вакансиям часто указывается знание Java, Oracle. Что это значит? Все разработчики так или иначе связаны с базами данных, потому что все программы работают с этими самыми данными.

Скахин Алексей / pihel

Личный блог. Заметки о программировании и не только

Страницы

среда, 23 сентября 2015 г.

ORACLE: основы стоимостной оптимизации

Общие понятия

Селективность = (макс значение — мин значение отобранных данных)/(макс значение — мин значение всех данных)
в общем случае = отобранный интервал / весь интервал
Весь интервал определяется на основе статистики таблицы, это столбец destiny — разряженность: обратный показатель от кол-ва уникальных значений = 1/num_distinct.
Если на столбце есть гистограмма, то рассчитывается на основании ее, как сумма квадратов частоты нечастно встречающихся значения / (кол-во не пустых строк * кол-во не пустых нечастых строк)
т.е. на таблице с 2000 строк, где 1000 строк имеют одно значение, то без гистограммы destiny = 1/1001
с гистограммой = 1*1 / (2000 * 1) = 1/2000 в итоге получается, что запрос по гистограмме получится более селективным = отбираемый интервал * destiny, что справедливо, т.к. кроме уникальных значение будут использоваться гранулы гистограммы.

Итоговая селективность = селктивность * доля NULL полей

Особенности расчета:
* при расчете селективности при выходе за high_value (верхнее или нижне значение) — селективность линейно падает, т.е. не сразу обнуляется.
отсюда проблема : в динамичной oltp бд следуюем смещать high_value заранее перед началом нового дня, т.к. статистика собирается вконце дня, а запросы выше high_value уже идут
* когда селективность падает меньше числа строк таблицы, то селектиновсть = 1 / число строк таблицы

Селективности логических операций:
* and = селективность 1 * селективность 2
* or = селективность 1 + селективность 2 — (селективность 1 * селективность 2 )
* not = 1 — селективность 1

Кардинальность ( число отобранных записей ) = селективность * общее число записей

Стоимость = необходимое кол-во операций выраженное в стандартных единицах

Стоимость табличного доступа и системная статистика

Т.к. стоимость вырожается в стандартных единицах времени одноблочного чтения, то сначала определимся с системными показателями.
Собираются они на основе данных системы, через dbms_stats.gather_system_stats
Узнать их можно в таблице sys.aux_stats$

sreadtim — время одноблочного чтения в мс
mreadtim — время многоблочного чтеняи в мс
cpuspeed — время млн стандратных операций процессора под нагрузкой (CPUSPEEDNW — без нагрузки)
ioseektim — время поиска данных на диске и передачи их oracle
IOTFRSPEED — число байт читаемых oracle в мс

статистику под нагрузкой собирается коммандой:

Если системной статистики под нагрузкой нет, то показатели sreadtim и mreadtim синтезируются, как время позиционирования на диске + время чтения блоков
sreadtim = ioseektim + db_block_size/IOTFRSPEED
mreadtim = ioseektim + db_file_multyblock_read_count * db_block_size/IOTFRSPEED

Стоимость табличного доступа:
Где
#Sreads = число одноблочно читаемых блоков
#CPUCycles = число стандартных операций процессара
#MRds = число многоблочно читаемых блоков / db_file_multyblock_read_count

Т.е. стоимость табличного доступа = число одноблочных чтений + число многоблочных чтений преобразованных к одноблочным + число стандартных операций процессора во времени однобл. чтения.

Стоимость индексного доступа

blevel — кол-во уровней ветвления дерева до листов (высота)
leaf_blocks — кол-во блоков в листе
clustering_factor — соответствие блоков индекса и таблицы

селективность индекса = кол-во отбираемых строк индекса от общего числа
Если индекс многостолбцовый и по первым N-1 есть сравнение отличное от «=» (или столбец вовсе пропущен), то oracle не использует условия столбцов m-N для фильтрации индекса (m- первый предикат отличный от =)
Т.е. селективность берется от первых m столбцов.
Так что столбцы, по которым предположительно будет фильтрация по диапазону лучше распологать вконце индекса.
Это событие можно отследить в плане по access_prediacate — доступ к индексу и filter_prediacate — фильтрация полученных блоков из таблицы

селективность таблицы = кол-во отбираемых строк таблицы от общего числа по столбцам которые есть и в индексе и в фильтре (тут уже условие и порядок не играет роли), т.к. результирующие данные индекса дофильтровываются оставшимися столбцами.
наибольший вклад в стоимость делает показатель «clustering_factor * селективность по таблице»

Параметры влияющие на фактор кластеризации индекса:
* segment freelist — количство точек доступа к таблице (указывается в DDL таблицы), уменьшает конкуренцию за ресурсы таблицы, но ооочень сильно увеличивать фактор кластеризации и как следствие скорость доступа по диапазону. Что приведет оптимизатор не использовать индекс по диапозону, а лучше сделать полное сканирование таблицы.
* reverse index — аналогично уменьшает конкуренцию за ресуры, но очень сильно повышает кластеризацию
Влияние constraint на план:
* Oracle может применить обычный индекс на столбце, даже если в запросе написана функция по нему » UPPER(t.col) = ‘ABC’ «, если на этом столбце есть constraint на обязательный UPPER. Запрос будет преобразован к » t.col = ‘ABC’ »
* Если на столбце есть ограничение по диапазону, то оно также будет перенесено в план запроса.

BM index
* если поле NOT NULL и по нему есть BITMAP индекс, то может эффективно использоваться операция отрицания индекса или minus 2 BM индексов. Если есть NULL, то это усложняет запросы дополнительным сканированием с поиском NULL в индексе.
* у BM нет информации о распределении данных, так что не посчитать правильно: фактор кластеризации, кардинальность
* Альтернативной использования 2 BM индексов при OR является хинт +use_concat — запрос будет трансформирован к union из сторон OR

Гистограммы:

статистическое распределение значение столбца по диапазоную
Количество собранных интервалов указывается параметром «SIZE»

Вызов статистики соберет 254 интервала гистограммы, т.е. замеряем на 254 интервалов кол-ва записей.
Это необходимо, если данные распределены по таблицы неравномерно, что чаще всего и бывает.

Проблемы расчета селективности:

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

нельзя использовать очень большие (и очень мелкие) значения поумолчанию для столбцов
это приведет к неверному расчету селективнсти: (дата2-дата1)/(макс дата-мин дата)
Частично эту проблему можно решить, если собрать гистограмму по сканируемому столбцу.

Нежелательно использовать текстовые ключи
Oracle не сможет определить кардинальность запроса по диапазону, т.к. не сможет вычислить число записей в нем

При поиске по бинд перменной селективность фиксированная = 5% (sysdate+5 — бинд, а sysdate — уже константа), если выключена bind piking

Проблема кореляции столбцов и высчитывание стоимости по AND. По формуле селективности перемножаются, хотя реально данные в столбца совпадают.
Пример, когда планироващик ожидает увидеть 10 записей (селктивность 10%*10%*10%=0,1%)

Эту проблему можно решить 2 способами:
** Хинт +dynamic_sampling — проходится по N случайным строкам и ищет соответствие where, на основе этого вычисляется селективность, а не из статистики
** можно решить через расширенную статистику https://blogs.oracle.com/optimizer/entry/extended_statistics
В статистике создается псевдостолбец объединяющий несколько через перечисление, и при фильтре по этим столбцам будет использована статистика псевдостолбца.

Селективность соединения таблиц:

селективность = (число не Null строк на колонке t1 / число null строк t1) * (число не Null строк на колонке t2 / число null строк t2) / GREATEST( distinct t1.c1, distinct t2.c2 )

кардинальность соединения = кардинальность т1 (по отфильтрованным без null) * кардинальность т2 (по отфильтрованным без null) * селективность

т.е. в частном случае без null строк:
селективность = 1 / GREATEST( distinct t1.c1, distinct t2.c2 )
кардинальность = кардинальность t1 * кардинальность t2 / GREATEST( distinct t1.c1, distinct t2.c2 )

* если несколько условий содениения, то расчет селективности аналогичен п. «Расчет кардинальности для операторов»
* при соединении по диапазону <> или формулы (включая математические операции) используется фиксированная селективность = 5%
* если по соединяемым столбцам есть гистограмма, то селектисноть «GREATEST( distinct t1.c1, distinct t2.c2 )» учитывает пересечение распределение гистограмм

Стоимости соединения таблиц

стоимость NL = стоимость получения T1 + кардинальность Т1 * Стоимость одного обращения к Т2

стоимость HASH join = стоимость получения Т1 + стоимость получения Т2 + стоимость хэширования и сравнения.

Общие понятия:
1. для соединения HASH важна avg_col_len (средняя длина столбца в байтах), чтобы расчитать сколько займет хэш таблица в памяти, имеено по этому параметру выбирается начальная-хэшируемая Т1
2. Количество хэш групп = 0.8 x hash_area_size / (db_block_size * hash_multiblock_io_count)
20% размер hash_area_size резервируется под вспомогательные структуры
3. хэш таблица в Oracle это — хэш массив указателей на связанные списки данных

Если хэш целиком не влезает в память:
Хэширование левой таблицы:
* Левая таблица последовательно хэшируется. Если секция целиком не влезает в память, то блоки из связанного списка записываются на диск
* Минимум 1 блок в 8КБ выделяется под битовый массив принадлежности строк левой таблицы.
Массив используется для пробирования строк, если значение есть в таблице, то соотвествующий бит массива будет установлен в 1, иначе 0
Эта битовая маска облегчит быстрое пробирование правой таблицы без частого обращения к хэш таблице
* Когда левая таблица целиком прохэширована, происходит реорганизация секций, так чтобы максимальное число секций оказалось в памяти

Зондирование правой таблицы:
* Для каждой строки правой таблицы применятся хэш функция битового массива и проверяется, установлен ли соответствующий бит
** если бит = 0, то соответствия однозначно нет
** если бит = 1, и соответсвующая хэш секция в памяти, то происходит пробирование данных
** если бит = 1, но секция не целиком в памяти
Хэш значение правой таблицы записывается на диск или в память (если еще есть), сами данные не пробируется в левой (пропускается)

После первого прохода по правой таблице у нас есть полная информация о всех секция обеих сторон, о количестве строк, секций и распределении память/диск.

* Секция левой таблицы выгружается из памяти и берется следующая, которая целиком в памяти. Это может быть как секция из левой, так и из правой таблицы (swap joins)
* Т.к. данные о всех секциях уже есть, то пробируется не вся таблица целиком, а только соотвествующая секция другой таблицы

Стоимость такого соединения будет больше максимум в 3 раза от соединения в памяти, т.к. дополнительно повторно потребуется считывать как левую, так и правую таблицы.

Более плохой вариант, когда ни одна хэш секция не влезает в память целиком. Для полного пробирования так или иначе нужно просмотреть все значения в хэш секции.
Отличия:
* выбирается секция с максимальным числом строк в памяти и последовательно зондируется правая таблица.
* Если соответствие найдено, то данные выводятся в поток, если нет — то строка пропускается, а ее хэш записывается на диск.
* Когда правая таблица целиком пройдена, часть секции левой таблицы выгружается из памяти и загружается с диска в память следующая часть секции левой таблицы
* Соответствующая секция правой таблицы зондируется заново (исключенные ранее записи) и т.д.

В этом случае число чтений возрастает в разы, т.к. кроме перевыгрузки секции целиком (соединение в один проход) нужно перегружать и части одной секции и считывать заново правую таблицу для новой порции.
Такое соединение называется — в несколько проходов, т.к. одна секция пробируется по несколько раз.
Такой подход малоэффективен и лучше бы подошло рекурсивное хэширование: когда секция целиком не влезает в память, она бьется еще на более мелкие части новой хэширующей функцией, пока целиком не влезет в память (но в Oracle сделано не так).
Подробное описание hash join можно почитать в статье Oracle: реализация hash соединения

стоимость соединения слиянием (merge):
для соединения слиянием нужно, чтобы обе выборки были отсортированы. Т.е. большую часть стоимости дает сортировка, а поиск совпадений в подготовленных выборках уже мало влияет на стоимость.

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

Для сортировки выборок используется разновидность внешней сортировки

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

union[all] — кардинальности складываются
Про Union стоит отдельно заметить, что oracle неявно делает distinct, после чего объединяет выборки. Но это никак не сказывается на кардинальность.
Так что желательно использовать DISTINCT в minus/union, план от этого не меняется, oracle и так это делает, но в этом случае правильно оценивается стоимость и кардинальность

minus — берется меньшая кардинальность

intersect — берется разница кардинальностей.

С чего приступить к изучению Oracle?

привет, Тостер
Относительно недавно занялся программированием. Начал изучать С, РНР, JS etc, и по мере ознакомления, разумеется, пришлось иметь дело с базами данных (MySQL) и эта отрасль меня дико привлекла. Решил удариться в Oracle, но так и не смог вразумительного курса отыскать. Знание SQL могу оценить на 7 из 10. Структуру реляционных баз понимаю интуитивно. С нормализацией на ты. Посоветуйте годного материала, чтобы понять этого зверя. По большей части интересует проектирование баз. С PL/SQL познакомился довольно близко.
Читаю:
firststeps.ru/sql/oracle/oracle1.html
www.tutorialspoint.com

С вас прошу дополнительного материала
Спасибо

Oracle Database

Разработчики: Oracle
Дата последнего релиза: 2020/04/29
Технологии: СУБД

Содержание

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

СУБД Oracle имеет большое количество различных версии и типов.

Хроника

Исправление 10 уязвимостей

17 октября 2020 года стало известно, что компания Oracle исправила 219 опасных уязвимостей в разных линейках продуктов. Oracle Database получила 10 исправлений.Подробнее здесь.

Обзор ключевых функций Oracle Database 19c

25 апреля 2020 года стало известно о том, что корпорация Oracle представила ключевые функции, включенные в Oracle Database 19c. Сама версия была представлена на Oracle Live SQL в начале 2020 года.

Функция Automatic Indexing создает индексы автоматически с использованием алгоритмов машинного обучения, причем, как показали тесты, она часто справляется с этой задачей лучше, чем человек.

«Эта база данных может сама определить оптимальный набор индексов. При их создании учитываются структура данных, сами данные и запросы. Это означает, что базу данных можно создать и начать использовать вовсе без каких-либо индексов или с очень небольшим набором индексов. База данных проанализирует ресурсоемкие запросы, чтобы понять, какие индексы потенциально нужны, проверит полезность отобранных кандидатов, а затем сама построит индексы, причем все это займет меньше времени, чем создание индексов вручную».

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

«Часто они создаются для отчетов или пакетных заданий, в которых уже больше нет нужды. Это не так безобидно, поскольку индексы увеличивают потребность базы данных в вычислительных ресурсах и ресурсах хранения».

Эта возможность Oracle Database 19c помогает эффективнее использовать резервную базу данных, зеркальную копию рабочей базы данных, предназначенную для аварийного восстановления.

Для этого в Oracle Database 11g корпорация Oracle предложила опцию Oracle Active Data Guard, с помощью которой можно открывать резервную базу данных на чтение, создавать на ней отчеты и выполнять бэкапы. В Oracle Database 19c реализована дополнительная возможность Active Data Guard DML Redirect, которая позволяет изменять данные в резервной базе данных.

«Одна из причин такого нововведения в том, что многим приложениям при создании отчетов требуется не только читать данные, но и делать некоторые записи в базе данных. С помощью Active Data Guard DML Redirect операции записи немедленно и прозрачно перенаправляются в первичную базу данных и после занесения в нее реплицируются в резервную БД. С точки зрения пользователя это выглядит так, как будто он обновляет данные в резервной базе данных».

Active Data Guard DML Redirect работает одинаково качественно при размещении резервной базы данных как в локальной среде, так и в облаке, а также когда и основная, и резервная базы данных выполняются в облачной среде.

Гибридные секционированные таблицы (Hybrid Partitioned Tables) позволяют совмещать в рамках одной таблицы как секции, которые находятся внутри стандартного табличного пространства, так и секции, которые размещаются на внешних дешевых системах хранения вне базы данных.

Все возможности аналитики СУБД Oracle можно использовать тогда, когда данные размещены на внешней недорогой системе хранения. Эти системы хранения данных могут располагаться как в локальном ЦОД клиента, так и в облаке. Некоторые секции таблицы, размещенные в БД вашего ЦОД, могут лежать в облаке. Данные вне базы данных Oracle доступны только для чтения и не нуждаются в регулярном бэкапе, но к ним можно обращаться из Oracle Database.

Поддержка JSON появилась еще в Oracle Database 12c, где было реализовано нативное хранилище документов JSON и SQL-доступ. Она получила дальнейшее развитие в версии 18c с внедрением аналитики для документов JSON.

В Oracle Database 19c появилась поддержка интерфейсов прикладного программирования Simple Oracle Document Access (SODA) для Java, Python, C и Node.js.

«Вы можете работать с широким спектром API-интерфейсов NoSQL, которые получают строки из документов JSON в базе данных. Общая производительность витрины данных или хранилища данных может резко упасть при частом выполнении запросов с очень высокими требованиями к ресурсам ЦПУ и вводу-выводу. СУБД Oracle Database 19c может автоматически помещать эти запросы в карантин (Query Quarantine) и блокировать их выполнение, если уровень потребления ресурсов превосходит заданные для них пороговые значения».

Oracle Database обеспечивает стабильность приложений и локальных инсталляций баз данных. [1]

«Стабильность является целью Oracle Database 19c — это релиз с долгосрочной поддержкой. Циклы обновления локальных СУБД у наших клиентов достаточно длительные, и многие клиенты ждали релиз Oracle Database 19c, чтобы перейти на него с Oracle Database 11g или Oracle Database 12c».

2020: Amazon хочет отказаться от ПО Oracle. Ларри Эллисон говорит, что это невозможно

7 августа 2020 года соучредитель Oracle Ларри Эллисон прокомментировал слухи о планах Amazon отказаться от использования программного обеспечения Oracle. По словам бизнесмена, Amazon едва ли сможет это сделать, поскольку раньше это не получилось ни у самой компании, ни у конкурентов Oracle. Подробнее здесь.

2015: Облачная платформа Oracle Database Cloud

18 ноября 2015 года корпорация Oracle выпустила продукты Oracle Database Cloud, дополняющие портфолио сервисов Oracle Cloud Platform для разворачивания в облаке надежных, масштабируемых, защищенных решений и приложений, основанных на базах данных.


Представление Oracle Database Cloud (2015)

Теперь доступны критически важные возможности:

  • кластеризация для обеспечения отказоустойчивости и масштабируемости по требованию,
  • аварийное восстановление с нулевыми потерями данных
  • сервис Oracle Database Exadata Cloud Service.

Oracle также представила бесплатный сервис, позволяющий администраторам баз данных и разработчикам испытать возможности Oracle Database в среде Oracle Cloud без финансовых затрат и рисков.

Возможности Oracle Database Cloud:

  • Платформа для критически важных приложений: Сервис Oracle Database Exadata Cloud Service обеспечивает непревзойденную масштабируемость, производительность и доступность Oracle Database. Предприятия могут в полной мере использовать преимущества Oracle Exadata Database Machine для выполнения критически важных приложений и консолидации баз данных в среде Oracle Cloud.
  • Доступность и масштабируемость: предприятия могут эффективно использовать решение Oracle для кластеризации баз данных в облачной среде. Продукт Oracle Real Application Clusters, входящий в состав Oracle Database Cloud Service и Oracle Database Exadata Cloud Service, обеспечивает масштабируемость по требованию и отказоустойчивость баз данных.
  • Аварийное восстановление: теперь можно развернуть облачное решение для аварийного восстановления в реальном времени, которое защищает базы данных Oracle в случае сбоя на уровне площадки или региона. Продукт Oracle Active Data Guard, входящий в состав Oracle Database Cloud Service и Oracle Database Exadata Cloud Service, обеспечивает непрерывную репликацию баз данных, развернутых непосредственно на предприятии или в среде Oracle Cloud, в активную резервную базу данных в Oracle Cloud с нулевыми потерями данных. Также предприятия могут более эффективно использовать ресурсы и повысить продуктивность, переместив операции подготовки отчетов, выполнения специальных запросов и резервного копирования на активную резервную базу данных Oracle Database.
  • Сервисы разработки и тестирования: Oracle предлагает бесплатные пробные версии, которые разработчики могут эффективно использовать для создания облачных приложений уровня подразделения, предприятия и web-приложений. Разработчикам предлагается полный комплекс сервисов для разработки/тестирования с Oracle Database Cloud, включая новый бесплатный сервис и доступ к Oracle Java Cloud Service, Oracle Database Backup Service и Oracle Storage Cloud Service.

Портфолио сервисов Oracle Database Cloud

Oracle Database Cloud предлагает обширное портфолио облачных сервисов для обеспечения мощности и уровней обслуживания в соответствии с потребностями разработчиков, небольших компаний и глобальных предприятий. Базы данных могут развертываться в облаке за несколько минут, предлагая полную совместимость с локальными базами данных и встроенную безопасность со сквозным шифрованием. Клиенты могут выбрать управляемое Oracle или полностью автоматизированное администрирование, которое включает автоматическое применение пакетов исправлений и обновлений, резервное копирование и восстановление. В результате ИТ-службы могут значительно повысить гибкость и сократить затраты.

  • Oracle Database Cloud Service: Компании могут развернуть полностью управляемую базу данных для быстрой разработки и внедрения приложений уровня подразделения или автоматизированную облачную базу данных для поддержки критически важных корпоративных приложений. Доступен широкий спектр вариантов использования функций и опций Oracle Database для максимального повышения производительности, доступности, безопасности и консолидации.
  • Oracle Database Exadata Cloud Service: Предприятия теперь могут развертывать критически важные производственные базы данных OLTP и хранилища данных в среде Oracle Cloud. Этот сервис работает на платформе Oracle Exadata, используемой на тысячах площадок по всему миру. Oracle Database Exadata Cloud Service имеет встроенные средства обеспечения высокой производительности и доступности, такие как Oracle Multitenant, Oracle Database In-Memory, Oracle Real Application Clusters, Oracle Active Data Guard, InfiniBand Fabric и Smart Flash Cache.
  • Oracle Database Backup Service: Семейство Oracle Database Cloud также включает масштабируемое и недорогое решение, позволяющее предприятиям хранить резервные копии баз данных Oracle, развернутых непосредственно на предприятии или в среде Oracle Cloud, не заботясь о сокращающихся окнах для резервного копирования, потерях данных или неполном восстановлении. Резервное копирование баз данных в Oracle Cloud может выполняться с использованием того же процесса, который применяется для локального резервного копирования на диск или ленту. Данные шифруются на источнике и трижды зеркалируются в облаке для обеспечения безопасности и восстановления в любых ситуациях.

В числе лидеров мирового рынка СУБД

На 2013 год на мировом рынке корпоративных систем управления базами данных (СУБД) доминирующее положение занимает традиционная тройка продуктов: IBM DB2, Microsoft SQL Server и Oracle. Более 80% рынка СУБД в течение долгих лет контролируется тремя компаниями производителями: IBM, Oracle и Microsoft.

Oracle9i — СУБД для средних компаний

Ядром СУБД Oracle9i является сервер базы данных, который поставляется в одной из четырех редакций в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. [2]

Для интернет-систем (public) и систем масштаба крупной организации (enterprise) предлагается продукт Oracle9i Database Enterprise Edition (корпоративная редакция), для которого имеется целый набор опций, архитектурно и функционально расширяющих возможности сервера. Продукт Oracle9i Database Standard Edition (стандартная редакция) ориентирован на организации среднего масштаба или подразделения в составе крупной организации (workgroup). Для персонального использования предлагается «персональный Oracle» (Oracle9i Database Personal Edition), и для систем мобильной связи и небольших офисов — Oracle9i Database Lite. В стандартной, персональной и мобильной редакциях основной акцент сделан на невысокую стоимость, простоту установки и сопровождения. При этом все варианты сервера Oracle имеют в своей основе один и тот же исходный код и функционально идентичны , за исключением некоторых дополнительных опций, которые необходимы для специфических конфигураций (например, для поддержки кластерных архитектур необходима опция Oracle9i Real Application Clusters).

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

Одной из основных характеристик СУБД Oracle является функционирование системы на большинстве платформ. В том числе на больших ЭВМ, UNIX-серверах, персональных компьютерах и т. д.

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

Поддержка Oracle большинства популярных компьютерных платформ и архитектур достигается за счет жесткой технологической схемы разработки кода СУБД. Разработку серверных продуктов выполняет единое подразделение корпорации Oracle, изменения вносятся централизованно. После этого все версии подвергаются тщательному тестированию в базовом варианте, а затем переносятся на все платформы, где также детально проверяются. Возможность переноса Oracle обеспечивается специфической структурой исходного программного кода сервера баз данных. Приблизительно 80% программного кода Oracle — это программы на языке программирования C, является платформо-независимым. Примерно 20% кода, представляющее собой ядро сервера, реализовано на машинно-зависимых языках; и эта часть кода, разумеется, переписывается для различных платформ.

Однa из отличительных особенностей сервера Oracle — возможность хранения и обработки различных типов данных. Данная функциональность интегрирована в ядро СУБД и поддерживается модулем interMedia в составе Oracle Database. Он обеспечивает работу с текстовыми документами, включая различные виды поиска, в том числе контекстного; работу с графическими образами более 20-ти форматов; работу с аудио и видеоинформацией.

СУБД Oracle не только предоставляет расширенный набор встроенных типов данных, но и позволяет за счет использования Object Option конструировать новые типы данных со спецификацией методов доступа к ним. Это означает фактически, что разработчики получают в руки инструмент, позволяющий строить структурированные типы данных, непосредственно отображающие объекты предметной области.

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

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

Компонент Oracle Enterprise Manager представляет собой универсальное средство администрирования баз данных, снабженное удобным графическим интерфейсом и позволяющее администратору баз данных выполнять широкий спектр операций над множеством баз данных Oracle,включая создание, модификацию и удаление любых объектов внутрикаждой из них.

Модуль Advanced Replication Option позволяет выполнять репликацию данных в широком диапазоне возможностей, включая синхронную, асинхронную, каскадную и другие типы репликации.

Модуль Oracle Workflow представляет собой средство для автоматизации стандартных бизнес-процедур организации, для разработки процедур управления потоками работ. Он предлагает расширенные возможности автоматизации прохождения и обработки информации произвольного типа и формализации сложных бизнес процедур и алгоритмов обработки информации.

Одна из ключевых возможностей сервера БД Oracle — механизм хранения и обработки очередей сообщений, который называется Oracle Advanced Queuing (AQ). Он поставляется вместе с сервером баз данных, и его не нужно лицензировать отдельно. Компонент AQ относится к классу Message Oriented Middleware (ПО промежуточного слоя для обработки сообщений). Наличие такого компонента позволяет построить на базе сервера полнофункциональную инфраструктуру для обработки сообщений и исключает необходимость приобретения для этой цели дополнительных средств третьих фирм (таких как IBM MQ Series), обеспечивая, в то же время, связь с ними в неоднородных средах за счет продукта Oracle Messaging Gateways.

Начиная с версии Oracle8i, в состав сервера (во все редакции) включена виртуальная Java-машина (JServer Enterprise Edition) .

Компонент Oracle Obects for OLE предоставляет возможность доступа к базам данных Oracle-приложений, разработанных на C++, Microsoft Visual Basic, OLE 2.0. Полная поддержка языка макроопределений в Visual Basic позволяет получать данные из Oracle непосредственно в электронных таблицах Microsoft Excel.

Редакции: от Express Edition до Enterprise Edition

На 2012 год компания предлагает следующие редакции СУБД:

  • Oracle Express Edition (XE): это редакция начального уровня. Является бесплатной для разработки, развертывания и распространения. Так же является отличным выбором для разработчиков, студентов и маленьких организаций. Редакция Oracle XE очень проста в установке и администрировании, может быть установлена практически на любой компьютер, с любым количеством процессоров и объемом памяти. Но, существует ряд ограничений, а именно объем пользовательских данных не может превышать 4 Гб, и Oracle XE не может использовать более 1 Гб оперативной памяти. На данный момент, эта редакция не сопровождаеться службой поддержки Oracle — My Oracle Support (ранее Metalink), но зачастую ответы на интересующие вопросы можно найти на форумах посвященных Oracle и разработке под эту СУБД.
  • Oracle Personal edition (PE): Эта редакция поддерживает однопользовательские среды для разработки и развертывания, которые требуют полную совместимость с Oracle Database Standard Edition One, Oracle Database Standard Edition и Oracle Database Enterprise Edition. Oracle PE содержит все компоненты, опции и функциональность, которые включены в редакцию Enterprise Edition, за исключением опции Oracle Real Application Clusters (RAC). Из отрицательных сторон этой редакции — она доступна только для Windows платформы (Windows 2000, Windows NT, Windows XP, Windows Vista и Windows Server 2003/32-bit и 64-bit версии), так же в эту редакцию не включен Management Pack.
  • Oracle Standard Edition One (SEO): хорошее соотношение цена/производительность, подходит для рабочих групп, отдельных подразделений и создания Web-приложений. Эта редакция рекомендована для использования в различных средах, от выделенного сервера, для небольшого бизнеса, до распределенных сред, практически любого масштаба. Oracle Database SEO содержит все необходимое для построения бизнес-критичных приложений.
  • Oracle Standard Edition (SE): Предлагает недорогую альтернативу для небольшого и среднего бизнеса, или приложений уровня подразделений, которые хотят иметь всю мощь Oracle. Эта редакция содержит все преимущества Oracle SEO, плюс поддержку больших машин и кластеризации с использованием Real Application Clusters (бесплатно в этой редакции). Ранее, RAC не включался в редакции Standard Edition, до версии Oracle Database version 10g.
  • Oracle Enterprise Edition (EE): Является самой дорогой и функциональной редакцией, предоставляет наибольшую, по сравнению с другими редакциями, производительность, доступность, масштабируемость и безопасность, критичные для бизнес-приложений. Например, приложений OLTP, хранилищь данных с высоким количеством обращений, распределенных приложений. Oracle Database EE включает все доступные компоненты Oracle Database, и позволяет расширить свои функциональные возможности, за счет приобретения дополнительных пакетов и компонент.

Политика лицензирования

На 2012 год распространение программных продуктов Oracle (далее «Программы») осуществляется путем предоставления лицензий на их использование.

Продажа лицензий в России и странах СНГ производится только уполномоченными партнерами компании Oracle.

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

Стоимость лицензий и технической поддержки рассчитывается на основании всемирного Прейскуранта Oracle (Oracle Global Price List). Лицензируемые программы предоставляются по каналам электронной связи или на носителях CD-ROM. Лицензирование Программ означает приобретение прав на их использование, а не покупку самих программных продуктов.

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

Поддержка языков программирования

На 2012 год СУБД поддерживаются следующие языки программирования:

Также обеспечивается ряд Pro предкомпиляторов, которые позволяют включать SQL и МН / SQL в C, C ++, COBOL или прикладные программы FORTRAN. Обеспечивается поддержка для ODBC посредством Oracle’s ODBC Driver. Имеется Oracle Call Interface (OCI), которое является прикладным программным интерфейсом (API) для языков третьего поколения.

Oracle Database может взломать любой пользователь

Базы данных Oracle может взломать любой пользователь, такие выводы представили эксперты 20 сентября 2012 года на конференции по безопасности в Аргентине, сообщил TechCrunch.

Аналитик AppSec Inc Эстебан Мартинез Файо (Esteban Martinez Fayo) представил концепцию атаки на базы данных Oracle, согласно которой любой человек, имеющий доступ к именам пользователей и протоколу аутентификации, может воспользоваться брешью в продукте корпорации.

AppSec Inc не в первый раз сообщает о возможности взлома продукции Oracle. Ранее компания сообщила о бреши в мае 2010 года, ошибка была зафиксирована вендором в середине 2011 года. При этом, в последние несколько месяцев Oracle выявил несколько серьезных недостатков в безопасности своих систем. На этом фоне, эксперты прогнозируют возможный всплеск хакерской активности в отношении продуктов компании.

По словам Эстебана Мартинеза Файо? Oracle пока не планирует как-либо реагировать на новую брешь в продукте. «Они никогда не исправляли текущих версий, поэтому версии 11.1 и 11.2 могут потенциально быть взломаны», — сказал он.

Утечка происходит на этапе аутентификации — не существует промежуточного этапа для обеспечения дополнительной безопасности. Эксперты в области ИБ советуют системным администраторам обратить на это внимание и разработать пути устранения бреши в компаниях.

Во второй декаде сентября 2012 года Salesforce.com объявил о возможности единого входа для корпоративных приложений на Dreamforce. Таким образом, появление новой бреши в Oracle делает вопросы безопасности и идентификации еще более актуальными.

2010: Доля СУБД Oracle на российском рынке — 60%

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

1992: Выпуск СУБД Oracle 7

Помимо общего повышения эффективности ввода/вывода, использования центрального процессора и работы с памятью, версия СУБД Oracle 7 обладала рядом инновационных архитектурных решений: разделяемый SQL-кэш на сервере (сервер распознает посылаемые клиентами SQL-утверждения, которые ранее уже были проанализированы и скомпилированы и в данный момент находятся в кэш-памяти, за счет чего экономится время анализа, оптимизации и трансляции, а также память, требуемая для хранения SQL-утверждения) и разделяемый пул процессов сервера вместо отдельного процесса для каждого клиента, что позволяет сэкономить значительный объем памяти. В области администрирования баз данных также был введен ряд новшеств: зеркальный журнал транзакций, динамическое создание журналов данных, команда ANALYZE, позволяющая собирать статистику об использовании таблиц, индексов и других физических объектов (эта статистика используется оптимизатором запросов), профили пользователей на использование системных ресурсов: ЦПУ, ввода/вывода и т.д.

В версии 7 были полностью реализованы декларативные ограничения референциальной целостности в соответствии со стандартами ANSI/ISO. В рамках этих ограничений (первичные и внешние ключи) пользователь может специфицировать каскадное удаление связанных с некоторым первичным ключом записей. Процедуры PL/SQL могут описываться на уровне схемы базы данных (хранимые процедуры) и вызываться любым приложением, другими процедурами и триггерами. Взаимосвязанные процедуры могут быть сгруппированы в пакеты и использовать общие переменные и определения. Значения переменных, объявленных на уровне пакета, сохраняются в течение всей пользовательской сессии и могут совместно использоваться процедурами и функциями пакета. Другим важным нововведением явились триггеры базы данных.

Триггер представляет собой пару (событие+действие), где событие — это удаление/занесение/обновление записей таблицы, а действие (тело триггера) — процедура PL/SQL, выполняемая при совершении события. Триггеры могут определяться на уровне утверждений (DELETE, INSERT, UPDATE) или на уровне отдельных строк (FOR-EACH-ROW-триггеры, которые, к тому же, могут работать со старыми и новыми значениями строк). С помощью триггеров можно реализовать сложные правила контроля целостности, прав доступа, вывода значений и пр. Управление безопасностью и целостностью существенно упростилось благодаря введению ролей. Роль — это совокупность прав доступа к объектам базы данных (INSERT, UPDATE, SELECT и др.) и системных прав (CREATE TABLE, ALTER SYSTEM и т.д.). Определив роль, администратор базы данных может с помощью одной команды дать пользователю привилегии для работы с некоторым приложением. Эффективность выполнения распределенных запросов была повышена за счет глобальной оптимизации: в версии 7 оптимизатор обладает информацией об индексах и статистике удаленных таблиц, и, например, скорость соединения таблиц, расположенных в разных узлах сети, существенно возрастает благодаря тому, что из удаленных таблиц выбираются лишь строки, соответствующие строкам локальной таблицы.

1988: Выпуск СУБД Oracle 6

Разработчики версии 6 стремились создать инструмент построения крупномасштабных информационных систем, ориентированных на обработку транзакций в режиме реального времени. Были введены генераторы последовательностей и блокировка на уровне записи, а это вместе с моделью «непротиворечивости чтения» означало, что процессы чтения и записи больше не блокируют друг друга (в состояние ожидания переходит лишь процесс записи при попытке обновить строку таблицы, которая уже контролируется другим процессом записи). В это же время Oracle стал первым многопользовательским сетевым сервером баз данных для OS/2, Xenix, Banyan Vines и Macintosh.

В версии 6 были заложены принципиально новые возможности, в полном объеме реализованные позже. Во-первых, SQL-утверждения могли использоваться совместно с утверждениями процедурного языка PL/SQL и посылаться для исполнения на сервер как анонимные процедуры. Во-вторых, тот же язык PL/SQL был введен в язык четвертого поколения SQL*Forms в качестве средства программирования приложений (в версии 7 расширенный язык PL/SQL стал средством описания процедур и триггеров базы данных). В-третьих, в описание схемы базы данных на синтаксическом уровне были введены (в соответствии с ANSI/ISO-стандартом) декларативные определения ограничений референциальной целостности.

1986: Выпуск СУБД Oracle 5.1

В 1986 году в версии 5.1 были впервые разрешены распределенные запросы — запрос мог обращаться к данным, физически размещенным в разных узлах. Несколько взаимодействующих серверов могли создать у пользователя многих физически разнесенных баз данных иллюзию единой логической базы данных.

1985: СУБД Oracle 5.0

В 1985 году Oracle выпустила на рынок версию СУБД: 5.0, в которой была впервые введена архитектура клиент/сервер и реализована программа SQL*Net, поддерживающая неоднородные среды.

1983: Выпуск Oracle 3

Следующая версия — Oracle 3, выпущенная на рынок в 1983 году, — была уже полностью написана на языке C. Решение использовать C и поддерживать одно множество исходных кодов стало ключом к решению проблемы переносимости Oracle на широкий спектр платформ. Были внесены изменения в язык SQL, существенно улучшена эффективность, расширена архитектура системы и введено атомарное выполнение SQL-утверждений и транзакций (SQL- утверждение либо выполнялось полностью, либо не выполнялось вообще, соответственно, транзакция либо завершалась успешно по всем изменениям базы данных, либо откатывала все сделанные ею изменения).

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

В версии 4 была существенно повышена надежность Oracle, выполнены переносы системы на большие компьютеры в ОС VM и MVS, а также на персональный компьютер с 640 килобайтами оперативной памяти. Была реализована модель контроля доступа к базе данных, которая гарантировала, что результат запроса не противоречит состоянию базы данных на начало запроса (благодаря этому было устранено известное противоречие между процессами чтения и записи).

1979: Выпуск СУБД Oracle 2

В июне 1979 года появилась первая система компании Эллисона — Oracle 2. В маркетинговом отношении Эллисон оказался талантливее Билла Гейтса. В отличие от основателя Microsoft, который первую версию Windows так и назвал — Windows 1.0, он проявил маркетинговую смекалку, поэтому свет увидела сразу вторая версия продукта. Это должно было как бы дать понять заказчикам, что система надежна и даже прошла проверку временем. Эллисона можно понять: у него не было одобрения со стороны IBM, которое было у Гейтса. Даже напротив: Эллисон создавал продукт, который мог стать конкурентом решениям IBM.

Главным конкурентным преимуществом СУБД Oracle была высокая скорость обработки огромных массивов информации, которую тогда отметили все эксперты. В отличие от System R, для работы которой был необходим мощный суперкомпьютер — мейнфрейм, Oracle 2 справлялась с обработкой информации на гораздо более скромных машинах. Это и поспособствовало невероятно широкому распространению детища Эллисона в начале 80-х годов.

Oracle стала исторически первой и одной из наиболее развитых реализацией архитектуры клиент/сервер. Открытость (переносимость + масштабируемость) всегда была основной идеей разработчиков Oracle. Успех компании на рынке СУБД, безусловно, стал прямым следствием открытости системы.

Вторая версия Oracle (первой не существовало вообще) работала на мини-компьютере PDP-11 фирмы Digital Equipment в операционной среде RSX-11. Большая часть Oracle была написана на ассемблере PDP-11, а отдельные компоненты — на новом для того времени языке C. Уже в те дни система была портируемой и работала в других операционных средах PDP-11: IAS, RSTS и UNIX. Тогда же было принято решение о переносе Oracle в новую ОС VMS. Благодаря этому СУБД Oracle заняла обширную нишу корпоративных информационных систем на быстро растущем рынке VAX.

Тогда самое сильное впечатление на пользователей произвела полная реализация возможностей нового языка запросов SQL — подзапросы, операция соединения и непроцедурность, — благодаря чему многократно выросла производительность программирования. Стандартный SQL (IBM) был расширен утверждением CONNECT BY, позволяющим обрабатывать древовидные структуры, что становится уникальным для SQL-систем.

Конечно, вторая версия Oracle была чрезвычайно проста — в частности, не поддерживалось понятие транзакции, и, если в процессе обновления базы данных происходил сбой, состояние базы данных могло стать некорректным, поэтому пользователи были вынуждены часто делать резервные копии базы данных во избежание потерь информации.

1977: Основание Oracle для разработки реляционной СУБД

История Oracle началась в Кремниевой долине, штат Калифорния, США. В 1977 году молодой программист Ларри Эллисон бросил учебу в Йельском университете, чтобы начать собственный бизнес. Ларри Эллисон, в распоряжении которого тогда было всего 1200 долларов, уговорил Боба Майнера и Эда Оутса, своих бывших коллег, создать собственную компанию. До этого все трое разрабатывали по заказу ЦРУ проект под названием… Oracle.

16 июня 1977 года Эдом Оутсом, Бобом Майнером и Ларри Эллисоном в Калифорнии (США) была основана компания Software Development Laboratories, вскоре переименованная сначала с Relational Software Inc. Молодые программисты, чьи общие вложения в бизнес составили $2 тыс., начали разработку системы управления базами данных (СУБД), построенной на принципах реляционной алгебры.

Позднее все сложные СУБД стали реляционными, но, когда в 1970 году сотрудник исследовательской лаборатории IBM Эдгар Кодд предложил новый метод организации баз данных, у многих специалистов были сомнения в том, что он вообще оправдает себя. Поэтому до середины 1970-х годов информация в базах данных распределялась по старинному иерархическому, или «древовидному», принципу, который до сих пор используется для представления файлов в ПК.

В IBM, впрочем, профинансировали создание прототипа системы на принципах, предложенных Коддом, и в 1976 году появился проект System R, который вдохновил будущих основателей Oracle на создание реляционной СУБД.

Платформы

На 2013 год СУБД Oracle поддерживают свыше 80 вариантов операционной среды в широком диапазоне, включая мэйнфреймы IBM, мини-компьютеры DEC VAX, UNIX, Windows и множество других платформ.

Локальная

Oracle database портирована на большое количество платформ: 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.

Мастер Йода рекомендует:  Создание приложения, работающего с XML-данными
Добавить комментарий