Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Удаление через RMAN логов в V$ARCHIVED_LOG  [new]
ErikJac
Member

Откуда:
Сообщений: 3
Добрый день

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

WARNING: archived redo log not deleted, needed for guaranteed restore point

и хотелось бы понять по каким критериям можно это определить без RMAN, в документации как то этот момент не оговорен, один криетрий это SCN тчоки востановления должен лежать между FIRST_CHANGE# NEXT_CHANGE#, но так же попадают еще некоторые логи вне этого интервала созданные ранее. Возможно еще учитывается время между тем когда была созданна restore_point?
15 июн 18, 14:00    [21493751]     Ответить | Цитировать Сообщить модератору
 Re: Удаление через RMAN логов в V$ARCHIVED_LOG  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7131
ErikJac,

начни с
V$RESTORE_POINT
15 июн 18, 14:17    [21493860]     Ответить | Цитировать Сообщить модератору
 Re: Удаление через RMAN логов в V$ARCHIVED_LOG  [new]
ErikJac
Member

Откуда:
Сообщений: 3
В общем сам себе отвечу, как и подозревал решение не совсем документированное может кому тоже пригодится

 SELECT DISTINCT al.thread#, al.sequence#, al.resetlogs_change#, al.resetlogs_time
        FROM v$archived_log al,
             (select grsp.rspfscn               from_scn,
                     grsp.rspscn                to_scn,
                     dbinc.resetlogs_change#    resetlogs_change#,
                     dbinc.resetlogs_time       resetlogs_time
                from x$kccrsp grsp,  v$database_incarnation dbinc
               where grsp.rspincarn = dbinc.incarnation#
                 and bitand(grsp.rspflags, 2) != 0
               and bitand(grsp.rspflags, 1) = 1 -- guaranteed
               and grsp.rspfscn <= grsp.rspscn -- filter clean grp
               and grsp.rspfscn != 0
           ) grsp
        WHERE al.next_change#   >= grsp.from_scn
            AND al.first_change#    <= (grsp.to_scn + 1)
            AND al.resetlogs_change# = grsp.resetlogs_change#
            AND al.resetlogs_time       = grsp.resetlogs_time
           AND al.archived = 'YES'
15 июн 18, 14:20    [21493872]     Ответить | Цитировать Сообщить модератору
 Re: Удаление через RMAN логов в V$ARCHIVED_LOG  [new]
ErikJac
Member

Откуда:
Сообщений: 3
Vadim Lejnin
ErikJac,

начни с
V$RESTORE_POINT



Да я конечно с этого начал, и хочется документированное решение, но проблема в том что V$RESTORE_POINT содержить только одно занчение SCN причем "верхнее", судя по полям таблицы x$kccrsp RSPSCN, и RSPFSCN где F это скорее всего означает first, в SCN находится значение RSPSCN.

То есть опираясь только на V$RESTORE_POINT можно определить логи которые можно удалять "сверху", а все логи, что "лежат" до этой SCN не трогать.
15 июн 18, 16:24    [21494374]     Ответить | Цитировать Сообщить модератору
 Re: Удаление через RMAN логов в V$ARCHIVED_LOG  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
Vadim Lejnin
ErikJac,

начни с
V$RESTORE_POINT


А мне кажется, надо начать с темы, для чего вообще нужны бэкапы и архивлоги.
19 июн 18, 17:14    [21504011]     Ответить | Цитировать Сообщить модератору
 Re: Удаление через RMAN логов в V$ARCHIVED_LOG  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Aliona
Vadim Lejnin
ErikJac,

начни с
V$RESTORE_POINT


А мне кажется, надо начать с темы, для чего вообще нужны бэкапы и архивлоги.
А также с того, с чего изначально введено понятие RESTORE POINT и что при FLASHBACK DATABASE откат по flashback-логам не выполняется по границе архивлога и эти архивлоги необходимы для донаката после отката
20 июн 18, 05:12    [21505439]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить