05 Відновлення бази даних - сторінка 2

Типи неповного відновлення

05 Відновлення бази даних - сторінка 2

Типи неповного відновлення

Відновлення за часом
За допомогою фрази UNTIL TIME задається момент часу, до якого необхідно відновити базу даних. Відновлення за цим методом припиняється після того, як в базі даних зафіксовані всі зміни, внесені до зазначеного моменту часу. Цей підхід використовується, коли в дані були внесені небажані зміни або видалені важливі таблиці, і відомо приблизний час помилки. Втрати даних будуть мінімальні, якщо адміністратора повідомили негайно. Добре протестовані програми, процедури та захист даних повинні запобігти потреба в такому типі відновлення.


Відновлення до переривання
Цей метод відновлення завершує свою роботу, коли в командному рядку відновлення вводиться CANCEL (замість імені журнального файлу).

Цей підхід використовується в наступних ситуаціях:

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


Відновлення з використанням номера змін
За допомогою фрази UNTIL CHANGE при відновленні, керованому користувачем, і фрази UNTIL SCN при відновленні за допомогою RMAN задається системний номер змін (system change number - SCN) останнього зафіксованого зміни, до якого необхідно відновитися. Відновлення за цим методом припиняється після того, як в базі даних зафіксовані всі зміни, внесені до зазначеного системного номера зміни (SCN). Даний підхід використовується при відновленні баз даних, що працюють в розподіленому середовищі. Ви можете також скористатися фразою UNTIL RESTORE POINT і задати псевдонім для SCN, званий точкою відновлення (restore point). Точки відновлення будуть розглянуті далі в цьому уроці.


Відновлення до журналу з заданим номером
Використовуючи резервні об'єкти, супроводжувані RMAN, можна задати номер останнього журналу, використовуваного для відновлення бази даних за допомогою фрази UNTIL SEQUENCE. Відновлення за цим методом припиняється після того, як були застосовані всі журнали до, але не включаючи журнал із заданим порядковим номером.

Виконання неповного відновлення, керованого користувачем

05 Відновлення бази даних - сторінка 2

Виконання неповного відновлення, керованого користувачем

Для виконання неповного відновлення використовується наступна команда:

RECOVER [AUTOMATIC] DATABASE опція
де:
AUTOMATIC: автоматично застосовуються архівні та оперативні журнальні файли.


Примітка: для автоматичного застосування журнальних файлів під час відновлення можна використовувати команду SET AUTORECOVERY ON утиліти SQL * Plus, ввести AUTO після запиту журналу командою відновлення, або використовувати команду SQL RECOVER AUTOMATIC.

Виконання неповного відновлення, керованого користувачем (продовження)

05 Відновлення бази даних - сторінка 2

Виконання неповного відновлення, керованого користувачем (продовження)

1. Якщо база даних відкрита, то потрібно завершити її роботу з використанням параметра NORMAL, IMMEDIATE АБО TRANSACTIONAL.
2. Відновіть всі файли даних з резервної копії (самої останньої, якщо це можливо). Може бути, потрібно виконати відновлення з резервної копії архівних журналів. Якщо досить дискового простору, потрібно виконати відновлення архівних журналів з резервної копії на місце LOG_ARCHIVE_DEST або використовувати для зміни місця розташування одну з команд:

ALTER SYSTEM ARCHIVE LOG START TO <местоположение> або SET LOGSOURCE <местоположение>.

3. Змонтуйте базу даних.
4. Відновіть базу даних, використовуючи команду RECOVER DATABASE.
5. Для синхронізації файлів даних з керуючими і журнальними файлами необхідно відкрити базу даних з використанням параметра RESETLOGS.

Приклад керованого користувачем неповного відновлення до певного моменту в

05 Відновлення бази даних - сторінка 2

Приклад керованого користувачем неповного відновлення до певного моменту часу

Розглянемо типовий сценарій застосування методу відновлення UNTIL TIME:

Оскільки відомо приблизний час збою і структура бази даних з 11:44 ранку не змінювалася, можна використовувати метод відновлення до певного моменту часу (UNTIL TIME):

1. Якщо база даних відкрита, то потрібно завершити її роботу з використанням параметра NORMAL, IMMEDIATE або TRANSACTIONAL.
2. Відновіть всі файли даних з резервної копії (самої останньої, якщо це можливо). Може бути, потрібно виконати відновлення з резервної копії архівних журналів. Якщо досить дискового простору, потрібно виконати відновлення архівних журналів з резервної копії на місце LOG_ARCHIVE_DEST або використовувати для зміни місця розташування одну з команд: ALTER SYSTEM ARCHIVE LOG START TO <местоположение> або
SET LOGSOURCE <местоположение>.
3. Змонтуйте базу даних.

4. Відновіть базу даних:

5. Для синхронізації файлів даних з керуючими і журнальними файлами необхідно відкрити базу даних з використанням параметра RESETLOGS:

05 Відновлення бази даних - сторінка 2

Якщо відновлення завершилося успішно і резервування виконано, можна повідомити користувачів, що база даних доступна для використання, а всі дані, введені після часу, на яке виконано відновлення (ранок, 11:44), повинні бути введені повторно.

Приклад керованого користувачем неповного відновлення до переривання

05 Відновлення бази даних - сторінка 2

Приклад керованого користувачем неповного відновлення до переривання

Після пошуку в директорії було виявлено, що журнал log2a.rdo відсутня і не знайшовся написаний в архів. Тому неможливо продовжити відновлення, починаючи з цього журналу.

Результат запиту V $ LOG_HISTORY підтверджує відсутність архівної журналу номер 48 (log2a.rdo):

Приклад керованого користувачем неповного відновлення до переривання (прод-ня)

05 Відновлення бази даних - сторінка 2

Приклад керованого користувачем неповного відновлення до переривання (продовження)

Кроки відновлення до переривання такі ж, як і при відновленні до певного часу, за винятком кроку, на якому виконується команда RECOVER DATABASE. При виконанні команди RECOVER DATABASE UNTIL CANCEL відновлення виконується до тих пір, поки надається черговий журнальний файл. Щоб зупинити відновлення, введіть CANCEL, коли буде запитано ім'я журнального файлу, на якому необхідно перервати процес відновлення.

Неповне відновлення БД за допомогою RMAN

05 Відновлення бази даних - сторінка 2

Неповне відновлення БД за допомогою RMAN

За допомогою RMAN можна виконати відновлення на момент-в-минулому, до SCN або номера оперативного журналу.
Неповне відновлення викликає необхідність відкриття БД з опцією RESETLOGS.

В результаті використання цієї опції оперативним журналам присвоюється нова тимчасова мітка і системний номер змін, усуваючи таким чином можливість пошкодження файлів даних шляхом застосування застарілих архівних журналів. Не можна відновити окремі файли даних до моменту, що передує відкриттю БД з параметром RESETLOGS, а інші - на момент після відкриття БД з параметром RESETLOGS. Необхідно відновити всі файли даних до одного і того ж SCN.

Єдиний виняток становлять файли даних, перекладені в автономне стан з параметром normal або знаходять в стані 'тільки читання'. Такі файли можна залишити в стані 'тільки читання' або в автономному стані після відкриття БД з опцією RESETLOGS, так як в журналах немає транзакційних змін для таких файлів даних.

Примітка: RMAN можна використовувати для відновлення файлів даних з резерву тільки, коли коли резервний об'єкт був отриманий за допомогою RMAN або ж після отримання резервної копії вручну вона була зареєстрована в RMAN.

Приклад неповного відновлення за допомогою RMAN з використанням пропозиції UNTIL T

05 Відновлення бази даних - сторінка 2

Приклад неповного відновлення за допомогою RMAN з використанням пропозиції UNTIL TIME

1. Якщо база даних відкрита, виконайте чисту зупинку.
2. Змонтуйте цільову базу даних. Чи не здійснюйте резервування бази даних протягом процедури відновлення.
3. Переконайтеся, що змінні середовища NLS_LANG і NLS_DATE_FORMAT встановлені належним чином:

4. Запустіть утиліту Recovery Manager і з'єднаєтеся з цільовою базою даних.

5. Для підвищення продуктивності можна виділити кілька каналів:

7. Виконайте відновлення бази даних до часу, зазначеного в команді SET UNTIL:

8. Відкрийте базу даних, використовуючи параметр RESETLOGS:

9. Переконайтеся, що таблиця відновлена, і виконайте резервування.
10. Проінформуйте користувачів, що база даних готова до роботи. Вони повинні ввести нові всі дані, що не були зафіксовані перед збоєм.

Неповне відновлення з використанням Enterprise Manager

05 Відновлення бази даних - сторінка 2

Неповне відновлення з використанням Enterprise Manager

Щоб відновити всю базу даних на певний момент часу, виберіть на сторінці Perform Recovery опцію "Recover to the current time or a previous point-in-time". Потім клацніть на кнопці Perform Whole Database Recovery.

На сторінці Perform Recovery також доступна опція "Restore all datafiles". Її використання дозволяє витягти з резервних об'єктів всі файли БД в тому стані, в якому вони перебували під час попереднього резервування.

Остання опція "Recover from previously restored datafiles" дозволяє виконати підкат вперед бази даних до деякого моменту часу.

Схожі статті