powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Восстановление доступности при потере роллбэка ?
17 сообщений из 17, страница 1 из 1
Восстановление доступности при потере роллбэка ?
    #32133256
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8.1.6.
Ситуация следующая:
1. База открыта. Имеются транзакции в роллбэках.
2. Происходит сбой, файл данных роллбэк сегментов rollback.dbf потерян, база остановлена ненормально. Все остальные файлы доступны. Холодной копии нет.
Как открыть базу для доступа. Какая профилактика помогла бы в этом случае. Какие варианты при работе в режимах ARCHIVELOG/NOARCHIVELOG.

У меня происходит следующее (в ARCHIVELOG).
1. в init.ora комментирую rollback_segments = ()
2. создаю заново контролфайл, без rollback.dbf
3. восстанавливаю базу (удачно).
4. При попытке открыть получаю ORA-00600...
Лучшего ничего придумать не получается.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133267
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"1. База открыта. Имеются транзакции в роллбэках. "


Интересная постановка вопроса.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133283
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ключик - _corrupted_rollback_segments, попробуй, может быть, поможет.

Anyway, без бэкапа плохо.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133289
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Имел в виду, имеются незакоммиченные транзакции.
2. _corrupted_rollback_segments пробовал - не помогло.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133290
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. На металинке (при наличии доступа) было много статей, как бороться с этой напастью.

2. Горячий бэкап есть, если база в архивлоге? Если нет, то зачем архивлог затевался?

3. _corrupted_rollback_segments = () или _allow_resetlogs_corruption=true
помогут спасти отца русской демократии, если был сделан бэкап упавшей базы (если нет - пишите заявление об уходе). Но их использование на ваш страх и риск - база после открытия все равно будет неработоспособной - сможете сделать только экспорт.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133307
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На металинк, к сожалению, доступа нет.
Как _allow_resetlogs_corruption=true в данном случае могло бы помочь, если не трудно, поподробнее.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133327
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"1. Имел в виду, имеются незакоммиченные транзакции"

to Angel:
Ты считаешь, что в сегментах отката находятся "незакоммиченные транзакции"?
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133363
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To softbuilder@inbox.ru:
Отвечать вопросом на вопрос - это, конечно, круто, но я, разумеется, не против поправок и замечаний, только пока, к сожалению, не имею возможности :-).
Я имею в виду, что, насколько я знаю, данные из роллбэка понадобятся при старте базы, для отката назад, после отката вперед по редологам. Как я полагаю больше их взять неоткуда.
"незакоммиченные транзакции" замени на "согласованные данные" (или как ты считаешь верным), если это важно.
Но, вне зависимости от этого, пока базу открыть не удается. К сожалению.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133378
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
init.ora _allow_resetlogs_corruption=true
sqlplus: recover database until что-то.
alter database open resetlogs;

База открывается, но на любой DML может дать ora-600. Экспорт сделать
можно, но не более. Затем создаете новую базу, заливаете экспортный файл, разбираетесь, что из данных надо поправить. Может, и заработает все когда-нибудь...
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133388
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне казалось, что в в сегментах отката находятся наоборот как раз-то "закоммиченные транзакции".
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133410
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сегментах отката содержатся данные до начала модификации операциями DML/DDL. Эта информация содержится до тех пор, пока не переписана или (в 9) пока не истекло время хранения. До коммита идентификатор транзакции определяется сегментом отката и положением в таблице транзакций данного сегмета. После коммита - еще и SCN.

Говорить, что в сегментах отката данные закоммиченные или нет бессмысленно.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133418
[IPT]-Said
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_corrupted_rollback_segments= (seg1,seg2,...)
Этот недокументированный параметр прописанный в ини, помогает открыть базу , при этом не нужны бэкапы, не нужно пересоздавать контролы, проводить восстановление (но желательно чтобы был noarchivelog)
Побочный эффект: некоторые данные в базе возможно потеряют целостность.
Есть еще _offline_rollback_segments= (seg1,seg2,...) , можно попробовать.
З.Ы. Вышесказанное поможет только в случае, если запортились только роллбэки, если ипортилось чтото еще то...
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133429
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Al: спасибо за действенный совет. Помогло. И даже ни разу ORA-00600 не получил. Сейчас, по крайней мере, с базой можно что-то делать.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133454
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>В сегментах отката содержатся данные до начала модификации операциями DML/DDL
Насчет DDL можно подробнее. Хотя это и не по теме.

