powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Порчка активного redo, варианты восстановления
12 сообщений из 12, страница 1 из 1
Порчка активного redo, варианты восстановления
    #39663678
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия 11

При выполнении commit-а LGWR сбрасывает на диск свой буфер и доводит до клиента, что запись прошла успешно. При этом еще некоторое время DBWR может писать грязные блоки на диск, некоторое время после commit-а. Когда транзакций по сотне в секунду, можно сказать, что DBWR постоянно что-то "догоняет". Если при работе экземпляра произошла порча активного журнала, то возможен ли такой вариант восстановления:

0. Сброс грязных блоков по закомиченным транзакциям в датафайлы (как?);
1. Startup nomount force;
2. Пересоздание control-файла с опцией reuse, но без указания redo активной группы;
3. Открытие экземпляра с resetlogs.

Вопросы:

1. При таком восстановлении данные в датафайлах ведь будут рассогласованы, поскольку DBWR писал некоторое время после commit-а, и ничто не гарантирует, что он успел сбросить все грязные блоки на диск, а redo активного нет.

2. Можно ли при обнаружении порчи активного redo принудительно сбросить грязные блоки на диск и какой командой (заставить DBWR скинуть блоки в датафайлы хотя бы по закоммиченным транзакциям )?

3. Если портится только один из членов активной журнальной группы, экземпляр насколько "болезненно" будет на это реагировать? (просто сообщение в алерт кинет с предложением админу почесать репу и добавить/заменить диск, или уйдет в шатдаун аборт).
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663699
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alter system checkpoint
А потом открытие с alter system clear logfiles и resetlogs
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663702
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но, естественно, мультиплексировать оперативные логфайлы, даже если они на одном девайсе
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663776
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем отличается порча активного лога при работающем инстансе от порчи не активного? ))
ну и разумеется не текущего.
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663785
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровНо, естественно, мультиплексировать оперативные логфайлы, даже если они на одном девайсе
Вот у меня из опыта восстановления и падения :-) ...Всегда если испорчен один из группы...всегда испорчен и второй(У меня два..и на разных dev...и на одном и т.д)...
Ну вот хоть бы раз повезло...
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663906
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DВАЧем отличается порча активного лога при работающем инстансе от порчи не активного? ))
ну и разумеется не текущего.

Сразу перед тем как на клиента приходит подтверждение от отработке коммита на диск сбрасывается логбуфер (в активный файл). Именно это и гарантирует в случае сбоя восстановление и согласованность данных. А вот в датафайлах на момент коммита еще нет согласованные данных. Если нагрузка невысокая, то велика вероятность, что DBWR успеет тоже быстро все записать. Но если транзакций под сотни в секунду и вдруг стал "испорчен" (физически не читается пишется, или проблемы на уровне файловой системы), то еще не закоммиченные транзакции и не закоммитятся, а вот те, которые уже получили подтверждения по коммиту - потенциально потеряны, из-за асинхронной работы DBWR и порчи того самого активного логфайла. Все, что в неактивном журнале после переключения журнала гарантировано сбрасывается DBWR-ром.
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663907
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудровalter system checkpoint
А потом открытие с alter system clear logfiles и resetlogs

Спасибо, проведем испытания.
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663916
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helgisboxDВАЧем отличается порча активного лога при работающем инстансе от порчи не активного? ))
ну и разумеется не текущего.

Сразу перед тем как на клиента приходит подтверждение от отработке коммита на диск сбрасывается логбуфер (в активный файл). Именно это и гарантирует в случае сбоя восстановление и согласованность данных. А вот в датафайлах на момент коммита еще нет согласованные данных. Если нагрузка невысокая, то велика вероятность, что DBWR успеет тоже быстро все записать. Но если транзакций под сотни в секунду и вдруг стал "испорчен" (физически не читается пишется, или проблемы на уровне файловой системы), то еще не закоммиченные транзакции и не закоммитятся, а вот те, которые уже получили подтверждения по коммиту - потенциально потеряны, из-за асинхронной работы DBWR и порчи того самого активного логфайла. Все, что в неактивном журнале после переключения журнала гарантировано сбрасывается DBWR-ром.На самом деле, если экземпляр работает, то абсолютно пофиг, активный лог запортился или неактивный -- для сброса данных DBWR-у логи не нужны (за исключением записи с текущий лог)
И данные он когда-нибудь да сбросит
Другой вопрос, что журнал перейдет в статус FAILED (по-моему) и перестанет использоваться
При сломанном текущем журнале (всех членов), экземпляр, естественно, аварийно ляжет, и тогда если были поломаны активные логи, то накатится по ним будет нельзя -- тут, как правило, восстановление из бэкапа и накат до лога

Кстати, насчет RESETLOGS я наврал, это немножко другой сценарий (с битыми текущими логами)
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663918
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_alВячеслав ЛюбомудровНо, естественно, мультиплексировать оперативные логфайлы, даже если они на одном девайсе
Вот у меня из опыта восстановления и падения :-) ...Всегда если испорчен один из группы...всегда испорчен и второй(У меня два..и на разных dev...и на одном и т.д)...
Ну вот хоть бы раз повезло...Неоднократно бывало на не [очень] важных девелоперских БД при отключении питания -- на одном диске из двух мультиплексированных логов с одним можно было открыться, а с другим нет
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663928
helgisbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Вячеслав Любомудров]helgisboxпропущено...

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

Кстати, насчет RESETLOGS я наврал, это немножко другой сценарий (с битыми текущими логами)

Стало быть, надеяться на финт ушами не стоит и рассчитываем на стандартный план восстановления ;) Спасибо!
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39663951
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если мы переходим к сбою таки не активных, а текущего лога, то поломка-поломке рознь

Одно дело, отвалился диск и не прошла целиком запись (то же самое, что аварийный останов экземпляра) -- после примонтирования диска БД прекрасно докатится по всем активным и сколько можно по текущему журналу, откроется и откатит незавершенные транзакции
И совсем другое, когда диск отвалился в момент записи, т.е. redo record неконсистентна. После примонтирвания диска БД попробует автоматом накатиться по активным/текущему логам и сломается на применении кривой записи -- и вот из этого ступора ее стандартными путями не выведешь -- только восстановление из бэкапа (или откат по FLASHBACK) и докат до последнего нетекущего журнала (ну или сделать дамп текущего лога и узнать SCN последней нормальной redo record). И RESETLOGS, конечно
В этом случае (когда есть вероятность неконсистентной записи) как раз есть смысл сделать дамп текущего лога и если он прошел без ошибок, то запустить обычное/полное восстановление, иначе -- см.выше.
Но, как правило, никто этим не занимается, ибо над душой стоят и кричат "открывай скорей"
...
Рейтинг: 0 / 0
Порчка активного redo, варианты восстановления
    #39664093
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если активный лог стал вдруг битым с какого-то перепуга, то оракл может узнать об этом либо при архивировании, либо при попытки на него переключиться. А может и не узнать совсем. Если лог уже заархивирован, то побить его чувствительно для оракла крайне сложно ) , потому что он просто очищается при переключении. Возможно если только покорежить заголовок... да и то не знаю, просечет это оракл или нет, и если просечет не возьмет ли просто другой лог.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Порчка активного redo, варианты восстановления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]