Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Manual Standby on Standard Edition - применение логов  [new]
bulat makhmutov
Member

Откуда:
Сообщений: 101
Привет всем,
установили Manual Standby для Oracle Standard Edition на Линуксе.

логика такова:
1) по крону (каждые N мин) проверяем есть ли новые файлы на БД Primary,
если есть, то копируем на Standby через rsync

2) накат логов
функция
recoverlogs() {
	export FUNCTION="recoverlogs"
	export ORACLE_SID="$DATABASE_SID"
	sqlplus / as sysdba << EOF
spool apply_arch.log
recover standby database;
AUTO
spool off
exit;
EOF
	echo "----------------------------------------------------------------"
	echo "End of recovery process"
}


В алерте начали появляться сообщения
.....
Fri Jan 20 10:00:02 2017
ALTER DATABASE RECOVER  standby database  
Media Recovery Start
 started logmerger process
Fri Jan 20 10:00:02 2017
Managed Standby Recovery not using Real Time Apply
Parallel Media Recovery started with 4 slaves
ORA-279 signalled during: ALTER DATABASE RECOVER  standby database  ...
ALTER DATABASE RECOVER    CONTINUE DEFAULT  
Media Recovery Log /u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc
Errors with log /u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc
Errors in file /u01/app/oracle/diag/rdbms/DB1_STBY/DB1/trace/DB1_pr00_7254.trc:
ORA-00308: cannot open archived log '/u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-308 signalled during: ALTER DATABASE RECOVER    CONTINUE DEFAULT  ...
ALTER DATABASE RECOVER    CONTINUE DEFAULT  
Media Recovery Log /u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc
Errors with log /u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc
Errors in file /u01/app/oracle/diag/rdbms/DB1_STBY/DB1/trace/DB1_pr00_7254.trc:
ORA-00308: cannot open archived log '/u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-308 signalled during: ALTER DATABASE RECOVER    CONTINUE DEFAULT  ...
ALTER DATABASE RECOVER CANCEL 
Media Recovery Canceled
Completed: ALTER DATABASE RECOVER CANCEL 
.....




Лог операции:
SQL*Plus: Release 11.2.0.4.0 Production on Fri Jan 20 10:30:02 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SYS:DB1:MOUNTED> SYS:DB1:MOUNTED> ORA-00279: change 293531488 generated at 01/20/2017 09:13:01 needed for thread 1
ORA-00289: suggestion :
/u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc
ORA-00280: change 293531488 for thread 1 is in sequence #3346


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00308: cannot open archived log
'/u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


ORA-00308: cannot open archived log
'/u05/app/oracle/fast_recovery_area/DB1_STBY/archivelog/2017_01_20/o1_mf_1_3346_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


Скрипт применяет все новые архивные логи на Standby из Primary (если есть таковые)
Я проверил - архивный лог 3346 еще не сгенерировался на Primary.
sys@PP_SPSA> SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDER BY sequence#;

 SEQUENCE# FIRST_TIM NEXT_TIME APPLIED
---------- --------- --------- ---------
      ......   ...........   ......     .......
      3340 20-JAN-17 20-JAN-17 NO
      3341 20-JAN-17 20-JAN-17 NO
      3342 20-JAN-17 20-JAN-17 NO
      3343 20-JAN-17 20-JAN-17 NO
      3344 20-JAN-17 20-JAN-17 NO
      3345 20-JAN-17 20-JAN-17 NO


Standby ожидает #3346 архивный лог - хотя он еще существует на Primary.
Возможно команда неправильная - recover standby database;
Хотел узнать как можно сделать чтобы эти сообщения не появлялись в логе без влияния на работу бизнесс логики?
Прошу не судить строго.

С уважением!
20 янв 17, 09:16    [20125557]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
recover AUTOMATIC standby database
20 янв 17, 09:18    [20125567]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
bulat makhmutov
Member

Откуда:
Сообщений: 101
recover standby database;
AUTO

-параметр AUTO в функции не одно и тоже?
20 янв 17, 09:30    [20125617]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
dba123
Member

Откуда:
Сообщений: 1054
bulat makhmutov,

в логе нет никаких ошибок:
ORA-279 - говорит, что начали рекавери стендбая
ORA-308 - говорит, что лог, который нужен для рекавери, отсутствует в каталоге

ORA-27037 - просто баг

т.е.
в п.1 делается проверка на наличие архивного лога перед копированием
а в п.2 не делается проверка на наличие архивного лога перед накатом
20 янв 17, 09:37    [20125642]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Точнее даже ALTER DATABASE recover AUTOMATIC standby database
Тогда оно не задает вопросов, поскольку это уже команда не SQL*Plus, а SQL

Но ошибки в лог пишет (и с каждой версией все больше)
Последний раз я пользовался ручным стендбаем в 9-ке и в логе было совсем немного

Ну а вариант сначала каталогизировать архивлоги через RMAN, а потом накатывать только вновь закаталогизированные (и ненакаченные) не рассматривал?
Или в Standard Edition RMAN не каталогизирует логи (как не работает ALTER DATABASE REGISTER LOGFILE)?
20 янв 17, 09:46    [20125677]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
bulat makhmutov
Member

Откуда:
Сообщений: 101
Вячеслав Любомудров,

Нет, не рассматривал. Но спасибо за направление - приму к сведению.
Я читал про метод предложенный вами где-то на этом форуме - по ходу это самый эффетивный метод для ручного стандбая в стандартной версии.
20 янв 17, 10:20    [20125840]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
bulat makhmutov
Member

Откуда:
Сообщений: 101
Вячеслав Любомудров,

ALTER DATABASE recover AUTOMATIC standby database

Сообщение в алерте:
ORA-279 signalled during: ALTER DATABASE recover AUTOMATIC standby database...
*************************************************************
Warning <krd_check>: Recovery session ended without issuing ALTER DATABASE RECOVER CANCEL
*************************************************************
Errors in file /u01/app/oracle/diag/rdbms/pp_spsa_stby/PPSPSA/trace/PPSPSA_pr00_9275.trc:
ORA-00448: normal completion of background process
Recovery interrupted!
20 янв 17, 12:57    [20126721]     Ответить | Цитировать Сообщить модератору
 Re: Manual Standby on Standard Edition - применение логов  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Это тоже недавно появилось
Хотя это всего лишь предупреждение, что ты завершаешь сессию, не завершив выполнение процесса восстановления (твой сеанс этим начал заниматься после выдачи команды RECOVER)
Чтоб эта хрень не светилась в логе, надо явно завершить процесс восстановления -- выдать вторую команду
alter database recover cancel;
20 янв 17, 13:18    [20126834]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить