23 Temmuz 2015 Perşembe

Oracle 11gR2 Rac veritabanının 12C'ye upgrade edilmesi


Merhaba, bu yazımda İki node'lu Oracle 11.2.0.3 RAC veritabanının 12.1.0.2 versiyonuna upgradeini anlatmaya çalışacağım.
Bu upgrade işlemini iki adımda gerçekleştireceğiz. İlk adımda oracle grid yazılımının upgrade'ini yaparken ikinci adımda oracle database tarafının upgradeini yapacağız.
http://docs.oracle.com/database/121/UPGRD/preup.htm#BABHGECA dökümanından fayadalanarak upgrade adımlarını detaylı şekilde inceleyebilirsiniz. Oracle database versiyonumuz, 12c sürümüne tek hamlede geçiş yapıp yapamayacağımız konusunda önemli. Bu yüzden Db upgrade path'i incelememizde fayda var. Aşağıdaki şemada 12c'ye geçiş için database'imizi bir ara versiyona yükseltmemiz gerekiyor mu kontrol ediyoruz. Benim Database versiyonum 11.2.0.3 (>11.2.0.2) olduğu için 12'ye direkt upgrade işlemini gerçekleştirebilirim..


edelivery.oracle.com'dan oracle 12.1.0.2 grid yazılımını download ediyoruz. Rac sistem upgradeini rolling/non-rolling methodlarla yapabiliriz, biz rolling upgrade yapacağız, bu sayede bir node üzerinde upgrade işlemi yapılırken diğer node hizmet vermeye  edecektir. Upgrade işlemlerine başlamadan önce backuplarımızı alıyoruz. Yolunda gitmeyen bir durumda geri dönüşümüzü kolaylaştıracaktır.
Grid yazılımını indirdikten sonra nodelar üzerinde gerekli dizinleri oluşturuyoruz. Dizinleri oluşturduktan sonra ise 12c grid yazılımını kuracağız. Bu dizinleri RAC sistemimizin çalıştığı iki sunucu üzerinde de oluşturuyoruz.

# mkdir -p /u01/app/12.1.0.2/grid
# mkdir -p  /u01/app/grid12c
Kuruluma başlamadan önce ilgili OS user için aşağıdaki environment değişkenlerini unset ediyoruz.

# unset ORACLE_HOME
# unset ORACLE_BASE
# unset ORACLE_SID
# unset ORA_CRS_HOME

Daha sonra indirdiğimiz dosyaları unzip ile açarak ./runInstaller komutunu çalıştırıyoruz ve kurulum başlıyor.

İlk ekranda karşımıza gelen seçeneklerden Upgrade Oracle grid And ASM seçeneğini işaretliyoruz. Yeni bir grid home üzerine 12c yazılımını kurduktan sonra upgrade scriptlerini çalıştırarak kurulum sonrası upgrade işlemini de gerçekleştirmiş olacağız.



Daha sonra gelen ekranda dil seçimi yaptıktan sonra next dediğimizde karşımıza RAC sistemimizin koştuğu nodelar gelecektir. Hali hazırda çalışan bir database'imiz olduğu için büyük ihtimalle SSH connectivity nodelar arasında sağlanmış durumdadır. 


Management için Oracle Enterprise Manager kullanıyorsak yukarıdaki ekran yardımıyla yeni kurduğumuz grid yazılımını EM'e register edebiliriz.


Kurulumdan önce yarattığımız yeni dizinleri yeni yazılımın kurulacağı lokasyonlar olarak belirliyoruz.


Kurulum öncesi gereksinimler kontrol ediliyor, fixable olanlar için bize otomatik olarak parametre vb değerlerin değiştirilebileceği bir script yaratıyor bu scripti çalıştırarak varsa düzeltmemiz gereken bir değer kolayca düzeltebiliyoruz.

Ve yukarıdaki özet sayfasını geçtikten sonra kurulum başlıyor. 

Son adımda kurulum yaptığımız tüm nodelar üzerinde sırasıyla root userı ile rootupgrade.sh scriptini çalıştırıyoruz..Script sorunsuz bir şekilde çalıştığı zaman çıktısı aş. gibidir.

root@db01-test app# sh /u01/app/12.1.0.2/grid/rootupgrade.sh 
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= crs
    ORACLE_HOME=  /u01/app/12.1.0.2/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n) 
[n]: 
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) 
[n]: 
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) 
[n]: 

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/12.1.0.2/grid/crs/install/crsconfig_params
2015/07/22 15:20:37 CLSRSC-4015: Performing install or upgrade action for Oracle Trace File Analyzer (TFA) Collector.

2015/07/22 15:21:12 CLSRSC-4003: Successfully patched Oracle Trace File Analyzer (TFA) Collector.

2015/07/22 15:21:17 CLSRSC-464: Starting retrieval of the cluster configuration data

2015/07/22 15:21:30 CLSRSC-465: Retrieval of the cluster configuration data has successfully completed.

2015/07/22 15:21:43 CLSRSC-515: Starting OCR manual backup.

2015/07/22 15:21:47 CLSRSC-516: OCR manual backup successful.

2015/07/22 15:21:53 CLSRSC-468: Setting Oracle Clusterware and ASM to rolling migration mode

2015/07/22 15:21:53 CLSRSC-482: Running command: '/u01/app/12.1.0.2/grid/bin/asmca -silent -upgradeNodeASM -nonRolling false -oldCRSHome /u01/app/11.2.0/grid -oldCRSVersion 11.2.0.3.0 -nodeNumber 1 -firstNode true -startRolling true'


ASM configuration upgraded in local node successfully.

2015/07/22 15:22:08 CLSRSC-469: Successfully set Oracle Clusterware and ASM to rolling migration mode

2015/07/22 15:22:08 CLSRSC-466: Starting shutdown of the current Oracle Grid Infrastructure stack

2015/07/22 15:24:26 CLSRSC-467: Shutdown of the current Oracle Grid Infrastructure stack has successfully completed.

OLR initialization - successful
2015/07/22 15:30:33 CLSRSC-329: Replacing Clusterware entries in file '/etc/inittab'

CRS-4133: Oracle High Availability Services has been stopped.
CRS-4123: Oracle High Availability Services has been started.
2015/07/22 15:38:06 CLSRSC-472: Attempting to export the OCR

2015/07/22 15:38:06 CLSRSC-482: Running command: 'ocrconfig -upgrade crs oinstall'

2015/07/22 15:38:33 CLSRSC-473: Successfully exported the OCR

2015/07/22 15:38:40 CLSRSC-486: 
 At this stage of upgrade, the OCR has changed.
 Any attempt to downgrade the cluster after this point will require a complete cluster outage to restore the OCR.

2015/07/22 15:38:40 CLSRSC-541: 
 To downgrade the cluster: 
 1. All nodes that have been upgraded must be downgraded.

2015/07/22 15:38:40 CLSRSC-542: 
 2. Before downgrading the last node, the Grid Infrastructure stack on all other cluster nodes must be down.

2015/07/22 15:38:40 CLSRSC-543: 
 3. The downgrade command must be run on the node db01-test with the '-lastnode' option to restore global configuration data.

2015/07/22 15:39:11 CLSRSC-343: Successfully started Oracle Clusterware stack

clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully taken the backup of node specific configuration in OCR. 
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
2015/07/22 15:39:41 CLSRSC-474: Initiating upgrade of resource types

2015/07/22 15:40:10 CLSRSC-482: Running command: 'upgrade model  -s 11.2.0.3.0 -d 12.1.0.2.0 -p first'

2015/07/22 15:40:10 CLSRSC-475: Upgrade of resource types successfully initiated.

2015/07/22 15:40:17 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded


Upgrade işlemi tamamlandıktan sonra sqlplus ile DB'ye bağlanıp ASM versiyonunu kontrol edebiliriz;

oracle@db01-test ~$ sqlplus / as sysdba
SQL> select software_version from v$asm_client;
SOFTWARE_VERSION
------------------------------------------------------------
12.1.0.2.0

Cluster upgrade tamamlandıktan sonra şimdi databasein kendisini upgrade edeceğiz. DB tarafında upgrade için Database Upgrade Assistant (DBUA), Manual Upgrade, Export/Import, Data Copying, Golden Gate gibi farklı yöntemler kullanılabilir. Ben upgrade işlemini out of place ve DBUA yöntemi ile gerçekleştirdim. Out of place upgrade yapılacağı için ilk adımda oracle database 12.1.0.2 sürümünü yeni oluşturacağımız bir dizine kuruyoruz.

# mkdir  /u01/app/oracle/product/12.1.0.2/db_2
12C için oracle home dizinini yarattıktan sonra kurulum dosyasını oracle user'ı ile unzip edip ./runInstaller'ı çalıştırıyoruz.


Sadece Database yazılımını yükleyip herhangi bir database oluşturmayacağımız için install software db only seçeneğiyle devam ediyoruz.
 Sistemimiz RAC olduğu için Oracle Rac kurulumunu seçiyoruz.

 Cluster sistem üzerinde db yazılımının kurulacağı nodeları bu sekmede seçiyoruz, ssh connectivity sayesinde dosyalar diğer node'a kopyalanacaktır.

 Oracle 12C sürümü için yeni yarattığımız oracle home dizinini kurulum dizini olarak belirliyoruz ve devam ediyoruz.

Gelen summary ekranından sonra kurulum başlıyor ve her iki node üzerinde root.sh scriptlerinin çalıştırılmasıyla 12C kurulumunu tamamlamış oluyoruz.

Bu aşamadan sonra yapacağımız işlem 11.2.0.3 sürümünde çalışan databaseimizin yeni kurduğumuz 12.1.0.2 versiyonu üzerinde çalışmasını sağlamaktır.

İlk olarak preupgrade scriptini çalıştırarak databasein upgrade için hazır olup olmadığı hakkında bir rapor üretiyoruz. preupgrade.sql scripti yeni kurulan oracle'ın home dizininde rdbms/admin/ altındadır. 11.2.0.3 instance'ımıza sqlplus ile bağlanıyoruz ve bu scripti çalıştırıyoruz. Script çalıştırıldıktan sonra oluşturulan checklist dosyasının dizinini de bize veriyor. Bu dosyadaki upgrade öncesi hazırlıklarına gözatıyoruz.

SQL> @preupgrd.sql
Loading Pre-Upgrade Package...
***************************************************************************
Executing Pre-Upgrade Checks in ORCL...
***************************************************************************
      ************************************************************
  ====>> ERRORS FOUND for ORCL <<====

 The following are *** ERROR LEVEL CONDITIONS *** that must be addressed
   prior to attempting your upgrade.
   Failure to do so will result in a failed upgrade.

  You MUST resolve the above errors prior to upgrade

      ************************************************************

      ************************************************************

      ====>> PRE-UPGRADE RESULTS for ORCL <<====

ACTIONS REQUIRED:

1. Review results of the pre-upgrade checks:
 /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/preupgrade.log

2. Execute in the SOURCE environment BEFORE upgrade:
 /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/preupgrade_fixups.sql

3. Execute in the NEW environment AFTER upgrade:
 /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/postupgrade_fixups.sql


oracle@db01-test admin$ cat /u01/app/oracle/cfgtoollogs/ORCL/preupgrade/preupgrade.log
Oracle Database Pre-Upgrade Information Tool 07-23-2015 10:41:15
Script Version: 12.1.0.2.0 Build: 006
**********************************************************************
   Database Name:  ORCL
  Container Name:  Not Applicable in Pre-12.1 database
    Container ID:  Not Applicable in Pre-12.1 database
         Version:  11.2.0.3.0
      Compatible:  11.2.0.0.0
       Blocksize:  8192
        Platform:  Linux x86 64-bit
   Timezone file:  V14
**********************************************************************
                           [Update parameters]
         [Update Oracle Database 11.2.0.3.0 init.ora or spfile]
 
--> If Target Oracle is 32-bit, refer here for Update Parameters:
WARNING: --> "processes" needs to be increased to at least 300
 
--> If Target Oracle is 64-bit, refer here for Update Parameters:
WARNING: --> "processes" needs to be increased to at least 300
**********************************************************************
**********************************************************************
                          [Renamed Parameters]
                     [No Renamed Parameters in use]
**********************************************************************
**********************************************************************
                    [Obsolete/Deprecated Parameters]
             [No Obsolete or Desupported Parameters in use]
**********************************************************************
                            [Component List]
**********************************************************************
--> Oracle Catalog Views                   [upgrade]  VALID     
--> Oracle Packages and Types              [upgrade]  VALID     
--> JServer JAVA Virtual Machine           [upgrade]  VALID     
--> Oracle XDK for Java                    [upgrade]  VALID     
--> Real Application Clusters              [upgrade]  VALID     
--> Oracle Workspace Manager               [upgrade]  VALID     
--> OLAP Analytic Workspace                [upgrade]  VALID     
--> Oracle Enterprise Manager Repository   [upgrade]  VALID     
--> Oracle Text                            [upgrade]  VALID     
--> Oracle XML Database                    [upgrade]  VALID     
--> Oracle Java Packages                   [upgrade]  VALID     
--> Oracle Multimedia                      [upgrade]  VALID     
--> Oracle Spatial                         [upgrade]  VALID     
--> Expression Filter                      [upgrade]  VALID     
--> Rule Manager                           [upgrade]  VALID     
--> Oracle Application Express             [upgrade]  VALID     
--> Oracle OLAP API                        [upgrade]  VALID     
**********************************************************************
                              [Tablespaces]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
     minimum required size: 1257 MB
--> SYSAUX tablespace is adequate for the upgrade.
     minimum required size: 2032 MB
--> UNDOTBS1 tablespace is adequate for the upgrade.
     minimum required size: 400 MB
--> TEMP tablespace is adequate for the upgrade.
     minimum required size: 60 MB
--> EXAMPLE tablespace is adequate for the upgrade.
     minimum required size: 309 MB

                      [No adjustments recommended]

