Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Мониторинг ручного стендбая SE One  [new]
малекит
Guest
11.2.0.3 SE One

Возник вопрос мониторинга ручного стендбая. Бывают ситуации, когда нужный архивлог по какой-то причине
либо отсутствует на стендбае (потерялся/удалился и т.п.), либо просто пришёл битый.
И из-за одного архивлога остальные логи не накатываются. Получается, что БД стендбая не в актуальном состоянии.
как решить такую проблему? Я настроил отправку конца алертлога стендбая себе на почту, но в этом алерт логе такие записи:

Wed Dec 02 12:25:07 2015
Managed Standby Recovery not using Real Time Apply
Parallel Media Recovery started with 8 slaves
Media Recovery Log E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93334_C5XD61CT_.ARC
Wed Dec 02 12:25:31 2015
Media Recovery Log E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93335_C5XDO7CC_.ARC
Wed Dec 02 12:26:42 2015
Media Recovery Log E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93336_C5XF63YV_.ARC
Wed Dec 02 12:27:31 2015
Media Recovery Log E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93337_C5XFK8VQ_.ARC
Wed Dec 02 12:28:33 2015
Media Recovery Log E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93338_%U_.ARC
Wed Dec 02 12:28:33 2015
Errors with log E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93338_%U_.ARC
Errors in file C:\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_pr00_291804.trc:
ORA-00308: невозможно открыть архивированный протокол 'E:\ORACLE\FLASHRECOVERY\ORCL\ARCHIVELOG\2015_12_02\O1_MF_1_93338_%U_.ARC'
ORA-27041: невозможно открыть файл
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.
Wed Dec 02 12:29:00 2015
ORA-279 signalled during: alter database recover automatic standby database until cancel parallel 8...
alter database recover automatic cancel


Можно ли указать формат имени архивлога? например, я хочу чтобы в имени архивлога была текущая дата и время.
А то, по логу совсем не понятно, лог O1_MF_1_93337_C5XFK8VQ_.ARC, который oracle накатил последним,
он от какой даты?

ещё вопрос:
Подскажите, как сказать oracle, чтобы он автоматически удалял архивлоги, которые уже накатил на ручной стендбай?
накат происходит так:
alter database recover automatic standby database until cancel parallel 8;
alter database recover automatic cancel;

спасибо!
2 дек 15, 12:56    [18502368]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
малекит
Guest
http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams117.htm

правильно ли я понимаю, что нельзя в имени архивлога иметь текущее дата и время?
параметры доступные:

%s log sequence number
%S log sequence number, zero filled
%tthread number
%Tthread number, zero filled
%a activation ID
%d database ID
%r resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database
2 дек 15, 13:34    [18502645]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7125
малекит,
Может это поможет?
SCN_TO_TIMESTAMP
2 дек 15, 13:42    [18502723]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
малекит
Guest
Vadim Lejnin
малекит,
Может это поможет?
SCN_TO_TIMESTAMP

Если я правильно вас понял - это означает нужно сделать запрос к БД, но у меня БД работает в режиме mount
и запросы к ней не проходят. Если её открыть в read only, то в редакции SE One Логи не накатятся...

или я не правильно понял?
4 дек 15, 14:01    [18513913]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
малекит
Guest
select max(first_time), max(sequence#) from v$archived_log;

такой вариант работает в режиме mount, но проблема в том, что на стендбае oracle
почему-то обрезает часы минуты секунды.
Как сделать так, чтобы поле first_time выводилось полностью?

сейчас так выводит:

SQL> select max(first_time), max(sequence#) from v$archived_log order by sequence# desc;

MAX(FIRST MAX(SEQUENCE#)
--------- --------------
04-DEC-15          93730
4 дек 15, 16:30    [18514909]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
Takurava
Member

Откуда:
Сообщений: 1776
google
4 дек 15, 16:36    [18514937]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
малекит
Guest
Takurava
google


нашёл, спасибо
select TO_CHAR(max(completion_time), 'dd/mm/yyyy HH24:MI'), max(sequence#) from v$archived_log;
4 дек 15, 16:36    [18514940]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18479
v$log_history с боевой и стендбая
7 дек 15, 06:49    [18521842]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг ручного стендбая SE One  [new]
пятничный админ
Guest
На одном из "ручных" stby периодически пропадают логи, причина видимо в сетевой аутентификации windows. Так вот на "ручном" мастере я слежу за непереданными логами и формирую батник для копирования непереданных журналов на slave.

spool logs\copy_logs.bat

-- manual copy skipped logs
SELECT 'copy ' || t1.name || ' ' || substr(p.value, 
    10) ||'dest_2_'|| to_char(t1.sequence#) || '.arc' name_dest_2
FROM v$archived_LOG t1, v$archived_LOG t2, V$PARAMETER p
WHERE t1.dest_id = 1
  AND t2.dest_id(+) = 2
  AND t1.sequence# = t2.sequence#(+)
  AND t2.recid is null
  AND t1.next_time > (sysdate - 1/24*2)
  AND p.name = 'log_archive_dest_2'
ORDER BY t1.next_time desc;


Для контроля лага накатки журналов использую 2 запроса :
на мастере

select max(t.sequence#) max_log_seq from V$ARCHIVED_LOG t where t.dest_id = 1;


на stby

select max(t.sequence#) max_log_seq
 from V$ARCHIVED_LOG t
 where t.dest_id = 1
   and t.applied='YES';


После удачного применения логов на stby удаляю их оттуда сгенерированным скриптом

set trimspool on
set pagesize 50000
set linesize 1000
SET FEEDBACK off
SET HEADING OFF

spool delete_applied_logs.rman

select 'run {' from dual
 union all
select 'delete archivelog like '''||t.NAME||''' ;'
  from V$ARCHIVED_LOG t 
 where applied='YES' and status='A'
 union all
select '}' from dual ;

exit
7 дек 15, 12:39    [18523574]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить