Tuesday, October 5, 2021

Upgrade Oracle EBS R12 Database 12c to 19c(19.11) on AWS IaaS

 In this post, i am going to cover on how i did an upgrade of EBS R12 Database 12c to 19c(19.11) on AWS IaaS. The application EBS 12.1.3 was running on AWS EC2 and Database 12.1.0.2 was also running on AWS EC2. As per Database releases and Support timelines support for 12c database is soon going to end, whereas 19c has long term support.





For more information on the support policies, you can visit  Database support policies

Now coming to the actual work being done, the existing database size was having a size of 1.6TB. We had used DBUA to upgrade the database. As you might be aware with 19c DB comes the multitenant architecture and with EBS it comes with one container and one pluggable. In my previous posts, i have explained in step by step approach on how we can upgrade the EBS 12.1.0.2 DB to 19c running on compute in OCI. You can refer the following   https://samappsdba.blogspot.com/2020/12/upgrade-EBS-12.2-database-12c12.1.0.2-to-19c19.3-Part-1.html


In this particular post, i will only provide the details on how the upgrade can be achieved on AWS IaaS.
The most important part is doing the prerequisite checks because the Infrastructure is not Oracle and OS used was RHEL 7.



1. uname -a

cat /etc/redhat-release cat /etc/os-release

To determine if the required kernel errata is installed, enter the following command

uname -r it should be x64 /tmp----min 1 GB

swap space allocation relative to RAM (Oracle Database)

Between 1 GB and 2 GB: 1.5 times the size of the RAM Between 2 GB and 16 GB: Equal to the size of the RAM More than 16 GB: 16 GB Note: If you enable HugePages for your Linux servers, then you should deduct the memory allocated to HugePages from the available RAM before calculating swap space.

Use this procedure to gather information about your server configuration.

1. Use the following command to determine physical RAM size on the server: # grep MemTotal /proc/meminfo 2. Determine the size of the configured swap space: # grep SwapTotal /proc/meminfo free -g total used free shared buff/cache available If necessary, see your operating system documentation for information about how to configure additional swap space.

Determine the amount of space available in the /tmp directory:

# df -h /tmp If the free space available in the /tmp directory is less than what is required, then complete one of the following steps: • Delete unused files from the /tmp directory to meet the disk space requirement.

Checking Server Hardware and Memory Configuration

Determine the amount of free RAM and disk swap space on the system: # free

Determine if the system architecture can run the software:

# uname -m

Verify that the processor architecture matches the Oracle software release to install. For example, you should see the following for a x86-64 bit system:

x86_64 If you do not see the expected output, then you cannot install the software on this system.

6. Verify that shared memory (/dev/shm) is mounted properly with sufficient size:

df -h /dev/shm The df-h command displays the filesystem on which /dev/shm is mounted, and also displays in GB the total size and free size of shared memory.

start a terminal session and enter the following command as root, depending on your platform. For example:

• Oracle Linux 7 # yum install oracle-database-preinstall-19c Note: Use the -y option if you want yum to skip the package confirmation prompt.

check if all the rpms are installed or not

Oracle E-Business Suite Installation and Upgrade Notes Release 12 (12.2) for Linux x86-64 (Doc ID 1330701.1) rpm -qa --qf "%{n}-%{v}-%{r}.%{arch}\n" | grep libgcc curl -o oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm curl -o compat-libstdc++-33-3.2.3-72.el7.i686.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.i686.rpm curl -o compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm rpm -ivh compat-libstdc++-33-3.2.3-72.el7.i686.rpm rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm yum install oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm If not using the pre-install rpm, the following packages must be installed from the Oracle Linux 7 or RHEL 7 distribution media on both the application and database tiers: • binutils-2.23.52.0.1-16.el7.x86_642 • compat-libcap1-1.10-7.el7.x86_64 • compat-libstdc++-33-3.2.3-71.el7.i686 • compat-libstdc++-33-3.2.3-71.el7.x86_64 not present • gcc-4.8.2-16.el7.x86_64 • gcc-c++-4.8.2-16.el7.x86_64 • gdbm-1.10-8.el7.i686 • gdbm-1.10-8.el7.x86_64 • glibc-2.17-55.el7.i686 • glibc-2.17-55.el7.x86_64 • glibc-common-2.17-55.el7.x86_64 • glibc-devel-2.17-55.el7.i686 • glibc-devel-2.17-55.el7.x86_64 • libaio-0.3.109-12.el7.i686 • libaio-0.3.109-12.el7.x86_64 • libaio-devel-0.3.109-12.el7.x86_64 • libgcc-4.8.2-16.el7.i686 • libgcc-4.8.2-16.el7.x86_64 • libgomp-4.8.2-16.el7.x86_64 • libstdc++-devel-4.8.2-16.el7.i686 • libstdc++-devel-4.8.2-16.el7.x86_64 • libstdc++-4.8.2-16.el7.i686 • libstdc++-4.8.2-16.el7.x86_64 • libXi-1.7.2-2.1.el7.i686 • libXp-1.0.2-2.1.el7.i686 • libXp-1.0.2-2.1.el7.x86_64 • libXtst-1.2.2-2.1.el7.i686 • make-3.82-21.el7.x86_64 • perl-File-CheckTree-4.42-3.el7.noarch • redhat-lsb-4.1-24.0.1.el7.x86_64 • sysstat-10.1.5-4.el7.x86_64 • util-linux-2.23.2-16.el7.x86_64 Additionally, the following RPMs are required for the database tier: • elfutils-libelf-devel-0.158-3.el7.x86_64 • libaio-devel-0.3.109-12.el7.i686 • xorg-x11-utils-7.5-13.1.el7.x86_64

Disabling Transparent Huge Pages

To disable Transparent HugePages: 1. For Oracle Linux 7 and Red Hat Enterprise Linux 7, add or modify the transparent_hugepage=never parameter in the /etc/default/grub transparent_hugepage=never Run the grub2–mkconfig command to regenerate the grub.cfg file. # grub2-mkconfig -o /boot/grub2/grub.cfg Restart the system to make the changes permanent. more /etc/oraInst.loc more /etc/oraInst.loc inventory_loc=/u02/oracle/oraInventory inst_group=oinstall Checking Resource Limits for Oracle Software Installation Users

Log in as an installation owner.:-

Check the soft and hard limits for the file descriptor setting. Ensure that the result is in the recommended range. For example: $ ulimit -Sn 1024 $ ulimit -Hn 65536  Check the soft and hard limits for the number of processes available to a user. Ensure that the result is in the recommended range. For example: $ ulimit -Su 2047 $ ulimit -Hu 16384  Check the soft limit for the stack setting. Ensure that the result is in the recommended range. For example: $ ulimit -Ss 10240 $ ulimit -Hs 32768 ulimit -Su 254341 ]ulimit -Hu 254341 ulimit -Ss—below the recommended value 8192 ulimit -Hs unlimited ]#  5. Repeat this procedure for each Oracle software installation owner. If necessary, update the resource limits in the /etc/security/limits.conf /database-installation-guide-linux.pdf--for 19c for all the checksCheck the NLS Settings select * from database_properties where PROPERTY_NAME in ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET'); PROPERTY_NAME -------------------------------------------------------------------------------- PROPERTY_VALUE -------------------------------------------------------------------------------- DESCRIPTION -------------------------------------------------------------------------------- NLS_CHARACTERSET WE8MSWIN1252 Character set NLS_NCHAR_CHARACTERSET AL16UTF16 NCHAR Character set PROPERTY_NAME -------------------------------------------------------------------------------- PROPERTY_VALUE -------------------------------------------------------------------------------- DESCRIPTION select * from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET'; SQL> select * from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET'; PARAMETER -------------------------------------------------------------------------------- VALUE ---------------------------------------------------------------- NLS_NCHAR_CHARACTERSET AL16UTF16


Download the 19C Binaries

Download the binaries for 19.3 from E-Delivery

 

 Unzip the 19c binaries under the Oracle HOME

 

 


check the target OS version

cat /etc/oracle-release

# cat /etc/redhat-release

# cat /etc/os-release

 

 

prepare the target DB server 

Oracle E-Business Suite Installation and Upgrade Notes Release 12 (12.2) for Linux x86-64 (Doc ID 1330701.1)


Before the DB installation in Source

Run hcheck.sql in source 12c database

 

 

Document 136697.1

Sqlplus / as sysdba

 

Spool hcheck.txt

@hcheck.sql

        

Verify Software version


Patches to apply, comments on them, and relevant Oracle E-Business Suite releases.

Patch 8796558

Patch 9239090 - Release 12.1.3

Check the AD/TXK version

select  ABBREVIATION, NAME, codelevel FROM AD_TRACKABLE_ENTITIES where abbreviation in ('txk','ad');

Patch 23569686 - R12.AD.B.delta.8

Patch 27135427 - R12.TXK.B.delta.4

Patch 30033914 - 19c interoperability patch for Release 12.1.3

Patch 27102203 

Patch 28613638

Patch 28685719

Patch 29178111

Patch 29583055

Patch 29905536

Patch 30370150

Patch 30601878

Patch 31209544

Patch 31406810

Patch 30824278 - Apply only for Windows.


Check SEC_CASE_SENSITIVE_LOGON

Create the initialization parameter setup files on Source DB

Run the following commands to create the $ORACLE_HOME/dbs/<ORACLE_SID>_initparam.sql and $ORACLE_HOME/dbs/<ORACLE_SID>_datatop.txt files.


19c Binary installation and the rest of the activities can be followed in my earlier posts where i have covered the step by step approach



Few important points while doing the upgrade on AWS

1. While using the logical host name, creation of PDB and CDB creation scripts accepts logical hostname as an input

2. We cannot create a restore point and enable flashback before converting the DB to multitenant. This is not supported. The only approach would be to take the rman full backup.

3. Context variable s_appltmp in the application context file should have only one physical path

4. Post patches example OJVM and DB patchset patches have to be applied to PDB also.



FAQ

1. is Oracle EBS certified to be run on AWS

Oracle has not certified it. However, for EBS, you just need the IaaS which is EC2 for application and database. Amazon will be only responsible for infrastructure and based upon Oracle EBS certification matrix, you can install any OS and run EBS on top of it


2. Can i use Amazon RDS for my EBS database needs?

No.

3. For EBS, shared Appl_Top what can i use in AWS

EFS



References:

1. Overview of Running Oracle E-Business Suite on AWS whitepaper-https://d1.awsstatic.com/whitepapers/migrate-oracle-e-business-suite.pdf?did=wp_card&trk=wp_card

2. https://blogs.oracle.com/ebsandoraclecloud/post/is-oracle-e-business-suite-certified-on-amazon-aws-ec2