Как повторно продублировать поврежденную физическую резервную базу данных?

сначала немного данных: мы используем базы данных 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: конец файла на канале связи

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

Привет, КБ.


person Crazy Bytes    schedule 15.11.2011    source источник
comment
Настоятельно рекомендуем вам обратиться в службу поддержки Oracle...   -  person cagcowboy    schedule 15.11.2011
comment
Я уже сделал, но в настоящее время нет ответа. Поэтому я хотел увеличить свой шанс, спросив здесь.   -  person Crazy Bytes    schedule 15.11.2011


Ответы (3)


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

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

Найл

person Niall Litchfield    schedule 15.11.2011
comment
Спасибо за совет, мне удалось восстановить резервную базу данных с помощью резервных копий основной базы данных. Спасибо. - person Crazy Bytes; 16.11.2011

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

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

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

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

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

    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. Законченный!

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

person Community    schedule 13.03.2012
comment
Я думаю, вам нужно использовать rman target sys/@primary auxiliary sys/@standby. Если нет, то при запуске duplicate rman вы получите ошибку: RMAN-05609: Must specify a username for target connection when using active duplicate . - person Roberto Hernandez; 06.07.2021

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

person RMAN Express    schedule 15.11.2011
comment
Мы используем GridControl для мониторинга, но я не хочу настраивать новую физическую резервную базу данных, я просто хочу перестроить существующую. - person Crazy Bytes; 16.11.2011