Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вопросы - Ответы БД

.pdf
Скачиваний:
42
Добавлен:
01.05.2015
Размер:
1.85 Mб
Скачать

Теперь о назначении последних опций:

DEFAULT ROLE имя_роли – роль, назначаемая пользователю сразу после открытия сессии (без необходимости вводить пароль такой роли);

DEFAULT ROLE ALL – пользователю назначаются все, присвоенные ему роли, за исключением тех, которые указаны после предложения EXCEPT;

DEFAULT ROLE NONE – все роли, назначенные пользователю, будут отключены после открытия сессии.

Управление ролями

Конечно же, роль можно создать с помощью Enterprise Manager (думаю, Вы без труда справитесь с такой задачей самостоятельно), а сейчас рассмотрим команду создания роли с помощью SQL:

CREATE ROLE имя_роли NOT IDENTIFIED

или IDENTIFIED BY пароль или IDENTIFIED EXTERNALLY или IDENTIFIED GLOBALLY

Это довольно простая команда. Единственными опциями которой являются методы обеспечения безопасности (т.е. методы идентификации ролей). Команда изменения роли полностью аналогична команде создания (ALTER ROLE). Т.е. при изменении роли можно лишь модифицировать метод обеспечения безопасности или сменить пароль.

Для удаления роли существует команда DROP ROLE имя_роли.

Команды GRANT и REVOKE

Как я уже говорил, роль можно назначить любому пользователю или другой роли, точно так же как привилегию. Для этого используется команда GRANT (разрешить). Эта команда должна соответствовать следующему синтаксису:

GRANT имя_роли или имя_привилегии [, имя_роли или имя_привилегии ]

TO пользователь или имя_роли или PUBLIC [, пользователь или имя_роли ]

[ WITH ADMIN OPTION ]

[ WITH GRANT OPTION ]

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

Опция WITH ADMIN OPTION разрешает передавать полученные привилегии другим ролям и пользователям. Будьте внимательны, опция ADMIN разрешает изменить или удалить полученную роль! Чтобы разрешить только передачу роли, используйте опцию

WITH GRANT OPTION.

Команда REVOKE (отнять, аннулировать) противоположна по действию команде GRANT. Т.е. отнимает у пользователя или роли назначенные ранее роли и привилегии. Имеет похожий синтаксис:

REVOKE имя_роли или имя_привилегии [, имя_роли или имя_привилегии ]

FROM пользователь или имя_роли или PUBLIC [, пользователь или имя_роли ]

Давайте, теперь рассмотрим несколько примеров:

GRANT new_dba TO michael WITH ADMIN OPTION; - этой командой пользователю michael назначается роль new_dba. При этом пользователь michael получает право назначить полученную роль любому другому пользователю, а также изменить и удалить эту роль.

GRANT ALL ON salary TO jfee ; - этой командой пользователю jfee предоставляются все объектные привилегии на представление salary.

GRANT SELECT ON hr . employees TO blake WITH GRANT OPTION ; - пользователь blake получает привилегию просмотра таблицы hr.employees с возможностью разрешить такой просмотр любому другому пользователю системы.

REVOKE CREATE TABLE , accts_rec FROM tsmith ; - пользователь tsmith больше не сможет создавать таблицы и теряет права роли accts_rec .

10. Резервирование и восстановление данных (на примере любой СУБД).

Резервное копирование (англ. backup) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном месте их расположения в случае их повреждения или разрушения.

Цель

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

Кроме этого решаются смежные проблемы:

Дублирование данных

Передача данных и работа с общими документами

Требования к системе резервного копирования

Надѐжность хранения информации. Обеспечивается применением отказоустойчивого оборудования систем хранения, дублированием информации и заменой утерянной копии другой в случае уничтожения одной из копий (в т.ч. как часть отказоустойчивости).

Простота в эксплуатации — автоматизация (по возможности минимизировать участие человека: как пользователя, так и администратора).

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

Виды резервного копирования

