Undo Tablespace Nedir ve Neden Değiştirilmesi Gerekir?
Oracle veritabanlarında undo tablespace, veritabanı işlemleri sırasında yapılan değişikliklerin geri alınabilmesi için kritik bir bileşendir. Zamanla bu alanın büyümesi veya performans sorunlarına yol açması nedeniyle mevcut undo tablespace’ini değiştirmek gerekebilir. Bu yazıda, Oracle veritabanlarında yeni bir undo tablespace oluşturmanın ve bunu veritabanı node’una uygulamanın adımlarını inceleyeceğiz.
Bu yazıda, mevcut undo tablespace’inin yerine yeni bir undo tablespace oluşturma ve Oracle DB node‘una uygulama sürecini adım adım anlatacağız. Bu işlem, veritabanı yönetiminizi daha verimli hale getirebilir ve sistem performansını artırabilir.
Mevcut Undo Tablespace Kontrolü
Hangi UNDO tablespace‘in şu anda kullanıldığını öğrenmek için:
SQL> sho spparameter undo;
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* temp_undo_enabled boolean
* undo_management string
* undo_retention integer
orcl1 undo_tablespace string UNDOTBS1
orcl2 undo_tablespace string UNDOTBS2
Yeni Undo Tablespace İçin Disk Alanı Hazırlama
Yeni bir undo tablespace oluşturmak için öncelikle uygun bir disk alanına ihtiyacınız var. Bu alanın yeterli büyüklükte olması, veritabanı işlemlerinin sağlıklı bir şekilde devam etmesi için önemlidir.
SQL> CREATE BIGFILE UNDO TABLESPACE UNDO_NEW_01
DATAFILE '/path/to/undo_tablespace01.dbf' SIZE 5G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
RETENTION NOGUARANTEE
BLOCKSIZE 8K
FLASHBACK ON;
CREATE BIGFILE UNDO TABLESPACE:- Yeni bir undo tablespace oluşturur.
BIGFILE, tablespace’in yalnızca tek bir büyük veri dosyasına sahip olacağını belirtir (çoklu veri dosyalarına izin verilmez).BIGFILEtablespace’ler genellikle ASM kullanıldığında tercih edilir çünkü ASM dosya yönetimini kolaylaştırır.
UNDO_NEW_01:- Oluşturulan undo tablespace’in adı. Bu adı veritabanındaki diğer tablespace adlarıyla karıştırılmamalıdır.
DATAFILE:- Tablespace’in fiziksel veri dosyasının adını ve konumunu belirtir.
- Örneğin, ASM kullanıyorsanız, bu yol
+DATA/UNDO/undo_tablespace01.dbfgibi olabilir.
SIZE 5G:- Veri dosyasının başlangıç boyutunu 5 GB olarak ayarlar.
AUTOEXTEND ON:- Veri dosyasının gerektiğinde otomatik olarak genişlemesine izin verir.
NEXT 1G:- Veri dosyasının genişleme adımını 1 GB olarak belirler. Yani, dosya dolduğunda 1 GB ekler.
MAXSIZE UNLIMITED:- Veri dosyasının büyüklüğüne bir üst sınır koymaz. Alternatif olarak, bir sınır koymak isterseniz
MAXSIZE 50Ggibi bir değer belirtebilirsiniz.
- Veri dosyasının büyüklüğüne bir üst sınır koymaz. Alternatif olarak, bir sınır koymak isterseniz
RETENTION NOGUARANTEE:- Undo tablespace içindeki undo bilgileri, gerekli olduğunda üzerine yazılabilir.
- Eğer
GUARANTEEolarak ayarlansaydı, undo bilgileri belirli bir süre boyunca korunur ve üzerine yazılamazdı, bu da özellikle Flashback işlemleri için kullanılır. NOGUARANTEE, daha fazla undo segmentine ihtiyaç duyulursa, eski bilgiler üzerine yazılmasına izin verir.
BLOCKSIZE 8K:- Veri dosyasının blok boyutunu 8 KB olarak ayarlar. Varsayılan blok boyutu genellikle 8 KB’dir.
- Blok boyutunu artırmak, büyük işlemlerde I/O performansını artırabilir, ancak küçük veriler için bu boyut gereksiz yere fazla olabilir.
- Sadece veritabanı oluşturulurken desteklenen
BLOCKSIZEdeğerleri kullanılabilir (örneğin, 2K, 4K, 8K, 16K).
- FLASHBACK ON:
- Undo tablespace’in Flashback özellikleri için kullanılabilir hale getirir.
- Flashback, bir tabloyu veya veritabanını geçmiş bir duruma döndürmek için kullanılır.
FLASHBACK OFFolarak ayarlarsanız, bu tablespace Flashback özellikleri için kullanılamaz.
Yeni Undo Tablespace’ini Sistem Undo Tablespace Olarak Atama
Veritabanı, varsayılan olarak bir undo tablespace kullanır. Yeni oluşturduğumuz undo tablespace’ini veritabanı için varsayılan undo tablespace olarak ayarlamalıyız.
ALTER SYSTEM SET UNDO_TABLESPACE = 'UNDO_NEW_01' scope=BOTH sid='orcl1';
Scope=BOTH ifadesi, yapılan değişikliği hem aktif bellek üzerinde uygular hem de spfile dosyasına kaydedilir.
sid=’node1′ ifadesi, yapılan değişikliğin yalnızca belirli bir Oracle Instance (örneğin, node1) üzerinde uygulanmasını sağlamak için kullanılır
Yeni Undo Tablespace’i Kontrol Etme
Yapılan değişikliği kontrol edelim:
SQL> sho spparameter undo;
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* temp_undo_enabled boolean
* undo_management string
* undo_retention integer
orcl1 undo_tablespace string UNDO_NEW_01
orcl2 undo_tablespace string UNDOTBS2
Eski Undo Tablespace’ini Kullanım Dışı Bırakma
Mevcut undo tablespace’ini devre dışı bırakmadan önce, yeni undo tablespace’inin doğru şekilde çalıştığını ve tüm işlemleri düzgün bir şekilde kaydettiğini doğrulamanız gerekir.
ALTER DATABASE DATAFILE '/path/to/old_undo.dbf' OFFLINE;
Eski Undo Tablespace’ini Silme
Eski undo tablespace dosyasını tamamen silmek için aşağıdaki komutu kullanabilirsiniz:
DROP TABLESPACE old_undo INCLUDING CONTENTS AND DATAFILES;
Burada, INCLUDING CONTENTS AND DATAFILES ifadesi, hem tablespace’in hem de içindeki tüm veri dosyalarının silinmesini sağlar.







%s için bir yanıt yazın