**********************************************************************
**********************************************************************
                          [Pre-Upgrade Checks]
**********************************************************************
WARNING: --> Process Count may be too low

     Database has a maximum process count of 150 which is lower than the
     default value of 300 for this release.
     You should update your processes value prior to the upgrade
     to a value of at least 300.
     For example:
        ALTER SYSTEM SET PROCESSES=300 SCOPE=SPFILE
     or update your init.ora file.

WARNING: --> Enterprise Manager Database Control repository found in the database

     In Oracle Database 12c, Database Control is removed during
     the upgrade. To save time during the Upgrade, this action
     can be done prior to upgrading using the following steps after
     copying rdbms/admin/emremove.sql from the new Oracle home
   - Stop EM Database Control:
    $> emctl stop dbconsole

   - Connect to the Database using the SYS account AS SYSDBA:

   SET ECHO ON;
   SET SERVEROUTPUT ON;
   @emremove.sql
     Without the set echo and serveroutput commands you will not 
     be able to follow the progress of the script.


**********************************************************************
                      [Pre-Upgrade Recommendations]
**********************************************************************

                        *****************************************
                        ********* Dictionary Statistics *********
                        *****************************************

Please gather dictionary statistics 24 hours prior to
upgrading the database.
To gather dictionary statistics execute the following command
while connected as SYSDBA:
    EXECUTE dbms_stats.gather_dictionary_stats;

^^^ MANUAL ACTION SUGGESTED ^^^


**********************************************************************
                     [Post-Upgrade Recommendations]
**********************************************************************

                        *****************************************
                        ******** Fixed Object Statistics ********
                        *****************************************

Please create stats on fixed objects two weeks
after the upgrade using the command:
   EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

^^^ MANUAL ACTION SUGGESTED ^^^

**********************************************************************
                   ************  Summary  ************

 0 ERRORS exist in your database.
 2 WARNINGS that Oracle suggests are addressed to improve database performance.
 4 INFORMATIONAL messages that should be reviewed prior to your upgrade.

 After your database is upgraded and open in normal mode you must run 
 rdbms/admin/catuppst.sql which executes several required tasks and completes
 the upgrade process.

 You should follow that with the execution of rdbms/admin/utlrp.sql, and a
 comparison of invalid objects before and after the upgrade using
 rdbms/admin/utluiobj.sql

 If needed you may want to upgrade your timezone data using the process
 described in My Oracle Support note 1509653.1
                   ***********************************

Çalıştırdığım bu script sonucu datbase upgradeine başlamadan önce PROCESSES parametresini 300'e çekip, EM konfigürasyonunu kaldırıyorum. 
DBUA'yı çalıştırıyoruz. karşılama ekranında upgrade oracle database seçeneğiyle devam ediyoruz.



 Bu ekranda sistemimiz üzerinde var olan databaseleri görüyoruz ve hangisini upgrade edeceğimizi seçerek devam ediyoruz.

 Bu adımda bize bize yine upgrade öncesi bir checklist yaratıyor. Biz upgrade öncesi sqlplus ile gerekli değişiklikleri yaptığımız için herhangi bir warning yada error çıkmıyor karşımıza.

 Bu adımda upgrade ile ilgili bazı seçenekler sunuluyor, timezone upgrade edilsin mi, upgrade sırasında user tablespaceler readonly moda alınsın mı, upgrade öncesi istatistik toplansın mı gibi..

 EM configürasyonu yapmak istiyorsak yada var olan EM'e kaydetmek istiyorsak bu seçenekleri kullanıyoruz.


Olumsuz bir durumda upgrade işlemini geri almak için bir backup belirleyebiliriz yada kendi stratejim var diyerek upgrade işlemi başarısız olursa manuel olarak backuptan dönme seçeneğini işaretleyebiliriz.Bu adımdan sonra upgrade işlemi başlıyor. Başarılı bir şekilde tamamlanan upgrade işlemi tamamlanıyor ve işlemin sonucunu aşağıdaki adımda görebiliyoruz.




Upgrade işlemi sonrası database'imiz 12C mimarisinde non-CDB olarak bilinen yapıda çalışıyor. İstenildiği takdirde bu database'imizi upgrade işlemi sonrasında Pluggable database'e convert edebiliriz. Bu işlemi bir sonraki gönderide paylaşacağım.

Database'e sqlplus ile bağlanıp versiyon bilgisini kontrol ettiğimiz zaman 12.1.0.2 olarak görülüyor.
oracle@db01-test admin$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Jul 23 13:34:38 2015
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options


İyi Çalışmalar

http://docs.oracle.com/database/121/UPGRD/toc.htm
www.oracle.com/technetwork/database/upgrade/upgrading-oracle-database-wp-12c-1896123.pdf

0 yorum:

Yorum Gönder