OCR (Oracle Cluster Registry), RAC cluster’ının yapılandırma bilgisini tutar: database, servis, listener ve resource kayıtları. Bu yazıda 2 node’lu bir Oracle 19c RAC’ta (oraclius1, oraclius2) OCR’ı EXTERNAL redundancy’li OCR disk group’tan HIGH redundancy’li VOTE disk group’a taşıyoruz. Ayrıca -replace komutunun neden PROT-28 hatası verdiğini ve doğru yöntemi gösteriyorum.
OCR ile Voting Disk Arasındaki Fark
| Voting Disk | OCR | |
|---|---|---|
| Taşıma komutu | crsctl replace votedisk | ocrconfig -add ve ocrconfig -delete |
| Kopya sayısı | Disk group’un redundancy tipi belirler | Siz belirlersiniz (en fazla 5 konum) |
| Çalıştıran kullanıcı | root | root |
Voting disk’te kopya sayısı disk group’tan otomatik gelir. OCR’da ise her ek kopya, ocrconfig -add ile eklediğiniz ayrı bir konumdur.
Mevcut Durum
OCR şu an tek konumda, +OCR disk group’ta. ocrcheck‘i root ile çalıştırın, böylece mantıksal bozulma kontrolü de yapılır:
# root olarak
/u01/app/19/grid/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84316
Available space (kbytes) : 407368
ID : 1780929620
Device/File Name : +OCR
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Birinci konum dolu, diğer dört konum not configured. ocrcheck‘i root yerine oracle kullanıcısıyla çalıştırırsanız son satırda Logical corruption check bypassed due to non-privileged user uyarısı çıkar.
Disk group’ların durumu:
asmcmd lsdg
State Type ... Total_MB Free_MB Req_mir_free_MB Usable_file_MB ... Voting_files Name
MOUNTED EXTERN ... 10236 7188 0 7188 ... N DATA/
MOUNTED EXTERN ... 14332 13952 0 13952 ... N OCR/
MOUNTED HIGH ... 7168 6456 2048 1469 ... Y VOTE/
VOTE disk group’un failgroup yapısı:
asmcmd lsdsk -k -G VOTE
VOTE içinde 7 disk ve 7 ayrı failgroup (FAIL_V1 … FAIL_V7) var. HIGH redundancy’de ASM her dosyayı 3 kopya olarak farklı failgroup’lara yazar.
Taşıma Öncesi Kontroller
1. Hedef disk group’ta yeterli alan var mı?
OCR için yaklaşık 480 MB alan ayrılır (Total space değeri). HIGH redundancy’de bu alan 3 kopya yazıldığı için ham Free_MB yanıltıcıdır. Usable_file_MB sütununa bakın, bu değer mirror kopyalarını ve Req_mir_free_MB rezervini zaten hesaba katar. Burada VOTE için 1469 MB kullanılabilir alan var, yeterli.
2. Disk group iki node’da da mount mu?
srvctl status diskgroup -diskgroup VOTE
3. compatible.asm değeri uygun mu?
asmcmd lsattr -G VOTE -l compatible.asm
Değer en az 11.2 olmalıdır. 19c kurulumda genellikle sorun çıkmaz.
4. OCR yedeği alın
# root olarak
/u01/app/19/grid/bin/ocrconfig -manualbackup
/u01/app/19/grid/bin/ocrconfig -showbackup
OCR bozulursa ocrconfig -restore ile bu yedekten dönersiniz.
Neden ocrconfig -replace Çalışmıyor? (PROT-28)
OCR tek konumdayken doğrudan değiştirmeyi denerseniz şu hatayı alırsınız:
/u01/app/19/grid/bin/ocrconfig -replace +OCR -replacement +VOTE
PROT-28: Cannot delete or replace the only configured Oracle Cluster Registry location.
Oracle, tek OCR konumunun silinmesine veya değiştirilmesine izin vermez. Çözüm: önce yeni konumu ekleyin, sonra eskisini silin.
OCR’ı +OCR’dan +VOTE’a Taşıma
Tüm komutlar root ile, cluster açıkken çalıştırılır. Cluster’ı kapatmanız gerekmez.
Adım 1: Yeni konumu ekleyin
/u01/app/19/grid/bin/ocrconfig -add +VOTE
/u01/app/19/grid/bin/ocrcheck
ocrcheck çıktısında iki konum görünmelidir: +OCR ve +VOTE, ikisi için de integrity check succeeded.
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84340
Available space (kbytes) : 407344
ID : 1780929620
Device/File Name : +OCR
Device/File integrity check succeeded
Device/File Name : +VOTE
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check succeeded
Adım 2: Eski konumu silin
/u01/app/19/grid/bin/ocrconfig -delete +OCR
/u01/app/19/grid/bin/ocrcheck
Artık Device/File Name olarak sadece +VOTE görünmelidir. Bu sırayla ilerlediğiniz için OCR hiçbir anda korumasız kalmaz.
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84340
Available space (kbytes) : 407344
ID : 1780929620
Device/File Name : +VOTE
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check succeeded
Adım 3: Sonucu doğrulayın
Her iki node’da da kontrol edin:
cat /etc/oracle/ocr.loc
/u01/app/19/grid/bin/ocrcheck
crsctl check cluster -all
ocr.loc dosyasında ocrconfig_loc=+VOTE yazmalı, ocrcheck iki node’da da aynı sonucu vermeli, cluster bileşenleri online olmalıdır.
OCR’ı Multiplex Etme (İsteğe Bağlı)
HIGH redundancy, OCR dosyasını VOTE içinde 3 kopya olarak tutar ve iki failgroup kaybına kadar korur. Ancak OCR hâlâ tek bir disk group’tadır; VOTE disk group tamamen kaybedilirse OCR de gider. Bu riske karşı ayrı bir disk group’a ek konum ekleyebilirsiniz:
/u01/app/19/grid/bin/ocrconfig -add +DATA
/u01/app/19/grid/bin/ocrcheck
ocrcheck çıktısında +VOTE ve +DATA olmak üzere iki konum görünür. Toplam 5 konuma kadar ekleme yapılabilir ve her konum ayrı bir disk group olmalıdır. Konum silmek için:
/u01/app/19/grid/bin/ocrconfig -delete +DATA
Artık birden fazla konum olduğu için ocrconfig -replace <eski> -replacement <yeni> komutu da çalışır, ama -add ve -delete ikilisi her adımı ayrı doğrulamanıza izin verdiği için daha güvenlidir.
Eski Disk Group’u Silmeden Önce
OCR disk group’u silmeyi planlıyorsanız içinde başka Grid bileşeni kalmadığından emin olun. En sık unutulanlar ASM spfile, ASM password file ve OCR yedekleridir.
asmcmd spget
asmcmd pwget --asm
Çıktıdaki yol +OCR ile başlıyorsa taşıyın (yolları kendi çıktınızdan alın, aşağıdakiler örnektir):
asmcmd spmove <eski_spfile_yolu> +VOTE/spfileASM.ora
asmcmd pwmove --asm <eski_pwfile_yolu> +VOTE/orapwASM
OCR yedek konumunu da kontrol edin:
/u01/app/19/grid/bin/ocrconfig -showbackup
Yedekler eski disk group’ta tutuluyorsa ocrconfig -backuploc <yeni_konum> ile yeni bir konuma alın.
Dikkat Edilecekler
- OCR komutları
rootile çalıştırılır ve cluster açıkken online yapılır. - Taşıma öncesi
ocrconfig -manualbackupalmayı unutmayın. - Disk group’un yeterli alanını
Free_MBdeğilUsable_file_MBile kontrol edin. ocrcheckçıktısını her iki node’da kontrol edin.- İşlemi önce test ortamında deneyin, production’da bakım penceresinde yapın.
Sıkça Sorulan Sorular
OCR taşımak için cluster’ı kapatmak gerekir mi?
Hayır, ocrconfig -add ve -delete cluster açıkken online çalışır.
ocrconfig -replace neden PROT-28 hatası veriyor?
OCR tek konumda tutuluyorsa Oracle o konumun silinmesine veya değiştirilmesine izin vermez. Önce -add ile yeni konumu ekleyip sonra -delete ile eskisini silmelisiniz.
OCR’ı HIGH redundancy disk group’a koymak yeterli mi?
Disk ve failgroup kayıplarına karşı korur ama disk group’un tamamının kaybına karşı korumaz. Bunun için farklı bir disk group’a ek OCR konumu ekleyin.
OCR için en fazla kaç konum eklenebilir?
5. Her biri ayrı bir disk group olmalıdır.
Sonuç
OCR tek konumdayken ocrconfig -replace ile taşınamaz, PROT-28 hatası verir. Doğru yöntem önce ocrconfig -add ile yeni disk group’u eklemek, ocrcheck ile doğrulamak ve ardından ocrconfig -delete ile eski konumu silmektir. Taşıma sonrası ocrcheck‘i her iki node’da çalıştırmayı unutmayın.






Bir yanıt yazın