Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
05 приложение - SQL Plus - win.doc
Скачиваний:
11
Добавлен:
17.08.2019
Размер:
762.88 Кб
Скачать

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

Если база данных работала в режиме ARCHIVELOG, после сбоя носителя ее можно полностью или частично восстановить. Для этого в SQL*Plus предлагается команда RECOVER, имеющая следующий, весьма объемный, синтаксис:

<команда RECOVER> ::=

RECOVER <режим восстановления> [<степень параллелизма>]

<режим восстановления> ::=

<общее восстановление> | <управляемое восстановление> | END BACKUP

<общее восстановление> ::=

[AUTOMATIC] [FROM <местонахождение>] <команда восстановления>

<команда восстановления> ::=

<вид восстановления> [TEST ALLOW <целое число> CORRUPTION]   | CONTINUE [DEFAULT]   | CANCEL

<вид восстановления> ::=

<полное восстановление>   | <частичное восстановление>   | LOGFILE <имя файла>

<полное восстановление> ::=

[STANDBY] DATABASE { <уровень восстановления >} <уровень восстановления> UNTIL <точка восстановления>   | USING BACKUP CONTROLFILE

<точка восстановления> ::=

CANCEL | TIME <дата> | CHANGE <целое число>

<частичное восстановление> ::=

<табличные пространства или файлы данных>   | STANDBY <табличные пространства или файлы данных>     UNTIL [CONSISTENT] [WITH] CONTROLFILE

<табличные пространства или файлы данных> ::=

TABLESPACE <табличное пространство>{, <табличное пространство>}   | DATAFILE <файл данных>{, <файл данных>}

<управляемое восстановление> ::=

MANAGED STANDBY DATABASE <опция управляемого восстановления>

<опция управляемого восстановления> ::=

NODELAY   | [TIMEOUT] <целое число>   | CANCEL [IMMEDIATE] [NOWAIT]   | DISCONNECT [FROM SESSION] [FINISH [NOWAIT]]

<степень параллелизма> ::=

PARALLEL [<целое число>] | NOPARALLEL

Опции команды RECOVER кратко описаны в табл. 20.

Таблица 20. Опции команды RECOVER.

Опция

Назначение

AUTOMATIC

Автоматически генерирует имя архивного файла журнала повторного выполнения, необходимого для продолжения операции восстановления. Для этого используются значения параметров конфигурации LOG_ARCHIVE_DEST и LOG_ARCHIVE_FORMAT (или соответствующие стандартные значения). Если файл с таким именем не найден, SQL*Plus запрашивает имя файла, выводя автоматически сгенерированное в качестве подсказки. Имя запрашивается также, если не указана ни опция AUTOMATIC, ни опция LOGFILE. Если заранее известно, что архивирование выполнялось в файл с нестандартным именем, имеет смысл сразу указать опцию LOGFILE.

FROM <местонахождение>

Задает местонахождение архивных файлов журнала повторного выполнения. По умолчанию используется значение параметра инициализации LOG_ARCHIVE_DEST. Можно также задать местонахождение архивных файлов с помощью команды SQL*Plus SET LOGSOURCE.

LOGFILE

Продолжает восстановление носителей, применяя указанный файл журнала повторного выполнения. При восстановлении в интерактивном режиме (AUTORECOVERY OFF), запрашивает новое имя файла, если указанный файл журнала не найден.

TEST ALLOW <целое число> CORRUPTION

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

CONTINUE

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

CONTINUE DEFAULT

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

CANCEL

Прерывает восстановление, ведущееся до CANCEL (см. опцию UNTIL CANCEL).

STANDBY DATABASE

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

DATABASE

Восстанавливает всю базу данных в целом.

UNTIL CANCEL

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

UNTIL TIME

Задает неполное восстановление до момента времени. Момент времени указывается в одиночных кавычках по формату 'YYYY-MM-DD:HH24:MI:SS'.

UNTIL CHANGE

Задает неполное восстановление до указанного по номеру изменения (SCN), не включая его.

USING BACKUP CONTROLFILE

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

TABLESPACE

Восстанавливает указанные табличные пространства текущей базы данных (до 16).

DATAFILE

Восстанавливает любое количество указанных файлов данных.

STANDBY TABLESPACE

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

STANDBY DATAFILE

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

UNTIL CONSISTENT WITH CONTROLFILE

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

MANAGED STANDBY DATABASE

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

NODELAY

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

TIMEOUT

Задает период ожидания (в минутах) для операции устойчивого восстановления. Если за это время не станет доступным архивный журнал повторного выполнения, процесс восстановления завершается с ошибкой. Если эта конструкция не указана, резервная база данных остается в состоянии ожидания восстановления, пока не будет повторно выполнена команда RECOVER с конструкцией CANCEL или пока не произойдет остановка или сбой экземпляра.

CANCEL

При управляемом восстановлении конструкция CANCEL прерывает восстановление резервной базы данных после применения текущего архивного файла повторного выполнения. Приглашение SQL*Plus снова появится после остановки процесса восстановления.

CANCEL IMMEDIATE

Прерывает управляемое восстановление резервной базы данных после применения текущего архивного файла повторного выполнения или после прочтения следующего, в зависимости от того, какое событие произойдет раньше. Приглашение SQL*Plus снова появится после остановки процесса восстановления. Команду RECOVER CANCEL IMMEDIATE нельзя выполнять из того же сеанса, из которого была выполнена команда RECOVER MANAGED STANDBY DATABASE.

CANCEL NOWAIT

Прерывает управляемое восстановление резервной базы данных после прочтения следующего файла журнала повторного выполнения и выдает приглашение SQL*Plus.

DISCONNECT FROM SESSION

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

FINISH

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

NOWAIT

Возвращает управление немедленно, не дожидаясь завершения процесса восстановления.

Для выполнения команды RECOVER необходимо обладать ролью SYSDBA и подключиться через выделенный серверный процесс.

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

Рассмотрим простой пример остановки, запуска и восстановления носителя из SQL*Plus:

SQL> connect system/manager as sysdba

Соединено.

SQL> shutdown

База данных закрыта.

База данных размонтирована.

Экземпляр ORACLE завершен.

SQL> startup mount

Экземпляр ORACLE запущен.

Total System Global Area 152581388 bytes

Fixed Size 70924 bytes

Variable Size 78741504 bytes

Database Buffers 73691136 bytes

Redo Buffers 77824 bytes

База данных смонтирована.

SQL> recover database until time '2001-12-09:00:00:00'

Восстановление носителя завершено.

SQL> alter database open;