2014-10-02

ORA-00354: corrupt redo log block heade

2014.10.02

Техническая информация:
Операционная система: SuSE Linux Enterprise Server 8 Service Pack 3 32bit
БД: Oracle Enterprise Server 8.1.7.4 32bit
Дополнительная информация: Указанная проблема возникала ранее 1 раз - 28.08.2014.

Симптомы проблемы:

1. При подключении к ПО «Финколлекции» выдается ошибка о невозможности подключения в связи с невозможностью произвести архивирование журналов транзакций (Connect Internal Only until freed).
2. В файле /u01/admin/main/bdump/alert_main.log множественные сообщения (аналогичные указанному с учетом того, что могут быть другие даты и имена файлов):

Thu Oct 2 00:04:11 2014
ARC0: Beginning to archive log# 7 seq# 16005
ARC0: Archiving not possible: No primary destinations
ARC0: Failed to archive log# 7 seq# 16005

Описание проблемы:

В журнале транзакций, находящемся в группе 7 обнаружен поврежденный блок данных, в результате чего операции с данным журналом транзакций невозможны.

Причины возникновения проблемы:

Причины возникновения неясны. Предположительно связано с устаревшей версией БД Oracle. При анализе возникновения ошибки была проведена проверка файловой системы сервера, анализ журналов работы системы. Никаких предпосылок к возникновению проблемы обнаружено не было.

Методика решения:

adonis:/u01/admin/main/bdump # su - oracle
oracle@adonis:~> export ORACLE_SID=main
oracle@adonis:~> svrmgrl
SVRMGR> connect internal
Connected.
SVRMGR> shutdown abort
ORACLE instance shut down.
SVRMGR> startup
ORACLE instance started.
Total System Global Area 1726288032 bytes
Fixed Size 73888 bytes
Variable Size 250187776 bytes
Database Buffers 1475198976 bytes
Redo Buffers 827392 bytes
Database mounted.
ORA-16038: log 7 sequence# 16005 cannot be archived
ORA-00354: corrupt redo log block header
ORA-00312: online log 7 thread 1: '/u02/oradata/main/redo07_01.rdo'
ORA-00312: online log 7 thread 1: '/u03/oradata/main/redo07_02.rdo'
SVRMGR> alter database clear unarchived logfile group 7;
Statement processed.
SVRMGR> alter database drop logfile group 7;
Statement processed.
SVRMGR> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SVRMGR> startup
ORACLE instance started.
Total System Global Area 1726288032 bytes
Fixed Size 73888 bytes
Variable Size 250187776 bytes
Database Buffers 1475198976 bytes
Redo Buffers 827392 bytes
Database mounted.
Database opened.
SVRMGR>

Замечания после устранения:

Во время решения проблемы была удалена группа журналов транзакций №7. Восстанавливаем ее. Не покидая консоль, открытую в пункте «Методика решения», выполняем:

SVRMGR> !
oracle@adonis:~> rm -v /u02/oradata/main/redo07_01.rdo
removed `/u02/oradata/main/redo07_01.rdo'
oracle@adonis:~> rm -v /u03/oradata/main/redo07_02.rdo
removed `/u03/oradata/main/redo07_02.rdo'
oracle@adonis:~> exit
exit
SVRMGR> ALTER DATABASE ADD LOGFILE GROUP 7
('/u02/oradata/main/redo07_01.rdo',
'/u03/oradata/main/redo07_02.rdo') SIZE 10240K REUSE
/ 2> 3> 4>
Statement processed.
SVRMGR>

Кроме того, цепочка архивных журналов транзакций в результате невозможности архивирования группы 7 была разорвана. В случае необходимости проведения восстановления БД с использованием журналов за период времени, включающий поломку, операция восстановления будет невозможна.

Комментариев нет: