Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

Автоматическое управление хранилищем резервных копий

Об администрировании

1. Работа администратора – не менее важная, ответственная, уважаемая и оплачиваемая работа, чем работа программиста. Есть большая вероятность того, что кто-то из вас будет сопровождать продукт, работающий с СУБД Oracle. Один интересный момент: Oracle не обязательно под ОС Windows, часто под ОС Linux, но принципы одни и те же, а установку Linux можем и мы с вами посмотреть.

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

Администратор интересуется (и знает) много настроек, тонкостей, и к изучению их надо быть готовыми. Настроек и тонкостей довольно много, не рассчитывайте, что, если установили Oracle, стали администраторами. И не стоит думать, что настройки, аббревиатуры, английские термины можно не знать – их знает любой администратор – речь идет о наиболее важных вещах, рассматриваемых в рамках данного курса. Все, что есть в слайдах, - знать. «Лирических отступлений» нет – весь материал нужно Помните, что вы работаете с лучшей СУБД в мире, созданной для решения серьезных задач – и подход к изучению должен быть серьезным. Не думайте, что все будет получаться, но и не опускайте руки – пробуйте. Неудачная попытка – все равно чему-то учит.

Сложно ли администрировать Oracle? Сложнее ли администрировать Oracle, чем SQL Server? Сложнее, но не намного.

«g» в названии версии означает «grid». «Grid» в переводе с английского дословно обозначает «сетка».

В области информационных технологий, «Grid» - архитектура, концепция, технология, основная идея которой – организация вычислительного процесса, таким образом, что части задачи распределяются по всем свободным ресурсам сети. «Grid computing» может переводиться на русский язык как «сетевые (коллективные, параллельные, распределённые) вычисления», «"решетки" вычислительных ресурсов», «grid –вычисления».

