24 Temmuz 2015 Cuma

Non-CDB database'in PDB'ye convert edilmesi

Oracle 11gR2 sürümünden 12C'ye upgrade işleminden sonra artık elimizde 12C üzerinde çalışan Non-CDB bir databaseimiz var. 12C'de yeni gelen özelliklerden birtanesi olan pluggable databaseler hakkında geçtiğimiz aylarda bir yazı yazmıştım. (burdan erişebilirsiniz)
12C'de 3 farklı konfigürasyon yapabiliriz ihtiyacımıza göre;
Multitenant özelliklerinden faydalanmak istemiyorsak eski mimari ile alıştığımız 11g database özellikleri ile databaseimizi kurup yönetebiliriz.
İleride bu mimariye geçiş yapma ihtilamine karşılık 12c kurulumu esnasında 1 CDB ve 1PDB ile kurulumu gerçekleştirip, Multitenant architecture in single tenant konfigürasyonunu kullanabiliriz..Bu opsiyon için Multitenant lisans ücreti ödemiyoruz.
Son olarak ise multiple PDB per CDB olarak adlandırılan konfigürasyonla Multitenant özelliğini tam olarak kullanabiliriz,bu konfigürasyon için Multitenant lisansının olması gerekiyor..

Upgrade işleminden sonra biz ilk bahsedilen eski yapıdaki yani NON-CDB olan bir database'e sahibiz. Şimdi ise bu database'i Multitenant mimarisine uygun, pluggable bir database'e convert etmeye çalışalım.

oracle@db01-test ~$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Fri Jul 24 09:27:04 2015Copyright (c) 1982, 2014, Oracle.  All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Advanced Analytics and Real Application Testing options
SQL> select name, cdb from v$database;
NAME   CDB--------- ---ORCL   NO

 NON-CDB database'imizin adı ORCL, 2 nodelu 12.1.0.2 üzerinde koşuyor. Bu sistem üzerinde yeni bir Conteiner DB yaratıyoruz. DBCA yı çalıştırarak CDB database i oluşturuyoruz


Create database seçeneği ile yeni bir CDB yaratacağız.

 RAC database oluşturacağız.

 Container DB yaratacağımızı bu adımda belirtiyoruz aynı zamanda boş bir CDB yaratabilir yada bu işlemle birlikte bir de PDB yaratılmasını isteyebiliriz.

 Hangi nodelar üzerinde yaratacağımızı belirliyoruz.

 DB nin ASM diskini kullanması için gerekli ayarları bu aşamada yapıyoruz. Compatible.asm parametresi disk grubum için 11.2.0 olduğu için 12.1.0 DByi üzerinde depolamak için bu parametreyi aşağıdaki gibi update ediyoruz.

SQL> ALTER DISKGROUP DATADG SET ATTRIBUTE 'compatible.asm'='12.1';
Diskgroup altered.

 Automatic Memory Management kullanımı ve memory seçeneklerini belirledikten sonra artık kurulum aşamasına geçiyorum ve CDB'yi oluşturuyorum. Kurulum sonrası sqlplus ile instance'a bağlanıp kontrol ediyoruz;

oracle@db01-test ~$ . oraenv
ORACLE_SID = [CDBNEW1] ? 
The Oracle base remains unchanged with value /u01/app/oracle
oracle@db01-test ~$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Jul 24 11:08:16 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
SQL> select name, cdb from v$database;                           

NAME  CDB
--------- ---
CDBNEW  YES

Şimdi NON-CDB veritabanımıza bağlanıp pluggable hale getirmek için gerekli konfigürasyonları yapıyoruz;

Databasei readonly modda açtıktan sonra PDB olarak convert etmek için gerekli xml file'ı oluşturmak için aşağıdaki sqli çalıştırıyoruz.

oracle@db01-test ~$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Jul 24 11:11:35 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
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount exclusive
ORACLE instance started.
Total System Global Area 2516582400 bytes
Fixed Size    2927528 bytes
Variable Size  738198616 bytes
Database Buffers 1761607680 bytes
Redo Buffers   13848576 bytes
Database mounted.
SQL> alter database open read only; 
alter database open read only
SQL> select status from v$instance;  
STATUS
------------
MOUNTED

SQL> alter database open read only;

Database altered.

SQL> exec dbms_pdb.describe(pdb_descr_file=>'/u01/app/oracle/product/12.1.0.2/db_2/noncdb.xml');

PL/SQL procedure successfully completed.

SQL> exit

Bu işlemden sonra CDBNEW veritabanına bağlanıp verilen xml dosyasını kullanarak DB dosyalarının kopyalanmadan orjinallerinin PDB olarak kullanılması seçeneğiyle işlemi yapıyorum. DB dosyalarının orjinallerinin kullanılmasını istemiyorsak file name convert parametresini ekleyerek orjinal dosyalarının birer kopyasının alınarak PDB oluşturulmasını sağlayabiliriz.


SQL> create pluggable database ORCL as clone using '/u01/app/oracle/product/12.1.0.2/db_2/noncdb.xml' nocopy;

Pluggable database created.

Kontrol ettiğimiz zaman PDBlerin durumu aş. gibidir. PDB'yi başlatmak için ise aş. komutu kullanabiliriz..

SQL> SELECT pdb_name, status
FROM   dba_pdbs
ORDER BY pdb_name;  2    3  

PDB_NAME
--------------------------------------------------------------------------------
STATUS
---------
ORCL
NEW

PDB$SEED
NORMAL

PDB1
NORMAL


SQL> ALTER PLUGGABLE DATABASE ORCL OPEN READ WRITE  ;

İyi Çalışmalar..



    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

    19 Temmuz 2015 Pazar

    Oracle's Optimal Flexible Architecture (OFA)


    Oracle ile ilgilenen herkes OFA diye bir standartın var olduğunu az çok bilir. Peki standart tam olarak nedir? Cary Millshap tarafından Oracle for Open Systems makalesinde yayımlanmış olan bir standarttır. Makalenin 1995 yılında yayımlanan orjinal haline linkten  ulaşabilirsiniz. Çoğu kurulumda yada gündelik işlerimizde kullandığımız bu maddeler ustalarımızdan öğrenip uyguladığımız birer alışkanlık gibi görünse de aslında temeli bu standarta dayanmaktadır.

    1. Unix mount point isimleri  /mountpoint adı + numara şeklinde olmalı. /u01, /u02, /u03

    2. Oracle OS user'ı ORACLE_HOME dizinin sahibi olmalı. /mountpoint/directory/user örneğin /u01/app/oracle

    3. Komut satırından yaptığımız hardcode path tanımları yerine Environment değişkenleri kullanılmalı. 

    4. Her  ORACLE_HOME dizini belirli bir kalıba göre yaratılmalı. /oracle_user_home_directory/product/ versiyon Örneğin /u01/app/oracle/product/11.2.0/dbhome_1

    5. Environmentları ayarlamak için unix profile ve oracle-supplied filelar kullanılmalı.

    6. Bir instance $ORACLE_HOME, $ORACLE_SID ve $HOST_NAME kombinasyonu ile tanımlanmalı.

    7. Datafileların isimlendirilmesinde tablespace_name+number.dbf standartı kullanılmalı, aynı zamanda ORACLE_SID de eklenebilir..

    8. Aynı anda yedeklenen yada aynı amaç için kullanılan db objeleri aynı tablespacede yer almalı. 

    9. Tablespace isimleri 8 karakterle sınırlandırılmalı. (datafile'ına isim verirken zorluk yaşamamak için)