Резервное копирование и восстановление базы данных, страница 6

Для восстановления базы данных может использоваться, как команда SQL*Plus RECOVER, так и команда SQL ALTER DATABASE RECOVER. В большинстве случаев восстановление с помощью команды SQL*Plus является более легким, поэтому рекомендуется использовать именно ее.

При выполнении команды восстановления перед применением каждого журнала Oracle запрашивает имя журнального файла. Автоматизировать процесс применения журналов можно различными способами:

·  SQL*Plus

SET AUTORECOVERY ON

RECOVER {DATABASE|TABLESPACE ‘табличное_пространство’|DATAFILE ‘имя_файла’}

·  SQL*Plus

RECOVER AUTOMATIC {DATABASE|TABLESPACE ‘табличное_пространство’|DATAFILE ‘имя_файла’}

·  SQL

ALTER DATABASE RECOVER AUTOMATIC
{DATABASE|TABLESPACE ‘табличное_пространство’|DATAFILE ‘имя_файла’}

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

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

·  Для полного восстановления закрытой базы данных:

§  Закройте базу данных в режиме ABORT, если она еще открыта.

SHUTDOWN ABORT

§  Устраните аппаратные проблемы, которые вызвали сбой носителя.

§  Восстановите поврежденные файлы данных из самой последней резервной копии.

§  Смонтируйте базу данных.

STARTUP MOUNT

§  Переведите все файлы данных базы данных в оперативное состояние (online), если только они не являются частью автономного (offline) или read-only табличного пространства.

ALTER DATABASE DATAFILE ‘имя_файла ONLINE

§  Восстановите базу данных, табличное пространство или файл данных, выполнив команду SQL*Plus:

RECOVER DATABASE

или

RECOVER TABLESPACE табличное_пространство

или

RECOVER DATAFILE ‘имя_файла

§  Откройте базу данных для всех пользователей

ALTER DATABASE OPEN

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

§  Переведите табличное пространство, содержащее потерянные файлы данных, в автономное состояние

ALTER TABLESPACE табличное_пространство OFFLINE IMMEDIATE

§  Устраните аппаратные проблемы, которые вызвали сбой носителя.

§  Восстановите поврежденные файлы данных из последней резервной копии.

§  Восстановите табличное пространство, выполнив команду SQL*Plus:

RECOVER TABLESPACE табличное_пространство

§  Переведите табличное пространство в оперативное состояние

ALTER TABLESPACE табличное_пространство ONLINE

Неполное восстановление (Incomplete Recovery)

Восстановление базы данных на момент времени, предшествующий текущему, называется неполным восстановлением (Incomplete Recovery), т. к. при восстановлении базы данных к файлам данных применяются не все архивные и оперативные журналы. Обычно неполное восстановление базы данных требуется в следующих случаях:

·  в результате сбоя носителя потеряны все или несколько оперативных журналов;

·  в результате пользовательской ошибки произошла потеря данных (например, пользователь случайно удалил таблицу);

·  невозможно выполнить полное восстановление базы данных, т. к. потеряны архивные журналы;

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

Существует три типа неполного восстановления:

·  восстановление до отмены (Cancel-based recovery) – журналы применяются до тех пор, пока администратор не введет команду CANCEL;

·  восстановление до заданного времени (Time-based recovery) – данные восстанавливаются до заданной точки во времени;

·  восстановление до заданного системного номера (Changed-based recovery) – данные восстанавливаются до заданного SCN.

Перед неполным восстановлением базы данных необходимо сделать полную (если есть возможность, «холодную») резервную копию базы данных.

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

Для неполного восстановления так же, как и для полного, может использоваться команда SQL*Plus RECOVER и команда SQL ALTER DATABASE RECOVER. Если Вы используете резервную копию управляющего файла при восстановлении, укажите опцию USING BACKUP CONTROLFILE в команде восстановления.

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

Чтобы выполнить неполное восстановление базы данных:

·  Остановите базу данных режиме NORMAL или IMMEDIATE

SHUTDOWN {NORMAL|IMMEDIATE}

·  Выполните «холодное» резервное копирование базы данных

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

·  Смонтируйте базу данных

STARTUP MOUNT

·  Восстановите базу данных

·  До отмены

RECOVER DATABASE UNTIL CANCEL [USING BACKUP CONTROLFILE]