Организация и методы резервирования данных в СУБД Oracle

Резервные базы данных под управлением Oracle Data Guard. Создание физической резервной базы. Защита резервных копий баз данных и базы данных разработчиков. Восстановление базы данных на удаленной машине. Стратегия резервирования и восстановления.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.06.2013
Размер файла 499,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ПРОСВЕЩЕНИЯ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МОЛДОВЫ

ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ

КАФЕДРА ПРИКЛАДНОЙ ФИЗИКИ И ИНФОРМАТИКИ

ДИПЛОМНАЯ РАБОТА

Организация и методы резервирования данных в СУБД ORACLE

Мастеранд 2 курса

сп. информац. технологии

Научный руководитель:

Старший преподаватель

Чобу Виктор

Кишинёв - 2013

ОГЛАВЛЕНИЕ

Введение

Глава 1. Резервные данные. Схемы Ротации

1.1 Резервное копирование

1.2 Архивирование

1.3 Схемы ротации

1.4 Копирование СУБД и пользовательских файлов

Глава 2. Oracle Data Guard

2.1 Резервные базы данных под управлением Oracle Data Guard

2.2 Резервная база данных

2.3 Создание физической резервной базы

2.4 Передача журнальных записей

2.5 Процессы Oracle Data Guard

2.6 Логическая резервная база

Глава 3. Защита резервных копий баз данных и базы данных разработчиков

3.1 Защита баз данных Oracle

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

3.3 Резервные копии на диске

3.4 Базы данных для работы в непредвиденных обстоятельствах

Глава 4. Клонирование БД на локальном и удаленном компьютере с использованием пользовательской резервной копии

4.1 Создание резервной копии методом “холодного” копирования

4.2 Восстановление базы данных на удаленной машине

4.2.1 С сохранением структуры каталогов

4.2.2 В измененной структуре каталогов

4.2.3 Восстановление при отсутствии части необходимых файлов

4.3 Восстановление базы данных на локальной машине

4.4 Создание резервной копии методом “горячего” копирования

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

Глава 5. Резервирование и восстановление

5.1 Планирование восстановления экземпляра

5.2 Планирование восстановления носителя

5.2.1 Стратегия резервирования

5.2.2 Стратегия восстановления

Глава 6. Практическая часть

ЗАКЛЮЧЕНИЕ

Литература

ВВЕДЕНИЕ

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

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

Огромное число организаций сталкивается с годовым ростом данных, превышающим 50%. Около 70% конечных пользователей хранят свою информацию на файловых серверах, и эта информация занимает от 50% до 70% емкости в более чем 40% организаций. С такими потребностями в хранении, что могут сделать ИТ администраторы?

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

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

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

Глава 1. Резервные данные. Схемы ротации

1.1 Резервное копирование

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

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

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

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

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

Самый распространенный способ - использование архивного атрибута файлов (archive). При создании или модифицировании файла прикладные программы автоматически выставляют данный атрибут. При резервном копировании он принимает прежнее значение. Поэтому теоретически система резервного копирования может таким образом определить, что файл еще не копировался на ленту. Но ряд прикладных программ принудительно восстанавливают этот атрибут при работе с файлами. Таким образом, система резервного копирования будет считать, что у файла есть копия на ленте, хотя это и не так. В результате может получиться, что файлы останутся вообще без резервных копий. В некоторых случаях можно сравнивать время последнего обращения к файлу или время его модификации с каким-то эталонным временем, например, временем предыдущего копирования. К сожалению, и этот критерий не идеален, хотя, как правило, он более эффективен, чем контроль за архивным атрибутом. Проверка размера файла используется еще реже, у этого способа еще больше недостатков, чем у других критериев. Конечно, лучшим вариантом был бы одновременный учет нескольких или всех названных критериев. Но такой подход могут предложить только самые мощные системы резервного копирования.

1.2 Архивирование

Под архивным копированием обычно понимают процесс создания копий файлов, предназначенных для бессрочного или долговременного хранения. Это процесс получения "слепка" файлов и каталогов в том виде, в котором они располагаются на первичном носителе (обычно диске) в данный момент времени. Носители, на которые переносятся данные, называют архивными. Периодическое проведение архивного копирования позволит иметь копии нескольких разных версий одних и тех же файлов. Впрочем, особо важные файлы иногда помещают в архив независимо от времени их последней модификации. Обычно считается, что для надежности хранения нужно иметь 2-3 архивные копии всех редакций файлов, подлежащих архивированию.

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

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

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

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

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

