Cuma , 4 Mart 2016
Anasayfa / MAKALELER / Veri Tabanı / Oracle Database 12C Upgrade

Oracle Database 12C Upgrade

Merhaba Arkadaşlar,

Bu yazımda sizlere Oracle Veritabanının son sürümü olan Oracle 12c ye mevcut Test veritabanımın upgrade işlemini anlatacağım. Upgrade yapacağım database im Linux ortamında Oracle 11.2.0.4 ve bu database i aynı ortamda Oracle 12.1.0.1.0 a upgrade edeceğim.

upgrade1

Production ortamında bulunan databaseleri upgrade etmeden önce muhakkak daha önceden minimum 1 defa detaylı bir şekilde test edilmelidir. Hele de bu upgrade işlemi 10g den 11g ye yada 11g den 12c ye major bir upgrade ise test işleminin detaylı bir şekilde yapılması gerekmektedir. Yapmanız gereken minimum testler aşağıdaki gibi olmalıdır.

1- Upgrade yöntemi belirlenir. Mevcutta kullanılan Upgrade yöntemleri aşağıdaki gibidir.

a-Manuel Upgrade: Upgrade için gerekli scriptleri adım adım çalıştırarak yapılan yöntemdir en tehlikeli yöntemdir çünkü tüm kontrol DBA in elindedir ve en ufak bir hata çok şeye mal olabilir o yüzden tavsiye etmem :)

b-Datapump Upgrade: Bu yöntem genelde farklı işletim sistemine upgrade edilmesi gereken sistemlerde(Ör: Production ortamı Linux iken Upgrade ortamının IBM AIX olarak istenmesi durumunda) kullanılır.

c- DBUA ( Database Upgrade Assistant ) ile Upgrade: En sık kullanılan ve en güvenilir diyebileceğim upgrade yöntemidir. Oracle ın sunduğu Grafiksel arayüzle upgrade işlemi gerçekleştirilir. Ben bu yazımda bu yöntemle upgrade yapacağım.

2- Production ortamıyla donanım ve işletim sistemi olarak aynı veya daha gelişmiş özelliklere sahip sunucu üzerinde Upgrade için belirlenen versiyondaki Oracle database i kurulur ve hangi yöntemle upgrade işlemini gerçekleştirecekse o yöntemle upgrade işlemi yapılır.

3- Upgrade yapıldıktan sonra veritabanına bağlı olan uygulama yeni ortama yönlendirilir ve uygulama testleri yapılır. Uygulamanın tüm modüllerinin sorunsuz çalıştığı teyit edilir.

4- 3.Adımda bir problemle karşılaşılırsa bu problemler araştırılır eğer bu bir bug ise problemle ilgili Patch çıkmış ise bu Patch uygulanır yoksa Oracle Support dan SR açıp destek istenir.

5- Upgrade geçişi için kesinti süresi hesaplanır. Bu kesinti eğer fazla ise süreyi düşürebilecek yollar aranır.

6- Upgrade edilecek veritabanında RAT (Real Application Testing özelliği) ile SQL Performance Analyzer (SPA) ve Database Replay özellikleri kullanılarak veritabanında Performance Testleri yapılır ve performansı kötü olan uygulamanın sürekli kullandığı sorgular düzeltilmeye çalışılır.

7- Son olarak Veritabanı üzerinde Canlıda çalışan veritabanı üzerindeki yük benzeri bir yük oluşturarak Upgrade veritabanı üzerinde Yük testi yapılır. Yük testi sırasında yeni sunucunun CPU ve Memory sinin ve yeni version database in gelen yüke karşılık verdiği tepkiye bakılarak karar verilir.

Yukarda saymış olduğum maddeler Production bir sistemin upgrade i sırasında mutlaka en az 1 defa çok kritik olan veritabanlarındaysa 2 defa test edilmesi önerilir.

Şimdi ben upgrade için Test veritabanımın bulunduğu Linux sunucu üzerinde farklı bir Oracle Home da Oracle Database 12c Software i kurdum. Bu kurulumu burda anlatmayacağım isteyenler önceki yazıma bakabilirler.

Yukardaki tüm testlerin yapıldığını varsayaraktan Upgrade işlemini başlatacağım. Oracle 11g kurulu olan sunucuma Oracle 12c Software i kurduktan sonra DBUA (Database Upgrade Assistant) tool u ile mevcut Oracle 11.2.0.4 (şaşırabilirsiniz 11.2.0.4 varmıydı diye ama Sadece Linux sunucularda Oracle 11.2.0.4 versiyonu çıktı IBM AIX, HP-UX ortamları için yok bu sürüm) veritabanını Oracle 12c ye upgrade edeceğim.

Upgrade öncesi 11g veritabanına bağlanıp veritabanı ismini ve versiyonunu aşağıdaki gibi sorguluyorum. Upgrade bittikten sonrada çalıştırıp upgrade işleminin tamamlandığını göstereceğim.

bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Nov 17 10:07:24 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
POCDB
SQL> select version from v$instance;
VERSION
-----------------
11.2.0.4.0
SQL>

Bunun için linux komut satırından Oracle Environment ı set ettikten sonra aşağıdaki gibi DBUA Toolunu çalıştırıp upgrade işlemine başlıyorum. Sunucumda Bulunan 12cProfile_db adlı Oracle Environment ın içeriği aşağıdaki gibidir.

bash-4.1$ vim 12cProfile_db
ORACLE_HOSTNAME=Kuheylan; export ORACLE_HOSTNAME
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.0.1; export ORACLE_HOME
ORACLE_SID=POCDB; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit - p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

Kurulumu adım adım yapacağım lütfen adımları atlamayın.

Adım -1: DBUA Tool ununu Komut satırından başlatıyorum.

bash-4.1$ . 12cProfile_db
 bash-4.1$ dbua

Adım -2: Açılan Upgrade Ekranından Upgrade Oracle Database seçeneğini seçip Next butonu ile ilerliyoruz.

upgrade2

Adım -3: Bu adımda Upgrade yapılacak database seçilir.

upgrade3

Adım -4: Bu adımda Oracle Upgrade için bazı kontroller yapıyor bir sıkıntı olmadığı için Next deyip ilerliyorum.

upgrade4

Adım -5:  Bu adımda Upgrade yapılacak seçenekler sunuluyor adım adım bu seçenekleri anlatacağım.

1.seçenekte Upgrade işlemini kaç paralelle gerçekleştirileceğimizi seçiyoruz. Burada sunucunun sahip olduğu CPU sayısına göre parallelliği belirlememiz gerekiyor. Kıstas ise şu olmalı Sunucu CPU Sayısı >= Paralellik sayısı.

2.seçenekte ise Upgrade yaparken Invalid durumuna düşecek olan Objeleri Upgrade bittikten sonra yeniden Derleyeyim mi diye soruyor Oracle. Biz burda evet diyerek ve bu işlem için de paralellik sayısını verip checkbox ı seçili bırakıyoruz.

3. Seçenekte ise Upgrade Time zone seçeneğini boş bırakıyorum çünkü Time zone kolay kolay değişmez. Upgrade yapmak için sunucuyu Ankaradan, istanbuldan kaldırıp Amerikaya taşıyacak halimiz yok ya :)

4. Seçenekte ise Upgrade öncesi istatistik toplamayı seçili bırakıyoruz. Upgrade öncesi istatistik toplamamız iyi olur fakat veriniz 1-2 TB üstü ise istatistik toplamayla geçen süreyide hesaba katmak gerekiyor buda Upgrade i uzatacaktır.

5. seçenekte ise Upgrade işlemi sırasında kullanıcıların Tablespace lerinin Read Only moda getirililip getirilmemesini teklif ediyor bu seçenek sizin iş durumunuza göre değişecektir ben seçmedim.

6.Seçenekte ise Upgrade için Diagnostic ve Audit File location ını seçmemizi istiyor ben default gelen path i değiştirmeyip ilerliyorum.

upgrade5

Adım -6:  Bu adımda 5.Adımda upgrade öncesi yada sonrası çalıştırmak istediğiniz scriptleri belirtebilirsiniz.

upgrade6

Adım -7: Bu adımda Enterprise manager yada Cloud control kullanıyorsanız bunları yeniden konfigüre edebilirsiniz ben seçmedim ve devam ettim.

upgrade7

Adım -8: Bu adımda Veritabanı dosyalarınızı(Datafiles,Controlfiles,Redo log Files vsvs..) ve Fast Recovery Area dediğimiz FRA alanını da Upgrade sırasında taşıyabilirsiniz bunun için Path leri girmeniz gerekmektedir ben bunu tercih etmediğim için seçmeden ilerledim.

upgrade8

Adım -9: Bu adımda upgrade olacak database in Listener ını seçiyoruz.

upgrade9

Adım -10: Bu adımda Upgrade sırasında bir problem olduğu takdirde geri dönebilmesi için bir Backup alıp almayacağını soruyor. Eğer gerek duymuyorsanız benim gibi 2.seçeneği seçip benim kendi backup-recovery stratejim var deyip ilerlersiniz.

upgrade10

Adım -11: Bu adımda Upgrade işlemi öncesi neler yapılacağı özet biçimde sunulmuş burda son kontrolleri yapıp  Finish de yapabilirsiniz eğer bi hata görüyorsanız geride dönebilirsiniz  ben finish deyip ilerliyorum.

upgrade11

upgrade12

Adım -12: Son olarak Upgrade sırasında hiçbir hata yapmadığımız için Upgrade işlemimiz başarılı bir şekilde gerçekleşiyor.

upgrade13

Adım -13: İlk adımdan önce Veritabanının upgrade öncesi adını ve versiyonunu sorgulamıştık şimdi  Upgrade sonrası tekrar aynı sorguları çektiğimizde veritabanın başarılı bir şekilde upgrade olduğunu görebilirsiniz.

bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sun Nov 17 17:39:21 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
POCDB
SQL> select version from v$instance;
VERSION
-----------------
12.1.0.1.0
SQL>

Böylece bir yazımın daha sonuna gelmiş bulunmaktayım bir sonraki yazıda görüşmek dileğiyle şimdilik esen kalın..

Mehmet Salih Deveci

Oracle Veritabanı Yöneticisi

Mehmet Salih Deveci

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünden 2011 yılında mezun oldu. C#, ASP.NET ve Oracle, SQL Server Veritabanları Teknolojileri Alanlarında Çalışmalarını Sürdürmektedir. Şuan Türk Telekom A.Ş de Veritabanı Yöneticisi olarak Kariyerini Sürdürmektedir.

Latest posts by Mehmet Salih Deveci (see all)

Hakkında Mehmet Salih Deveci

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünden 2011 yılında mezun oldu. C#, ASP.NET ve Oracle, SQL Server Veritabanları Teknolojileri Alanlarında Çalışmalarını Sürdürmektedir. Şuan Türk Telekom A.Ş de Veritabanı Yöneticisi olarak Kariyerini Sürdürmektedir.

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*