26.07.2023 14:04
Stels
 
Здравствуйте.
База Супермага. Оракл 11, но не Энтерпрайз.
База в архивлоге была..и RMAN работал ))
Но давно не проверялось всё это дело ...
А тут по питанию сервер упал..
были ошибки на битые блоки..

RMAN (т.к. не энтерпрайз) не давал из бэкапа восстановить ...да и самих бэкапов считай нету..

Руками добился того, сто битые блоки остались только в свободном пространстве..
Один в индексном файле, другие в юзерских ...

Код:
SQL> SELECT distinct d.SEGMENT_TYPE||':'||d.OWNER||'.'||d.SEGMENT_NAME
  2  FROM DBA_EXTENTS d, v$database_block_corruption b
  3  where b.file#=d.file_id and b.block# between d.block_id and d.block_id+d.blocks-1
  4  /

no rows selected

SQL> SELECT count(*)
  2  FROM DBA_free_space d, v$database_block_corruption b
  3  where b.file#=d.file_id and b.block# between d.block_id and d.block_id+d.blocks-1
  4  /

  COUNT(*)
----------
         3
Как лучше теперь поступить?
Сделать импорт/экспорт базы?

а то
RMAN> backup validate check logical database;

говорит, что три файла статус FAILED
26.07.2023 14:04
Капитан О.
 
е. Recovery Manager) - инструмент для создания резервных копий и восстановления баз данных Oracle. Если у вас возникли ошибки на битые блоки после сбоя сервера, то, скорее всего, нужно выполнить процедуру восстановления базы данных с помощью RMAN.

Вам потребуется выполнить следующие действия:

1. Установите RMAN, если он еще не установлен на вашем сервере.

2. Запустите RMAN и подключитесь к базе данных:

Код:
sql
   rman target /
3. Убедитесь, что восстановление автоматически не запущено. Введите следующую команду:

Код:
sql
   show all;
Проверьте, что параметр 'db_recovery_file_dest' не установлен и 'db_recovery_file_dest_size' равен '0'.

4. Выполните восстановление базы данных:

Код:
sql
   startup mount;
   restore database;
   recover database;
   alter database open;
Эти команды восстанавливают базу данных из резервной копии и применяют журналы архива, чтобы достичь последней согласованной точки во времени. Затем база данных открывается для доступа.

5. Выполните проверку на битые блоки:

Код:
sql
   RMAN> backup validate check logical database;
Эта команда выполнит проверку базы данных на предмет наличия поврежденных блоков.

6. Если найдены битые блоки, выполните восстановление поврежденных блоков. Введите следующую команду:

Код:
sql
   RMAN> recover database validate;
Эта команда попытается восстановить поврежденные блоки.

7. После окончания процесса восстановления проверьте базу данных на предмет поврежденных блоков:

Код:
sql
   RMAN> backup validate check logical database;
Если поврежденные блоки больше не обнаружены, значит восстановление успешно выполнено.

Обратите внимание, что процесс восстановления базы данных может занять продолжительное время и потребовать определенных знаний и опыта. Если у вас нет достаточного опыта, рекомендуется обратиться к специалисту Oracle или к службе поддержки Oracle для помощи.
26.07.2023 15:49
Stels
 
Цитата:
Stels RMAN (т.к. не энтерпрайз) не давал из бэкапа восстановить
вот пишет.

Код:
Starting recover at 26-JUL-23
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 26/07/2023 12:49:59
RMAN-05009: Block Media Recovery requires Enterprise Edition
и что-то я дальше не пойму как действовать
26.07.2023 19:54
OlegON
 
Что-то ты запутался и меня запутал.
1) RMAN не дает blockrecovery делать, но восстанавливать-то он должен замечательно. Как я понял, бекапов у тебя нет? Если нет бекапов - забываем упоминать RMAN тут всуе.
2) Что именно ты делал, что ошибки остались только на пустом месте?
3) Если база действительно полностью живая и рабочая, а восстанавливал ты ее просто перестроением индексов, например, в пользовательских данных, то создай какую-нибудь табличку в нужном табличном пространстве и делай ей alter table ... allocate extent, пока пустое место не заполнится этой табличкой. После заполнения пустого места "данными", они переформатируются и перестанут быть сбойными. В качестве варианта можно использовать dbv против соответствующих файликов.
Часовой пояс GMT +3, время: 21:50.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.