Утилита Data Recovery Advisor (Советник по восстановлению данных) представляет собой средство, которое помогает устранять неполадки, связанные с повреждением или потерей данных на диске. Она позволяет легко диагностировать и исправлять подобные неполадки с данными и сокращает среднее время восстановления (Mean Time To Repair — MTTR). Она помогает своевременно обнаруживать и устранять проблемы с данными до перехода базы в неисправное состояние и предоставляет оценку последствий неполадок в виде отчета. Вдобавок она определяет наилучшие пути восстановления и, хотя может выполнять процедуры восстановления автоматически, оставляет право на принятие окончательного решения за администратором баз данных. В частности, Data Recovery Advisor помогает диагностировать неполадки следующих типов:
- недоступные поля данных и управляющие файлы;
- файлы данных, старее прочих файлов в базе данных;
- физическое повреждение;
- проблемы с вводом-выводом, например, из-за ошибок в работе аппаратного обеспечения или неполадок в работе операционной системы.
Получать доступ к Data Recovery Advisor можно через интерфейс Database Control или Grid Control в Enterprise Manager. Однако давайте рассмотрим, как получать доступ к Data Recovery Advisor с помощью RMAN, поскольку такой подход позволит лучше разобраться в том, как работают различные команды Data Recovery Advisor.
Работа с Data Recovery Advisor
База данных Oracle Database может обнаруживать неполадку при столкновении с ошибками наподобие поврежденных данных. В подобном случае она запускает автоматические процедуры проверки целостности данных, которые приводят к проведению диагностики неполадок среди данных и занесению результатов в Data Recovery Advisor. Эти процедуры проверки целостности данных можно также вызывать и вручную в профилактических целях. Запускать диагностическую проверку можно через интерфейс Health Monitor (Монитор работоспособности), а проверку на предмет повреждения блоков — командами VALIDATE и BACKUP VALIDATE. Независимо от того, запускается процедура проверки автоматически в ответ на какую-то текущую ошибку или вручную администратором базы данных для профилактических целей, генерируемые во время нее данные анализа неполадок сохраняются в так называемом автоматическом репозитории диагностики (Automatic Diagnostic Repository — ADR). Вызывать Data Recovery Advisor можно только после записывания информации о неполадках в этот репозиторий. Анализировать неполадку можно по следующим отображаемым для нее свойствам.
- Состояние (failure status). Состояние неполадки остается открытым до тех пор, пока не будет выполнена операция по ее устранению. После устранения неполадки, ее состояние становится закрытым.
- Степень важности (failure priority). Неполадке может присваиваться высокая, средняя и низкая степень важности. База данных присваивает только высокую и среднюю степень важности, но при наличии уверенности в том, что база данных может игнорировать данную неполадку, пока не будут устранены другие более важные неполадки, эту степень можно легко превращать в низкую и тем самым ограничивать вывод команды LIST FAILURE, которая отображает перечень всех явных неполадок со средней или высокой степенью важности.
- Группа (failure grouping). Data Recovery Advisor объединяет все связанные между собой поднеполадки в одну неполадку. При желании можно брать и просматривать детали каждой из этих поднеполадок отдельно.
Программу Data Recovery Advisor нужно использовать всякий раз, когда какие-нибудь предупреждения, сообщения об ошибках или результаты проверок целостности данных указывают на наличие в базе данных неполадок. Как уже упоминалось ранее, независимо от того, запускается проверка базы данных вручную или автоматически утилитой RMAN, база данных заносит все конечные сведения о неполадке в репозиторий ADR. По завершении процесса записи сведений о неполадке в ADR может вызываться Data Recovery Advisor.
Для осуществления диагностики проблем и поиска решений Data Recovery Advisory пользуется специальной инфраструктурой диагностирования. Благодаря этому Data Recovery Advisor удобно использовать при возникновении проблем вроде утраченных файлов данных, повреждений блоков данных или отказов средств ввода-вывода. За счет автоматического обнаружения таких проблем и применения рекомендаций по их устранению можно значительно ограничивать ущерб и тем самым сокращать время простоя базы данных.
В подразделах статьи ниже перечислены основные команды Data Recovery Advisor, которыми можно пользоваться для диагностики и устранения неполадок.
Просмотр списка неполадок
Для просмотра списка всех встречающихся в базе данных неполадок можно использовать команду LIST FAILURE, как показано ниже:
RMAN> list failure; List of Database Failures Failure ID Priority Status Time Detected Summary ---------- -------- -------- ------------- ------------------ 4 HIGH OPEN 30-MAR-08 multiple datafiles are missing RMAN>
В данном случае вывод этой команды показывает, что не хватает нескольких файлов данных. Обратите внимание, что в выводе команды LIST FAILURE отображаются сведения обо всех неполадках, о которых известно Data Recovery Advisor. При желании просмотреть сведения только о конкретных неполадках, можно применить команду LIST FAILURE...DETAIL:
RMAN> list failure 4 detail;
Помимо этого, еще также можно использовать любую из следующих разновидностей команды LIST FAILURE:
RMAN> list failure critical; RMAN> LIST FAILURE HIGH; RMAN> LIST FAILURE LOW; RMAN> list failure open; RMAN> list failure closed; RMAN> list failure exclude failure 12345
Определение вариантов исправления неполадок
Команда ADVISE FAILURE, выполняемая следом за командой LIST FAILURE, позволяет получить список возможных как ручных, так и автоматически вариантов для исправления обнаруженных неполадок. Ручные варианты зачастую позволяют избегать более трудоемких автоматических вариантов исправления. Например, легче выполнить замену одной или двух таблиц, чем проводить процедуры RESTORE и RECOVER для всех файлов данных. Ниже приведен пример, демонстрирующий использование команды ADVISE FAILURE:
RMAN> advise failure; List of Database Failures Failure ID Priority Status Time Detected Summary ---------- -------- -------- ------------- ---------------------- 4 HIGH OPEN 30-MAR-08 multiple datafiles are missing analyzing automatic repair options; this may take some time allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=152 device type=DISK analyzing automatic repair options complete Manual Checklist ================================================================= if file C:\ORACLE\PRODUCT\11.1.0\ORADATA\NICK\USERS01.DBF was unintentionally renamed or moved, restore it if file C:\ORACLE\PRODUCT\11.1.0\ORADATA\NICK\EXAMPLE01.DBF was unintentionally renamed or moved, restore it Automated Repair Options ================================================================ Option Strategy Repair Description -------- ----------- ------------------ no data loss restore and recover datafile 4, Restore and recover datafile Repair script: C:\ORCL11\APP\ORACLE\NICK\DIAG\diag\ rdbms\nick\nick\hm\reco_128942564.hm RMAN>
В этом примере ручной и автоматический варианты выглядят одинаково и требуют проведения для недостающих файлов процедур RESTORE и RECOVER.
Исправление неполадок
Прежде чем пытаться следовать рекомендуемым автоматическим процедурам, нужно обязательно попытаться устранить неполадки вручную. Перед выполнением команды REPAIR FAILURE может оказаться удобным использовать команду REPAIR PREVIEW, как показано ниже, для предварительного просмотра стратегии исправления:
RMAN> repair failure preview; Strategy Repair script ------------ ------------------------------------- no data loss C:\ORCL11\APP\ORACLE\NICK\DIAG\diag\ rdbms\nick\nick\hm\reco_128942564.hm contents of repair script: # restore and recover datafile restore check readonly datafile 4, 5; recover datafile 4, 5; RMAN>
После предварительного просмотра стратегии исправления можно перейти к выполнению самой команды REPAIR FAILRE:
RMAN> repair failure; Strategy Repair script ------------ ---------------------------------------------- no data loss C:\ORCL11\APP\ORACLE\NICK\DIAG\diag\rdbms\nick\ nick\hm\reco_128942564.hm contents of repair script: # restore and recover datafile restore check readonly datafile 4, 5; recover datafile 4, 5; Do you really want to execute the above repair (enter YES or NO) ? yes executing repair script Starting restore at 30-MAR-08 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set Finished restore at 30-MAR-08 Starting recover at 30-MAR-08 starting media recovery RMAN-08187: WARNING: media recovery until SCN 3212445 complete Finished recover at 30-MAR-08 repair failure complete Do you want to open the database (enter YES or NO)? yes RMAN>
Результаты команды REPAIR FAILURE отображаются в представлении V$IR_REPAIR. Структура этого представления выглядит так:
SQL> desc v$ir_repair Name Null? Type ------------------------ ------ -------------- REPAIR_ID NUMBER ADVISE_ID NUMBER SUMMARY VARCHAR2(32) RANK NUMBER TIME_DETECTED DATE EXECUTED DATE ESTIMATED_DATA_LOSS VARCHAR2(20) DETAILED_DESCRIPTION VARCHAR2(1024) REPAIR_SCRIPT VARCHAR2(512) ESTIMATED_REPAIR_TIME NUMBER ACTUAL_REPAIR_TIMENUMBER STATUS VARCHAR2(7) SQL>
Для просмотра деталей по всем сгенерированным Data Recovery Advisor рекомендациям касательно исправления неполадок служит следующий запрос:
SQL> select repair_id,advise_id,summary,rank from v$ir_repair; REPAIR_ID ADVISE_ID SUMMARY RANK --------- --------- ---------------------- ------ 23 21 NO DATA LOSS OPTION 1 69 67 NO DATA LOSS OPTION 1 82 80 NO DATA LOSS OPTION 1 SQL>
Команды, которые предлагаются в RMAN для получения доступа и работы с Data Recovery Advisor, выглядят довольно просто, но существует даже еще более простой способ для этого, и заключается он в получении доступа к этому приложению через интерфейс Enterprise Manager (Диспетчер предприятия).