Организация, которая разрабатывает стандарты для grid-вычислений, - сообщество Global Grid Forum (GGF) (http://www.gridforum.org). В работе этого сообщества принимают участие многие крупные компании, в том числе Oracle, HP, IBM, Intel, Microsoft.

Решения в области сетевых вычислений позволяют распределять нагрузку между серверами в зависимости от их загруженности и позволяет управлять всеми серверами как единой системой. Сетевые (параллельные) вычисления позволяют достигать уровня надежности, аналогичного мэйнфреймам (mainframe), так как все компоненты кластеризованы. (Cluster (кластер) – блок, набор, группа. Как правило, серверы, составляющие кластер, имеют одинаковую или мало различающуюся конфигурацию. Использование кластеров увеличивает производительность и надежность системы, так как в случае сбоя одного компьютера его работу берет на себя другой, т.е. с точки зрения пользователя кластер выглядит как единая система.

Представления

Представление — это сохраненный запрос к БД. Результатом выполнения запроса явля­ется отношение, что позволяет использовать представления в командах insert, update, delete и select так же, как и таблицы. При изменении данных представления изменяются данные в таблицах, входящих в это представление, а при использовании представления в команде выборки данных Oracle подставляет его текст в запрос и затем разбирает и выпол­няет запрос целиком. В представлении нельзя определять правила целостности, однако можно определять достаточно сложную логику работы при изменении данных представле­ния — с помощью триггеров instead of.

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

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

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

create [or replace] [force]view <имя> [(<имя столбца> {,<имя столбца>})]as <запрос> [with (read only |check option [constraint <имя правила>])]

Если запрос некорректен (содержит ошибку или пользователь, создающий представле­ние, не имеет привилегий на обращение к указанным в запросе объектам), представление не будет создано. Однако если указать параметр force, то представление будет создано в любом случае, а попытка обратиться к нему приведет к ошибке:

ORA-04063: view "<имя>" has errors

Представление может становиться ошибочным и в результате изменения структуры объ­ектов, к которым оно обращается.

Столбцы представления получают те имена, которые возвращает SQL-запрос. Если же эти имена не устраивают программиста, то можно явно перечислить имена столбцов после имени представления в скобках. Количество имен должно в точности соответствовать коли­честву столбцов, возвращаемых запросом.

Фраза with read only говорит о том, что представление можно использовать только на чтение. Фраза with check option заставляет Oracle при выполнении изменения данных представления командами insert и update проверять новые значения на соответствие усло­виям запроса. Если запрос содержит подзапросы или изменение данных выполняется триг­гером instead of, то проверка работать не будет.

Уничтожается представление командой drop:

drop view <имя>

 

Индексы

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

Индекс строится по одному или нескольким полям; в индекс может входить до 16 полей. Порядок перечисления полей в составном индексе имеет значение. Если значение всех по­лей, по которым построен индекс, в некоторой строке не определено (равно null), то такая строка в индекс не входит.

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

Создается индекс командой create index, синтаксис которой приведен ниже:

create [unique |bitmap ]index <имя>on <имя таблицы>(<имя столбца> {,<имя столбца>})

Ключевое слово unique позволяет создать уникальный индекс.

Ключевое слово bitmap создает индекс, построенный на битовых картах. Такие индексы могут быть значительно эффективнее и компактнее традиционных индексов, основанных на B-деревьях1. В bitmap-индексах индексируются все значения, включая null. Составной bitmap-индекс может быть использован для поиска по любому из полей, входящих в индекс, при этом порядок перечисления полей в составном индексе не имеет значения. Однако, у bitmap-индексов есть ряд недостатков, существенно ограничивающих их применение. Во-первых, они эффективны только при небольшом количестве различных значений столб­ца. Индексировать, например, даты или суммы проводок следует традиционными индекса­ми. Во-вторых, bitmap-индексы теряют эффективность при частом обновлении данных в таблице.

Индекс в любой момент может быть уничтожен — это не повлияет на работоспособность приложений, хотя может существенно их замедлить. Уничтожается индекс командой drop index: drop index <имя>

 

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

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

Создаются последовательности командой create sequence:

create sequence <имя> [start with <число>] [increment by <число>] [maxvalue <число>] [minvalue <число>] [cycle |nocycle] [cache <число> |nocache] [order |noorder]

Значения start with и increment by задают начальное значение последовательности и шаг, с которым будет увеличиваться значение. Задание начального значения и шага, отлич­ных от 1, может оказаться полезным в распределенной базе данных — если, например, на двух серверах заданы начальные значения 1 и 2 и шаг 10, то ключи, сгенерированные раз­ными серверами, будут уникальны в пределах обоих серверов.

Oracle не следит, чтобы все значения, выбранные из последовательности, были как-то использованы. Если, например, транзакция, выбравшая очередное значение, будет отмене­на, то выбранное значение будет утеряно.

Параметры minvalue и maxvalue определяют минимальное и максимальное значения, которые могут быть выбраны из последовательности. Если минимальное (максимальное) значение будет достигнуто, то очередное обращение к последовательности приведет к ошибке:

ORA-08004: sequence <имя>.NEXTVAL exceeds MAXVALUE and cannot be instantiated

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

В случае, если в команде create sequence указано ключевое слово order, Oracle гаран­тирует, что выбранное из последовательности значение будет больше (при отрицательном шаге — меньше), чем все предыдущие. В противном случае порядок может быть нарушен, но, как правило, это неважно.

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

Для обращения к последовательности (а также к любым объектам, не являющимся дан­ными таблицы, например, функциям) применяется конструкция select ... from dual:

select seq_emp.currval from dual

ORA-08002: sequence SEQ_EMP.CURRVAL is not yet defined in this session

select seq_emp.nextval from dual

 

Синонимы

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

create synonym:

create [public]synonym <имя>for <имя объекта>

Уничтожается синоним командой drop:

drop synonym <имя>

Синоним может быть переименован командой rename: rename <имя>to <новое имя>

Автоматическое управление хранилищем резервных копий

В Oracle Database XE реализована политика сохранения резервных копий, согласно которой всегда должны существовать две последние полные резервные копии базы данных, для обеспечения избыточного уровня защиты базы данных. В режиме ARCHIVELOG все архивные журналы, необходимые для восстановления носителя, также сохраняются. База данных автоматически управляет резервными копиями и архивными журналами в области мгновенного восстановления, удаляя все устаревшие (т.е. которые больше не нужны согласно политике сохранения резервных копий) по мере возникновения необходимости в свободном пространстве для новых файлов. Включенный в состав Oracle Database XE скрипт создания резервной копии также удаляет устаревшие резервные копии и архивные журналы по окончанию задания создания резервной копии.