Menu

17 Eylül 2010 Cuma

TableSpace Online/Offline

alter tablespace veya manage tablespace haklarına sahip kullanıcılar database open modda iken TS' leri offline/online a alabilirler. Offline a alınan TS'e kullanıcılar erişemezler, database in diğer TS'ler erişilebilir durumdadır.
  • offline backup alınmak istendiğinde (online backup alınabilir)
  • Uygulama yüklemesi/güncellemesi yaparken
  • TS ismini değiştirirken veya taşırken (relocate)
  • datafile de sorun olduğunda
Aşağıdaki TS ler offline a alınamaz.
  • System
  • Undo
  • temporary  
                                     alter tablespace satis offline/online;

3 parametre ile offline alınabilir. Defaultu normaldir.
  • normal : media recovery gerektirmez.
  • temporary : Normal ile offline alınamazsa kullanılır. media recovery gerektirebilir.
  • immediate :Normal ile ve temporary ile alınamazsa kullanılır. Media recovery gerektirir , eğer archive modda değilseniz bu parametreyi kullanamazsınız.

ReadOnly


Readonly modda data girişi yapılamaz, sorgulama yapılabilir, yeni obje oluşturulamaz ama drop edilebilir. Büyük TS'leri yedeklemek için önce read only moda alınıp yedeklenir. Diğer database lere taşınabilir, CD-ROM vb cihazlarda saklanabilir.
  • TS uygulanması gereken undo içeriğinin olmaması gerekir.
  • active undo ve system TS read only yapılamaz.
  • Yedekleme bitiminde datafile ların headerı güncellendiğinden online backup aşamasında olmaması gerekir.
                             alter tablespace satis read only;

                            alter tablespace satis read write ;

                           CREATE TABLE TEST_TABLE1(
                          ID NUMBER,
                         ISIM VARCHAR2(20 BYTE)
                          )
                        TABLESPACE SATIS;
  

satis TS indeki tabloya çeşitki insertler yapıldı commit demeden
alter tablespace satis read only; çalıştırıldı ole kaldı beklemede

                        select sql_text, SADDR
                       from v$sqlarea, v$session
                      where v$sqlarea.address = v$session.sql_address
                      and sql_text like 'alter tablespace%';



SQL> select ses_addr, start_scnb
2 from v$transaction
3 order by start_scnb
;
SES_ADDR START_SCNB
-------- ----------
2EAF6BD0 1965814
2EAF591C 1967631

                      alter tablespace satis offline temporary ; takıldı kaldı

                      alter tablespace satis offline immediate; takıldı kaldı

Hangi transactionların readonly moda geçtiğini bulabilmek için aşağıdaki sorgulamalar çalıştırılır.
select s.username, s.sid, s.serial#, t.start_time, n.name
from v$session s, v$transaction t, v$rollstat r, v$rollname n
where s.saddr=t.ses_addr
and r.usn=n.usn
and to_date(t.start_time,'MM/DD/YY HH24:MI:Ss')<(sysdate-(1/24));


Not: Büyük boyutlu TS lerin readonly modda kullanıdılğı Database lerde read_only_open_delayed parametresinin true yapılması önerilir. Bu şekilde database açılırken readly TS lerin datafile larını kontrol etmez, sadece bu TS'leri ilk okuma yapılmak istendiğinde erişim sağlanır.
  • Kayıp ya da bozulmuş read only TS lerin datafile ları database açılırken kontrol edilmez, ilk erişim okuma yapılmak istendiğinde olur.
  • "Alter system check datafiles" "Alter tablespace ... online" "Alter database datafile ... online", "alter database noarchivelog" read only datafile ları kontol etmez.
  • v$recover_file, v$backup, v$datafile_header, v$datafile ve v$recover_log read-only TS lere erişmezler.
Not: "recover database", "alter database open resetlogs" başlangıç dosyasında ne yazarsa yazsın read-only datafile lara erişmeye devam eder. Önlemek için datafile lar offline a alınmalı. backup control file kullanılıyorsa read-only datafile lar sorun çıkarabilir, bunun göz önünde bulundurulması gerekir.


 

Hiç yorum yok:

Yorum Gönder