Suspend komutu instance' a özgü bir komut değildir.
RAC kullanılan bir sistemde node' lardan birinden çalıştırılacak olan suspend
komutu tüm node' ları etkileyecektir. Alter system resume komutu ile sistem
normal işleyişine geri dönecektir. Resume ve Suspend komutları farklı instance'
lardan çalıştırılabilir. Sonuçda hepsi çalıştırılan komutdan etkilenecektir.
Database Suspend modda iken DDL komutları dahil olmak üzere hiçbir komut response
dönmeyecektir. Ne zamanki Resume komutu çalıştırılırsa database kaldığı yerden
işleyişine devam edecektir.
Database’ den consistent backup almak (db kapatmadan) için veya database’
de belli bir süre için hiçbir işlem yapılmak istenmiyorsa yapılabilir. Aynı zamanda diskler üzerinde
yapılan i/o işlemlerini sıfırlamak içinde kullanılabilir. Ancak genelde çalışan
sorgu hata vermeden doğabilecek fiziksel alan problemlerini ortadan kaldırmak
için kullanıldığını söyleyebiliriz.
Database’ i Suspend moda
almak için ;
ALTER SYSTEM SUSPEND;
System altered
Kontrol etmek için ;
SELECT DATABASE_STATUS FROM V$INSTANCE;
DATABASE_STATUS
SUSPENDED
Suspend moddan çıkartmak için ;
ALTER SYSTEM RESUME;
System altered
Kontrol etmek için ;
SELECT DATABASE_STATUS FROM V$INSTANCE;
DATABASE_STATUS
ACTIVE
Yukarıdaki şekilde manuel olarak database’ in
statüsünü değiştirmenin dışında sisteme özellikle kritik yapılan bazı
operasyonlarda hata dönmeden önce bizim hatayı düzeltmemiz için gereken süre
kadar beklemesini, yapılan işi askıya almasını söyleyebilriz. Örneğin yüklü yapılan bir takım insert işlemlerinde tablespace’ de yer
kalmaması gibi durumlar oluşabilir. İşlem sırasında tablespace’ in doluluk
durumunu izlediğimizi varsayarsak resize işlemini yapacak kadar bir süre işlem
öncesinde tanımlanırsa bu bize çalışan sorguyu tekrar tekrar yeniden
çalıştırmamızı engellemiş olur. Diğer türlü her hata aldığımızda (insert işlemi
için özellikle hata verdiğinde sistem yapılan tüm işlemin geri alınması için
rollback yapmaya başlayacakki, rollback maliyetli bir süreçtir) işlemimizi
tekrar başlatmamız gerekecektir.
ALTER SYSTEM SET RESUMABLE_TIMEOUT=60;
Yukarıdaki işlem ile database seviyesinde yapılan tüm
işlemler için 60 sn’ lik bir suspend zamanı tanımlanmış olur. Değişiklik spfile’
e yazılmadığı için database restart olduğu zaman işlevliğini kaybedecektir.
Resumable timeout parametresini devre dışı bırakmak
yani disable yapmak için ;
ALTER SYSTEM SET RESUMABLE_TIMEOUT=0;
Komutu çalıştırmamız yeterli olacaktır.
Yukarıdaki resumable operasyonunu sesion bazında
yapmakta mümkündür.
ALTER session SET
RESUMABLE_TIMEOUT=60;
Session kapatıldığında yapılan değişiklikde önemini
yitirecektir.
System genelinde resumable timeout süresi verildiği
halde, çalışılan bir session için bu tarz bir süre kullanılmak istenmiyorsa,
çalıştırılmak istenen sorgudan önce aşağıdaki komutun çalıştırılması yeterli
olacaktır ;
ALTER SESSION DISABLE RESUMABLE;
Hiç yorum yok:
Yorum Gönder