Merhaba arkadaşlar;
İlk yazımı oracle üzerine yazmaya karar verdim. Oracle da genel yapı dışında belki de bilmemiz gereken ilk şeylerden biri, datamızı nasıl kurtarabileceğimizdir. Bu oldukça önemlidir. Profesyonel kurumların uygulamalarında projenin en önemli ayaklarından biri verinin kurtarılabilir olmasıdır. Oracle da bu amaçla bazı yöntemler kullanılır.
Oracle Recovery Manager(RMAN) sayesinde veritabanının bütün olarak veya tablespace olarak yedeğinin alınmasını sağlar. RMAN çalışırken performance ve boş alan optimizasyonları yapar. Örneğin rakiplerine göre oldukça hızlı bir sıkıştırma algoritması kullanır(BZIP2). Şimdilerde kullanmaya başladığı ZLIB denilen bir algoritma ile %40 lar seviyesinde bir performans artışı elde etmiştir. Ancak bu algoritma %20 daha az sıkıştırma kapasitesine sahiptir.
Oracle database yedeğinin network üzerinden farklı bir bilgisayarda alınmasını desteklemektedir.
Oracle Multisection Backups denilen bir yapı backup alma işini farklı kanallara bölerek eşzamanlı olarak yürütebilmektedir. Bu da backup ve kurtarma işlemlerinin hızını arttırabilmektedir.
Oracle Data Recovery Advisor tool u kullanıcının bir hata kurtarma halinde en iyi kurtarma planını bulmak için harcayacağı zamanı düşürmek için kullanılır. Bir hata ulaşılamayan dosya, yanlış versiyonlu dosyalar, file okumalarından kaynaklanabilecek fiziksel bozulmalar gibi nedenlerden dolayı oluşabilir ve RMAN bu hatalar için otomatik bir kurtarma planı hazırlayıp kullanıcının takdirine sunabilir. Bu şekilde kullanıcı için recovery işlemlerini hızlandırır.
Oracle backupları sadece yaratıcılarının açabileceği şekilde hazırlanabilir.
Oracle veriyi artımsal olarak yedekleyebilir.
Peki küçük uygulamalarımızda ne yapabiliriz. Yedekleri klasik yöntemlerle database i kopyalayarak alabiliriz. Ancak bu kısa zaman dilimlerinde sürekli kullanılabilir bir yöntem gibi durmuyor. Bunun yerine oracle ‘ın bize sağladığı birkaç kolay komut ile istediğimizi yapabiliriz. HR şemasında aşağıdaki komutları deneyebilirsiniz.
UPDATE employees
SET salary = 7200
WHERE last_name = ‘Banda’;
SAVEPOINT banda_sal;
select * from employees where last_name =’Banda’
ROLLBACK TO SAVEPOINT banda_sal;
select * from employees where last_name =’Banda’
ROLLBACK işlemi normalde en son commit’e geri dönüş yapabilir. Biz insert update ve delete işlemlerimiz sonucunda datanın tutarlılığından kesin olarak eminsek commit yapabiliriz. Ancak commit ile rollback arasında başka referans noktaları da oluşturmak istiyorsak o zaman savepoint kullanabiliriz. Bu durumda rollback en son commit işleminden sonraki referans noktasına geri dönüş yapabilir. Bu da bizim database’imiz üzerinde daha korkusuzca işlemler yapmamıza olanak tanır
.
Neyse çok uzattım. İlk yazının kusuru olmaz. Sevgiyle kalın.