Replikasyon, eş zamanlıya en yakın backup çözümüdür. Ayrıca okuma isteklerinin ana server dışı serverlere de
yayılması ile ana server in yükünün hafifletilmesi anlamında iyi bir seçenek olabilmektedir.
MySQL, version 5.1 itibariyle iki tür replikasyonu desteklemektedir.
Bunlar statement-based ve row-based replikasyondur.
Statement-based (veya “logical”) replikasyon MySQL 3.23 den beri bulunmaktadır ve
bugünkü çoğu production sisteminde kullanılan replikasyon tipidir.
Row-based replikasyon MySQL 5.1 ile gelen bir özelliktir.
Her iki replikasyon tipi de temelde aynı mantıkla çalışır.
Database üzerinde yapılan değişiklikler master (replike edilecek database)
a ait binary log dosyasına yazılır. Ardında bu değişiklik (event)
slave (kopya database) e uygulanır.
Statement based replication, masterda çalıştırılan ve databasete değişiklik yaratan
query lerin slave de aynen uygulanmasıdır.
Row based replication da ise, değişen data blokları slave e uygulanır.
Bugünlerde Row based replikasyon çok yeni olduğundan dolayı henüz pek yaygın kullanılmıyor.
Fakat gelecekte en az statement based replikasyon kadar yaygınlaşacağını düşünüyorum.
MySQL Replikasyon düşük versiyondan yüksek versiyona doğru genellikle sorunsuz çalışıken
tersi he zaman sorun anlamına gelir.
Tavsiyem master ve slave mysql versiyonlarının aynı olmasıdır.
Replikasyon master sistem üzerinde genellikle çok az yük oluşturur.
Tabi çok sayıda slave olması bu durumu değiştirebilir.
29 Eylül 2010 Çarşamba
8 Eylül 2010 Çarşamba
Mysql database kapatma - açma (Linux)
MySQL server şu anki durumu
******************************
/etc/init.d/mysql status
MySQL server başlatma
******************************
/etc/init.d/mysql start
MySQL server durdurma
******************************
/etc/init.d/mysql stop
Bu işlemler root veya mysql kullanıcı ile gerçekleştirilebilir.
******************************
/etc/init.d/mysql status
MySQL server başlatma
******************************
/etc/init.d/mysql start
MySQL server durdurma
******************************
/etc/init.d/mysql stop
Bu işlemler root veya mysql kullanıcı ile gerçekleştirilebilir.
Oracle Enterprise Linux 5 üzerine MySQL Server 5.1 kurulumu
Mysql dökümantasyonunda belirtildiği gibi mysql linux üzerinde geliştirilmektedir.
Bu nedenle de linux, mysql kurulumu için en uygun ortam olmaktadır.
Burada kurulumu özellikle Oracle Enterprise Linux 5 üzerinde gerçekleştiriyorsakta
diğer linux dağıtımları için de prosedür aynıdır.
32 bir işletim sistemleri her proses için en çok 2.4 Gb memory ayırabilmektedir.
Bu nedenle pek çok kurulumda 64 bit işletim sistemi tercih edilmektedir.
Bizde burada 64 OEL dağıtımı üzerine MySQL server kurulumu tamamlıyor olacağız.
Linux üzerindeki MySQL server kurulumu için server ve client rpm paketlerinin kurulumu yeterlidir.
Kurulum aşağıdaki adımlardan oluşur.
* Gerekli RPM paketlerini bilgisayarımıza indiriyoruz.
1. http://dev.mysql.com/downloads/mysql/#downloads adresine gidiyoruz
2. Burada kurulumunu yapacağımız "Red Hat & Oracle Enterprise Linux" seçeneğini seçiyoruz.
3. 64 server ve client rpm ini indiriyoruz.
Bu kurulumda OEL üzerine şu an güncel olan MySQL 5.1.50 64 bit sürümünü kuruyoruz.
Download ettiğim dosyalar aşağıdaki gibidir.
MySQL-client-community-5.1.50-1.rhel5.x86_64.rpm
MySQL-server-community-5.1.50-1.rhel5.x86_64.rpm
* Yukarıdaki rpm dosyalarını, MySQL server kurmak istediğimiz sunucunun "tmp" klasörüne kopyalıyoruz.

* Bu aşamadan sonra sırasıyla server ve client rpm inin kurulumunu tamamlıyacağız.
Kurulum root user ı ile yapılmalıdır. Ayrıca linux işletim sisteminde küçük büyük harf ayrımı olduğu unutulmamalıdır.
Server kurulumu ile başlıyoruz.
[root@deneme tmp]# rpm -i MySQL-server-community-5.1.50-1.rhel5.x86_64.rpm

Bu komut çalıştırıldığında bir dizi olay arka planda gerçekleşmiştir.
1. Linux üzerinde mysql kullanıcı hesabı ve mysql grup hesabı oluşturulur.
2. MySQL dosyaları RPM paketinden çıkartılarak uygun klasörlere kopyalanır.
3. MySQL yönetimsel database ilk kullanıma hazırlanır.
4. MySQL ile alakalı klasörlerin sahiplik durumu düzenlenir.
5. MySQL server başlatılır.
6 MySQL server , her Linux restart ında otomatik çalışacak şekilde konfigure edilir.
Server kurulumunun tamamlanmasının ardından client kurulumuna geçilebilir.
[root@deneme tmp]# rpm -i MySQL-client-community-5.1.50-1.rhel5.x86_64.rpm
Bu noktada MySQL server kurulumu tamamlanmıştır.
Bu nedenle de linux, mysql kurulumu için en uygun ortam olmaktadır.
Burada kurulumu özellikle Oracle Enterprise Linux 5 üzerinde gerçekleştiriyorsakta
diğer linux dağıtımları için de prosedür aynıdır.
32 bir işletim sistemleri her proses için en çok 2.4 Gb memory ayırabilmektedir.
Bu nedenle pek çok kurulumda 64 bit işletim sistemi tercih edilmektedir.
Bizde burada 64 OEL dağıtımı üzerine MySQL server kurulumu tamamlıyor olacağız.
Linux üzerindeki MySQL server kurulumu için server ve client rpm paketlerinin kurulumu yeterlidir.
Kurulum aşağıdaki adımlardan oluşur.
* Gerekli RPM paketlerini bilgisayarımıza indiriyoruz.
1. http://dev.mysql.com/downloads/mysql/#downloads adresine gidiyoruz
2. Burada kurulumunu yapacağımız "Red Hat & Oracle Enterprise Linux" seçeneğini seçiyoruz.
3. 64 server ve client rpm ini indiriyoruz.
Bu kurulumda OEL üzerine şu an güncel olan MySQL 5.1.50 64 bit sürümünü kuruyoruz.
Download ettiğim dosyalar aşağıdaki gibidir.
MySQL-client-community-5.1.50-1.rhel5.x86_64.rpm
MySQL-server-community-5.1.50-1.rhel5.x86_64.rpm
* Yukarıdaki rpm dosyalarını, MySQL server kurmak istediğimiz sunucunun "tmp" klasörüne kopyalıyoruz.

* Bu aşamadan sonra sırasıyla server ve client rpm inin kurulumunu tamamlıyacağız.
Kurulum root user ı ile yapılmalıdır. Ayrıca linux işletim sisteminde küçük büyük harf ayrımı olduğu unutulmamalıdır.
Server kurulumu ile başlıyoruz.
[root@deneme tmp]# rpm -i MySQL-server-community-5.1.50-1.rhel5.x86_64.rpm

