Вы здесь

Битый блок

SQL> select name, open_mode, log_mode from v$database;
 
NAME      OPEN_MODE            LOG_MODE
--------- -------------------- ------------
CR        READ WRITE           ARCHIVELOG
 
SQL> SELECT * FROM v$database_block_corruption;
 
     FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
       271    2482861          1                  0 FRACTURED
 
 
SELECT owner, segment_name, segment_type, partition_name
FROM dba_extents
  3  WHERE file_id=271 AND 2482861 BETWEEN block_id AND block_id+blocks-1;
 
OWNER
------------------------------
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE       PARTITION_NAME
------------------ ------------------------------
CRHISTORYLOAD
SF_SCORETYPE
TABLE
 
 
SQL> select count(*) from CRHISTORYLOAD.SF_SCORETYPE;
 
  COUNT(*)
----------
  31361672
 
 
То есть здоровая таблицы
 
Чтобы таки забекапировать  - нужно вставить в скрипт
 
set maxcorrupt for datafile 271 to 1;
 
а так надо блок восстановить из бекапа.
 
blockrecover datafile 271 block 2482861;
 
 
 
_________________________________________________________________
 
select segment_name, segment_type, owner
       from dba_extents
      where file_id = 5
        and 2530356 between block_id
            and block_id + blocks -1;
 
 
Wed Sep 04 07:31:13 2019
Automatic block media recovery requested for (file# 10, block# 1073794)
Automatic block media recovery successful for (file# 10, block# 1073794)
Errors in file /app/oracle/diag/rdbms/tstrtdmst/tstrtdm/trace/tstrtdm_ora_22073.trc  (incident=129357):
ORA-01578: разрушен блок данных ORACLE (файл # 10, блок # 1073794)
ORA-01110: файл данных 10: '+DATA/tstrtdm/datafile/rtdm_data.271'
 
 
1073888
1073794
 
 
select segment_name, segment_type, owner
       from dba_extents
      where file_id = 10
        and 1073888 between block_id
            and block_id + blocks -1;
 
 
 
 
select segment_name, segment_type, owner
       from dba_extents
      where file_id = 10
        and 1073794 between block_id
            and block_id + blocks -1;
 
 
 
S_EGAR_CLIENTREQUEST TABLE RTDM_MAIN
 
ORA-01578: ORACLE data block corrupted ORA-26040: Data block was loaded using the NOLOGGING option
 
 
 select  INDEX_NAME,INDEX_TYPE,TABLESPACE_NAME,STATUS from all_indexes where TABLE_OWNER='RTDM_MAIN' and TABLE_NAME='S_EGAR_CLIENTREQUEST';
S_EGAR_CLIENTREQUEST_IND_STAGE
NORMAL                      RTDM_DATA                      VALID
 
S_EGAR_CLIENTREQUEST_CLIENTID
NORMAL                      RTDM_DATA                      VALID
 
 
select round(bytes /1024/1024, 2) mb
from   dba_segments
WHERE segment_name = upper('S_EGAR_CLIENTREQUEST');
 
 
 
 
select round(bytes /1024/1024, 2) mb from   dba_segments WHERE segment_name = upper('S_EGAR_CLIENTREQUEST');
 
alter table rtdm_main.s_egar_clientrequest  enable row movement;
ALTER TABLE rtdm_main.s_egar_clientrequest  SHRINK SPACE;
alter table rtdm_main.s_egar_clientrequest  disable row movement;
 
-----------------------------------------------------------------
 
 
Доброе утро, коллеги.
 
Rtdm-db5 это standby с Rtdm-db4, где эта таблица rtdm_main.s_egar_clientrequest нормальная.
 
А алертах стендбая было упоминание о 2-х сбойных блоках 1073888 и 1073794.
 
Сделала shrinck rtdm_main.s_egar_clientrequest  на проде и ошибка на стенбае ушла.
В логах стендбая получила интересную запись. 
Recovery is repairing media corrupt block 1073794 of file 10
Recovery is repairing media corrupt block 1073795 of file 10
Recovery is repairing media corrupt block 1073796 of file 10
Recovery is repairing media corrupt block 1073797 of file 10
Recovery is repairing media corrupt block 1073798 of file 10
Recovery is repairing media corrupt block 1073799 of file 10
Recovery is repairing media corrupt block 1073800 of file 10
Recovery is repairing media corrupt block 1073801 of file 10
Recovery is repairing media corrupt block 1073802 of file 10
Recovery is repairing media corrupt block 1073803 of file 10
Recovery is repairing media corrupt block 1073804 of file 10
Recovery is repairing media corrupt block 1073805 of file 10
Recovery is repairing media corrupt block 1073806 of file 10
Recovery is repairing media corrupt block 1073807 of file 10
 
 
select segment_type from dba_extents 
    where file_id=271 
    and 2482861 between block_id and 
    (block_id +( blocks -1));
 
select * from V$DATABASE_BLOCK_CORRUPTION;
 
     FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
       271    2482861          1                  0 FRACTURED
       271    2482862          1                  0 CHECKSUM
 
 
select name from v$datafile where FILE#=271;
 
dbv     file=/u03/oradata/CR/cr_data265.dbf \
    blocksize=8192 logfile=/dbv.log
 
 
select BP.HANDLE, BP.COMPLETION_TIME, BC.FILE#, BC.BLOCK#, BC.BLOCKS, BC.MARKED_CORRUPT, BC.CORRUPTION_TYPE
    from V$BACKUP_PIECE BP, V$BACKUP_CORRUPTION BC
   where BP.SET_COUNT = BC.SET_COUNT and
          BP.SET_STAMP = BC.SET_STAMP

Post new comment

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
1 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.