Полное резервирование Full Backup

Дифференциальное резервирование Differential Backup

Добавочное резервирование Incremental Backup

Пофайловый метод

Блочное инкрементальное копирование Block Level Incremental

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

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

Одноразовое копирование;

Простая ротация;

«Дед, отец, сын»;

«Ханойская башня»;

«10 наборов».

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

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

Хранение резервной копии

Лента стримера — запись резервных данных на магнитную ленту стримера.

«Облачный» бэкап» — запись резервных данных по «облачной» технологии через онлайн-службы специальных провайдеров.

DVD или CD — запись резервных данных на компактные диски.

HDD — запись резервных данных на жёсткий диск компьютера.

LAN — запись резервных данных на любую машину внутри локальной сети.

FTP — запись резервных данных на FTP-серверы.

USB — запись резервных данных на любое USB-совместимое устройство (такое, как флэшкарта или внешний жёсткий диск)

ZIP, JAZ, MO — резервное копирование на дискеты ZIP, JAZ, MO.

Методы борьбы с утерей информации

Утеря информации бывает по разным причинам.

Эксплуатационные поломки носителей информации (жёстких дисков,

дискет, CD/DVD)

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

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

RAID 1, обеспечивающий восстановление самой свежей информации. Файлы, расположенные на сервере с RAID, более защищены от поломок, чем хранящиеся на локальной машине;

Ручное или автоматическое копирование на другой носитель. Для этого может использоваться система контроля версий, специализированная программа резервного копирования или подручные средства наподобие периодически запускаемого cmd-файла.

Эта причина не самая распространѐнная, так как современные жѐсткие диски редко

выходят из строя.[источник не указан 375 дней]

Современный жѐсткий диск в режиме постоянно включенного компьютера (сервера) работает до отказа порядка трѐх лет. Тонкий момент: если организован RAID 1 на двух одинаковых жѐстких дисках, введѐнных в эксплуатацию одновременно, то выходить из строя они будут примерно в одно и то же время! Другими словами, если вы

обнаруживаете, что первый диск начал покрываться сбойными блоками, велика вероятность, что сбои есть и на втором диске.[источник не указан 375 дней] Однако вероятность

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

Стихийные и техногенные бедствия

Описание: шторм, землетрясение, кража, пожар, прорыв водопровода — всѐ это приводит к потере всех носителей данных, расположенных на определѐнной территории.

Борьба: единственный способ защиты от стихийных бедствий — держать часть резервных копий в другом помещении.

Вредоносные программы