Bu komut çalıştırıldığında bir dizi olay arka planda gerçekleşmiştir.
1. Linux üzerinde mysql kullanıcı hesabı ve mysql grup hesabı oluşturulur.
2. MySQL dosyaları RPM paketinden çıkartılarak uygun klasörlere kopyalanır.
3. MySQL yönetimsel database ilk kullanıma hazırlanır.
4. MySQL ile alakalı klasörlerin sahiplik durumu düzenlenir.
5. MySQL server başlatılır.
6 MySQL server , her Linux restart ında otomatik çalışacak şekilde konfigure edilir.
Server kurulumunun tamamlanmasının ardından client kurulumuna geçilebilir.
[root@deneme tmp]# rpm -i MySQL-client-community-5.1.50-1.rhel5.x86_64.rpm
Bu noktada MySQL server kurulumu tamamlanmıştır.
17 Haziran 2010 Perşembe
ORACLE - SCN Nedir ? Ne işe yarar?
Sytem Change Number (SCN) sıralı bir biçimde artan, unique(benzersiz),
oracle database içerisinde tam olarak bir zamanı ifade eden, adı üstünde bir rakamdır.
Her transaction ın commit edilmesi ile beraber Oracle tarafından yeni bir SCN üretilir.
Oracle içerisinde, SCN isimli sıralı numaralar control file, datafile header ve redo kayıtlarında kullanır.
Her redo log dosyası bir log sequence numarası and low ve high SCN değerini içerir.
Low SCN kaydı ; log file içerisindeki en küçük SCN rakamını içerir.
High SCN kaydı ; log file içerisindeki en büyük SCN rakamını içerir.
Database NORMAL, TRANSACTIONAL, veya IMMEDIATE olarak kapatıldığında bütün
datafile header larına aynı SCN kaydedilir.
Bu numara(SCN) özellikle incomplete recovery sırasında çok kullanışlı olabilir.
Şu anki geçerli SCN değeri;
SELECT CURRENT_SCN FROM V$DATABASE;
veya
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAl;
sorgularıyla öğrenilebilir.
SCN , Flashback query ler içerisinde aşağıdaki şekilde kullanılabilir.
(Flashback query özelliği oracle 9i den itibaren kullanılmaya başlanmıştır.)
select *
from benim_tablo_adi
AS OF SCN 5713444761
where benim_id = 5
select *
from benim_tablo_adi
AS OF TIMESTAMP SYSDATE – 1/24;
where benim_id = 5
Aslında yukarıdaki iki query epey benzer query lerdir.
Çünkü her ikiside geçmiş bir zamandaki data kümesini
elde etmek amacındadır.
Yakından bakacak olursak aralarında önemli bir fark vardır.
İkinci sorgu her çalıştırmada farklı sonuç döndürebilir.
Fakat birinci sorgu eğer döndürebilirse hep aynı sonuç kümesini döndürür.
Döndürebilirse diyorum çünkü flashback konfigurasyonuna bağlı olarak
sadece 3 saat öncesini, 1 gün öncesini vs. flashback query ile görebilirsiniz.
Tabii bu storage, iş gereklilikleri, şirket politikaları vs. faktörlere bağlı
olarak oracle parametrelerinin düzenlenmesi ile olacaktır.
oracle database içerisinde tam olarak bir zamanı ifade eden, adı üstünde bir rakamdır.
Her transaction ın commit edilmesi ile beraber Oracle tarafından yeni bir SCN üretilir.
Oracle içerisinde, SCN isimli sıralı numaralar control file, datafile header ve redo kayıtlarında kullanır.
Her redo log dosyası bir log sequence numarası and low ve high SCN değerini içerir.
Low SCN kaydı ; log file içerisindeki en küçük SCN rakamını içerir.
High SCN kaydı ; log file içerisindeki en büyük SCN rakamını içerir.
Database NORMAL, TRANSACTIONAL, veya IMMEDIATE olarak kapatıldığında bütün
datafile header larına aynı SCN kaydedilir.
Bu numara(SCN) özellikle incomplete recovery sırasında çok kullanışlı olabilir.
Şu anki geçerli SCN değeri;
SELECT CURRENT_SCN FROM V$DATABASE;
veya
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAl;
sorgularıyla öğrenilebilir.
SCN , Flashback query ler içerisinde aşağıdaki şekilde kullanılabilir.
(Flashback query özelliği oracle 9i den itibaren kullanılmaya başlanmıştır.)
select *
from benim_tablo_adi
AS OF SCN 5713444761
where benim_id = 5
select *
from benim_tablo_adi
AS OF TIMESTAMP SYSDATE – 1/24;
where benim_id = 5
Aslında yukarıdaki iki query epey benzer query lerdir.
Çünkü her ikiside geçmiş bir zamandaki data kümesini
elde etmek amacındadır.
Yakından bakacak olursak aralarında önemli bir fark vardır.
İkinci sorgu her çalıştırmada farklı sonuç döndürebilir.
Fakat birinci sorgu eğer döndürebilirse hep aynı sonuç kümesini döndürür.
Döndürebilirse diyorum çünkü flashback konfigurasyonuna bağlı olarak
sadece 3 saat öncesini, 1 gün öncesini vs. flashback query ile görebilirsiniz.
Tabii bu storage, iş gereklilikleri, şirket politikaları vs. faktörlere bağlı
olarak oracle parametrelerinin düzenlenmesi ile olacaktır.
11 Haziran 2010 Cuma
Oracle Database Kurulumu Tavsiyeleri
Aşağıdaki öneriler tüm oracle database kurulumları için geçerli tavsiyeler
olmakla beraber, IFS özelinde bazı açıklamalar da eklemekte fayda görüyorum.
* Database server a Oracle dışında hiçbir uygulama kurmayın.
IFS Developer ı kendi bilgisayarınıza da kurabilirsiniz.
Gerekli yedekler ile ilgili bir politika oluşturduktan sonra başka
bir sorun oluşacağını düşünmüyorum.
Eğer developer dışı IFS software i kurulumuna ihtiyacınız var ise
başka bir server kullanın.
* Database server üzerinde dosya paylaşımı kullanmayın.
Kullanıcı dosyalarını oracle server oluşturduğunuz paylaşımlar
üzerinden sağlamanız duruma göre önemli miktarda; network bant genişliği kaybına ve
server io gereksinimi dolayısıyla performans sorunlarına yol açabilir.
ifs executable larına erişim dahil olmak üzere tüm share ihtiyacınızı oracle db server
dışı bir noktaya yönlendirin.
* Database server İşletim sistemi seviyesinde firewall ve antivirus kullanmayın.
Oracle database sunucunuzu fiziksel bir firewall arkasına alarak sadece belirli ip ve port yetkisi vermeniz yerinde olacaktır.
Örneğin tüm kullanıcılar 1521 portundan gelebilir ama ssh veya remote desktop sadece şu ip den gelebilir gibi.
* Mevcut sistem RAM inin %80 ini oracle a verin.
Gördüğüm IFS install larındaki oracle konfigurasyonları memory noktasında çok yanlış olabiliyor.
Mesela benim bire bir karşılaştığım bir durumda, server de 8 GB ram olmasına rağmen
oracle a 1 GB civarı ram verilmişti. Tabii bu "next" "next" diyerek oracle kurmaktan kaynaklanmakta :)
Tabii hal böyle olunce database ten performans beklememek lazım.
Ayrıca automatic memory managemet özelliğinin aktif olması da önemlidir.
Aksi taktirde tüm oracle memory sinin manual yönetimi gerekir.
Bu özellik 10g ve sonrasında mevcuttur.
Oracle db üzerindeki şu andaki mevcut ram durumunu aşağıdaki query ile veya oracle enterprise manager üzerinde "memory advisor" da
görebilirsiniz.
SGA total (değerler megabyte cinsinden)
-----------------------------------------
select round(sum(bytes)/1024/1024,2) total_sga,
round(sum(decode(name,'free memory',bytes,0))/1024/1024,2) free,
round((sum(decode(name,'free memory',bytes,0))/1024/1024)/(sum(bytes)/1024/1024)*100,2) free_per
from v$sgastat
PGA total (değerler megabyte cinsinden)
-----------------------------------------
select value/1024/1024 from v$pgastat where name = 'aggregate PGA target parameter'
* Oracle için işletim sistemi olarak mümkünse linux tercih edin.
Oracle ın linux üzerinde daha hızlı çalıştığı bilinen bir gerçektir. Ayrıca oracle linux üzerinde
geliştirildiğinden tum yeni versiyonlar ve güncellemeler öncelikle linux versiyonu olarak dağıtılır.
Evet "en iyi işletim sistemi bildiğin işletim sistemidir" cümlesine katılıyorum.
Fakat yeni fırsatlara da açık olmak gereklidir diye düşünüyorum.
Ayrıca kariyerini DBA olarak devam ettirmek isteyen herkes er yada geç linux ile tanışmak durumunda kalacaktır
desem yanlış olmaz heralde. Maliyetler nokatasında windows server lisans ücretleri de olayın başka bir tarafı.
Ayrıntılı karşılaştırma ve ekstra bilgi için aşağıdaki linkler faydalı olabilir.
http://www.dba-oracle.com/oracle_tips_linux_oracle.htm
http://www.oracle.com/us/technologies/linux/025994.htm
* 64 bit işletim sistemi kullanın.
32 bit sistemlerin bilinen kısıtlamalarına takılmamamak için 64 bit işletim sistemi tercih edin.
İyi çalışmalar.
olmakla beraber, IFS özelinde bazı açıklamalar da eklemekte fayda görüyorum.
* Database server a Oracle dışında hiçbir uygulama kurmayın.
IFS Developer ı kendi bilgisayarınıza da kurabilirsiniz.
Gerekli yedekler ile ilgili bir politika oluşturduktan sonra başka
bir sorun oluşacağını düşünmüyorum.
Eğer developer dışı IFS software i kurulumuna ihtiyacınız var ise
başka bir server kullanın.
* Database server üzerinde dosya paylaşımı kullanmayın.
Kullanıcı dosyalarını oracle server oluşturduğunuz paylaşımlar
üzerinden sağlamanız duruma göre önemli miktarda; network bant genişliği kaybına ve
server io gereksinimi dolayısıyla performans sorunlarına yol açabilir.
ifs executable larına erişim dahil olmak üzere tüm share ihtiyacınızı oracle db server
dışı bir noktaya yönlendirin.
* Database server İşletim sistemi seviyesinde firewall ve antivirus kullanmayın.
Oracle database sunucunuzu fiziksel bir firewall arkasına alarak sadece belirli ip ve port yetkisi vermeniz yerinde olacaktır.
Örneğin tüm kullanıcılar 1521 portundan gelebilir ama ssh veya remote desktop sadece şu ip den gelebilir gibi.
* Mevcut sistem RAM inin %80 ini oracle a verin.
Gördüğüm IFS install larındaki oracle konfigurasyonları memory noktasında çok yanlış olabiliyor.
Mesela benim bire bir karşılaştığım bir durumda, server de 8 GB ram olmasına rağmen
oracle a 1 GB civarı ram verilmişti. Tabii bu "next" "next" diyerek oracle kurmaktan kaynaklanmakta :)
Tabii hal böyle olunce database ten performans beklememek lazım.
Ayrıca automatic memory managemet özelliğinin aktif olması da önemlidir.
Aksi taktirde tüm oracle memory sinin manual yönetimi gerekir.
Bu özellik 10g ve sonrasında mevcuttur.
Oracle db üzerindeki şu andaki mevcut ram durumunu aşağıdaki query ile veya oracle enterprise manager üzerinde "memory advisor" da
görebilirsiniz.
SGA total (değerler megabyte cinsinden)
-----------------------------------------
select round(sum(bytes)/1024/1024,2) total_sga,
round(sum(decode(name,'free memory',bytes,0))/1024/1024,2) free,
round((sum(decode(name,'free memory',bytes,0))/1024/1024)/(sum(bytes)/1024/1024)*100,2) free_per
from v$sgastat
PGA total (değerler megabyte cinsinden)
-----------------------------------------
select value/1024/1024 from v$pgastat where name = 'aggregate PGA target parameter'
* Oracle için işletim sistemi olarak mümkünse linux tercih edin.
Oracle ın linux üzerinde daha hızlı çalıştığı bilinen bir gerçektir. Ayrıca oracle linux üzerinde
geliştirildiğinden tum yeni versiyonlar ve güncellemeler öncelikle linux versiyonu olarak dağıtılır.
Evet "en iyi işletim sistemi bildiğin işletim sistemidir" cümlesine katılıyorum.
Fakat yeni fırsatlara da açık olmak gereklidir diye düşünüyorum.
Ayrıca kariyerini DBA olarak devam ettirmek isteyen herkes er yada geç linux ile tanışmak durumunda kalacaktır
desem yanlış olmaz heralde. Maliyetler nokatasında windows server lisans ücretleri de olayın başka bir tarafı.
Ayrıntılı karşılaştırma ve ekstra bilgi için aşağıdaki linkler faydalı olabilir.
http://www.dba-oracle.com/oracle_tips_linux_oracle.htm
http://www.oracle.com/us/technologies/linux/025994.htm
* 64 bit işletim sistemi kullanın.
32 bit sistemlerin bilinen kısıtlamalarına takılmamamak için 64 bit işletim sistemi tercih edin.
İyi çalışmalar.
4 Haziran 2010 Cuma
IFS ortamının (Database,executable,develeoper vs) VMWARE üzerinde çalışır hale getirilmesi mümkün müdür?
Evet mümkündür. Bu şekilde çok ta işlevsel bir test sistemi oluşturulmuş olur.
Bazı firmaların production da bu tip sistemleri kullandığı da görülmedik bir şey değil LinkedIn gruplarından anladığım kadarı ile.
Tüm sistemin yedeğini almak için sanal makinayı kapatıp birkaç dosyanın kopyalanması çok cazip geliyor.
Örneğin 0-50 kullanıcı sayılı nispeten küçük database li bir production sistemi
bence vmware e de taşınabilir.
Taşıma işlemi aşağıdaki adımlardan oluşur.
1. Vmware üzerine, production da çalışan işletim sisteminin aynısı ve aynı versiyon oracle db kurulur.
Burada dikkat edilmesi gereken iki nokta vardır.
a. db create edilirken production daki oracle_sid neyse aynısını vermek gerekir.
b. Kurulan işletim sistemi ve oracle versiyonları production da kullanılanların aynısı olmalıdır.
2) Production ve vmware database kapatılır ve oracle dosyaları (datafile,redolog,controlfile vs) vmware üzerine aynı klasör yapısı ile kopyalanır.
3) Vmware üzerindeki database açılır ve IFS kurulum klasoru wmware içerisine kopyalanır ve install edilir.
4) Kullanılan exe, apx,api ne varsa onlar da aynı klasor yapısı ile vmware üzerine kopyalanır.
Bazı firmaların production da bu tip sistemleri kullandığı da görülmedik bir şey değil LinkedIn gruplarından anladığım kadarı ile.
Tüm sistemin yedeğini almak için sanal makinayı kapatıp birkaç dosyanın kopyalanması çok cazip geliyor.
Örneğin 0-50 kullanıcı sayılı nispeten küçük database li bir production sistemi
bence vmware e de taşınabilir.
Taşıma işlemi aşağıdaki adımlardan oluşur.
1. Vmware üzerine, production da çalışan işletim sisteminin aynısı ve aynı versiyon oracle db kurulur.
Burada dikkat edilmesi gereken iki nokta vardır.
a. db create edilirken production daki oracle_sid neyse aynısını vermek gerekir.
b. Kurulan işletim sistemi ve oracle versiyonları production da kullanılanların aynısı olmalıdır.
2) Production ve vmware database kapatılır ve oracle dosyaları (datafile,redolog,controlfile vs) vmware üzerine aynı klasör yapısı ile kopyalanır.
3) Vmware üzerindeki database açılır ve IFS kurulum klasoru wmware içerisine kopyalanır ve install edilir.
4) Kullanılan exe, apx,api ne varsa onlar da aynı klasor yapısı ile vmware üzerine kopyalanır.
18 Mayıs 2010 Salı
Flash Recovery Area büyüklüğü hatalı görünüyor. Nasıl doğru hale getirebilirim?
Bu sorun genellikle işletim sistemi seviyesinde backup/archivelog silinmesi veya donanım ağrızası sonucunda oluşur.
Sorunun nedeni ise RMAN in tuttuğu backup dosyaları ile ilgili datanın bir nedenle güncelliğini kaybetmiş olmasıdır.
RMAN komutlarından olan CROSSCHECK komutu daha onceden disk veya teybe alınmış olan backupset, image copy ve archived log dosyalarının kontrolü için kullanılır.
CROSSCHECK BACKUPSET; #backup parçalarını kontrol eder.
CROSSCHECK COPY; #datafile,control file, archived redo log ları kontrol eder.
CROSSCHECK archivelog all; #archivelog dosyalarini kontrol eder
CROSSCHECK komutu; işletim sistemi dosyalarını veya RMAN in tuttuğu dosyalar ile ilgili hatalı dataları silmez.
Sadece RMAN datasında bulunan, backup yada archive log dosyasının status/durum bilgisini günceller.
RMAN in varolan backup dosyaları ile ilgili tuttuğu datadan, artık diskte olmayan dosyaları kaldırmak için DELETE komutu kullanılır.
Expired backup veya copy lerin CROSSCHECK komutunun
çalıştırılması ardından silinmesi
***************************************************
CROSSCHECK komutu, kullanımına bağlı olarak RMAN repository(RMAN in backup, archivelog vs dosyalarını tuttuğu disk alanı) üzerinde kayıtlı
bulunan backup, archivelog vs. dosyalarının disk veya teyp üzerinde kontrol eder ve bulmadığı her dosyaya ait kendi tuttuğu
kaydı 'EXPIRED' olarak işaretler.
Daha sonra bu dosyaları RMAN repository den silmek için aşağıdaki komutlar kullanılır.
DELETE EXPIRED BACKUP;
DELETE EXPIRED COPY;
delete expired archivelog all;
Sorun : İşletim sistemi seviyesinde archive log dosyalarından bazılarını sildik. Flash Recovery Area büyüklüğü 50 gb fakat 80 gb gözüküyor.
Çözüm:
1.
RMAN>crosscheck archivelog all;
2.
RMAN>delete expired archivelog all;
veya aşağıdaki gibi script çalıştırılabilir.
V$BACKUP_FILES gorunumu RMAN repository de bulunan backup and copy lerini göstermektedir.
Diskte bulunan bütün backup ve copy lerin kontrolü ve RMAN repository düzeltmeleri için aşağıdaki script kullanılabilir.
run {
crosscheck backup;
crosscheck copy;
DELETE EXPIRED BACKUP;
DELETE EXPIRED COPY;
}
Sorunun nedeni ise RMAN in tuttuğu backup dosyaları ile ilgili datanın bir nedenle güncelliğini kaybetmiş olmasıdır.
RMAN komutlarından olan CROSSCHECK komutu daha onceden disk veya teybe alınmış olan backupset, image copy ve archived log dosyalarının kontrolü için kullanılır.
CROSSCHECK BACKUPSET; #backup parçalarını kontrol eder.
CROSSCHECK COPY; #datafile,control file, archived redo log ları kontrol eder.
CROSSCHECK archivelog all; #archivelog dosyalarini kontrol eder
CROSSCHECK komutu; işletim sistemi dosyalarını veya RMAN in tuttuğu dosyalar ile ilgili hatalı dataları silmez.
Sadece RMAN datasında bulunan, backup yada archive log dosyasının status/durum bilgisini günceller.
RMAN in varolan backup dosyaları ile ilgili tuttuğu datadan, artık diskte olmayan dosyaları kaldırmak için DELETE komutu kullanılır.
Expired backup veya copy lerin CROSSCHECK komutunun
çalıştırılması ardından silinmesi
***************************************************
CROSSCHECK komutu, kullanımına bağlı olarak RMAN repository(RMAN in backup, archivelog vs dosyalarını tuttuğu disk alanı) üzerinde kayıtlı
bulunan backup, archivelog vs. dosyalarının disk veya teyp üzerinde kontrol eder ve bulmadığı her dosyaya ait kendi tuttuğu
kaydı 'EXPIRED' olarak işaretler.
Daha sonra bu dosyaları RMAN repository den silmek için aşağıdaki komutlar kullanılır.
DELETE EXPIRED BACKUP;
DELETE EXPIRED COPY;
delete expired archivelog all;
Sorun : İşletim sistemi seviyesinde archive log dosyalarından bazılarını sildik. Flash Recovery Area büyüklüğü 50 gb fakat 80 gb gözüküyor.
Çözüm:
1.
RMAN>crosscheck archivelog all;
2.
RMAN>delete expired archivelog all;
veya aşağıdaki gibi script çalıştırılabilir.
run {
crosscheck archivelog all;
delete expired archivelog all;
}
V$BACKUP_FILES gorunumu RMAN repository de bulunan backup and copy lerini göstermektedir.
Diskte bulunan bütün backup ve copy lerin kontrolü ve RMAN repository düzeltmeleri için aşağıdaki script kullanılabilir.
run {
crosscheck backup;
crosscheck copy;
DELETE EXPIRED BACKUP;
DELETE EXPIRED COPY;
}
Kaydol:
Kayıtlar (Atom)