Bozuk UNDO tablo alanının düzeltilmesi.

1 Eyl by Ahmet Duruöz

Bozuk UNDO tablo alanının düzeltilmesi.

Oracle UNDO tablo alanı bozulmuş ise  aşağıdaki gibi hata almak mümkün olabilmektedir.

ORA-00376: file string cannot be read at this time

UNDO segmentler bozulduğunda özetle aşağıdakiler yapılmalıdır :

  • AUTO olan undo_management parametresi MANUAL yapılmalı.
  • Yeni bir UNDO tablo alanı oluşturulmalı.
  • Sorunlu UNDO tablo alanı kaldırılmalı.
  • MANUAL olan undo_management parametresi AUTO yapılmalı ve undo_tablespace parametresi yeni oluşturulan UNDO tablo aalnı olacak şekilde değiştirilmelidir.

Bozuk UNDO tablo alanının düzeltilmesi :

1-   Bozuk segmentleri tespit edin. Bozuk segmentleri tespit etmek için aşağıdaki sorgu kullanılabilir.

select
segment_name,
status
from
dba_rollback_segs
where
tablespace_name='<sorunlu undo tablo alanı>'
and
status = ‘NEEDS RECOVERY’;

SEGMENT_NAME STATUS
------------------------------ ----------------
_SYSSMU22$ NEEDS RECOVERY

 

2-   Veri tabanını kapatın.
3-   İlgili pfile’ı undo_management MANUAL olacak şekilde ve gizli parametrelerden  _offline_rollback_segments değerini sorunlu segmentler olacak şekilde değiştirin. MOUNT modda ve RESTRICT olacak şekilde veri tabanını açın.
Pfile dosyasına eklenecek satırlar:

UNDO_MANAGEMENT=MANUAL

# Bozuk segment tek ise :

_OFFLINE_ROLLBACK_SEGMENTS=_SYSSMU22$

# Bozuk segment birden fazla ise :

_OFFLINE_ROLLBACK_SEGMENTS=(‘_SYSSMU22$’,‘_SYSSMU23$’, ‘_SYSSMU24$’)

 

SQL > STARTUP RESTRICT MOUNT pfile=<ORACLE_HOME>/dbs/initORCL.ora

4-   Tüm bozuk segmentleri ve undo tablo alanını kaldırın.

SQL> drop rollback segment "_SYSSMU22$";

Rollback segment dropped.

SQL > drop tablespace undotbs including contents and datafiles;

Tablespace dropped.

5-   Yeni undo tablo alanı oluşturun.

SQL > CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE ’/oradata/orcl/UNDOTBS01.DBF’ SIZE 100M ;

6-   Veri tabanını kapatın.

SOL> shutdown immediate

7-   Pfile daki eklenen satırlardan _OFFLINE_ROLLBACK_SEGMENTS satırını silin, UNDO_MANAGEMENT=AUTO yapın, eğer yeni oluşturulan undo tablo alanının ismi silinenden farklı ise undo_tablespace=<YENI_UNDOTBS1> olacak şekilde değiştirin.

8-   Veri tabanını normal şekilde pfile dan açın.

SQL > STARTUP pfile=<ORACLE_HOME>/dbs/initORCL.ora

Spfile kullanmanız gerekiyor ise açıldıktan sonra;

SQL > create spfile from pfile ;

Komutu ile spfile oluşturabilirsiniz.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir