Каталог статей
Меню сайта


Форма входа


Категории раздела
Oracle DB administering [46]
Oracle DB programming [15]
Oracle DB troubleshooting [11]


Поиск


Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Приветствую Вас, Гость · RSS 20.05.2024, 12:03
    Главная » Статьи » Oracle DB » Oracle DB administering

    Восстановление базы из бэкапа RMAN

    полное восстановление базы из архива RMAN

    1. ищем pfile, поднимаем базу в nomount

    2. запускаем rman
    rman target / nocatalog

    3. восстанавливаем controlfile из автобэкапа

    restore controlfile from '/u01/backup/rman_pooh/control_c-1989669565-20121123-00';

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

    Чтобы сделать свежую копию контролфайла:
    backup as copy current controlfile format ‘c:\bkp_controlfile.ctl’;

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

    5. монтируем базу

    alter database mount;

    6. восстанавливаем файлы базы

    restore database;

    если нужно пропустить часть табличных пространств, то пишем
    restore database skip tablespace tbs_1, tbs_2 ...;

    для ускорения процесса можно выделить несколько каналов на диск:

    rman target / nocatalog <<EOF
    run {
      allocate channel c1 type disk;
      allocate channel c2 type disk;
      allocate channel c3 type disk;
      restore database skip tablespace tbs_blabla;
      release channel c1;
      release channel c2;
      release channel c3;
    }
    exit;
    EOF


    7. убеждаемся, что архивлоги за период бэкапирования базы находятся на своем месте
    (show parameter log_archive_dest_1)

    и запускаем
    recover database;

    можно делать восстановление из SQLPLUS, в этом случае набираем:

    recover database using backup controlfile until cancel;

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


    Если были пропущены табличные пространства
    то запускать нужно
    recover database skip tablespace tbs_1, tbs_2 ...;
    но при восстановлении бэкапа, сделанного на стэндбае, может получиться ошибка, так как RMAN дает команду удаления файла для пропущенного табличного пространства без опции "DROP".
    В случае подобной ошибке идем в sqlplus и удаляем все пропущенные файлы руками:
    ALTER DATABASE DATAFILE ‘<datafile name with complete path>’ OFFLINE DROP;

    Потом набираем:
    ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;

    эта команда выполняет recover из архивлогов. Наблюдать за ходом выполнения можно через alert.log.

    Если необходимо восстановление на определенный момент времени, то устанавливаем переменные окружения

    oracle> export NLS_LANG=american_america.us7ascii
    oracle> export NLS_DATE_FORMAT="Mon DD YYYY HH24:MI:SS"

    Затем даем команду recover:

     RECOVER standby DATABASE using backup controlfile UNTIL TIME 'Nov 01 2014 03:00:00';



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

    alter database open resetlogs;


    посмотреть текущие значения SCN в открытой базе:
    select current_scn, checkpoint_change#, controlfile_change# from V$database;

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

    Тогда помогает пересоздать controlfile:
    ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/opt/app/oracle/admin/ORA102/control.trc';

    И затем create database ... resetlogs force

     

     

    Категория: Oracle DB administering | Добавил: basil (19.12.2012)
    Просмотров: 1782 | Комментарии: 2 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Бесплатный конструктор сайтов - uCoz