What is Block Corruption&How We can Solve Block Corruption
prywatność i pliki cookie
ta strona używa plików cookie. Kontynuując, zgadzasz się na ich użycie. Dowiedz się więcej, w tym jak sprawdzić pliki cookie.
In daily it process, There are many possible causes of a block corruption including:
– problemy z systemem operacyjnym-Odzyskiwanie poprzez „nie do odzyskania” lub „NOLOGGING” akcje bazy danych (w takim przypadku Ora-01578& Ora-01110 jest oczekiwane zachowanie)
przed rozpoczęciem publikowania, pozwól mi przypomnieć, ile mamy uszkodzeń… istnieją rodzaje uszkodzeń 2. Uszkodzenie danych może objawiać się jako fizyczne lub logiczne uszkodzenie.
zdefiniujmy więc je wszystkie,
● fizyczne uszkodzenie bloku manifestuje się jako nieprawidłowa suma kontrolna lub nagłówek, lub gdy blok zawiera wszystkie zera. Gdy tak się stanie, baza danych nie rozpozna bloku jako poprawnego bloku Oracle, niezależnie od jego zawartości. Uszkodzenia fizyczne (Media corrupt blocks) to bloki, które doznały wyraźnych uszkodzeń fizycznych. Gdy Oracle wykryje niespójność między CSN w nagłówku bloku a CSN w stopce bloku lub oczekiwane struktury nagłówka i stopki nie są obecne lub są zniekształcone, sesja Oracle tworzy wyjątek po odczytaniu bloku (ORA-01578: Oracle data block corrupted…). Korupcja fizyczna nazywana jest również korupcją medialną.
● uszkodzenie logiczne występuje, gdy blok danych ma prawidłową sumę kontrolną itp., ale Zawartość bloku jest logicznie niespójna. Uszkodzenie bloku logicznego może również wystąpić, gdy struktura poniżej początku bloku (poniżej nagłówka bloku) jest uszkodzona. W tym przypadku suma kontrolna bloku jest poprawna, ale struktury bloków mogą być uszkodzone. Uszkodzenie logiczne może również wynikać z utraconego zapisu.
aby uzyskać więcej informacji, zobacz Moja Notatka pomocy technicznej Oracle 840978.1.
więc?? Kiedy można uzyskać te komunikaty o błędach? Możesz nie dostać komunikat o błędzie podczas dostępu uszkodzone bloki dopóki dostęp powiązane bloki
– Analizuj tabelę .. Zweryfikuj strukturę
– Dbverify
– CTA(Utwórz tabelę jako Select)
– Eksportuj
– podczas procesu RMAN
wszystkie te narzędzia bazy danych są wypełniane V$DATABASE_BLOCK_CORRUPTION podczas wykrywania korupcji:
zachowanie w 9i i 10g, widok v$database_block_corruption używany do wypełnienia tylko wtedy, gdy rman Backup validate&sprawdź, czy zostało uruchomione polecenie logical validate.
wypełnione informacje używane do odświeżania tylko po naprawieniu uszkodzenia (odzyskiwanie nośników/odrzucanie obiektu) i ponownym uruchomieniu polecenia RMAN Backup validate /check logical validate w bazie danych lub pliku danych, którego to dotyczy.
z 11g to zachowanie się zmieniło.Gdy jakiekolwiek narzędzie lub proces bazy danych napotka uszkodzenie intrablock, automatycznie zapisuje je w V$DATABASE_BLOCK_CORRUPTION.
naprawa usuwa metadane o uszkodzonych blokach z widoku.
możesz zidentyfikować obiekty zawierające uszkodzony blok za pomocą zapytania takiego jak ten
SELECT DISTINCT owner, segment_name FROM v$database_block_corruption dbc JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 ORDER BY 1,2;
lub możesz użyć :
select * from V$DATABASE_BLOCK_CORRUPTION; << get file#&block from here
SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND block_id < 3840
AND block_id + blocks >= 3840;
SEGMENT_TYPE SEGMENT_NAME
—————– —————————————-
INDEX I_SOURCE1
lub użyć:
SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND 3840 BETWEEN block_id AND block_id + blocks -1;
lub
select 'SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = ' || FILE# || ' and ' || BLOCK# || ' between block_id AND block_id + blocks – 1;' from v$database_block_corruption order by 1;
techniki naprawy obejmują:
– blok odzyskiwania nośników,
– przywracanie plików danych,
– odzyskiwanie za pomocą przyrostowych kopii zapasowych i blokowanie nowych,
– eksport& import
– Tworzenie tabeli .. Jako polecenie SELECT.
nie zapomnij, blok odzyskiwania mediów może naprawić uszkodzenia fizyczne, ale nie uszkodzenia logiczne.
sprawdzanie uszkodzeń bloków za pomocą polecenia VALIDATE
składnia polecenia RMAN Validate: –
dla bazy danych :
RMAN > Validate database;
dla Datafile :
RMAN > Validate datafile <file no>,<file no> ;
dla bloku danych:
RMAN > Validate datafile <file no> block <Block no> ;
Archivelog przywraca dla Block Media Recovery (BMR) może być uruchamiany równolegle na wielu kanałach, ale skanowanie datafile/backupset i sesja odzyskiwania muszą być uruchamiane w tej samej sesji serwera.
aby umożliwić wybór kopii zapasowej,która zostanie użyta do wybrania żądanych bloków, polecenie Odzyskaj blok obsługuje opcje używane w poleceniu Przywróć:
FROM BACKUPSET–> restore blocks from backupsets onlyFROM DATAFILECOPY–> restore blocks from datafile copies onlyFROM TAG–>restore blocks from tagged backupRESTORE UNTIL TIME|SCN|LOGSEQ
więc po sprawdzeniu naszej bazy danych, jak możemy odzyskać powiązane uszkodzenia? Oto kilka przykładów:
Recovery using Explicit File/Block:
$ RMAN target / log=rman1.log
RMAN> blockrecover datafile 12 block 4207;
odzyskiwanie za pomocą listy uszkodzeń:
$ rman target / log=rman1.log
RMAN> blockrecover corruption list;
kluczowym podejściem do wykrywania uszkodzonych danych i zapobiegania im jest stosowanie następujących najlepszych praktyk MAA.
• użyj Oracle Data Guard
• ustaw parametry wykrywania uszkodzeń bloku bazy danych Oracle
* zaimplementuj strategię tworzenia kopii zapasowych i odzyskiwania za pomocą Recovery Manager (RMAN)
w metalink dostępnych jest zbyt wiele dokumentów, które są okładkami głęboko wyjaśnij koncepcję za pomocą przykładów uszkodzeń. Dlatego zdecydowanie sugeruję przejrzenie poniższych dokumentów, gdy uderzasz w podobne błędy w systemie: