Table Space Yönetimi

Oracle verileri mantıksal olarak tablespace lerde fiziksel olarak datafile larda tutar. Resim işletim sistemi tarafındaki dosyaları ve mantıksal yapıyı özetlemektedir.

 

TableSpace Yönetimi

Oracle verileri mantıksal olarak tablespace lerde fiziksel olarak datafile larda tutar. Resim işletim sistemi tarafındaki dosyaları ve mantıksal yapıyı özetlemektedir. (Konu boyunca çok fazla tablespace kelimesi geçeceğinden TS olarak kısaltacağım.)

Tablespace yapısı, veritabanının kontrol edilebilirliği ve bakım işlemleri açısından database adminlerin işlerini kolaylaştırmaktadır . Örneğin her departman için ayrı tablespace ve kullanıcı oluşturarak verileri arası ayrım sağlanabilir. (muhasebe_tbs,satis_tbs, hareket_tbs gibi). veri güncelleme departmandan departmana farklılık gözeteceğinden yedekleme bakım gibi işlerin zamanları farklı tarilere ayarlanabilir. Birinde olabilecek hata diğerlerini etlemeyecektir. Kullanıcılara hak verirken daha esnek ve kolay olacaktır. vs.TS kelimesinden anlaşılması gereken sabit/kalıcı, şema (schema) objelerinin tutulduğu tablespace dir.
Data dictionary özel bir tablespace olan system tablespace inde tutulur. Bir de 10 G ile birlikete gelen zorunlu yardımcı (mandatory auxilary) system table space vardır . Eğer eğer 10 G öncesi versiyondan migration yapılıyorsa bu auxilary ts in upgrade işleminden önce oluşturulması lazım.

Temporary TS : Kullanıcı oturumu boyunca data tutar (sıralama, sort işlemleri vb). data file yerine temp file larda data tutar.

Undo TS : Okunan veri tutarlılığını sağlamak için kullanılır. Undo datalarını tutar ilerleyen bölümlerde anlatılacak.

TableSpace Türleri

1- Sytem tablespace : Database ile birlikte oluşturulur. Her VT için gereklidir. Data dictionary ve program parcalarını tutar.

2- Non-Sytem tablespace : DBA ler ve kullanıcılar tarafından oluşturulan tablespacelerdir.

TS’ ler oluşturulurken extend lerin yönetimi için iki tür seçilebilir.

1-Dictionary Management TableSpaces (DM TS) : Extend size yönetimi data dictionary tarafından yapılır. Tavsiye edilen bir TS değildir.

2- Localy Management TableSpaces (LM TS) : Extend size yönetimi lokal olarak yapılır. (BitMap tarafından). Default da bir TS oluşturulduğunda yönetim şekli verlmeze TS, LM olarak oluşturulur.

128K ‘lık UNIFORM SIZE ile oluşturulan bu LM TS ‘de
Database block size 2K ise
Her extent 64 database block size a tekabul eder.
Her 128K lık extent bir bit e tekabul eder. Bitlerin dolumu boşmu oldukları bitmap tarafından kontrol edilir.
Manuel segment space management de boş alanları (free space) yönetmek için freelistHatırlatma:

otomatik segment space management de bitmap kullanılır. Otomatik segment space management daha verimlidir ve default ayardır. Boş alanları birleştirmeye (colascing) ihtiyaç yoktur.

LM TS extent size ı büyüklüğünü yönetmek için iki seçenek vardır.

Oracle’ın otomatik olarak yönetir. (AUTOALLOCATE option)64KB den başlayıp girilen verilerin büyüklüklerine göre Oracle otomatik olarak 64MB ye kadar değerler verebilir.

Veya biz belirleriz (UNIFORM option) SIZE parametresi ile miktar verilerek (KB,MB)

eğer girilmezse, Oracle default değer olan 1MB atayacaktır.

Uniform size verilerek oluşturulan TS in sonradan UNIFORM size ı değiştirilemez.

TS deki tüm segmenlerin ortalama aynı boyutta olacağına ve aynı iktarlarda artış göstereceğini tahmin ediyorsanız uniform extent size kullanılabilir.

Extent boyutları performans açısından önemlidir örneğin : sorgulama ağırlıklı kullanılan segmentlerin extent size ını küçük tutarsanız performansını olumsuz yönde etekileyecektir. Extent size ı siz ayarlayacaksanız Oracle, TS in amacına göre aşağıdaki değerleri tavsiye etmektedir.

64 KB small segments
1 MB medium segments
63 MB large segments

Oracle, eğer büyüme oranları bilinmiyorsa ve TS içindeki tüm segmenler aynı boyda olmadıkça AUTOALLOCATE (Default da autoalocate gelir) i seçilmesini tavsiye eder.

Şema ile özetlemeye çalışalım.

TableSpace Yönetimi
Segment space management için LOCAL UNIFORM seçilirse her extent için min 5 database bloğunun bulunması gerekir.Segment space management TS oluşturulmas sırasında belirtilir ve bu TS’de oluşturulan tüm segmentler için geçerli olur sonradan değiştirilemez.

Segment space management LOCAL AUTOALLOCATE seilirse ve database block size 16K ve üstü ise Oracle, extentleri min boyut olarak 64K civarında ve min 5 database bloğu oluşturur.

Hareket ve satis TS’lerini farklı parametrelerle oluşturduk ama her ikisinin de extent management leri lokaldir (default ayar olduğundan).

komutu ile kontrol edebiliriz

TABLESPACE_NAME SATIS MUHASEBE HAREKET
BLOCK_SIZE 8192 8192 8192
INITIAL_EXTENT 65536 65536 65536
NEXT_EXTENT
MIN_EXTENTS 1 1 1
MAX_EXTENTS 2147483645 2147483645 2147483645
PCT_INCREASE
MIN_EXTLEN 65536 65536 65536
STATUS ONLINE ONLINE ONLINE
CONTENTS PERMANENT PERMANENT PERMANENT
LOGGING LOGGING LOGGING LOGGING
FORCE_LOGGING NO NO NO
EXTENT_MANAGEMENT LOCAL LOCAL LOCAL
ALLOCATION_TYPE SYSTEM SYSTEM SYSTEM
PLUGGED_IN NO NO NO
SEGMENT_SPACE_MANAGEMENT AUTO AUTO AUTO
DEF_TAB_COMPRESSION DISABLED DISABLED DISABLED
RETENTION NOT APPLY NOT APPLY NOT APPLY
BIGFILE NO NO NO

Burada uniform parametresini kullanıyoruz ama boyut belirtmediğimiz için default değer olan 1MB yi atayacaktır.

 

TABLESPACE_NAME SATIS HAREKET HASTA_GIRIS
BLOCK_SIZE 8192 8192 8192
INITIAL_EXTENT 65536 65536 1048576
NEXT_EXTENT 1048576
MIN_EXTENTS 1 1 1
MAX_EXTENTS 2147483645 2147483645 2147483645
PCT_INCREASE 0
MIN_EXTLEN 65536 65536 1048576
STATUS ONLINE ONLINE ONLINE
CONTENTS PERMANENT PERMANENT PERMANENT
LOGGING LOGGING LOGGING LOGGING
FORCE_LOGGING NO NO NO
EXTENT_MANAGEMENT LOCAL LOCAL LOCAL
ALLOCATION_TYPE SYSTEM SYSTEM UNIFORM
PLUGGED_IN NO NO NO
SEGMENT_SPACE_MANAGEMENT AUTO AUTO AUTO
DEF_TAB_COMPRESSION DISABLED DISABLED DISABLED
RETENTION NOT APPLY NOT APPLY NOT APPLY
BIGFILE NO NO NO

 

BigFile TableSpace

10G ile gelen bir TS çeşitidir. Tek bir datafile a sahip olabilir çok büyük boyutları destekler, block size 8K ise 32 TB block size 32K ise 128 TB’ a kadar datafile oluşturulabilir.

Fazla sayıda datafile a gereksinim duyulmaz bunun diğer bir faydası da CREATE DATABASE ve CREATE CONTROLFILE işlemleri sırasında başlangıç dosyasında (spfile/pfile) DB_FILES ve MAXDATAFILES parametrelerinde datafile bilgileri için kullanılacak SGA alanından fazla oranda kullanılmamasını sağlar. Bu cümle pek güzel olmadı kısaca SGA ‘da datafile bilgileri ile ilgili alan kullanımı azalır desek daha iyi olacak.

Bigfile TS’ ler ASM veya genişleyebilen disk mimarileri kullanılması amaçlanımıştır (RAID)

Büyük boyutlu dosyaları desteklemeyen işletim sistemlerinde önerilmez.

Disk bölüştürme (striping) özelliği olmayan yapılarda kullanılması önerilmez.

BigFile TS ler sadece locally managed TS lerde Automatic Segment Space Management lerde desteklenir 3 istisnai durum vardır.

  • Undo TS
  • Temporary TS
  • System TS

 

Table_Space SSM
SYSTEM MANUAL
UNDOTBS1 MANUAL
SYSAUX AUTO
TEMP MANUAL
USERS AUTO
UNDOTBS2 MANUAL
EXAMPLE AUTO
SATIS AUTO
MUHASEBE AUTO
TEMP02 MANUAL
HAREKET AUTO
HASTA_GIRIS AUTO

Bigfile TS oluşturma

Eğer default TS seçeneği bigfile olarak ayarlanmış ise BIGFILE parametresini girmenize gerek yok. Ama smalfile TS oluşturacaksanız bu sefer de SMALLFILE parametresini kullanmanız gerekir.

Boyutunu değiştirebiliriz

Otomatik büyümesini sağlayabiliriz

view larında bigdile kolonu bulunmaktadır, bunlarla bigfile TS olup olmadıklarını öğrenilebilir.

Temprary TableSpace

Bilgileri oturum (session) süresince tutar yani geçicidir,sıralama (sort)işlemlerinde kullanılır indexleme ve kullanıcı sorgulamalarında. Her kullanıcıya bir temp TS atanır, ya oluşturulurken ya da sonradan değiştirilebilir (CREATE USER, ALTER USER).Kullanıcı oluşturma syntax ında belirtilmezse default temp TS atanır. Önerilen veritabanı oluşturulurken default temp TS in oluşturularak kullanıcılara atanmasının sağlanmasıdır. Kullanıclar bir temp TS’ i ortak kullanabilir içerdiği bilgiler paylaşımlıdır. Temp TS’de kalıcı objeler oluşturulamaz bunun tek istisnası temprary table lardır bu tablonun satırları temprary TS de tutulur.

Eğer VT oluşturulurken defaul temp TS oluşturulmamışsa sorun değil sonradan oluşturup kullanıcılara atanabilir.

Oracle, verileri PGA’ya 64KB’lık yığınlar halinde yazar bu yüzden extent size uniform yapıp 64K katları şeklinde vermek performansı artıracatır. veri ambarlarında tavsiye edilen extent size 1 MB’dir.

Performansı artırmak için birden fazla temp TS oluşturup kullanıcılara paylaştırılabilinir.

  • V$SORT_SEGMENT
  • V$TEMPSEG_USAGE
  • V$TEMPFILE
  • V$DATAFILE
  • DBA_TEMP_FILES
  • DBA_DATA_FILES

view larından kullanım bilgileri sorgulanabilir.

sorgusu ile kontrol ettiğimizde temporary TS’in default değerlerini de görürüz.

TABLESPACE_NAME DEVELOPERTEMP
BLOCK_SIZE 8,192
INITIAL_EXTENT 1,048,576
NEXT_EXTENT 1,048,576
MIN_EXTENTS 1
MAX_EXTENTS
PCT_INCREASE 0
MIN_EXTLEN 1,048,576
STATUS ONLINE
CONTENTS TEMPORARY
LOGGING NOLOGGING
FORCE_LOGGING NO
EXTENT_MANAGEMENT LOCAL
ALLOCATION_TYPE UNIFORM
PLUGGED_IN NO
SEGMENT_SPACE_MANAGEMENT MANUAL
DEF_TAB_COMPRESSION DISABLED
RETENTION NOT APPLY
BIGFILE NO

Görüldüğü üzere tüm locally managed ve uniform size 1M olarak oluşturulur. Uniform size ı değiştirmek için;

syntax ı ile büyük boyutlu temp TS oluşturulabilir.

 

ALTER TABLESPACE syntax ı ile kalıcı (permanent) TS’leri temporary TS’lere çeviremez. Sadece datafile eklemek ve tempfile ı offline/online a almak için kullanılır.

aşağıdaki sytaxlar da aynı işi görür.

Burda dikkat edilmesi gereken, offline çekilen temporary TS değil , temporary TS’in datafile ı dır. v$tempfile statuleri görülebilir.

Boyutu değiştirmek için:

iptak etmek ve datafile da silmek için:

İsim ve lokasyon değiştirme

  1. TS offline a alınır.
  2. İşletim sisteminden taşınır ve/veya ismi değiştirilir.
  3. alter database rename file sytaxı ile control file güncellenir.

Temporary TableSpace Group

10G ile gelen bir özelliktir, kullanıcıların aynı anda farklı sessionlarda çoklu temporary TS kullanmasını sağlar.

  • Enaz bir adet TS den oluşur. Maximum sayı belirtilmemiştir.
  • Grup üyelerinin hepsi silinirse otomatik olarak grup da silinir.
  • Üye temporary TS’ler grup ile aynı isim alanına sahiptirler.
  • Üye temporary TS’lerin ismi ile grub ismi aynı olamaz.
  • Kullanıcılara temporary TS’in yerine grub ismi atanabilir.

Faydaları:

  • Aynı anda birden fazla temporary TS kullanarak tıkanmaları engeller.
  • Database bazında default temporary TS tanımlarken birden fazla temporary TS tanımlamaya olanak sağlar.
  • Paralel operasyonlarda çoklu temporary TS kullanmak verimliliği artırır.
  • Kullanıcı aynı anda çoklu temporary TS kullanabilir.

Oluşturalım

komutu ile defalt temp değiştirilebilir.

Temporary TS’i datafile ile birlikte silme

aşağıdaki syntax datafile iptal eder sistemden de siler.

alertloga düşen hata

(Hatırlatma : “tail -f /u01/app/oracle/admin/orcl/bdump/alert_orcl.log” )

sorgulama yapıldığında

hatası alınır.

Önce default temporary gruptan çıkarılır.

sonra

temp01 tarihi karışır.

artık “select * from dba_tablespace_groups;” çalıştırıldığında hata almayız.

Syntaxı girildiğinde temp01 temporary TS i oluşturur, temporary grup tempgrup01 oluşturur ve temp01 i tempgrup01′ e dahil eder.

Önce temporary TS oluşturulup sonrasında gruba katılabilir.

Temporary tablespace in bir gruba atanması

Database e default temporary TS grup atanması

Kullanıcıya default temporary grup atanması

Daha önce oluşturulmuş bir kullanıcının temporary TS in değiştirilmesi

Temporary TS Bilgilerini Görüntüleme

Kullanıcılara Atanmış Temporary TS leri görmek için

tempgrup01 i database e default temporary TS olarak atadığımız için tüm kullanıcılar için tempgrup01 olarak değişmiştir.

NonStandard Block Size Oluşturma

Başlangıç dosyasında (spfile) belirtilen DB_BLOCK_SIZE dan farklı boyutlarda TS oluşturulabilir. Bu özellik farklı block size lara sahip database ler arasında TS leri taşımaya imkan sağlar.

Bunun için başlangıç parametresinde en bir tane DN_nK_CACHE_SIZE değerinin verilmiş olması gerekir.

Nologging

TS nologging parametresi ile oluşturuldu ise bu TS deki işlemler için redo üretilmez bu da media recovery (rman flashback) yapılamamasına neden olur. Yanlışlık bir tabloyu sildiniz en son aldığınız exporttan dönebilirsiniz. Avantajı ise redo üretilmediği için daha performanslıdır.

Temporary segmentler ve temporary TS ler log üretmezler yani nologging moddadır. logging/nologging ifadesi TS level kullanılır, schema levelde bu değiştirilerek logging/nologging yapılabilir örneğin CREATE TABLE

CREATE TABLE XXX AS SELECT syntax ile oluşturulacak table lar için redo üretilmememesi performans açısından mantıklı olacaktır.

Nologging moddaki bir database de sorunlar yaşanmasından dolayı oluşturulacak TS’i FORCE LOGGING modda oluşturarak redo üretmesini sağlayabilir, force logging önceki ve gelecek parametrelerin üzerine yazar yani her halikarda redo üretir. FORCE LOGGING moddaki bir TS, FORCE LOGGING modda olmayan başka bir database e taşınırsa artık FORCE LOGGING özelliğini kaybeder.

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

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.

satis TS indeki tabloya çeşitki insertler yapıldı commit demeden

alter tablespace satis read only; çalıştırıldı ole kaldı beklemede

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.

USERNAME SID SERIAL# START_TIME NAME
SYS 141 1949 02/12/10 14:59:23 SYSTEM
SYS 140 251 02/12/10 15:38:30 SYSTEM
SYS 141 1949 02/12/10 14:59:23 _SYSSMU11$
SYS 140 251 02/12/10 15:38:30 _SYSSMU11$
SYS 141 1949 02/12/10 14:59:23 _SYSSMU12$
SYS 140 251 02/12/10 15:38:30 _SYSSMU12$
SYS 141 1949 02/12/10 14:59:23 _SYSSMU13$
SYS 140 251 02/12/10 15:38:30 _SYSSMU13$
SYS 141 1949 02/12/10 14:59:23 _SYSSMU14$

çalıştırıdığında tüm bekleyen “alter tablespace satis offline …” komutlarının

“alter tablespace altered” olduğu görülür.

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.

Datafile Ekleme

veya

İsim Değiştirme

Kalıcı (permanent, yani kullanıcıların verilerini tuttuğu TS’ler) ve temporary TS’lerin isimlerini değiştirebiliriz.

Oracle, satis TS’in geçtiği data dictionary control file ve datafile headerları değiştirir, ama tablespace ID yi değiştirmez. Biz TS leri isim ile tanımlarız ama Oracle arka planda bu ID ler ile tanır. Tablespace lerin ismini değiştirebilmemiz için ;

  • Database’in uyumluluğu 10 ve üzeri olması gerekir (başlangıç parametresindeki compatible = 10.0 ve üstü)
  • system ve sysaux TS lerinin ismi değiştirilemez. (hata msj ı alınır)
  • TS ya da datafile ı offline ise ismi değiştirilemez. (hata msj ı alınır)
  • TS read only ise rename işlemi gerçekleşir lakin alertlog dosyasına çeşitli hatalar düşer. Tekrar read write yaparken yeni ismi kullanılır.
  • Undo TS in ismi değiştirildiğinde parameter file dan da değiştirmek gerekir.

Silme ( drop )

Kullanılmayan TS leri Drop TS hakkı olan kullanıcılar, TS in içindeki objelerle bilrlikte silebilirler. Silinen TS tekrar geri getirilemez, içindeki tüm objelerin kullanılmayacağından emin olmak gerekir. Kesinlikle silinmeden önce ve silindikten sonra full yedek almak tavsiye edilir.

syntax ı ile TS silinir ama datafile ı işletim sistemi dosyası olarak kalmaya devam eder bunu da işletim sistemi komutları ile silebilirsiniz.

bu sytax ise datafile lar ile siler.

aktif segment içeren TS silinemez örneğin kullanılan bir table veya rollback için undo data içeren TS’ler.

Bir TS’i silmeden önce offline a almak tavsiye edilir.

Sysaux Tablespace

System TS’e yardımcı olması için 10G ile gelen bir özeliktir. Workspace manager, logical standby, Oracle streams , Automatic workload repostory gibi dataları tutar. Tam listeyi v$sysaux_occupants view ından görebilirsiniz.

sysaux erişilemezse yani bir nedenden dolayı bozulursa database ana işlevlerine devam eder lakin sysaux TS’ ini kullanan özellikler ya erişilemez ya da limitli erişilebilir. Sysaux daki compenentleri PL/SQL ile başka bir TS’e taşıyabilir dışardaki compenentleri de sysux a alabiliriz. Özellikle çok yer kaplayan (AWR) bileşenleri başka TS’lere almak mantıklı olacaktır.

DataFile Yönetimi

Oracle datafile a iki adet numara atar absolute file number ve relative file number.

Absolute : Tektir yani bir datafile a verilen numara başka bir datafile a verilemez. SQL sytaxlarında kullanılabilir, uzun uzun datafile in ismini vermek yerine sadece numarasını vererek işlem yapabiliriz. v$datafile ve v$tempfile viewlarında ” file# ” kolonu, dba_data_files ve dba_temp_files viewlarından file_id kolonundan bu bilgilere erişebiliriz.

Relative : Bu da tektir. Ufak ve orta boyutlu database lerde absolute ve relative aynıdır, büyük databaselerde farklılaşmaktadır.

Oracle’ı kurmadan önce kaç adet TS’e kaç adet datafile ‘a ihtiyaç duyulacağı hesaplanıp ona göre işletim sistemi ve konfigurasyonu yapılmalıdır çünkü işletim sistem tarafındaki kısıtlamalar database inizdeki ayarları da değiştirmenizi gerektirebilir.

Başlangıç dosyasındaki (spfile) ” db_files ” parametresi oluşturulabilecek maximum datafile sayısını bildirir. default u 200 dür maximum işletim sisteminin desteklediği kadardır. Bu değer değiştirildiğinde kapatılıp açılması lazım.

Datafile ekleme

Satis_2009 TS’ine 1’er MB’lık boyutlarda otomatik olarak artabilecek maximum boyutu 100 MB olabilecek bir datafile ekliyoruz.

Otomatik artmayı iptal ettik.

Boyut değiştirme

Disk boyutuna ve işletim sistemine bağlı olarak istenildiği kadar büyütülebilir, aynı zamanda küçültüledebilir de ancak kullanılan alandan daha küçük boyut verilemez verilirse de hata verir.

Datafile ların erişilebilirliğini değiştirme

Datafile ları ve tempfile ları ayrı ayrı offline/online alınabilir, offline oldukları sürece erişilemez olacaklardır.

  • Offline yedek alınmak istendiğinde
  • İsim/lokasyon değişikliği yapılmak istendiğinde, önce offline a almak gerekir.
  • Oracle yazma problemi ile karşılaştığında datafile ı offline a alır sorun giderildiğinde dba tarafından online a alınması gerekir.
  • Datafile bozulduğunda ya da bir şekilde sistemden kaybolduğunda instance ı başlatabilmek için bu datafile e offline almak gerekir.

Read-Only modda ki TS ‘in datafile ını offline ya da online a alabiliriz , online aldığımızda TS’in read-only modu devam eder datafile a yazamayız yazabilmemiz için tekrar read-write moda almamız lazım.

Bu şekilde satis_2009 ‘ un tüm datafile larını offline/online a alırız.

ArchiveLog modda online/offline

Bu şekilde TS’ içindeki tüm datafile ları offline/online a almadan istenilen datafilelarda değişiklik yapılmak isteniyorsa archivelog modda olmak lazım aksi halde datafile kaybedilir deneyip görelim.

NoArchiveLog modda online/offline

DataBase i tekrar noarchivelog moda alıyorum.

Archive modda olmayan instance da offline for drop” parametresi ile kullanılır. database e offline aldıktan sonra drop işleminin yapılacağı bilgisi verilir.

diğer türlü

recovery modda olmadığımız için izin vermiyor.

İsim ve Lokasyon Değiştirme

Bu tür işlemlerden önce full yedek almış olmanız çok önemlidir.

işletim sisteminden dosyanın ismi değiştirilir.

Linux işletim sisteminde mv (move) komutu isim değiştirmek yaygın olarak kullanılır.

aynı anda birden fazla datafile ın ismi değiştirilebilir.

Diskte yer kalmadı ya da performans sorunundan dolayı bir TS’in tüm datafile larını yeni disk takıp oraya taşımak istiyorsunuz. (linux bölümünde yeni diskin sisteme tanıtılması ve mount edilmesi anlatıldı) Yeni diski /u01/app/oracle/oradata/orcl/ dizininde satists adında bir klasör açıp buraya mount ettiğimizi farz ediyorum.

işletim sisteminde datafile ı yeni lokasyonuna taşıyoruz. (herhangi bir işletim sisteminden kaynaklanabilecek arızalar için kopyalıyorum taşıma sağlıklı bir şekilde tamamlandıktan sonra eskisini sileceğim.

aynı şekilde birden fazla datafile ı taşıyabiliriz.

tekrar erişilebilir hale getiriyoruz.

Kullanılmamış yani herhangi bir extent bulunmayan datafile ı silebiliriz (Database open modda olmak zorundadır).

satis_200902_tbs.dbf bu datafile ile ilgili data dictionary deki kontrol dosyalarındaki tüm bilgiler silinir ve işletim sistemindeki datafile silinir.

aynı şekilde temp datafile silinebilir.

bu da aynı işi görür. yalnız bunun şöyle bir farkı var. Eğe developertemp02.dbf temporary bir TS’in son datafile olsa idi ;

alter tablespace ... syntax ı bu son datafile diyip işlemi gerçekleştirmezdi. Ama alter database .. anında datafile siler, datafile kapatılıp açıldığında herhangi bir sorun olmaz açılıp kapatılabilir sadece datafile sız bir temporary TS’niz olur ve aşağıdaki uyarıyı alert dosyasına düşer.