1.3 Схемы ротации

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

Смена рабочего набора носителей в процессе копирования называется их ротацией. В настоящее время наиболее широко используется несколько схем ротации, например, "дед-отец-сын" (grandfather-father-son) или "ханойская башня" (Tower of Hanoi). Простая ротация подразумевает, что некий набор лент используется циклически. Например, цикл ротации может составлять неделю, тогда отдельный носитель выделяется для определенного рабочего дня недели. Полная копия делается в пятницу, а в другие дни - инкрементальные (или дифференциальные) копии. Таким образом, для недельного цикла достаточно иметь пять носителей (если копирование происходит только в рабочие дни и емкости одного носителя хватает для копии). После завершения цикла все повторяется сначала, и запись производится на те же самые носители, хотя иногда полные (пятничные) копии сохраняют в качестве архива. Недостаток данной схемы - она не очень подходит для ведения архива, даже если сохранять полные копии, поскольку количество носителей в архиве быстро увеличивается. Кроме того, запись (во всяком случае, инкрементальная/дифференциальная) проводится на одни и те же носители, что ведет к их значительному износу и, как следствие, увеличивает вероятность отказа.

Схема "дед-отец-сын" имеет иерархическую структуру и предполагает использование комплекта из трех наборов носителей. Раз в неделю делается полная копия дисков компьютера, ежедневно же проводится инкрементальное (или дифференциальное) копирование. Дополнительно раз в месяц проводится еще одно полное копирование. Набор для ежедневного инкрементального копирования называется "сыном", для еженедельного - "отцом", для ежемесячного - "дедом". Состав ежедневного и еженедельного набора постоянен. В ежедневном наборе свой носитель (их может быть несколько, если объем информации превышает объем одного носителя) закреплен за каждым рабочим днем (кроме пятницы), а в случае еженедельного набора - за каждой неделей месяца по порядку (т. е. данный набор должен содержать не менее четырех носителей). Ежемесячные носители обычно заново не используются и откладываются в архив. Таким образом, по сравнению с простой ротацией в архиве содержатся только ежемесячные копии плюс последние еженедельные и ежедневные копии. Недостаток данной схемы состоит в том, что в архив попадают только данные, имевшиеся на конец месяца. Как и при схеме простой ротации, носители для ежедневных копий подвергаются значительному износу, в то время как нагрузка на еженедельные копии сравнительно невелика.

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

Еще одна схема ротации называется "10 наборов" и, как следует из названия, рассчитана на десять наборов носителей. Период из сорока недель делится на десять циклов. В течение цикла за каждым набором закреплен один день недели. По прошествии четырехнедельного цикла номер набора сдвигается на один день. Иными словами, если в первом цикле за понедельник отвечал набор номер 1, а за вторник - номер 2, то во втором цикле за понедельник отвечает набор номер 2, а за вторник - номер 3. Такая схема позволяет равномерно распределить нагрузку, а следовательно, и износ между всеми носителями.

Таблица 1. Схема ротации "Ханойская башня".

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

1 набор

х

х

х

х

х

х

х

х

х

2 набор

х

Х

Х

х

х

3 набор

х

х

4 набор

х

5 набор

х

1.4 Копирование СУБД и пользовательских файлов

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

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

1. одну или несколько баз данных;

2. систему управления базами данных (СУБД);

3. персонал, обеспечивающий работу банка данных.

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

Проблемы могут возникнуть и при резервировании и архивировании баз данных. Резервирование базы данных лучше всего проводить в "холодном" виде, когда перед резервированием БД закрывается. Такое резервирование лучше всего выполнять в ночное время, когда пользователей можно отключать от базы. Однако во многих случаях этот вариант неприемлем. Во-первых, базы данных сейчас нередко достигают в объеме сотен и тысяч гигабайт, поэтому их копирование требует слишком много времени, и даже ночи для этого не хватит. Блокировать же доступ к базе на длительное время могут позволить себе немногие. Во-вторых, нередко СУБД работают в режиме on-line (например, на серверах Internet), и отключение их в принципе невозможно.

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

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

