Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / corupted blocks / 8 сообщений из 8, страница 1 из 1
21.03.2020, 03:29
    #39939795
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
Hi guys,

Today I had an incident on database, i did a recovery of datafile from backup and on recovery I got ORA-00600. I was able to start database with "alllow 1 corruption" options. Finally i have some corrupted blocks in datafile (i can see them here V$DATABASE_BLOCK_CORRUPTION).

I'm skipping these blocks now to avoid ORA error for DML on these tables with DBMS_REPAIR.SKIP_CORRUPT_BLOCKS and finally "validate structure" does not fail.

How can I totally repair the blocks ? I user DBMS_REPAIR.FIX_CORRUPT_BLOCKS but it does fix the blocks and I'm still see them in (V$DATABASE_BLOCK_CORRUPTION view).

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  SET SERVEROUTPUT ON
  DECLARE num_fix INT;
  BEGIN
  num_fix  := 0;
  DBMS_REPAIR.FIX_CORRUPT_BLOCKS  (
  SCHEMA_NAME  => 'SCOTT',
  OBJECT_NAME=>  'TIGGER',
  OBJECT_TYPE  => dbms_repair.table_object,
  REPAIR_TABLE_NAME  => 'REPAIR_TABLE',
  FIX_COUNT=>  num_fix);
  DBMS_OUTPUT.PUT_LINE('num  fix: ' || TO_CHAR(num_fix));
  END;
  /
...
Рейтинг: 0 / 0
21.03.2020, 10:16
    #39939815
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
gda, Cad a leagan ar an mbunachar sonraí a bhfuil tú ag obair le?
...
Рейтинг: 0 / 0
21.03.2020, 10:43
    #39939819
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
11g
...
Рейтинг: 0 / 0
21.03.2020, 10:44
    #39939822
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
...
Рейтинг: 0 / 0
21.03.2020, 12:42
    #39939843
veep
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
To recover corrupted blocks you should use either RMAN or copy non corrupted datafiles from backup (or standby) with following recovering

https://docs.oracle.com/cd/E25054_01/backup.1111/e10642/rcmblock.htm How to restore corruptions with RMAN
...
Рейтинг: 0 / 0
21.03.2020, 12:56
    #39939850
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
gda
I user DBMS_REPAIR.FIX_CORRUPT_BLOCKS
Так а что указано в repair-таблице?
...
Рейтинг: 0 / 0
23.03.2020, 18:06
    #39940328
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
Hi, here is the script I used to fix corruptions

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
EGIN
 DBMS_REPAIR.ADMIN_TABLES (
    TABLE_NAME => 'REPAIR_TABLE',
    TABLE_TYPE => dbms_repair.repair_table,
    ACTION     => dbms_repair.create_action,
    TABLESPACE => 'USERS');
END;
/ 

BEGIN
 DBMS_REPAIR.ADMIN_TABLES (
    TABLE_NAME => 'ORPHAN_KEY_TABLE',
    TABLE_TYPE => dbms_repair.orphan_table,
    ACTION     => dbms_repair.create_action,
    TABLESPACE => 'USERS');
END;
/

 
SET SERVEROUTPUT ON
DECLARE num_corrupt INT;
BEGIN
num_corrupt := 0;
DBMS_REPAIR.CHECK_OBJECT (
    SCHEMA_NAME => 'ABS',
    OBJECT_NAME => 'RECORDS',
    REPAIR_TABLE_NAME => 'REPAIR_TABLE',
    CORRUPT_COUNT =>  num_corrupt);
DBMS_OUTPUT.PUT_LINE('number corrupt: ' || TO_CHAR (num_corrupt));
END;
/
 

SET SERVEROUTPUT ON
DECLARE num_fix INT;
BEGINnum_fix := 0;
DBMS_REPAIR.FIX_CORRUPT_BLOCKS (
    SCHEMA_NAME => 'ABS',
    OBJECT_NAME=> 'RECORDS',
    OBJECT_TYPE => dbms_repair.table_object,
    REPAIR_TABLE_NAME => 'REPAIR_TABLE',
    FIX_COUNT=> num_fix);
DBMS_OUTPUT.PUT_LINE('num fix: ' || TO_CHAR(num_fix));
END;
/ 

SELECT OBJECT_NAME, BLOCK_ID, MARKED_CORRUPT
    FROM REPAIR_TABLE;



I see one record in REPAIR_TABLE. When I executed DBMS_REPAIR.FIX_CORRUPT_BLOCKS the result is num_fix = 0. Why it's not fixed ? What I'm doing wrong ?
...
Рейтинг: 0 / 0
23.03.2020, 22:09
    #39940400
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
corupted blocks
repair_table

Код: plsql
1.
2.
0BJECT_ID	TABLESPACE_ID	RELATIVE_FILE_ID	BLOCK_ID	CORRUPT_TYPE	SCHEMA_NAME	OBJECT_NAME	BASEOBJECT_NAME	PARTITION_NAME	CORRUPT_DESCRIPTION	REPAIR_DESCRIPTION	MARKED_CORRUPT	CHECK_TIMESTAMP	FIX_TIMESTAMP	REFORMAT_TIMESTAMP
64271	12	14	70031	6148	ABS	RECORDS				mark block software corrupt	ИСТИНА	23/03/2020 16:54	
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / corupted blocks / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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