Описание: в эту категорию входит случайно занесѐнное ПО, которое намеренно портит информацию — (вирусы, черви, «троянские кони». Иногда факт заражения обнаруживается, когда немалая часть информации искажена или уничтожена.

Борьба:

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

Обеспечение централизованного обновления: первая копия антивируса получает обновления прямо из Интернета, а другие копии настроены на папку, куда первая загружает обновления; также можно настроить прокси-сервер таким образом, чтобы обновления кешировались (это всё меры для уменьшения трафика).

Иметь копии в таком месте, до которого вирус не доберётся — выделенный сервер или съёмные носители.

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

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

Человеческий фактор

Описание: намеренное или ненамеренное уничтожение важной информации — человеком, специально написанной вредоносной программой или сбойным ПО.

Борьба:

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

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

Хранить версии достаточной давности, чтобы при обнаружении испорченных данных файл можно было восстановить.

Перед переустановкой ОС следует обязательно копировать всё содержимое раздела, на которой будет установлена ОС, на сервер, на другой раздел или на CD / DVD.

Оперативно обновлять ПО, которое заподозрено в потере данных.

RMAN – Recovery Manager, ORACLE

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

Возможности RMAN

Возможности RMAN включают следующее:

-выполнение полного резервирования и резервирования изменений выполнение холодного/горячего резервирования, причем во втором случае

-табличные пространства не переводятся в режим backup, что позволяет избежать дополнительной нагрузки на журнал

-обнаружение поврежденных блоков

-параллельное выполнения операций ввода/вывода

-автоматическое протоколирование операций копирования и восстановления

Уровни выполнения резервного копирования/восстановления с помощью RMAN:

база данных

табличные пространства

файлы табличных пространств

служебные файлы БД (контрольные, архивные)

Основные понятия

В число основных понятий RMAN входят следующие:

-Канал (channel). Серверный процесс, возникающий при установлении связи с устройством ввода/вывода (диск или

магнитная лента) для записи или чтения файлов резервирования

-Целевая БД (target database). БД, для которой снимается резервная копия, или которая восстанавливается по ранее снятой копии

-Каталог (recovery catalog). Отдельная схема в БД (чаще в отдельной БД), которую можно заводить для хранения служебная информации о целевых базах, снятых копиях и процедурах восстановления. Альтернативой каталогу является индивидуальная работа с каждой целевой БД, когда служебная информация помещается в контрольный файл этой БД.

-Копия (RMAN backup). Резервная копия какого-нибудь элемента БД, получаемая командой RMAN backup.

-Резервный набор (backup set). Логически именует набор файлов, сформированных во время резервного копирования.

-Резервный файл (backup piece). Двоичный файл с резервной информацией.

Синтаксис командного языка RMAN в версии 9 имеет определенные отличия от версии 8, но все основные конструкции сохранены. Кроме этого, в RMAN для версии 9 допускается целый ряд упрощений записи команд.

Возможность работы с RMAN включена также в последние версии OEM без необходимости знания командного языка.

В тексте ниже для лаконичности предпочтение будет отдаваться синтаксису версии 9. Кроме этого для простоты рассматривается работа без каталога RMAN.

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

RMAN> BACKUP DATABASE;

а восстановление так:

RMAN> RESTORE DATABASE;

RMAN> RECOVER DATABASE;

RMAN> ALTER DATABASE OPEN;

Резервирование файлов базы данных

Горячее полное резервирование БД

Горячее резервирование

-может выполняться в состоянии СУБД OPEN

-может выполняться только при включенном режиме архивирования журналов

Если выполнено и то, и другое, сами действия по резервированию выглядят как обычно. Пример в синтаксисе версии 9.0:

RMAN> BACKUP DATABASE FORMAT

2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus';

Полное резервирование табличного пространства

Пример в синтаксисе версии 9.0:

RMAN> BACKUP TABLESPACE system, users FORMAT

2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus';

Полное резервирование отдельных файлов табличного пространства

Пример в синтаксисе версии 9.0:

RMAN> BACKUP DATAFILE 1, 2;

или

RMAN> BACKUP FORMAT

2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus' 3> 'd:\oracle\oradata\teacher\system01.dbf',

4> 'd:\oracle\oradata\teacher\users01.dbf';

Резервирование контрольного файла

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

RMAN> BACKUP CURRENT CONTROLFILE;

В версии 9 можно, однако, перевести RMAN в режим, когда копии контрольного файла будут сниматься автоматически при всякой выдаче команд BACKUP или COPY:

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

Резервирование архивных копий журнала

Файлы архивных копий журнала резервируются всегда в отдельные от прочих файлы резервного набора и в общем случае их нужно резервировать отдельной командой. Пример в синтаксисе версии 9.0:

RMAN> BACKUP ARCHIVELOG ALL;

Пример того, как в версии 9.0 архивные файлы можно включить в состав резервного набора БД:

RMAN> BACKUP DATABASE FORMAT

2> 'd:\oracle\oradata\teacher\rman-backup\rman_%U.bus' PLUS ARCHIVELOG;

Резервирование изменений (неполное резервирование)

Для резервирования изменений в Oracle используется традиционная многоуровневая модель с конкретным числом уровней копии 5 (от 0 до 4). Точкой отсчета для копирования изменений обязана стать снятая ранее полная копия БД уровня 0.

Пример резервирования блоков, изменившихся со времени резервирования на уровнях 3, 2, 1 и 0 (разностное, <дифференциального> резервирование) в синтаксисе версии 9:

RMAN> BACKUP INCREMENTAL LEVEL 3 DATABASE;

Пример резервирования блоков, изменившихся со времени последнего резервирования на уровнях 2, 1 и 0 (разностно-накопительное, <кумулятивное> резервирование) с пропуском табличных пространств, закрытых для записи (синтаксис версии 9):

RMAN> BACKUP INCREMENTAL LEVEL 3 CUMULATIVE DATABASE 2> SKIP READONLY;

Разностно-накопительное (кумулятивное) резервирование уровня N отличается от разностного (дифференциального) тем, что резервирует изменения произошедшие после выполнения резервирования всех уровней < N, в то время как просто разностное - изменения, произошедшие после резервирования уровней <= N.

Выдача справочной информации

Выполняется специальными командами LIST и REPORT, а также разновидностью команды RESTORE. Примеры приводятся ниже.

Выдача подробного списка всех снятых копий:

RMAN> LIST BACKUP;

Выдача списка резервных наборов, содержащих табличное пространство SYSTEM:

RMAN> LIST BACKUP OF TABLESPACE system;

Вариант выдачи того же самого, но в обобщенном виде (версия 9):

RMAN> LIST BACKUP OF TABLESPACE system SUMMARY;

Выдача информации о копиях, снятых с архивов журналов:

RMAN> LIST BACKUP OF ARCHIVELOG ALL;

Выдача резервных копий, оказавшихся устаревшими:

RMAN> REPORT OBSOLETE;

Выдача файлов с данными БД, для восстановления которых потребуются архивы журналов 2-х дневной давности и более:

RMAN> REPORT NEED BACKUP DAYS 2 DATABASE;

Те же сведения, но только для пространства SYSTEM:

RMAN> REPORT NEED BACKUP DAYS 2 TABLESPACE system;

Выдача информации о том, годны ли файлы резервного набора для восстановления:

RMAN> RUN {ALLOCATE CHANNEL d1 TYPE DISK; 2> RESTORE DATABASE VALIDATE; }

Удаление резервных копий

Выполняется командой DELETE. В простейшем варианте удаление устаревших копий может выглядеть так:

RMAN> DELETE OBSOLETE;

Обратите внимание, что RMAN удалил ненужные файлы резервных наборов. Вам не нужно автоматизировать удаление старых файлов, как раньше!

Файлы резервных наборов могут оказаться испорченными или поврежденными. Это можно отметить в справочнике (в контрольном файле или в каталоге RMAN) с помощью команды CROSSCHECK, в результате чего они будут помечены там как EXPIRED. Последующая команда DELETE EXPIRED удалит ставшие ненужными из-за этого файлы:

RMAN> CROSSCHECK BACKUP;

:

RMAN> DELETE EXPIRED BACKUP OF DATABASE;

:

RMAN> DELETE BACKUP OF DATABASE;

Более сложный пример удаления устаревших резервных копий:

RMAN> DELETE OBSOLETE RECOVERY WINDOW OF 14 DAYS;

Восстановление данных

-Для восстановления данных целевая БД должна находиться в состоянии NOMOUNT/ MOUNT/ OPEN в зависимости от характера восстановления, например

-NOMOUNT: для восстановления контрольных файлов БД (фактически - СУБД)

-MOUNT: для восстановления БД целиком или табличного пространства

SYSTEM

-OPEN: для восстановление табличных пространств, помимо SYSTEM (в этом случае перед процедурой восстановления само табличное пространство потребуется перевести в состояние OFFLINE).

-Восстановление файлов (с данными и служебных) выполняется в RMAN командой RESTORE.

-Восстановление данных выполняется либо в RMAN, либо в SQL*Plus командами RECOVER при условии наличия восстановленных файлов.

Восстановление до момента сбоя (<последнего момента>)