Глава 2. ORACLE DATA GUARD

2.1 Резервные базы данных под управлением Oracle Data Guard

После того, как база данных наполнена информацией, у администраторов баз данных (DBA) возникает естественное желание защитить данные от потери, даже если это не предусматривалось изначально при построении информационной системы. Самый простой способ - периодически копировать файлы базы или выгружать данные из таблиц программными средствами. Эти методы относятся к "холодному" и логическому резервированию. Холодным оно называется, так как пользователи при этом не работают с базой данных и службы, через которые они работают, "погашены". Если резервирование нужно выполнять так, чтобы не создавалось препятствий работе пользователей, такой тип резервирования называется горячим. Для логического резервирования обычно используют утилиту экспорта информации, которая поставляется, например, в составе ПО компании Oracle (http://www.oracle.ru). Преимущество холодного и логического резервирования в том, что они интуитивно понятны и просты в реализации. Основной недостаток - те данные, которые были введены после резервирования, нельзя восстановить, они будут потеряны. Однако в архитектуре баз данных Oracle заложена возможность восстановления информации без потерь.

Вся информация базы данных хранится в файлах, число которых редко меняется в процессе работы. Несколько пользовательских таблиц могут храниться в одном файле. Данные не хранятся нигде, кроме этих файлов, поэтому они и называются файлами данных (datafiles). Именно эти файлы копируются при выполнении холодного резервирования (cold backup) вместе с небольшим служебным файлом, который называется управляющим (control file).

При обновлении данных в таблицах в файлы данных вносятся изменения. Все изменения в любых файлах данных, помимо самих файлов, записываются в журнал изменений. Журнал хранится в отдельных файлах оперативных журналов (redolog files). Информации каждой записи из этого журнала достаточно для повторного внесения тех же самых изменений. Например, в записи указывается место в файле данных, куда вносилось изменение, когда и кем оно вносилось, и сами изменения. Для уменьшения объема сохраняемой информации в журнале хранится минимальный объем информации, по которому еще можно восстановить изменения. Например, вместо имени таблицы, в которую вставили строку, сохраняется уникальный номер объекта (таблицы), присвоенный ему в базе данных.

Просмотрев журнал, можно выяснить всю историю изменений в данных за какой-то промежуток времени. Например, можно взять файлы данных из копии, созданной некоторое время назад при холодном резервировании. Если сохранился журнал изменений на период от момента выполнения резервирования до момента сбоя базы данных, можно последовательно внести изменения во вчерашние файлы запись за записью. Получатся файлы, которые будут содержать все изменения до самого последнего момента перед сбоем. Этот процесс называется восстановлением базы данных. Восстановление без внесения изменений из журнала так, чтобы ни единой транзакции не было потеряно, называется неполным восстановлением. На самом деле восстановление всегда должно быть полным, так как потеря хотя бы части информации недопустима. Компания Oracle исходит из того, что ее технологии должны гарантировать целостность данных, которые уже внесены в базу. Только на крайний случай, если невозможно провести нормальное восстановление, дается возможность спасти хотя бы часть данных.

Сохранять файлы и журналы изменений нужно заранее, а не ждать момента сбоя. При возникновении сбоя c момента последнего резервирования может накопиться много изменений. Оценить объем изменений довольно просто: он соответствует размеру сгенерированных с момента резервирования файлов журналов (в файлах журналов большую часть объема занимают данные, под служебные записи отводится относительно немного места). Чтобы уменьшить время на восстановление файлов данных, можно периодически накладывать на сохраненные файлы данных накопившиеся изменения из журналов. Набор файлов, на которые постоянно накладываются изменения, называется резервной базой данных (рис. 1). Эти файлы в случае сбоя рабочей базы данных можно ввести в строй при минимальном времени простоя. Резервная база данных может по времени внесения изменений незначительно отставать от основной базы данных (primary database).

Рис. 1. Рабочая и резервная базы.

2.2 Резервная база данных

Термин резервная база данных появился в ПО Oracle в 1995 г., начиная с версии 7.3. В то время объемы жестких дисков были невелики, а стоили они довольно дорого, и для резервирования даже небольших баз данных предпочитали использовать ленточные устройства. Процедуры упрощения работы с резервными базами данных стали развиваться с версии Oracle8i, когда жесткие диски начали дешеветь, а их объемы быстро расти. Новые технологии в производстве аппаратных средств дали толчок к развитию новой архитектуры резервирования баз данных.

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

Автоматизированные процедуры поддержки резервных баз носят в системе Oracle название Data Guard. Эти процедуры встроены в ПО Oracle. В их число входят графическая оболочка управления резервными базами, утилита командной строки (dgmgrl) и дополнительные процессы, которые выполняют часто встречающиеся действия, предназначенные для поддержки конфигурации взаимодействия основной и резервных баз данных.

Графический интерфейс Oracle Data Guard Manager (рис. 2) можно использовать для автоматического создания резервной базы. Он включен в стандартную оболочку ПО управления Oracle Enterprise Manager, начиная с версии Oracle9i. Администратору достаточно указать, на каком из компьютеров с установленным ПО Oracle нужно создать резервную базу данных. Оболочка сама выполнит резервирование файлов данных, перенесет их на резервный компьютер и изменит параметры конфигурации основной базы данных, чтобы она могла передавать журнальную информацию на компьютер с резервной базой.

Рис. 2. Oracle Data Guard Manager - графическая оболочка управления.

2.3 Создание физической резервной базы

Сначала создается управляющий файл - служебный файл небольшого размера, содержащий названия всех файлов данных и их параметры. Служебный файл вместе с копией файлов данных переносится на удаленный компьютер. На этом компьютере должно быть установлено стандартное ПО Oracle для управления базами данных. Основное неудобство в том, что программная архитектура основной и резервных баз данных должна быть одинакова. Например, невозможно создать резервную базу на платформе Linux, если основная работает под Windows. Это ограничение связано с тем, что в ОС различаются низкоуровневые программные интерфейсы (API) для работы с файлами, а следовательно, структуры файлов базы данных также имеют отличия. Версии ОС в пределах семейства и платформы могут быть любыми, главное, чтобы на них могло работать ПО Oracle.

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

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

2.4 Передача журнальных записей

Если возникнет долговременный сбой сети или компьютера с резервной базой данных, то журналы, которые не были переданы, будут запрошены резервной базой данных позже. В любом случае архиватор сохраняет всю журнальную информацию в каталоге на компьютере с рабочей базой данных в виде файлов - ведет архив журналов. Администратор обычно удаляет архив, когда в нем отпала необходимость. Именно из этого архива и будут браться файлы, которые не удалось передать в резервную базу. Для их передачи экземпляр резервной базы создает процесс FAL-клиент, который обращается к экземпляру рабочей базы. На нем создается процесс, называемый FAL-сервер, который и передает требуемую информацию (рис. 3). В промышленных системах, где нагрузка на рабочие базы данных велика, файлы можно запрашивать у других резервных баз, которые успели вовремя получить журналы. Традиционно ПО Oracle дает администраторам возможность настроить систему управления базами данных так, чтобы удовлетворить любые запросы. Пользоваться всеми возможностями сразу обычно не требуется. Достаточно знать, что такие возможности есть и, если возникнет необходимость, их можно использовать.

Рис. 3. Архитектура передачи журналов.

Архиватор обычно передает журналы с задержкой в десятки минут. Начиная с версии Oracle9i, журнальную информацию можно передавать без задержки с помощью другого процесса - записи в текущие журнальные файлы (LGWR). При этом резервная база данных может получать журнальную информацию со скоростью ее создания. Это позволит в случае серьезного сбоя компьютера с рабочей базой моментально активировать резервную (сделать ее доступной для работы пользователей), так как не придется дожидаться получения самых последних изменений от основной базы. Чтобы не возникало нагрузки на рабочую базу данных, сетевое соединение должно быть довольно быстрым, т. е. работать с минимальной задержкой, помимо высокой пропускной способности канала передачи.

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

2.5 Процессы Oracle Data Guard

Решение об активации резервной базы данных принимает администратор базы. Для облегчения процедуры активации или ее автоматизации, начиная с версии Oracle9i, в Data Guard можно использовать дополнительные процессы, называемые Data Guard Broker (dgbroker) и Data Guard Monitor (DMON). Они запускаются на экземплярах рабочей и резервных баз и автоматизируют процессы активации резервной базы, передачи недостающих журналов и перезапуска экземпляров, где произошел сбой. Эти процессы могут быть запущены на любом из экземпляров, обслуживающих базы данных. Архитектура работы этих процессов схожа с менеджером процессов OPMN и DMON, которые используются в сервере приложений Oracle9i AS. Процесс DMON использует собственный файл, где сохраняет полезную для себя информацию, которую нежелательно терять при остановке экземпляра (например, сведения о том, какие базы в сети основные, а какие - резервные). Например, в случае остановки основной базы и последующего монтирования процессы автоматически откроют основную базу. Если администратор предполагает выполнить какие-то действия в режиме монтирования, они скорее всего будут выполняться на открытой базе. Положительная черта этих процессов в том, что их можно безбоязненно отключить в любой момент даже без остановки экземпляра. Оболочки администрирования Data Guard требуют их работы и при необходимости запускают процессы.

Администраторы часто сталкиваются с тем, что в базу внесены ошибочные изменения и необходимо восстановить данные на определенный момент времени в прошлом. В СУБД Oracle предусмотрена возможность указать в запросе время, на которое требуются данные. Эта возможность появилась в версии 9i и называется Oracle Flashback. Однако если таблица с данными удалена полностью, то воспользоваться этой возможностью нельзя. Для таких случаев администратор может указать для одной из резервных баз данных задержку, с которой нужно вносить в нее изменения из полученных журналов (рис. 4).

Рис. 4. Резервная база с отставанием по времени.

2.6 Логическая резервная база

В процессе работы резервная база данных не может обслуживать пользователей. Однако желание включить ее в повседневную работу остается. Резервная база может обслуживать запросы пользователей в те моменты, когда она не вносит в свои файлы изменений. При этом журнальные файлы будут накапливаться на компьютере с резервной базой, и их можно будет ввести в файлы позже. Например, днем резервная база может быть открыта для чтения и обслуживать запросы, для которых актуальность информации не важна. Это могут быть приложения, обрабатывающие данные за прошлые дни, - например, системы поддержки принятия решений (decision support system), которые создают большую нагрузку на рабочую базу данных. При этом резервная база данных будет принимать все журналы, сгенерированные рабочей базой в течение дня. На ночь же администратор может перевести резервную базу данных в режим внесения накопленных изменений.

В качестве альтернативы можно использовать логическую резервную базу данных. Такая возможность появилась в версии Oracle 9.2, и ее можно использовать одновременно с традиционными физическими резервными базами. Администратор сам выбирает, сколько и каких резервных баз должно быть. Журнальная информация содержит все сведения о том, какие изменения были внесены в рабочую базу данных. В версии 8i появилась возможность анализировать журнальные файлы и воссоздавать часть команд, которые выполнялись пользователями при работе с основной базой данных. Доработав эту технологию и добившись восстановления большей части команд, компания Oracle смогла предложить новую технику логического резервирования. Если в физической резервной базе из журнальных данных выбирается информация об изменениях, внесенных напрямую в файлы данных - на физическом уровне, то в логической резервной базе реконструируются команды SQL, при помощи которых эти изменения были внесены (команды, которые выдавали пользователи при операциях с рабочей базой). Восстановив поток команд, можно повторно ввести их уже в резервную базу. Изменения вносятся не на физическом уровне, а на логическом - на уровне таблиц. При этом физическая структура файлов резервной базы может отличаться от той, что существует в рабочей базе. Достаточно лишь, чтобы существовали объекты с теми же именами, которые есть в рабочей базе.

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

Используя логические резервные базы данных, нужно иметь в виду особенности их работы. Восстановление команд SQL и внесение изменений в базу требуют дополнительных процессорных ресурсов. Эти процессы некоторым образом повторяют все транзакции, прошедшие на рабочей базе. Чтобы ускорить внесение изменений, на резервной базе создается пул процессов, которые вносят изменения. Он называется Log Apply Services и состоит из процессов LSPn - координаторов и PX (parallel execution), которые восстанавливают команды SQL и вносят изменения. Эти процессы не восстанавливают команд, не меняющих данные (например, SELECT), так как в журнал изменений они не записываются. Обычно именно команды SELECT создают основную нагрузку на процессор компьютера с основной базой.

Вторая особенность работы логической резервной базы в том, что по журналам сложно восстановить логические команды, которые вносили изменения в основную базу. Для того, чтобы резервная база могла это делать, нужно, чтобы в журнал изменений добавлялась дополнительная информация. Для команд, меняющих данные в таблицах (INSERT, UPDATE, DELETE, MERGE), нужно сохранять значение первичного или уникального ключа. Из-за этого объем журнальной информации возрастает. Если у основной базы каналы записи в файлы журналов загружены, производительность ее снизится. Логическая резервная база может использоваться, если объемы изменений основной базы невелики или если переключение пользователей, которые не вносят изменения, на работу с резервной базой сможет разгрузить основную базу.

Технология восстановления SQL-команд из журнала изменений легла в основу Oracle Streams, новой технологии перемещения изменений между базами (репликации). Изменения можно вносить только в часть таблиц, а резервная база слабо связана с основной. Можно настроить репликацию изменений, сделанных в основной базе, в любые другие. Эта идея была реализована начиная с версии 9i как альтернатива существовавшим ранее методам репликации. Преимущество Oracle Streams в том, что нагрузка на основную базу данных существенно ниже, чем при репликации другими методами, которые доступны в базах Oracle. В архитектуре Oracle Streams предусмотрена возможность выбирать информацию из журналов как основной базы, так и любой другой. Выборка данных из основной базы имеет то преимущество, что не требуется передавать большие объемы журнальной информации на удаленные компьютеры, загружая сеть.

В новой версии Oracle10g (рис. 5), которая вышла в начале этого года, в архитектуру резервных баз были внесены небольшие улучшения, в основном связанные со снятием ограничений на использование резервных баз и удобством их использования. Например, в 10g сброс последовательности нумерации журнальных файлов (resetlogs) не требует пересоздания резервных баз данных. Основные изменения коснулись оболочки администрирования - в частности, в 10g для управления базами данных используется Web-интерфейс.

Рис. 5. Data Guard Manager 10g.

Глава 3. Защита резервных копий баз данных и базы данных разработчиков

3.1 Защита баз данных Oracle

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

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

Типы резервных копий Oracle

Существует три основных вида резервирования Oracle:

· Экспорт: инструментальное средство Oracle exp используется для извлечения данных из базы данных в файл операционной системы. Формат файла нестандартный, понятный самой СУБД. Инструментальное средство Oracle imp вставляет данные назад в ту же самую или другую базу данных. Можно выполнять частичный или полный экспорт всей базы данных. В полный экспорт включаются хешированные пароли. Если целью является кража данных, то достаточно выполнить экспорт схемы владельца приложения.

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

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

Для проверки, включен ли режим ARCHIVELOG, можно в sqlplus выдать следующий запрос:

SQL> sho user

USER is "DBSNMP"

SQL> select log_mode

2 from v$database;

LOG_MODE

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

NOARCHIVELOG

SQL>

Для проверки, выполняется ли в базе данных горячие или холодное резервирование, нужно провести небольшое исследование. Можно поискать в машине командные файлы резервирования, содержащие слова ALTER TABLESPACE [TABLESPACE NAME] BEGIN BACKUP. Проверить задания cron, дневные листинги процессов: не запускалось ли программное обеспечение, которое могло выполнять резервирование. Проверить протокольные файлы. Выяснить, программное обеспечение для резервирования установлено на машине, используя для этого pkginfo -l. Можно проверить статус табличных пространств, не переключались ли они в режим “OFFLINE”, что может быть хорошим признаком выполнения в данное время горячего резервирования.

SQL> select tablespace_name,status

2 from dba_tablespaces;

TABLESPACE_NAME STATUS

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

SYSTEM ONLINE

USERS ONLINE

RBS ONLINE

TEMP ONLINE

OEM_REPOSITORY ONLINE

INDX ONLINE

APP_IND_1 OFFLINE

APP_DATA_1 ONLINE

6 rows selected.

SQL>

Проверка холодного резервирования проще, так как можно снова проверить задания cron, листинги процессов и посмотреть, есть ли регулярные остановки, а затем поискать какое-нибудь работающее программное обеспечение резервирования. Если доступен сигнальный файл Oracle (alert log), то в нем просто найти все остановки и запуски базы данных. Необходимо пробовать определить, где и когда записываются файлы и, что более важно, пытаться узнать, можно ли эти фалы взять и прочитать.

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

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

Прим. пер.: "социальная инженерия" - тактика злонамеренного проникновения, при которой взломщик путем "уговоров" обманывает пользователей или администратора (например, представляясь новым сотрудником) и добивается значимой информации о компании и/или её компьютерных системах, чтобы получить несанкционированный доступ к сети. Существуют даже скрытые параметры, которые помогают запустить базу данных, когда она ломается при попытке запуска неполной базы данных.

3.3 Резервные копии на диске

резервный база данные восстановление

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

Во многих случаях базы данных разработчиков и тестовые базы данных имеют копии всех промышленных данных, поскольку они требуются для системного тестирования и настройки производительности. Если требуются эти данные, очень часто достаточно одного дня для их извлечения из этих баз данных. Если необходимо найти базу данных разработчиков или тестовую базу данных: ее не загружают в ту же машину, в которой работает промышленная база данных. Необходимо выяснить в файлах tnsnames.ora и listener.ora SID базы данных, который похож на SID промышленной базы данных. Посмотреть в директории admin инсталляции Oracle файлы init.ora. Они имеют имена init[ORACLE_SID].ora.

Иногда остаются другие “дырки” - разработчики часто имеют гораздо больше прав доступа, чем это нужно. Когда тестовая среда переносится в промышленную базу данных, часто копируются также пользователи, и права доступа разработчиков также оказываются в промышленной базе данных.

3.4 Базы данных для работы в непредвиденных обстоятельствах

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

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

Глава 4. Клонирование БД на локальном и удаленном компьютере с использованием пользователльской резервной копии

4.1 Создание резервной копии методом "холодного" копирования

Холодное (автономное) резервное копирование базы данных выполняется на уровне операционной системы при остановленной базе данных - резервируются файлы, составляющие базу данных Oracle: файлы данных, управляющие файлы, файл параметров. Если остановка базы данных была выполнена в режимах normal\immediate\transactional, то включать в резервную копию файлы оперативных журналов необязательно.

· До начала процесса копирования следует выяснить основные параметры базы данных

database name

SQL>select name from v$database;

instance name

SQL>select instance_name from v$instance;

В общем случае database name = instance name, но при создании клона базы данных на той же машине, что и исходная база, параметры instance name для исходной и клонированной баз должны быть различны.

версия

SQL> select banner from V$version

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

· Файлы базы данных

файлы данных

SQL>select name,status from v$datafile_header;

темп-файлы

SQL> select v$tempfile.name, v$tablespace.name from v$tempfile ,

v$tablespace where v$tempfile.ts#= v$tablespace.ts#

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

журнальные файлы

SQL>select v$logfile.group#, v$logfile.member, v$log.status from v$logfile,

v$log where v$logfile.group#=v$log.group#;

Резервирование журнальных файлов при создании холодной копии необходимо в двух случаях: перед копированием файлов база данных была остановлена в несогласованном состоянии и ее открытие требует восстановление экземпляра; для клонированной базы не желателен сброс последовательности журнальных файлов.

архивные журнальные файлы

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

управляющий файл

SQL>select name from v$controlfile;

Резервирование управляющего файла можно проводить двумя способами: холодным копированием определенных запросом файлов или созданием резервной копии управляющего файла командой alter database backup controlfile - в последнем случае клонированная база данных потребует восстановление с дальнейшим сбросом последовательности журнальных файлов.

Резервирование управляющего файла в двоичный файл осуществляется командой

SQL>alter database backup controlfile to <имя файла-копии>;

Резервирование управляющего файла в файл трассировки для дальнейшего скриптового создания

SQL>alter database backup controlfile to trace;

Файл трассировки формируется в каталоге, указанном в параметре инициализации user_dump_dest (или при установке значения по умолчанию в - rdbms/trace)

файл параметров

SQL>select * from v$parameter2 where name in ('spfile', 'ifile');

Начиная с 9 версии Oracle в качестве файла параметров может использовать как текстовой файл, так и бинарный. По умолчанию, используемый файл расположен в директории <$oracle_home>\database (Windows) или <$oracle_home>/dbs ( linux) и имеет вид init<SID>.ora (текстовой) или spfile<SID>.ora (бинарный)

При использовании spfile для сохранения и редактирования списка параметров для клонированной базы удобно создать текстовой файл командой

SQL>create pfile=<имя файла> from spfile;

файл паролей.

При клонировании базы данных файл паролей следует пересоздать.
файлы net8.

Дополнительно имеет смысл сохранить директорию <$oracle_home> \network\admin, если предполагается создание клона на удаленной машине.

· Перечисленные выше файлы должны быть скопированы средствами ОС и сохранены. При этом копирование файлов данных, журнальных файлов и управляющих файлов должно осуществляться при закрытой базе данных. Не рекомендуется использовать режим shutdown abort, поскольку в этом случае клонированная база потребует восстановления экземпляра и в случае отсутствия текущих (активных) журнальных файлов не может быть открыта.

При установки базы данных с использованием Database Configuration Assistant автоматически генерируемая структура каталогов имеет вид

<$Oracle_base>\

admin\<$Oracle_sid>

oradata\<$Oracle_sid>

flash_recovery_area\<$Oracle_sid>

В этом случае удобнее резервировать не отдельные файлы, а полностью директории admin и oradata с их содержимым.

4.2 Восстановление базы данных на удаленной машине

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

4.2.1 С сохранением структуры каталогов

При инсталляции ПО параметр Oracle_home и пути к домашней директории Оракла должны соответствовать определенным на исходной машине.

После установки ПО необходимо воссоздать структуру каталогов, используемых ораклом для зарезервированных файлов и указанных в файле параметров


Подобные документы

  • Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.

    курсовая работа [2,4 M], добавлен 06.02.2016

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

    курсовая работа [1,0 M], добавлен 10.06.2014

  • Создание программ, позволяющих создавать базы данных. Создание таблицы базы данных. Создание схемы данных. Создание форм, отчетов, запросов. Увеличение объема и структурной сложности хранимых данных. Характеристика системы управления базой данных Access.

    курсовая работа [2,1 M], добавлен 17.06.2013

  • Создание таблиц базы данных с помощью MS Access "Страны Азии". Форма базы данных и запросы к выборкам данных. Модификация структуры таблиц, создания связей между главными таблицами, редактирование данных и проектирование форм для реальной базы данных.

    контрольная работа [723,9 K], добавлен 25.11.2012

  • Авторизация с каталогами проектирования базы данных магазина. Задачи базы данных: учет всех товаров, поиск и выдача данных о клиентах, адрес, телефоны, цена и наличие товара. Этапы проектирования базы данных. Схема данных, создание запросов и их формы.

    реферат [1,6 M], добавлен 22.10.2009

  • Идентификация пользователей. Проверка полномочий и их представлений. Защита базы данных. Контроль параллельной обработки. Обслуживание и восстановление базы данных. Источники отказов и сбоев. Резервное копирование данных. Процедуры восстановления.

    презентация [135,6 K], добавлен 19.08.2013

  • Основные виды баз данных. Система управления базами данных. Анализ деятельности и информации, обрабатываемой в поликлинике. Состав таблиц в базе данных и их взаимосвязи. Методика наполнения базы данных информацией. Алгоритм создания базы данных.

    курсовая работа [3,1 M], добавлен 17.12.2014

  • Объекты модели хранения данных базы данных ORACLE. Взаимосвязь между логическими структурами. Средства манипулирования данными языка SQL, данными языка SQL. Структура выполнения простейших запросов. Формирование критерия отбора. Сортировка данных.

    презентация [120,1 K], добавлен 14.02.2014

  • Система управления базой данных (СУБД), централизованное обеспечение безопасности и целостности данных, защита от несанкционированного доступа. Построение концептуальной и реляционной моделей. Процесс нормализации. Проектирование базы данных в ACCESS.

    курсовая работа [1,8 M], добавлен 29.10.2008

  • Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.

    курсовая работа [1,7 M], добавлен 04.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.