Только _corrupted_rollback_segments= (seg1,seg2,...) не помогло.
При этом как не пересоздавать контролы и не проводить восстановление, если потерян один из файлов (кстати был потерян еще и один из файлов данных, итого: rollback.dbf + data2.dbf). При всем при том удача пришла только при _allow_resetlogs_corruption=true. Правда, на время подключил роллбэк сегмент, размещенный в SYSTEM. Но база функционирует нормально, без ORA-00600. Остается только вернуть все как было (кое-что естественно утеряно, но не критично).

Добавлю, что это гипотетическая ситуация. Но польза то реальная :-).
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133484
[IPT]-Said
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A, ну так сразу надо было говорить что еще и датафайл потерян, тогда конечно...
если же проблема была бы только в роллбэках, параметр прокатил бы , проверено, он просто приказывает инстансу подниматься и не обращать внимание на всякую ерунду типа роллбэков :))
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133490
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую все-таки пересоздать базу через экспорт-импорт. Никогда не знаешь, где вылезет ошибка типа 600 или corrupt block. Рекомендую еще проверить дафайлы с помощью dbv (dbverify), но не живой базе, а на бэкапе. Надеюсь, его не забыли сделать...

DDL проявляется как DML в словаре данных и, разумеется, тоже помещается в сегменты отката. RBS system ведь нужен для чего-то.
...
Рейтинг: 0 / 0
Восстановление доступности при потере роллбэка ?
    #32133705
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solution Description:
=====================

First, look to see if you can find the correct redo logs. They are absolutely
necessary for media recovery. Without them, we cannot apply undo and changes
to bring the database to a point in time consistent state.

If the online redo logs have been deleted, restore from backup and roll
forward with the archive logs.

If you have lost the current redo logs as well as your archive logs, and you
must salvage your data (i.e. a production system) then to force the database
to open, we must corrupt the database.


*******WARNING**********************************************************

The following parameters are to be used with caution, as they do exploit
the database. In addition, the use of these parameters is not supported
and may not work in all circumstances. You should only be using these
parameters with the help of a senior analyst.

The consequences of using these parameters is that they will corrupt the
database and you will be required to rebuild your database.

************************************************************************


After reading and understanding the consequences of the above warnings, do the
following to force the database open:

1. Shutdown the database and take a full backup of the current database

2. Add the following parameters in the init.ora:

_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments= <list of all your rollback segments>

3. Comment out the rollback_segments parameter

4. Startup mount the database

5. Do:

SVRMGR> recover database using backup controlfile until cancel:

6. When prompted, type in the word 'bogus' or some other nonsense file
name. Recovery will attempt to find a file with this name and fail.
It may provide an error message and prompt you for another file, or
it may simply fail and terminate the recovery session. Either is OK.

7. If prompted for another logfile, type CANCEL.

8. Do:

SVRMGR> alter database open resetlogs;

** Note: This step may fail. If so, we will need to investigate
the errors produced in more detail. If this succeeds,
proceed to step 9.

9. REBUILD the database by taking a full database export, and then
importing into a new database.


Solution Explanation:
=====================

The reason we need to force the database open is to bypass instance recovery
because we no longer have the information available. Bypassing instance
recovery means we will not roll forward any data from the current online redo
log AND we will not roll back any uncommitted transactions. The result of
this is a database containing inconsistent data. The customer will have to
determine the impact of this inconsistency to their data - we cannot provide
any assistance in this area. The rebuild is required to resolve any potential
inconsistency in the data dictionary.


Regards!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Восстановление доступности при потере роллбэка ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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