Export Oracle SQL PLAN Baselines from one database to another
Hello everyone, a few weeks ago, during a project, our client requested that during the database migration process we take the SQL PLAN Baseline of the current databases.
I found the topic interesting to share with you, how to do this migration of SQL PLAN Baselines from one database to another.
NOTE: The database user must have “administer sql management object” to execute the steps below.
1 . Create a staging table from the source database. A staging table cannot be created in SYS schema.(ORA-19381)
I used the SYSTEM schema.
exec DBMS_SPM.CREATE_STGTAB_BASELINE('MIGBASELINE', MIGUSER);
2. Pack baselines in the source database:
Here we can do it in four ways.
A) Pack all baselines in the database.
set serveroutput on
DECLARE
x number;
BEGIN
x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER);
dbms_output.put_line(to_char(x) || ' plan baselines packed');
END;
/
B) Pack ALL Baselines Plans of a query
set serveroutput on
DECLARE
x number;
BEGIN
x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER, sql_handle => 'SYS_SQL_58d940ad9b3ac043');
dbms_output.put_line(to_char(x) || ' plan baselines packed');
END;
/
C) Pack a specific Baseline Plan of a Query
set serveroutput on
DECLARE
x number;
BEGIN
x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER, sql_handle => ' SYS_SQL_58d940ad9b3ac043', plan_name => 'SYS_SQL_PLAN_d380ae0c0a76c437' );
dbms_output.put_line(to_char(x) || ' plan baselines packed');
END;
/
D) Pack only ACCEPTED Baseline Plans of a Query
set serveroutput on
DECLARE
x number;
BEGIN
x := DBMS_SPM.PACK_STGTAB_BASELINE('MIGBASELINE', MIGUSER, sql_handle => ' SYS_SQL_58d940ad9b3ac043', accepted => 'YES' );
dbms_output.put_line(to_char(x) || ' plan baselines packed');
END;
/
3. Export the staging table MIGBASELINE from the source database.
4. Import the staging table MIGBASELINE into the target database.
5. Unpack the baselines in the target database.
set serveroutput on
DECLARE
x number;
BEGIN
x := DBMS_SPM.UNPACK_STGTAB_BASELINE('MIGBASELINE', MIGUSERN);
dbms_output.put_line(to_char(x) || ' plan baselines unpacked');
END;
/
I hope this helps you!!!
Andre Luiz Dutra Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent may actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications was removed to allow reach generic audience and to be useful
Oracle Groundbreakers EMEA - Virtual Tour 2021 (LuxOUG)
Are you ready to virtually hit the road again this fall ? You should be!
#OGBEMEA Virtual Tour 2021 will take place between 15th of October and 29th of October.
This year, 10 Oracle User groups are collaborating to bring together novices and specialists from all over the world.
During 11 days more than 70 speakers will present from the #OGBEMEA virtual stage.
Registration is open!
Save this date of October 19, LuxOUG will be part of this great event. See the agenda and register for all events you wish to participate !!!
Link to event registration: http://ogbemea.com/agenda-2021/3/#luxoug
See you at the event !!
How to install Oracle Restart 21c without ASM or ACFS.
This article contains all information related to the install Oracle Restart Database 21c (Linux) without ASM.
I did the test and you can use the same procedure for versions (12.2,18c,19c).
Just change the response_schema for the Grid and Database version you want to use, in the response file.
1. Oracle Database Prerequisites Packages for Oracle Linux
Use this procedure to install the Oracle Database prerequisites group package for your Oracle software.
The oracle-database-preinstall-21c package installs all the packages required for an Oracle Database and Oracle Grid Infrastructure installation. It also creates the oracle user and the oinstall and dba groups for that user.
To install the oracle-database-preinstall-21c package, log in as root, and run the following command on Linux:
yum install oracle-database-preinstall-21c
2. Installing Oracle Grid Infrastructure Standalone Server for Oracle Linux with Silent Mode
Complete these steps to install Oracle Grid Infrastructure for a standalone server and then create a database that is managed by Oracle Restart
Install Oracle Grid Infrastructure for a standalone server, which installs Oracle Restart.
You should have your network information, storage information, and operating system users and groups available to you before you start the installation. You should also be prepared to run root scripts or provide information to automate root scripts.
1 . Log in as the Oracle Restart software owner user (oracle).
2. If this is the first time you are installing Oracle software, then create the Oracle base and the Oracle inventory directories as per the Oracle Optimal Flexible Architecture (OFA) recommendations. Specify the correct owner, group, and permissions for these directories.
root@dutsDB ~]# mkdir -p /u01/app/oraInventory
[root@dutsDB ~]# chown -R oracle:oinstall /u01/app/oracle
[root@dutsDB ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@dutsDB ~]# chmod -R 775 /u01/app
3. Download the Oracle Grid Infrastructure for a standalone server installation image files, create the grid home directory, and extract the image files in this grid home directory.
[oracle@dutsDB u01]$ mkdir -p /u01/app/oracle/product/21.0.0/grid
[oracle@dutsDB u01]$ cd /u01/app/oracle/product/21.0.0/grid
[oracle@dutsDB grid]$ unzip -q /u01/binarios/Oracle_21_3_Grid.ziprm
[oracle@dutsDB grid]$ rm –rf OPatch
[oracle@dutsDB grid]$ unzip -q /u01/binarios/p6880880_190000_Linux-x86-64.zip
4. Prepare the response file grid_setup.rsp.
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_SWONLY
ORACLE_BASE=/u01/app
oracle.install.asm.OSDBA=dba
oracle.install.asm.OSASM=oinstall
oracle.install.crs.config.ClusterConfiguration=STANDALONE
5. Log in as the Oracle Restart software owner user and run gridSetup.sh with option to applyRU and silent mode:
oracle@dutsDB grid]$ ./gridSetup.sh -silent -responseFile /u01/binarios/grid_setup.rsp
Launching Oracle Grid Infrastructure Setup Wizard...
The response file for this session can be found at:
/u01/app/oracle/product/21.0.0/grid/install/response/grid_2021-09-10_10-55-55AM.rsp
You can find the log of this install session at:
/tmp/GridSetupActions2021-09-10_10-55-55AM/gridSetupActions2021-09-10_10-55-55AM.log
As a root user, execute the following script(s):
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/21.0.0/grid/root.sh
Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes:
[dutsDB]
Execute /u01/app/oracle/product/21.0.0/grid/root.sh on the following nodes:
[dutsDB]
Successfully Setup Software.
Moved the install session logs to:
/u01/app/oraInventory/logs/GridSetupActions2021-09-10_10-55-55AM
[oracle@dutsDB grid]$
6. Execute the script /u01/app/oracle/product/21.0.0/grid/root.sh with root user.
[root@dutsDB ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@dutsDB ~]# /u01/app/oracle/product/21.0.0/grid/root.sh
Check /u01/app/oracle/product/21.0.0/grid/install/root_dutsDB_2021-09-10_11-07-57-619366648.log for the output of root script
[root@dutsDB ~]#
[root@dutsDB ~]#
7. Execute the script /u01/app/oracle/product/21.0.0/grid/crs/install/roothas.sh with root user.
[root@dutsDB ~]# /u01/app/oracle/product/21.0.0/grid/crs/install/roothas.sh
Using configuration parameter file: /u01/app/oracle/product/21.0.0/grid/crs/install/crsconfig_params
2021-09-10 11:08:47: Got permissions of file /u01/app/crsdata/dutsdb/crsconfig: 0775
2021-09-10 11:08:47: Got permissions of file /u01/app/crsdata: 0775
2021-09-10 11:08:47: Got permissions of file /u01/app/crsdata/dutsdb: 0775
The log of current session can be found at:
/u01/app/crsdata/dutsdb/crsconfig/roothas_2021-09-10_11-08-47AM.log
2021/09/10 11:09:03 CLSRSC-363: User ignored prerequisites during installation
Redirecting to /bin/systemctl restart rsyslog.service
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node dutsdb successfully pinned.
2021/09/10 11:17:27 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
dutsdb 2021/09/10 11:11:57 /u01/app/crsdata/dutsdb/olr/backup_20210910_113257.olr
2021/09/10 11:33:32 CLSRSC-327: Successfully configured Oracle Restart for a standalone server
[oracle@dutsDB bin]$ ./crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
OFFLINE OFFLINE dutsdb STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 OFFLINE OFFLINE STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE dutsdb STABLE
--------------------------------------------------------------------------------
[oracle@dutsDB bin]$
3. Installing Oracle Database 21c for Oracle Linux with Silent Mode
Complete these steps to install Oracle Database 21c.
1. Log in as the Oracle software owner user (oracle).
2. Download the Oracle Database 21c installation image files, create the oracle home directory, and extract the image files in this oracle home directory.
[oracle@dutsDB grid]$ mkdir -p /u01/app/oracle/product/21.0.0/dbhome_1
[oracle@dutsDB grid]$ cd /u01/app/oracle/product/21.0.0/dbhome_1
[oracle@dutsDB dbhome_1]$ unzip -q /u01/binarios/Oracle_21_3_Database.zip
[oracle@dutsDB dbhome_1]$ rm -rf OPatch/
[oracle@dutsDB dbhome_1]$ unzip -q /u01/binarios/p6880880_190000_Linux-x86-64.zip
[oracle@dutsDB dbhome_1]$
3. Prepare the response file.
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=dba
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/21.0.0/dbhome_1
ORACLE_BASE=/u01/app
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=oinstall
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
4. Log in as the Oracle software owner user and run runinstaller with option to applyRU and silent mode:
[oracle@dutsDB dbhome_1]$ ./runInstaller -silent -responseFile /u01/binarios/db_setup.rsp -ignorePrereqFailure
Launching Oracle Database Setup Wizard...
The response file for this session can be found at:
/u01/app/oracle/product/21.0.0/dbhome_1/install/response/db_2021-09-10_12-17-55PM.rsp
You can find the log of this install session at:
/u01/app/oraInventory/logs/InstallActions2021-09-10_12-17-55PM/installActions2021-09-10_12-17-55PM.log
As a root user, execute the following script(s):
/u01/app/oracle/product/21.0.0/dbhome_1/root.sh
Execute /u01/app/oracle/product/21.0.0/dbhome_1/root.sh on the following nodes:
[dutsDB]
Successfully Setup Software.
5. Execute the script /u01/app/oracle/product/21.0.0/dbhome_1/root.sh with root user
[root@dutsDB ~]# /u01/app/oracle/product/21.0.0/dbhome_1/root.sh
Check /u01/app/oracle/product/21.0.0/dbhome_1/install/root_dutsDB_2021-09-10_12-33-41-458028241.log for the output of root script
[root@dutsDB ~]#
[root@dutsDB ~]# cat /u01/app/oracle/product/21.0.0/dbhome_1/install/root_dutsDB_2021-09-10_12-33-41-458028241.log
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/21.0.0/dbhome_1
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
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.
[root@dutsDB ~]#
Now create your database and check if it was added in Oracle Restart.
[oracle@dutsDB ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
OFFLINE OFFLINE dutsdb STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 OFFLINE OFFLINE STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.duts.db
1 ONLINE ONLINE dutsdb Open,HOME=/u01/app/o
racle/product/21.0.0
/dbhome_1,STABLE
ora.duts.dutspdb.pdb
1 ONLINE ONLINE dutsdb STABLE
ora.evmd
1 ONLINE ONLINE dutsdb STABLE
--------------------------------------------------------------------------------
[oracle@dutsDB ~]$
[oracle@dutsDB ~]$ sqlplus
SQL*Plus: Release 21.0.0.0.0 - Production on Fri Sep 10 14:19:51 2021
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Enter user-name: / as sysdba
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DUTSPDB READ WRITE NO
SQL>
I hope this helps you!!!
Stay tuned by following on twitter @aontalba and Linkedin
Andre Luiz Dutra Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent may actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications was removed to allow reach generic audience and to be useful
How to configure Autonomous Data Guard
Now let’s talk a little bit about Oracle Autonomous Data Guard.
When you enable Autonomous Data Guard, the system creates a standby database that continuously gets updated with the changes from the primary database.
With Autonomous Data Guard enabled Autonomous Database provides one identical standby database that allows the following, depending on the state of the primary database:
• If your primary database goes down, Autonomous Data Guard converts the standby database to the primary database with minimal interruption. After failover completes, Autonomous Data Guard creates a new standby database for you.
• You can perform a switchover operation, where the primary database becomes the standby database, and the standby database becomes the primary database.
Autonomous Database does not provide access to the standby database. You perform all operations, such as scaling up the OCPU Count and enabling Auto Scaling on the primary database and Autonomous Data Guard then performs the same actions on the standby database. Likewise, you only perform actions such as stopping or restarting the database on the primary database.
Autonomous Data Guard Features
Autonomous Data Guard monitors the primary database and if the Autonomous Database instance goes down, then the standby instance assumes the role of the primary instance.
The standby database is created in the same region as the primary database. For better resilience, the standby database is provisioned as follows:
In regions with more than one availability domain, the standby database is provisioned automatically in a different availability domain than the primary database.
In regions with a single availability domain, the standby database is provisioned automatically on a different physical machine than the primary database.
All Autonomous Database features from the primary database are available when the standby instance becomes the primary after the system fails over or after you perform a switchover operation, including the following:
OML Notebooks: Notebooks and users created in the primary database are available in the standby.
APEX Data and Metadata: APEX information created in the primary database is copied to the standby.
ACLs: The Access Control List (ACL) of the primary database is duplicated for the standby.
Private Endpoint: The private endpoint from the primary database applies to the standby.
APIs or Scripts: Any APIs or scripts you use to manage the Autonomous Database continue to work without any changes after a failover operation or after you perform a switchover.
Client Application Connections: Client applications do not need to change their connection strings to connect to the database after a failover to the standby database or after you perform a switchover.
Wallet Based Connections: You can continue using your existing wallets to connect to the database after a failover to the standby database or after you perform a switchover.
Database Options: The OCPU Count, Storage, Display Name, Database Name, Auto Scaling, Tags, and Licensing options have the same values after a failover to the standby database or after you perform a switchover.
When Autonomous Data Guard is enabled the RTO and RPO numbers are as follows:
Automatic Failover: the RTO is two (2) minutes and RPO is zero (0).
Manual Failover: the RTO is two (2) minutes and RPO is up to five (5) minutes.
Notes for enabling Autonomous Data Guard:
To enable Autonomous Data Guard the database version must be Oracle Database 19c or higher.
Autonomous Database generates the Enable Autonomous Data Guard work request. To view the request, under Resources click Work Requests.
While you enable Autonomous Data Guard, when the Peer State field shows Provisioning, the following actions are disabled for the database:
Move Resource
Stop
Restart
Restore
Enable Autonomous Data Guard
1. If you are not logged in to Oracle Cloud Console, log in and navigate to your Autonomous Database.
2. Under Autonomous Data Guard section, click Enable to enable the Data Guard feature.
3. In the Enable Autonomous Data Guard dialog, click Enable Autonomous Data Guard.
4. The Autonomous Database Lifecycle State changes to Updatingand on the Details page, under Autonomous Data Guard the Peer State field shows Provisioning. Depending on the size of your primary database this may take several minutes.
When the standby database is being provisioned, the primary database status becomes available and all database activities can continue as enabling Autonomous Data Guard is non-blocking.
When provisioning completes, the Peer State field shows Available.
Test Switchover to a Standby Database
After Autonomous Data Guard is enabled, if you perform a switchover operation the primary database becomes the standby database, and the standby database becomes the primary database, with no data loss. A switchover is typically done to test your application’s failover procedures when Autonomous Data Guard is enabled.
The Oracle Cloud Infrastructure console shows a switchover link in the Peer State field when both the primary database and the standby database are available. That is, the primary database Lifecycle State field shows Available or Stopped and the standby database is available (the Peer State field shows Available).
To perform a switchover, do the following:
1 .On the Details page, under Autonomous Data Guard, in the Peer State field, click Switchover
The database Lifecycle State changes to Updating and the Peer State field shows Role Change in Progress.
When the switchover operation completes, Autonomous Data Guard does the following:
The Primary database goes into the Available state and can be connected to for queries and updates.
The Peer State field will change to Available when the standby is ready. (The standby may go into a Provisioning state first, if necessary, without blocking operations on the Primary.)
You can see the time of the last switchover when you hover over the tooltip icon in the Peer State field.
I hope this helps you!!!
Andre Luiz Dutra Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent may actual employer positions, strategies or opinions. The information here was edited to be useful for general purpose, specific data and identifications was removed to allow reach generic audience and to be useful
ODA Upgrade 19.x to 19.10
Today I’m bringing an article with the steps to upgrade the ODA version to 19.10.
Before starting, we must check the minimum release so that we can perform the upgrade successfully.
https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/19.10/cmtrn/oda-patches.html#GUID-220DA05B-0F52-4EDA-84C9-BFD15F43802D
Before starting the patches, ensure that you have enough space on /, /u01, and /opt filesystems.
1. Backup snapshot from ODA
root@oda-duts-01 / # /opt/odabr/odabr backup -snap -osize 35 -rsize 20 -usize 60
INFO: 2021-07-01 10:58:35: Please check the logfile '/opt/odabr/out/log/odabr_53053.log' for more details
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
odabr - ODA node Backup Restore - Version: 2.0.1-58
Copyright Oracle, Inc. 2013, 2020
--------------------------------------------------------
Author: Ruggero Citton <[email protected]>
RAC Pack, Cloud Innovation and Solution Engineering Team
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
INFO: 2021-07-01 10:58:35: Checking superuser
INFO: 2021-07-01 10:58:35: Checking Bare Metal
INFO: 2021-07-01 10:58:35: Removing existing LVM snapshots
WARNING: 2021-07-01 10:58:36: LVM snapshot for 'opt' does not exist
WARNING: 2021-07-01 10:58:36: LVM snapshot for 'u01' does not exist
WARNING: 2021-07-01 10:58:36: LVM snapshot for 'root' does not exist
INFO: 2021-07-01 10:58:36: Checking LVM size
INFO: 2021-07-01 10:58:36: Boot device backup
INFO: 2021-07-01 10:58:36: Getting EFI device
INFO: 2021-07-01 10:58:36: ...step1 - unmounting EFI
INFO: 2021-07-01 10:58:36: ...step2 - making efi device backup
SUCCESS: 2021-07-01 10:58:40: ...EFI device backup saved as '/opt/odabr/out/hbi/efi.img'
INFO: 2021-07-01 10:58:40: ...step3 - checking EFI device backup
INFO: 2021-07-01 10:58:40: Getting boot device
INFO: 2021-07-01 10:58:40: ...step1 - making boot device backup using tar
SUCCESS: 2021-07-01 10:58:45: ...boot content saved as '/opt/odabr/out/hbi/boot.tar.gz'
INFO: 2021-07-01 10:58:45: ...step2 - unmounting boot
INFO: 2021-07-01 10:58:45: ...step3 - making boot device backup using dd
SUCCESS: 2021-07-01 10:58:50: ...boot device backup saved as '/opt/odabr/out/hbi/boot.img'
INFO: 2021-07-01 10:58:50: ...step4 - mounting boot
INFO: 2021-07-01 10:58:50: ...step5 - mounting EFI
INFO: 2021-07-01 10:58:50: ...step6 - checking boot device backup
INFO: 2021-07-01 10:58:51: OCR backup
INFO: 2021-07-01 10:58:53: ...ocr backup saved as '/opt/odabr/out/hbi/ocrbackup_53053.bck'
INFO: 2021-07-01 10:58:53: Making LVM snapshot backup
SUCCESS: 2021-07-01 10:58:53: ...snapshot backup for 'opt' created successfully
SUCCESS: 2021-07-01 10:58:55: ...snapshot backup for 'u01' created successfully
SUCCESS: 2021-07-01 10:58:55: ...snapshot backup for 'root' created successfully
SUCCESS: 2021-07-01 10:58:55: LVM snapshots backup done successfully
root@oda-duts-01 / # /opt/odabr/odabr infosnap
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
odabr - ODA node Backup Restore - Version: 2.0.1-58
Copyright Oracle, Inc. 2013, 2020
--------------------------------------------------------
Author: Ruggero Citton <[email protected]>
RAC Pack, Cloud Innovation and Solution Engineering Team
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
LVM snap name Status COW Size Data%
------------- ---------- ---------- ------
root_snap active 20.00 GiB 0.01%
opt_snap active 35.00 GiB 0.01%
u01_snap active 60.00 GiB 0.01%
2. Unzip and update the repository
For the patch of the server, you will need the following patches ( to be downloaded from support.oracle.com)
-p32351355_1910000_Linux-x86-64_1of2.zip
-p32351355_1910000_Linux-x86-64_2of2.zip
The steps are the following. All actions can be found in the documentation
2.1 Unpack the two files and then copy them to the oda-duts-01
root@oda-duts-01 /backups # cd patches/
root@oda-duts-01 /backups/patches # ll
total 23037662
-rw-r--r-- 1 root root 3035715218 May 25 10:07 p23494997_1910000_Linux-x86-64.zip
-rw-r--r-- 1 root root 11467982793 May 25 11:18 p32351355_1910000_Linux-x86-64_1of2.zip
-rw-r--r-- 1 root root 9086867187 May 25 09:53 p32351355_1910000_Linux-x86-64_2of2.zip
root@oda-duts-01 /backups/patches # unzip p32351355_1910000_Linux-x86-64_1of2.zip
Archive: p32351355_1910000_Linux-x86-64_1of2.zip
extracting: oda-sm-19.10.0.0.0-210222.4-server1of2.zip
inflating: README.txt
root@oda-duts-01 /backups/patches # unzip p32351355_1910000_Linux-x86-64_2of2.zip
Archive: p32351355_1910000_Linux-x86-64_2of2.zip
extracting: oda-sm-19.10.0.0.0-210222.4-server2of2.zip
root@oda-duts-01 /backups/patches # ll
total 43110758
-rw-r--r-- 1 root root 11467982139 Mar 20 22:40 oda-sm-19.10.0.0.0-210222.4-server1of2.zip
-rw-r--r-- 1 root root 9086866837 Mar 20 23:02 oda-sm-19.10.0.0.0-210222.4-server2of2.zip
-rw-r--r-- 1 root root 3035715218 May 25 10:07 p23494997_1910000_Linux-x86-64.zip
-rw-r--r-- 1 root root 11467982793 May 25 11:18 p32351355_1910000_Linux-x86-64_1of2.zip
-rw-r--r-- 1 root root 9086867187 May 25 09:53 p32351355_1910000_Linux-x86-64_2of2.zip
-rwxr-xr-x 1 root root 191 Feb 24 02:17 README.txt
You have new mail in /var/spool/mail/root
root@oda-duts-01 /backups/patches # ll -ltr
total 43110758
-rwxr-xr-x 1 root root 191 Feb 24 02:17 README.txt
-rw-r--r-- 1 root root 11467982139 Mar 20 22:40 oda-sm-19.10.0.0.0-210222.4-server1of2.zip
-rw-r--r-- 1 root root 9086866837 Mar 20 23:02 oda-sm-19.10.0.0.0-210222.4-server2of2.zip
-rw-r--r-- 1 root root 9086867187 May 25 09:53 p32351355_1910000_Linux-x86-64_2of2.zip
-rw-r--r-- 1 root root 3035715218 May 25 10:07 p23494997_1910000_Linux-x86-64.zip
-rw-r--r-- 1 root root 11467982793 May 25 11:18 p32351355_1910000_Linux-x86-64_1of2.zip
You have new mail in /var/spool/mail/root
2.2 Update the repository with the 2 files
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli update-repository -f /backups/patches/oda-sm-19.10.0.0.0-210222.4-server1of2.zip
{
"jobId" : "ff6d6ad4-de02-432b-b62e-5986146a8eee",
"status" : "Created",
"message" : "/backups/patches/oda-sm-19.10.0.0.0-210222.4-server1of2.zip",
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 11:55:02 AM CEST",
"resourceList" : [ ],
"description" : "Repository Update",
"updatedTime" : "Jul 01, 2021 11:55:02 AM CEST"
}
root@oda-duts-01 /backups/patches # odacli describe-job -i ff6d6ad4-de02-432b-b62e-5986146a8eee
Job details
----------------------------------------------------------------
ID: ff6d6ad4-de02-432b-b62e-5986146a8eee
Description: Repository Update
Status: Running
Created: Jul 01, 2021 11:55:02 AM CEST
Message: /backups/patches/oda-sm-19.10.0.0.0-210222.4-server1of2.zip
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Job details
----------------------------------------------------------------
ID: ff6d6ad4-de02-432b-b62e-5986146a8eee
Description: Repository Update
Status: Success
Created: Jul 01, 2021 11:55:02 AM CEST
Message: /backups/patches/oda-sm-19.10.0.0.0-210222.4-server1of2.zip
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
root@oda-duts-01 /backups/patches #
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli update-repository -f /backups/patches/oda-sm-19.10.0.0.0-210222.4-server2of2.zip
{
"jobId" : "e07fb8f3-e937-44b9-8934-7c1343b1b3ef",
"status" : "Created",
"message" : "/backups/patches/oda-sm-19.10.0.0.0-210222.4-server2of2.zip",
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 11:59:48 AM CEST",
"resourceList" : [ ],
"description" : "Repository Update",
"updatedTime" : "Jul 01, 2021 11:59:48 AM CEST"
}
root@oda-duts-01 /backups/patches # odacli describe-job -i e07fb8f3-e937-44b9-8934-7c1343b1b3ef
Job details
----------------------------------------------------------------
ID: e07fb8f3-e937-44b9-8934-7c1343b1b3ef
Description: Repository Update
Status: Running
Created: Jul 01, 2021 11:59:48 AM CEST
Message: /backups/patches/oda-sm-19.10.0.0.0-210222.4-server2of2.zip
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
root@oda-duts-01 /backups/patches # odacli describe-job -i e07fb8f3-e937-44b9-8934-7c1343b1b3ef
Job details
----------------------------------------------------------------
ID: e07fb8f3-e937-44b9-8934-7c1343b1b3ef
Description: Repository Update
Status: Success
Created: Jul 01, 2021 11:59:48 AM CEST
Message: /backups/patches/oda-sm-19.10.0.0.0-210222.4-server2of2.zip
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
After the update of the repository, you can remove the two files to save space.
3. Update the DCS admin
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli update-dcsadmin -v 19.10.0.0.0
{
"jobId" : "03c4fb7f-5de6-425b-bb63-0663180ae488",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 12:04:50 PM CEST",
"resourceList" : [ ],
"description" : "DcsAdmin patching",
"updatedTime" : "Jul 01, 2021 12:04:50 PM CEST"
}
root@oda-duts-01 /backups/patches # odacli describe-job -i 03c4fb7f-5de6-425b-bb63-0663180ae488
Job details
----------------------------------------------------------------
ID: 03c4fb7f-5de6-425b-bb63-0663180ae488
Description: DcsAdmin patching
Status: Success
Created: Jul 01, 2021 12:04:50 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Patch location validation Jul 01, 2021 12:04:51 PM CEST Jul 01, 2021 12:04:51 PM CEST Success
dcsadmin upgrade Jul 01, 2021 12:04:51 PM CEST Jul 01, 2021 12:04:52 PM CEST Success
Update System version Jul 01, 2021 12:04:57 PM CEST Jul 01, 2021 12:04:57 PM CEST Success
4. Update the DCS components
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli update-dcscomponents -v 19.10.0.0.0
{
"jobId" : "672e3572-db10-48ea-b737-ae075793c3bb",
"status" : "Success",
"message" : "Update-dcscomponents is successful on all the node(s):DCS-Agent shutdown is successful. MySQL upgrade is successful. Timezone is set successfully. Metadata migration is successful. Agent rpm upgrade is successful. DCS-CLI rpm upgrade is successful. DCS-C",
"reports" : null,
"createTimestamp" : "Jul 01, 2021 12:07:17 PM CEST",
"description" : "Update-dcscomponents job completed and is not part of Agent job list",
"updatedTime" : "Jul 01, 2021 12:09:59 PM CEST"
}
root@oda-duts-01 /backups/patches #
5. Update the DCS agent
The command below may take some time, as specified in the documentation. So be patient and wait. This command updates the Zookeeper, installs MySQL, migrates metadata from Derby to MySQL, and updates other DCS components such as the DCS Agent, DCS CLI, and DCS Controller on Oracle Database Appliance.
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli update-dcsagent -v 19.10.0.0.0
{
"jobId" : "71637667-3dea-4ac4-a2dd-5d9e7726874a",
"status" : "Created",
"message": "Dcs agent will be restarted after the update. Please wait for 2-3 mins before executing the other commands",
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 12:12:01 PM CEST",
"resourceList" : [ ],
"description" : "DcsAgent patching",
"updatedTime" : "Jul 01, 2021 12:12:01 PM CEST"
}
root@oda-duts-01 /backups/patches # odacli describe-job -i "71637667-3dea-4ac4-a2dd-5d9e7726874a"
root@oda-duts-01 /backups/patches # odacli describe-job -i "71637667-3dea-4ac4-a2dd-5d9e7726874a"
Job details
----------------------------------------------------------------
ID: 71637667-3dea-4ac4-a2dd-5d9e7726874a
Description: DcsAgent patching
Status: Running
Created: Jul 01, 2021 12:12:01 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
dcs-agent upgrade to version 19.10.0.0.0 Jul 01, 2021 12:12:01 PM CEST Jul 01, 2021 12:12:01 PM CEST Running
root@oda-duts-01 /backups/patches # odacli describe-job -i "71637667-3dea-4ac4-a2dd-5d9e7726874a"
Job details
----------------------------------------------------------------
ID: 71637667-3dea-4ac4-a2dd-5d9e7726874a
Description: DcsAgent patching
Status: Success
Created: Jul 01, 2021 12:12:01 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
dcs-agent upgrade to version 19.10.0.0.0 Jul 01, 2021 12:12:01 PM CEST Jul 01, 2021 12:13:36 PM CEST Success
Update System version Jul 01, 2021 12:13:36 PM CEST Jul 01, 2021 12:13:36 PM CEST Success
6. Create a precheck report
Before updating the server, we run the prechecks
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli create-prepatchreport -s -v 19.10.0.0.0
Job details
----------------------------------------------------------------
ID: a3569c92-beef-46a6-b36d-d7d8c7fb6066
Description: Patch pre-checks for [OS, ILOM, GI, ORACHKSERVER]
Status: Created
Created: Jul 01, 2021 12:15:39 PM CEST
Message: Use 'odacli describe-prepatchreport -i a3569c92-beef-46a6-b36d-d7d8c7fb6066' to check details of results
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
root@oda-duts-01 /backups/patches # odacli describe-prepatchreport -i 9d93bb8b-9ede-4deb-9f2d-7c16a2d5abfa
Patch pre-check report
------------------------------------------------------------------------
Job ID: 9d93bb8b-9ede-4deb-9f2d-7c16a2d5abfa
Description: Patch pre-checks for [OS, ILOM, GI, ORACHKSERVER]
Status: FAILED
Created: Jul 01, 2021 1:11:54 PM CEST
Result: One or more pre-checks failed for [ORACHK]
Node Name
---------------
oda-duts-01
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions Success Validated minimum supported versions.
Validate patching tag Success Validated patching tag: 19.10.0.0.0.
Is patch location available Success Patch location is available.
Verify OS patch Success Verified OS patch
Validate command execution Success Validated command execution
__ILOM__
Validate supported versions Success Validated minimum supported versions.
Validate patching tag Success Validated patching tag: 19.10.0.0.0.
Is patch location available Success Patch location is available.
Checking Ilom patch Version Success Successfully verified the versions
Patch location validation Success Successfully validated location
Validate command execution Success Validated command execution
__GI__
Validate supported GI versions Success Validated minimum supported versions.
Validate available space Success Validated free space under /u01
Is clusterware running Success Clusterware is running
Validate patching tag Success Validated patching tag: 19.10.0.0.0.
Is system provisioned Success Verified system is provisioned
Validate ASM in online Success ASM is online
Validate minimum agent version Success GI patching enabled in current
DCSAGENT version
Validate GI patch metadata Success Validated patching tag: 19.10.0.0.0.
Is patch location available Success Patch location is available.
Patch location validation Success Successfully validated location
Patch verification Success Patches 32218454 not applied on GI
home /u01/app/19.0.0.0/grid on node
oda-duts-01
Validate Opatch update Success Successfully updated the opatch in
GiHome /u01/app/19.0.0.0/grid on node
oda-duts-01
Patch conflict check Success No patch conflicts found on GiHome
/u01/app/19.0.0.0/grid on node
oda-duts-01
Validate command execution Success Validated command execution
__ORACHK__
Running orachk Failed Orachk validation failed: .
Validate command execution Success Validated command execution
Verify the vm.min_free_kbytes Failed AHF-4819: The vm.min_free_kbytes
configuration configuration is not set as
recommended
Software home Failed Software home check failed
In the results, we can see that there are some errors due to orachk. Based on the following document:
https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/19.10/cmtrn/issues-with-oda-odacli.html#GUID-F2B10F21-3D1E-4328-8E9B-D75AD38D26A1
Oracle sends the information to ignore the errors and then continue with updating the server.
7. Apply the server update
As we ignore the error, we use the flag sko for the patching
root@oda-duts-01 /backups/patches # /opt/oracle/dcs/bin/odacli update-server -v 19.10.0.0.0 -sko
{
"jobId" : "59bbb6d2-bf6e-451a-8a4e-1de86c490d26",
"status" : "Created",
"message" : "Success of server update will trigger reboot of the node after 4-5 minutes. Please wait until the node reboots.",
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 20:23:54 PM CEST",
"resourceList" : [ ],
"description" : "Server Patching",
"updatedTime" : "Jul 01, 2021 20:23:54 PM CEST"
}
root@oda-duts-01 ~ # odacli describe-job -i "59bbb6d2-bf6e-451a-8a4e-1de86c490d26"
Job details
----------------------------------------------------------------
ID: 59bbb6d2-bf6e-451a-8a4e-1de86c490d26
Description: Server Patching
Status: Success
Created: Jul 01, 2021 8:24:34 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Patch location validation Jul 01, 2021 8:24:41 PM CEST Jul 01, 2021 8:24:41 PM CEST Success
dcs-controller upgrade Jul 01, 2021 8:24:42 PM CEST Jul 01, 2021 8:24:42 PM CEST Success
Creating repositories using yum Jul 01, 2021 8:24:43 PM CEST Jul 01, 2021 8:24:46 PM CEST Success
Updating YumPluginVersionLock rpm Jul 01, 2021 8:24:46 PM CEST Jul 01, 2021 8:24:46 PM CEST Success
Applying OS Patches Jul 01, 2021 8:24:46 PM CEST Jul 01, 2021 8:24:47 PM CEST Success
Creating repositories using yum Jul 01, 2021 8:24:47 PM CEST Jul 01, 2021 8:24:47 PM CEST Success
Applying HMP Patches Jul 01, 2021 8:24:47 PM CEST Jul 01, 2021 8:24:48 PM CEST Success
Client root Set up Jul 01, 2021 8:24:48 PM CEST Jul 01, 2021 8:24:48 PM CEST Success
Client grid Set up Jul 01, 2021 8:24:48 PM CEST Jul 01, 2021 8:24:48 PM CEST Success
Patch location validation Jul 01, 2021 8:24:48 PM CEST Jul 01, 2021 8:24:48 PM CEST Success
oda-hw-mgmt upgrade Jul 01, 2021 8:24:49 PM CEST Jul 01, 2021 8:24:49 PM CEST Success
OSS Patching Jul 01, 2021 8:24:50 PM CEST Jul 01, 2021 8:24:50 PM CEST Success
Applying Firmware Disk Patches Jul 01, 2021 8:24:50 PM CEST Jul 01, 2021 8:24:53 PM CEST Success
Applying Firmware Controller Patches Jul 01, 2021 8:24:53 PM CEST Jul 01, 2021 8:24:55 PM CEST Success
Checking Ilom patch Version Jul 01, 2021 8:24:55 PM CEST Jul 01, 2021 8:24:55 PM CEST Success
Patch location validation Jul 01, 2021 8:24:55 PM CEST Jul 01, 2021 8:24:56 PM CEST Success
Save password in Wallet Jul 01, 2021 8:24:56 PM CEST Jul 01, 2021 8:24:56 PM CEST Success
Apply Ilom patch Jul 01, 2021 8:24:56 PM CEST Jul 01, 2021 8:24:56 PM CEST Success
Copying Flash Bios to Temp location Jul 01, 2021 8:24:56 PM CEST Jul 01, 2021 8:24:56 PM CEST Success
Starting the clusterware Jul 01, 2021 8:24:59 PM CEST Jul 01, 2021 8:24:59 PM CEST Success
clusterware patch verification Jul 01, 2021 8:24:59 PM CEST Jul 01, 2021 8:25:01 PM CEST Success
Patch location validation Jul 01, 2021 8:25:01 PM CEST Jul 01, 2021 8:25:01 PM CEST Success
Opatch update Jul 01, 2021 8:26:32 PM CEST Jul 01, 2021 8:26:36 PM CEST Success
Patch conflict check Jul 01, 2021 8:26:36 PM CEST Jul 01, 2021 8:27:29 PM CEST Success
clusterware upgrade Jul 01, 2021 8:27:34 PM CEST Jul 01, 2021 9:04:18 PM CEST Success
Updating GiHome version Jul 01, 2021 9:04:18 PM CEST Jul 01, 2021 9:04:21 PM CEST Success
Starting the clusterware Jul 01, 2021 9:05:25 PM CEST Jul 01, 2021 9:05:25 PM CEST Success
remove network public interface Jul 01, 2021 9:05:25 PM CEST Jul 01, 2021 9:05:28 PM CEST Success
create bridge network Jul 01, 2021 9:05:28 PM CEST Jul 01, 2021 9:05:33 PM CEST Success
modify network public interface Jul 01, 2021 9:05:33 PM CEST Jul 01, 2021 9:05:34 PM CEST Success
Update System version Jul 01, 2021 9:05:35 PM CEST Jul 01, 2021 9:05:35 PM CEST Success
Cleanup JRE Home Jul 01, 2021 9:05:35 PM CEST Jul 01, 2021 9:05:35 PM CEST Success
Add SYSNAME in Env Jul 01, 2021 9:05:35 PM CEST Jul 01, 2021 9:05:35 PM CEST Success
Setting ACL for disk groups Jul 01, 2021 9:05:35 PM CEST Jul 01, 2021 9:05:38 PM CEST Success
preRebootNode Actions Jul 01, 2021 9:05:44 PM CEST Jul 01, 2021 9:06:30 PM CEST Success
Reboot Ilom Jul 01, 2021 9:06:30 PM CEST Jul 01, 2021 9:06:30 PM CEST Success
We can confirm this by running the following command
root@oda-duts-01 ~ # odacli describe-component
System Version
---------------
19.10.0.0.0
System node Name
---------------
oda-duts-01
Local System Version
---------------
19.10.0.0.0
Component Installed Version Available Version
---------------------------------------- -------------------- --------------------
OAK 19.10.0.0.0 up-to-date
GI 19.10.0.0.210119 up-to-date
DB 11.2.0.4.200414 11.2.0.4.210119
DCSAGENT 19.10.0.0.0 up-to-date
OS 7.9 up-to-date
ILOM 5.0.1.21.a.r138015 up-to-date
BIOS 41080800 up-to-date
FIRMWARECONTROLLER QDV1RF30 up-to-date
FIRMWAREDISK 0121 up-to-date
HMP 2.4.7.0.1 up-to-date
8. Update the existing dbhomes
root@oda-duts-01 ~ # odacli list-dbhomes
ID Name DB Version Home Location Status
---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
7c724f57-a495-4db9-a88a-48323f3632c6 OraDB11204_home1 11.2.0.4.200414 /u01/app/oracle/product/11.2.0.4/dbhome_1 CONFIGURED
root@oda-duts-01 ~ # odacli create-prepatchreport --dbhome --dbhomeid 7c724f57-a495-4db9-a88a-48323f3632c6 -v 19.10.0.0.0
root@oda-duts-01 ~ # odacli update-dbhome --dbhomeid 7c724f57-a495-4db9-a88a-48323f3632c6 -v 19.10.0.0.0 -sko
{
"jobId" : "cf0d4064-1eb2-4b9a-8653-41fe1f06f98a",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 21:26:05 PM CEST",
"resourceList" : [ ],
"description" : "DB Home Patching: Home Id is 7c724f57-a495-4db9-a88a-48323f3632c6",
"updatedTime" : "Jul 01, 2021 21:26:05 PM CEST"
}
root@oda-duts-01 ~ #
root@oda-duts-01 ~ #
root@oda-duts-01 ~ # odacli describe-job -i "cf0d4064-1eb2-4b9a-8653-41fe1f06f98a"
Job details
----------------------------------------------------------------
ID: cf0d4064-1eb2-4b9a-8653-41fe1f06f98a
Description: DB Home Patching: Home Id is 7c724f57-a495-4db9-a88a-48323f3632c6
Status: Success
Created: Jul 01, 2021 9:26:05 PM CEST
Message: Success
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
clusterware patch verification Jul 01, 2021 9:26:19 PM CEST Jul 01, 2021 9:26:21 PM CEST Success
Patch conflict check Jul 01, 2021 9:26:21 PM CEST Jul 01, 2021 9:26:21 PM CEST Success
Patch location validation Jul 01, 2021 9:26:21 PM CEST Jul 01, 2021 9:26:21 PM CEST Success
Opatch update Jul 01, 2021 9:27:13 PM CEST Jul 01, 2021 9:27:17 PM CEST Success
Patch conflict check Jul 01, 2021 9:27:17 PM CEST Jul 01, 2021 9:27:30 PM CEST Success
Creating wallet for DB Client Jul 01, 2021 9:27:58 PM CEST Jul 01, 2021 9:28:03 PM CEST Success
db upgrade Jul 01, 2021 9:28:03 PM CEST Jul 01, 2021 9:30:06 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:06 PM CEST Jul 01, 2021 9:30:07 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:07 PM CEST Jul 01, 2021 9:30:08 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:08 PM CEST Jul 01, 2021 9:30:09 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:09 PM CEST Jul 01, 2021 9:30:10 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:10 PM CEST Jul 01, 2021 9:30:11 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:11 PM CEST Jul 01, 2021 9:30:12 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:12 PM CEST Jul 01, 2021 9:30:13 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:13 PM CEST Jul 01, 2021 9:30:14 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:14 PM CEST Jul 01, 2021 9:30:15 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:15 PM CEST Jul 01, 2021 9:30:16 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:17 PM CEST Jul 01, 2021 9:30:18 PM CEST Success
SqlPatch upgrade Jul 01, 2021 9:30:18 PM CEST Jul 01, 2021 9:30:19 PM CEST Success
Update System version Jul 01, 2021 9:30:19 PM CEST Jul 01, 2021 9:30:19 PM CEST Success
updating the Database version Jul 01, 2021 9:30:21 PM CEST Jul 01, 2021 9:30:22 PM CEST Success
updating the Database version Jul 01, 2021 9:30:22 PM CEST Jul 01, 2021 9:30:24 PM CEST Success
updating the Database version Jul 01, 2021 9:30:24 PM CEST Jul 01, 2021 9:30:26 PM CEST Success
updating the Database version Jul 01, 2021 9:30:26 PM CEST Jul 01, 2021 9:30:28 PM CEST Success
updating the Database version Jul 01, 2021 9:30:28 PM CEST Jul 01, 2021 9:30:30 PM CEST Success
updating the Database version Jul 01, 2021 9:30:30 PM CEST Jul 01, 2021 9:30:32 PM CEST Success
updating the Database version Jul 01, 2021 9:30:32 PM CEST Jul 01, 2021 9:30:34 PM CEST Success
updating the Database version Jul 01, 2021 9:30:34 PM CEST Jul 01, 2021 9:30:36 PM CEST Success
updating the Database version Jul 01, 2021 9:30:36 PM CEST Jul 01, 2021 9:30:38 PM CEST Success
updating the Database version Jul 01, 2021 9:30:38 PM CEST Jul 01, 2021 9:30:40 PM CEST Success
updating the Database version Jul 01, 2021 9:30:40 PM CEST Jul 01, 2021 9:30:41 PM CEST Success
updating the Database version Jul 01, 2021 9:30:41 PM CEST Jul 01, 2021 9:30:43 PM CEST Success
You have new mail in /var/spool/mail/root
Now that the patch was successful, we can delete the snapshots we took with odabr
root@oda-duts-01 ~ # /opt/odabr/odabr delsnap
INFO: 2021-07-01 21:33:02: Please check the logfile '/opt/odabr/out/log/odabr_48818.log' for more details
INFO: 2021-07-01 21:33:02: Removing LVM snapshots
INFO: 2021-07-01 21:33:02: ...removing LVM snapshot for 'opt'
SUCCESS: 2021-07-01 21:33:03: ...snapshot for 'opt' removed successfully
INFO: 2021-07-01 21:33:03: ...removing LVM snapshot for 'u01'
SUCCESS: 2021-07-01 21:33:03: ...snapshot for 'u01' removed successfully
INFO: 2021-07-01 21:33:03: ...removing LVM snapshot for 'root'
SUCCESS: 2021-07-01 21:33:03: ...snapshot for 'root' removed successfully
SUCCESS: 2021-07-01 21:33:03: Remove LVM snapshots done successfully
root@oda-duts-01 ~ #
9. Update the repository with the RDBMS clone 19.10
The last step is to update the repository with the RDBMS clone 19.10. For this, download the patch p23494997_1910000_Linux-x86-64.zip. And then unpack the file and run the command
root@oda-duts-01 /backups/patches # odacli update-repository -f /backups/patches/odacli-dcs-19.10.0.0.0-210115-DB-11.2.0.4.zip
{
"jobId" : "9e5124ef-670a-41a5-9135-4f1688cad2b7",
"status" : "Created",
"message" : "/backups/patches/odacli-dcs-19.10.0.0.0-210115-DB-11.2.0.4.zip",
"reports" : [ ],
"createTimestamp" : "Jul 01, 2021 21:38:53 PM CEST",
"resourceList" : [ ],
"description" : "Repository Update",
"updatedTime" : "Jul 01, 2021 21:38:53 PM CEST"
}
root@oda-duts-01 /backups/patches # odacli describe-job -i "9e5124ef-670a-41a5-9135-4f1688cad2b7"
Job details
----------------------------------------------------------------
ID: 9e5124ef-670a-41a5-9135-4f1688cad2b7
Description: Repository Update
Status: Running
Created: Jul 01, 2021 9:38:53 PM CEST
Message: /backups/patches/odacli-dcs-19.10.0.0.0-210115-DB-11.2.0.4.zip
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Unzip bundle Jul 01, 2021 9:38:53 PM CEST Jul 01, 2021 9:38:53 PM CEST Running
root@oda-duts-01 /backups/patches # odacli describe-job -i "9e5124ef-670a-41a5-9135-4f1688cad2b7"
Job details
----------------------------------------------------------------
ID: 9e5124ef-670a-41a5-9135-4f1688cad2b7
Description: Repository Update
Status: Success
Created: Jul 01, 2021 9:38:53 PM CEST
Message: /backups/patches/odacli-dcs-19.10.0.0.0-210115-DB-11.2.0.4.zip
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Unzip bundle Jul 01, 2021 9:38:53 PM CEST Jul 01, 2021 9:39:36 PM CEST Success
I hope this helps you!!!
Stay tuned, following on twitter @aontalba and on Linkedin
André Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent my actual employer positions, strategies or opinions. The information here was edited to be useful for general purposes. Specific data and identifications were removed to allow reach generic audience and be useful.”
Oracle Restart Database Upgrade 12c to 19c using Autoupgrade.
Today we are going to see a step by step, how to upgrade an Oracle restart Database 12c to 19c.
1. Software downloads
JDK 8: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Oracle 19.3 Database and Grid Infrastructure: https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c
Database Release Update 19.11: Patch 32545013
Grid Infrastructure Release Update 19.11 : Patch 32545008
Autoupgrade https://support.oracle.com/epmos/faces/DocumentDisplay?id=2485457.1
OPatch : Patch 6880880
2. Prerequisites Grid Infrastructure
According to the Oracle Document 2539751.1, you must apply the patch to fix the bug 21255373 in the 12.1.0.2 Grid home directory. Check if this patche applied in your environment:
opatch lsinventory |grep 21255373
If you have not installed it, the 12.1.0.2.190416 GI PSU patch 29176115 contains the fix for this bug.
3. Upgrade Grid Infrastructure to 19.11
Create a directory on Oracle Grid Infrastructure
mkdir -p /u01/app/grid/product/19.3.0/grid
Copy the 19c grid software to the folder and unzip it:
cd /u01/app/grid/product/19.3.0/grid
unzip -q /tmp/binaries/LINUX.X64_193000_db_home.zip
3.1 Pre-requisites checks
According to Oracle document 1457357.1, the user that owns Grid needs to run the Orachk tool.
Make sure to download the latest version of Orachk from AHF , then run the following commands:
cd /u01/app/grid/product/19.3.0/grid/suptools/orachk
export GRID_HOME= /u01/app/grid/product/19.3.0/grid
export RAT_PROMPT_WAIT_TIMEOUT=15
export RAT_ORACLE_HOME=/u01/app/grid/12.1.0
export RAT_DB=12.1.0.2.0
cd /u01/app/grid/product/19.3.0/grid/suptools/orachk
./orachk -u -o pre -profile clusterware,as
This process generates an HTML report as shown in the following image:
Make sure to review the report for all failed, critical, and warning checks and resolve them before you move to the next step.
3.3 Install GI RU 19.11
You need to apply the patch 32545008 in the 19c home directory of the Grid infrastructure.
cd /u01/app/grid/product/19.3.0/grid
./gridSetup.sh -silent -applyRU /tmp/binaries/p32545008_19000.zip
Finally, it asks to run rootupgrade.sh. Do not run the script yet because you need to run it at the end of the Upgrade.
3.4 Validate Grid Infrastructure
Log in as the Grid OS owner user and run the cluster verification utility with the following commands:
cd /u01/app/grid/product/19.3.0/grid/
./runcluvfy.sh stage -pre hacfg -fixup -verbose
Verifying node application existence ...PASSED
Verifying check incorrectly sized ASM disks ...PASSED
Verifying ASM disk group free space ...PASSED
Verifying network configuration consistency checks ...PASSED
Verifying file system mount options for path GI_HOME ...PASSED
Verifying /boot mount ...PASSED
Verifying OLR Integrity ...PASSED
Verifying Verify that the ASM instance was configured using an existing ASM parameter file. ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...INFORMATION (PRVG-11250)
Verifying Network interface bonding status of private interconnect network interfaces ...PASSED
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying file system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM filter driver configuration ...PASSED
Verifying Systemd login manager IPC parameter ...PASSED
Verifying Kernel retpoline support ...PASSED
3.5 Upgrade Oracle Grid Infrastructure
Before starting the Upgrade, run the following command to bring down the all database running and ensure that the grid services are running on the server. Make sure cluster upgrade status is normal:
unset ORACLE_BASE
unset ORACLE_HOME
unset ORACLE_SID
cd /u01/app/grid/product/19.3.0/grid
./gridsetup.sh -silent -ignorePrerequisites -responseFile /u01/app/grid/product/19.3.0/grid/install/response/duts_upgrade.rsp
Finally, it asks to run rootupgrade.sh. Do run the script to finish the Upgrade.
At this point, the process upgrades Grid to 19c, and all the cluster services are running.
crsctl query has softwareversion
4. Upgrade Oracle Database 12c to 19.11
4.1 Install Oracle 19.3
Create a directory on Oracle Database
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
Copy the 19c Oracle Database software to the folder and unzip it:
cd /u01/app/oracle/product/19.3.0/dbhom_1
unzip -q /tmp/binaries/LINUX_X64_193000_db_home.zip
4.2 Apply Oracle Database RU – 19.11
You need to apply the patch 31281355 in the 19c home directory.
cd /u01/app/oracle/product/19.3.0/dbhome_1
./runInstaller -silent -applyRU /tmp/binaries/p32545013_19000.zip -responseFile /u01/app/oracle/product/19.3.0/oracle/install/response/duts_upgrade.rsp
Finally, it asks to run rootupgrade.sh. Do run the script to finish the Upgrade.
4.3 Upgrade from 12c to 19c using Autoupgrade
For the Upgrade we’ll use the autoupgrade utility.
Create a directory on Oracle Database
mkdir -p /u01/app/oracle/autoupgrade
Copy the autoupgrade.jar to the folder:
cd /u01/app/oracle/autoupgrade
cp /tmp/binaries/autoupgrade.jar .
Create a sample file to use in autoupgrade:
$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar autoupgrade.jar -create_sample_file config
mv sample_file.cfg 12c_19c.cfg
vi 12c_19c.cfg
#Global configurations
#Autoupgrade's global directory, non-job logs generated,
#temp files created and other autoupgrade files will be
#send here
global.autoupg_log_dir=/u01/app/oracle/autoupgrade
#
# Database number 1
#
upg1.dbname=DUTS
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/12.1.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/19.3.0/dbhome_1
upg1.sid=DUTS
Run autoupgrade in analyze mode:
cd /u01/app/oracle/autoupgrade
$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar autoupgrade.jar -12c_19c.cfg -mode analyze
Note the log files which have been created for each database – as we have only run autoupgrade with the Analyze option, the only directory which is created is prechecks directory.
For each database which has been analyzed, we can review the HTML file which lists the pre-check warnings and recommendations.
Run autoupgrade in fixups mode:
cd /u01/app/oracle/autoupgrade
$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar autoupgrade.jar -12c_19c.cfg -mode fixups
Run autoupgrade in deploy mode:
cd /u01/app/oracle/autoupgrade
$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar autoupgrade.jar -12c_19c.cfg -mode deploy
After completing the migration review the HTML file that lists the items that have been updated update.
Change the compatible of Database
alter system set compatible =’19.0.0.0’scope=spfile;
Check if the restore point is removed by autoupgrade tool.
I hope this helps you!!!
Stay tuned, following on twitter @aontalba and on Linkedin
André Ontalba
Disclaimer: “The postings on this site are my own and don’t necessarily represent my actual employer positions, strategies or opinions. The information here was edited to be useful for general purposes. Specific data and identifications were removed to allow reach generic audience and be useful.”