|
|
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
8.1.6. Ситуация следующая: 1. База открыта. Имеются транзакции в роллбэках. 2. Происходит сбой, файл данных роллбэк сегментов rollback.dbf потерян, база остановлена ненормально. Все остальные файлы доступны. Холодной копии нет. Как открыть базу для доступа. Какая профилактика помогла бы в этом случае. Какие варианты при работе в режимах ARCHIVELOG/NOARCHIVELOG. У меня происходит следующее (в ARCHIVELOG). 1. в init.ora комментирую rollback_segments = () 2. создаю заново контролфайл, без rollback.dbf 3. восстанавливаю базу (удачно). 4. При попытке открыть получаю ORA-00600... Лучшего ничего придумать не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 09:48 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
"1. База открыта. Имеются транзакции в роллбэках. " Интересная постановка вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 09:58 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
Есть ключик - _corrupted_rollback_segments, попробуй, может быть, поможет. Anyway, без бэкапа плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 10:11 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
1. Имел в виду, имеются незакоммиченные транзакции. 2. _corrupted_rollback_segments пробовал - не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 10:15 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
1. На металинке (при наличии доступа) было много статей, как бороться с этой напастью. 2. Горячий бэкап есть, если база в архивлоге? Если нет, то зачем архивлог затевался? 3. _corrupted_rollback_segments = () или _allow_resetlogs_corruption=true помогут спасти отца русской демократии, если был сделан бэкап упавшей базы (если нет - пишите заявление об уходе). Но их использование на ваш страх и риск - база после открытия все равно будет неработоспособной - сможете сделать только экспорт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 10:16 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
На металинк, к сожалению, доступа нет. Как _allow_resetlogs_corruption=true в данном случае могло бы помочь, если не трудно, поподробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 10:24 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
"1. Имел в виду, имеются незакоммиченные транзакции" to Angel: Ты считаешь, что в сегментах отката находятся "незакоммиченные транзакции"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 10:38 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
To softbuilder@inbox.ru: Отвечать вопросом на вопрос - это, конечно, круто, но я, разумеется, не против поправок и замечаний, только пока, к сожалению, не имею возможности :-). Я имею в виду, что, насколько я знаю, данные из роллбэка понадобятся при старте базы, для отката назад, после отката вперед по редологам. Как я полагаю больше их взять неоткуда. "незакоммиченные транзакции" замени на "согласованные данные" (или как ты считаешь верным), если это важно. Но, вне зависимости от этого, пока базу открыть не удается. К сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 11:08 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
init.ora _allow_resetlogs_corruption=true sqlplus: recover database until что-то. alter database open resetlogs; База открывается, но на любой DML может дать ora-600. Экспорт сделать можно, но не более. Затем создаете новую базу, заливаете экспортный файл, разбираетесь, что из данных надо поправить. Может, и заработает все когда-нибудь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 11:20 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
Мне казалось, что в в сегментах отката находятся наоборот как раз-то "закоммиченные транзакции". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 11:27 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
В сегментах отката содержатся данные до начала модификации операциями DML/DDL. Эта информация содержится до тех пор, пока не переписана или (в 9) пока не истекло время хранения. До коммита идентификатор транзакции определяется сегментом отката и положением в таблице транзакций данного сегмета. После коммита - еще и SCN. Говорить, что в сегментах отката данные закоммиченные или нет бессмысленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 11:40 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
_corrupted_rollback_segments= (seg1,seg2,...) Этот недокументированный параметр прописанный в ини, помогает открыть базу , при этом не нужны бэкапы, не нужно пересоздавать контролы, проводить восстановление (но желательно чтобы был noarchivelog) Побочный эффект: некоторые данные в базе возможно потеряют целостность. Есть еще _offline_rollback_segments= (seg1,seg2,...) , можно попробовать. З.Ы. Вышесказанное поможет только в случае, если запортились только роллбэки, если ипортилось чтото еще то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 11:44 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
To Al: спасибо за действенный совет. Помогло. И даже ни разу ORA-00600 не получил. Сейчас, по крайней мере, с базой можно что-то делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 11:52 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
>В сегментах отката содержатся данные до начала модификации операциями DML/DDL Насчет DDL можно подробнее. Хотя это и не по теме. Только _corrupted_rollback_segments= (seg1,seg2,...) не помогло. При этом как не пересоздавать контролы и не проводить восстановление, если потерян один из файлов (кстати был потерян еще и один из файлов данных, итого: rollback.dbf + data2.dbf). При всем при том удача пришла только при _allow_resetlogs_corruption=true. Правда, на время подключил роллбэк сегмент, размещенный в SYSTEM. Но база функционирует нормально, без ORA-00600. Остается только вернуть все как было (кое-что естественно утеряно, но не критично). Добавлю, что это гипотетическая ситуация. Но польза то реальная :-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 12:10 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
A, ну так сразу надо было говорить что еще и датафайл потерян, тогда конечно... если же проблема была бы только в роллбэках, параметр прокатил бы , проверено, он просто приказывает инстансу подниматься и не обращать внимание на всякую ерунду типа роллбэков :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 12:26 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
Рекомендую все-таки пересоздать базу через экспорт-импорт. Никогда не знаешь, где вылезет ошибка типа 600 или corrupt block. Рекомендую еще проверить дафайлы с помощью dbv (dbverify), но не живой базе, а на бэкапе. Надеюсь, его не забыли сделать... DDL проявляется как DML в словаре данных и, разумеется, тоже помещается в сегменты отката. RBS system ведь нужен для чего-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 12:33 |
|
||
|
Восстановление доступности при потере роллбэка ?
|
|||
|---|---|---|---|
|
#18+
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! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 15:17 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32133418&tid=1991159]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 497ms |

| 0 / 0 |
