Как вы дублируете поврежденную физическую резервную базу данных? - PullRequest
3 голосов
/ 15 ноября 2011

первые данные: мы используем базы данных Oracle 11g. Основная база данных, работающая на выделенном сервере, и физическая резервная база данных на отдельном выделенном сервере. Мы используем функцию DataGuard для автоматической репликации первичной базы данных в физическую резервную базу данных в режиме реального времени. Резервное копирование первичной базы данных также осуществляется через RMAN.

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

RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE;

, так как необходимые архивные журналы исчезли.

Поэтому я подумал о том, чтобы заново продублировать физическую резервную базу данных. Я отключил физическую резервную базу данных и перезапустил ее с помощью STARTUP NOMOUNT. Затем вошли на сервер, на котором размещена основная база данных, и запустили RMAN-сессию с:

RMAN target / auxiliary sys@PRIMARY_DB_DG
   RMAN> sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
   RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER
         NOFILENAMECHECK;

, но вскоре после изменения физической резервной базы данных в состояние MOUNT происходит сбой процесса из-за либо

  1. RMAN-04006: ошибка из вспомогательной базы данных: ORA-12537: TNS: соединение закрыто,

  2. RMAN-03009: сбой команды переключения на канале clone_default в 15.11.2011 11:13:58 ORA-03113: конец файла в канале связи или

  3. RMAN-06136: ошибка ORACLE из вспомогательной базы данных: ORA-03113: конец файла в канале связи

Я искал решения, но нашел только руководства по настройке физической резервной базы данных с нуля. Так кто-нибудь знает, как исправить физическую базу данных, не устанавливая ее совершенно новой?

Привет, CB

Ответы [ 3 ]

3 голосов
/ 13 марта 2012

Вот мое решение, которое сработало для меня:

  1. Завершение работы физической резервной базы данных

    SQL> shutdown immediate;
    
  2. (Необязательно, безопаснее в случаесбоя) Резервное копирование всех файлов данных (* .dbf), редологов, архивных журналов, сетевых журналов, журналов флэшбэков и управляющих файлов, используемых экземпляром завершения работы.

  3. Удалить все файлы данных (* .dbf), редологи, архивные журналы, онлайн-журналы, журналы флэшбэков и управляющие файлы в их ссылочных местах, но обязательно храните каталоги.

  4. Запустите физическую резервную базу данных сNOMOUNT-Option

    SQL> startup nomount;
    
  5. Теперь переключитесь на свою основную среду базы данных.

  6. Запустите свой rman на вашей основной среде:

    $> rman target / auxiliary sys@Dataguard_instance
    

    Dataguard_instance должен быть заменен на имя вашего экземпляра DataGuard.После подключения убедитесь, что ваша подключенная целевая база данных является вашей основной базой данных

    connected to target database: PRIM_DB (DBID=4135917300)
    auxiliary database Password:
    connected to auxiliary database: PRIM_DB (not mounted)
    

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

  7. Поэтому, прежде чем мы начнем, мы принудительно переключаем журнал:

    RMAN> sql 'alter system archive log current';
    
  8. Теперь мысобираемся начать полную репликацию нашей физической резервной базы данных

    RMAN> duplicate target database for standby from active database dorecover  nofilenamecheck;
    
  9. Теперь rman выполнит дублирование вашей физической резервной базы данных.В зависимости от размера вашего файла данных, это может занять от нескольких часов до открытия (мне понадобилось около 4 часов ночью, когда основная база данных простаивала около 1,5 т файлов).

  10. После завершения rman вы можете выйти из rman.

  11. Переподключиться к физической резервной базе данных и выключить ее:

    SQL> shutdown immediate;
    
  12. Если выиспользовать опцию флешбэка (иначе продолжить с шага 13):

    SQL> startup mount;
    SQL> alter database flashback on;
    SQL> alter database open;
    
  13. Перезапустить физический режим ожидания:

    SQL> startup;
    
  14. Закончено!

Надеюсь, что поможет вам в случае необходимости.

2 голосов
/ 15 ноября 2011

Я бы посмотрел в alert.log на резервном сайте, чтобы увидеть, какие ошибки были во время сбоя сеанса rman.

Кроме того, вам не обязательно выполнять полную реинстанциюцию - вы можете применять инкрементные резервные копии к резервной базе данных, чтобы обновить ее. См. Например http://jarneil.wordpress.com/2008/06/03/applying-an-incremental-backup-to-a-physical-standby/

Найл

0 голосов
/ 15 ноября 2011

У вас есть настройка Oracle Enterprise Manager Grid Control?Настройка Data Guard - наведите и нажмите.Самый простой способ, который я видел для настройки физической или логической резервной базы данных.

...