Anasayfa » Oracle 19C RAC Release Upgrade

Oracle 19C RAC Release Upgrade

oracle-release-upgrade

Bu yazımızda, Oracle 19C RAC Release Upgrade adımlarını ele alacağız. Oracle standart olarak 3 ayda bir Critical Patch Updates yayınlamaktadır. Bu patch ler oracle in tüm lisanslı ürünlerini kapsamakta olup ne zaman patch yayınlanacağı konusunda kullanıcılarına bir yol haritası vermektedir. Mevcut versiyondaki bir zaafiyet veya yeni bir özelliğin kullanılabilmesi bakımından database ekosistemimizin güncel olması önemlidir.

Yayınlanan ve yayınlanacak Critical Patch ler hakkında detaylı bilgi için tıklayınız.

Örnek Release Upgrade adımları için mevcut sistemimiz 2 node lu bir RAC sistemi: Grid versionu 19.12, database versionu 19.14 olup grid ve database versiyonunu 19.21 e upgrade edeceğiz. İşletim sistemim Solaris olup genel olarak diğer işletim sistemlerinde de aynı adımlarla PSU adımları uygulanır. Oracle Patch leri her işletim sistemine özel olarak yayınlamakta olup pathleri indirirken işletim sisteminizin bilgilerine göre patch dosyalarını indirmelisiniz. Patch dosyasını indirdikten sonra README.html adında ki dosya mutlaka okunmalıdır. Ayrıca upgrade öncesi mutlaka backup alınmalıdır.

Patch dosyalarımızı aşağıdaki linkten indiriyoruz.

PSU 19.21 Patch Set (35642822)

OPatch 12.2.0.1.40

Opatch Update

PSU için patch indirilip README incelendiğinde opatch versionu 12.2.0.1.37 ve üstü versiyon olması gerektiği için öncelikle opatch güncelliyoruz. Bu işlem için öncelikle yukarıdaki linkten opatch indirilip tüm nodelarda opatch version güncelliyoruz. Opatch upgrade işlemini, mevcuttaki opatch dosyasının ismini değiştirilip yeni indirdiğimiz dosyanın unzip edilmesi ile yapıyoruz.

  • Grid Opatch:
[rac1]@/u01/orainstall/19.21$ cp p6880880_190000_SOLARIS64.zip /u01/app/19.0/grid/
[rac1]@/u01/orainstall/19.21$ cd /u01/app/19.0/grid/
[rac1]@/u01/app/19.0/grid$ mv OPatch OPatch_old
[rac1]@/u01/app/19.0.0/grid$ unzip p6880880_190000_SOLARIS64.zip 
[rac1]@/u01/app/19.0.0/grid$ chown -R oracle:oinstall OPatch
  • Database Opatch:
[rac1]@/u01/orainstall/19.21$ cp p6880880_190000_SOLARIS64.zip /u01/app/oracle/product/19.0.0/dbhome_1/
[rac1]@/u01/orainstall/19.21$ cd  /u01/app/oracle/product/19.0.0/dbhome_1/
[rac1]@/u01/app/oracle/product/19.0.0/dbhome_1$ mv OPatch OPatch_old
[rac1]@/u01/app/oracle/product/19.0.0/dbhome_1$ unzip p6880880_190000_SOLARIS64.zip 
[rac1]@/u01/app/oracle/product/19.0.0/dbhome_1$ chown -R oracle:oinstall OPatch

Opatch version kontrolü: Opatch update sonrası mevcut version grid ve db için kontrol ediyoruz.

	[rac1]@/u01/app/19.0.0/grid$/OPatch$ ./opatch version
	OPatch Version: 12.2.0.1.40
	
	OPatch succeeded.

	[rac1]@/u01/app/oracle/product/19.0.0/dbhome_1/OPatch$ ./opatch version
	OPatch Version: 12.2.0.1.40
	
	OPatch succeeded.
  • Mevcut Patch Bilgisinin Kontrolü:

Upgrade yapmadan önce mevcut version bilgilerimizi kontrol ediyoruz.

[rac1]@/home/oracle$ /u01/app/19.0.0/grid/OPatch/opatch lspatches
32918050;TOMCAT RELEASE UPDATE 19.0.0.0.0 (32918050)
32916816;OCW RELEASE UPDATE 19.12.0.0.0 (32916816)
32915586;ACFS RELEASE UPDATE 19.12.0.0.0 (32915586)
32904851;Database Release Update : 19.12.0.0.210720 (32904851)
32585572;DBWLM RELEASE UPDATE 19.0.0.0.0 (32585572)
OPatch succeeded.
[rac1]@/home/oracle$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatch lspatches
29997937;RDBMS - DSTV34 UPDATE - TZDATA2019B
33529556;OCW RELEASE UPDATE 19.14.0.0.0 (33529556)
33515361;Database Release Update : 19.14.0.0.220118 (33515361)
	
OPatch succeeded.

NOT: Patch dosyamızı her iki node da /u01/orainstall/19.21 dizini altına atıyoruz. Sunucuya aktardığımız PSU dosyasını da oracle kullanıcısı ile unzip ediyoruz.

  • CheckConflictAgainstOHWithDetail Kontrolü:

Yüklenecek PSU ların mevcut yamalarla çakışmadığından emin olmak için prereq paketleri ile check işlemleri yapıyoruz. Oracle kullanıcı ile her sunucuda grid ve db için env ları set edip aşağıdaki şekilde çalıştırılmalıdır. Check sonuçlarında “OPatch succeeded.” olarak görmeliyiz eğer bir hata varsa kontrol edip düzeltmeden devam edilmemelidir.

Grid CheckConflictAgainstOHWithDetail :

oracle@rac1:~$ . .profile_crs
oracle@rac1:~$ /u01/app/19.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/35643107/
oracle@rac1:~$ /u01/app/19.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/35655527
oracle@rac1:~$ /u01/app/19.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/35652062
oracle@rac1:~$ /u01/app/19.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/35553096
oracle@rac1:~$ /u01/app/19.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/33575402

Database CheckConflictAgainstOHWithDetail :

oracle@rac1:~$ . .profile_db 
oracle@rac1:~$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatch  prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/35643107
oracle@rac1:~$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatch  prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/orainstall/19.21/35642822/35655527
  • CheckSystemSpace Kontrolü:

Bu adımda upgrade uygulanması için dosya sisteminde yeterli boş alan olup olmadığını kontrol ediyoruz. Check sonuçlarında “OPatch succeeded.” olarak görmeliyiz eğer bir hata varsa kontrol edip düzeltmeden devam edilmemelidir.

oracle@rac1:~$vi /u01/orainstall/19.21/patch_list_gihome.txt
			/u01/orainstall/19.21/35642822/35652062
			/u01/orainstall/19.21/35642822/33575402
			/u01/orainstall/19.21/35642822/35643107
			/u01/orainstall/19.21/35642822/35553096
			/u01/orainstall/19.21/35642822/35655527
			
oracle@rac1:~$ vi /u01/orainstall/19.21/patch_list_dbhome.txt
			/u01/orainstall/19.21/35642822/35643107
			/u01/orainstall/19.21/35642822/35655527
oracle@rac1:~$ . .profile_crs 
oracle@rac1:~$ /u01/app/19.0.0/grid/OPatch/opatch prereq CheckSystemSpace -phBaseFile /u01/orainstall/19.21/patch_list_gihome.txt
		
	
oracle@rac1:~$ . .profile_db 
oracle@rac1:~$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatch prereq CheckSystemSpace -phBaseFile /u01/orainstall/19.21/patch_list_dbhome.txt
  • PSU için Analyze kontrolü:

Güncellemeye geçmeden önce analyze parametresi ile işlem önizlemesi yapıyoruz. Root kullanıcı ile aşağıdaki komutu çalıştırıyoruz. Bu komut ile grid ve db için upgrade adımlarını tek tek kontrol edip uygulanabilirliğini detaylı kontrol eder.

root@rac1:/home/oracle# . .profile_crs
root@rac1:/home/oracle# /u01/app/19.0.0/grid/OPatch/opatchauto apply /u01/orainstall/19.21/35642822 -analyze

Buraya kadar henüz ugrade işlemi yapmadık. PSU için upgrade işlemlerinin yapılıp yapılamayacağı konusunda detaylı check adımlarını tamamladık. Yukarıdaki check adımlarımızda hata olarak çıktı verirse düzeltmeden bundan sonraki adımları uygulamamanız gerekmektedir.

PSU Upgrade

  • Node 1’de Database Kapatma ve Patch Uygulama

Oracle RAC ortamlarında kesintisiz upgrade geçişi (zero-downtime patching) için node-by-node yöntem tercih edilir. Böylece bir node üzerinde işlem yapılırken diğer node servis vermeye devam eder. PSU uygulama için oracle opatchauto ve opatch ile upgrade seçeneği sunmaktadır. Her bir upgrade içinde birden fazla One-off  bulunur yani her bir component için bir upgrade bulunur. Bu One-off  ları tek tek upgrade etmek için opatch kullanılır. Eğer tek tek uğraşmadan sırasıyla işlemleri oracle in yapmasını istersek opatchautou ‘yu kullanıyoruz. Arasındaki temel farkta bu şekildedir.

İlk node (rac1) üzerinde Database kapatılır, ardından root kullanıcısı ile Grid Infrastructure yaması uygulanır:

oracle@rac1:~$ . .profile_db 
oracle@rac1:~$ sqlplus / as sysdba
		
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 30 14:25:58 2024
Version 19.14.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
		
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0
SQL> shu immediate

Grid Patch: Root kullanıcısı ile aşağıdaki gibi upgrade işlemini yapıyoruz. İşlem süresi sistem kaynaklarınıza göre değişkenlik gösterebilmektedir.

oracle@rac1:~$ sudo su
root@rac1:/home/oracle# . .profile_crs 
root@rac1:/home/oracle# /u01/app/19.0.0/grid/OPatch/opatchauto apply /u01/orainstall/19.21/35642822 -oh /u01/app/19.0.0/grid

İşlem sonrasında aşağıdaki gibi bir çıktı almalısınız. Herhangi bir hata alırsanız loglardan kontrol edip hatayı düzeltmelisiniz.

.
.
.
.
.

==Following patches were SUCCESSFULLY applied:

Patch: /u01/orainstall/19.21/35642822/33575402
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

Patch: /u01/orainstall/19.21/35642822/35553096
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

Patch: /u01/orainstall/19.21/35642822/35643107
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

Patch: /u01/orainstall/19.21/35642822/35652062
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

Patch: /u01/orainstall/19.21/35642822/35655527
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

OPatchauto session completed at Tue May  7 21:29:32 2024
Time taken to complete the session 41 minutes, 37 seconds

Database Patch: Grid yaması tamamlandıktan sonra aynı node üzerinde (rac1) oracle kullanıcı ile Database için patch uygulanır.

oracle@rac1:~$ . .profile_db 
oracle@rac1:~$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatchauto apply /u01/orainstall/19.21/35642822/ -oh /u01/app/oracle/product/19.0.0/dbhome_1

İşlem sonrasında aşağıdaki gibi bir çıktı almalısınız. Herhangi bir hata alırsanız loglardan kontrol edip hatayı düzeltmelisiniz.

.
.
.
.
.

==Following patches were SUCCESSFULLY applied:

Patch: /u01/orainstall/19.21/35642822/35643107
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

Patch: /u01/orainstall/19.21/35642822/35655527
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-05-07_20-55-06PM_1.log

OPatchauto session completed at Tue May  7 21:29:32 2024
Time taken to complete the session 15 minutes, 20 seconds

Upgrade işlemini rollback yapmak istersek aşağıdaki komutları kullanabiliriz.

#Grid rollback
root@rac1:/home/oracle# /u01/app/19.0.0/grid/OPatch/opatchauto rollback /u01/orainstall/19.21/35642822 -oh /u01/app/19.0.0/grid

#Database rollback
oracle@rac1:~$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatchauto apply /u01/orainstall/19.21/35642822/ -oh /u01/app/oracle/product/19.0.0/dbhome_1

Patch işlemi tamamlandıktan sonra rac1 database i açıyoruz.

[oracle@rac1:~$ . .profile_db 
[oracle@rac1:~$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 26 11:23:07 2024
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup

Buraya Kadar Patch işlemlerini 1. node için tamamladık. Aynı işlem adımlarını 2. node içinde uyguluyoruz. 2. node içinde işlem tamamlandıktan sonra herhangi bir node dan datapatch komutunu çalıştırıyoruz. Bu işlem ile Oracle Database içinde patch ile gelen SQL düzeyindeki değişiklikler uygulanır. OPatch ile sadece yazılım dosyaları güncellenirken, datapatch veritabanı seviyesinde script çalıştırma, metadata güncelleme, registry güncelleme gibi işlemleri gerçekleştirir.

[oracle@rac1:~$ cd /u01/app/oracle/product/19.0.0/dbhome_1/OPatch
[oracle@rac1:~$ ./datapatch -verbose
  • Upgrade sonrası patch verisonlar kontrol ediyoruz:
[rac1]@/home/oracle$ /u01/app/oracle/product/19.0.0/dbhome_1/OPatch/opatch lspatches
		35655527;OCW RELEASE UPDATE 19.21.0.0.0 (35655527)
		35643107;Database Release Update : 19.21.0.0.231017 (35643107)
		
[rac1]@/home/oracle$ /u01/app/19.0/grid/OPatch/opatch lspatches
		35655527;OCW RELEASE UPDATE 19.21.0.0.0 (35655527)
		35652062;ACFS RELEASE UPDATE 19.21.0.0.0 (35652062)
		35643107;Database Release Update : 19.21.0.0.231017 (35643107)
		35553096;TOMCAT RELEASE UPDATE 19.0.0.0.0 (35553096)
		33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)

Yukarıda da görüldüğü üzere artık grid ve db 19.21 e release upgrade olmuş durumda.

Bu yazımızda Oracle 19C RAC Release Upgrade adımlarını ele aldık. Yazımızda 19.21 e node by node PSU geçip Oracle in HA avantajını kullanarak upgrade i tamamladık.

Oracle ile ilgili diğer yazılarımız için tıklayınız.

More Reading

Post navigation

Leave a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir