autougrade
Table of Contents
Autoupgrade
export CFG="/oracle/scripts/autoupgrade_loane_crelane_crelsase_bile.cfg"
SIDLIST="${CFG##*grade_}"
SIDLIST=$(echo $SIDLIST|sed -e 's/.cfg//' -e 's/_/ /g')
Check version
$OH19/jdk/bin/java -jar $OH19/rdbms/admin/autoupgrade.jar -version
If not latest, download from link at the top of this document (if not already existing in /oracle/Patches)
echo $OH19 read -p "Press Enter to continue" nodb199 cp /oracle/Patches/autoupgrade.jar.21.1.2 $OH19/rdbms/admin/autoupgrade.jar $OH19/jdk/bin/java -jar $OH19/rdbms/admin/autoupgrade.jar -version
Check new parameters have been taken into account
ORAENV_ASK=NO
for i in ${SIDLIST}; do
export ORACLE_SID="$i"
printf "\n\n%s\n" "Processing $ORACLE_SID"
. oraenv
[[ $? -ne 0 ]] && echo "WARNING: Cannot set environment for $ORACLE_SID, skipping" && continue
sqlplus -s / as sysdba<<'EOSQL'
shu immediate
create spfile from pfile;
startup mount
alter database archivelog;
alter database open;
set lines 1000 pages 100
col name for a30
col value for a100
select name
, value
from v$parameter
where name in (
'db_domain',
'service_names',
'memory_max_target',
'memory_target',
'sga_max_size',
'sga_target',
'pga_aggregate_limit',
'pga_aggregate_target',
'local_listener',
'log_archive_dest',
'log_archive_dest_1',
'open_links',
'db_recovery_file_dest',
'db_recovery_file_dest_size'
)
order by 1
/
EOSQL
done
Autoupgrade with analyse option
$OH19/jdk/bin/java -jar $OH19/rdbms/admin/autoupgrade.jar -config "${CFG}" -mode analyze
Job 100 completed Job 102 completed Job 103 completed ------------------- Final Summary -------------------- Number of databases [ 4 ] Jobs finished [4] Jobs failed [0] Jobs pending [0] Please check the summary report at: /home/oracle/logs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html /home/oracle/logs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log
Check the status of the deploy
grep '\[Status]' /home/oracle/logs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log
Autoupgrade with deploy option
$OH19/jdk/bin/java -jar $OH19/rdbms/admin/autoupgrade.jar -config "${CFG}" -mode deploy
Job 105 completed Job 106 completed Job 107 completed Job 104 completed ------------------- Final Summary -------------------- Number of databases [ 4 ] Jobs finished [4] Jobs failed [0] Jobs pending [0] ---- Drop GRP at your convenience once you consider it is no longer needed ---- Drop GRP from bila: drop restore point AUTOUPGRADE_9212_BILA121020 Drop GRP from loana: drop restore point AUTOUPGRADE_9212_LOANA121020 Drop GRP from crelsasa: drop restore point AUTOUPGRADE_9212_CRELSASA121020 Drop GRP from crelana: drop restore point AUTOUPGRADE_9212_CRELANA121020 Please check the summary report at: /home/oracle/logs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html /home/oracle/logs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log
Check the status of the deploy
grep '\[Status]' /home/oracle/logs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log
Clear a properly failed upgrade
In case something really went badly wrong…
select * from v$restore_point;
shu immediate
startup mount;
flashback database to restore point &grp;
alter database open resetlogs;
exit
$OH19/jdk/bin/java -jar $OH19/rdbms/admin/autoupgrade.jar -config "${CFG}" -clear_recovery_data
then reset the environment to the old home
If the issue was with the startup file,
cd /home/oracle/logs/autoupgrade/${ORACLE_SID}/${ORACLE_SID}/temp
vi *pfile_${ORACLE_SID}.ora
Changing the real one in the dbs directory will have no effect!
* If necessary, disable one or more fixups: https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/how-to-override-default-fixups.html
Other command that might help
$OH19/jdk/bin/java -jar $OH19/rdbms/admin/autoupgrade.jar -config "${CFG}" -restore -all_failed
Post-upgrade
- Duplicate, modify home in new and comment out the old line in /etc/oratab
- Check listener startup in /etc/lsnrtab
- When static listener entries are setup in 19c listener.ora, remove them. They will now be dynamically registered.
Reinitialise environment
. oraenv
Check the end time on this file for the end of the upgrade
ls -al /oracle/autoupgrade/logs/${ORACLE_SID}/${ORACLE_SID}/*/postupgrade/postupgrade.log
If POST-UPGRADE errors
cat /home/oracle/autoupgrade/logs/${ORACLE_SID}/${ORACLE_SID}/*/postfixups/failed_postfixups.log
Other post-upgrade stuff
- Change the password file format
- The format of the password file has changed (new format is version 12.2). It is possible to run 19c database with a legacy password file but sysdba, sysbackup, etc… passwords cannot be changed unless the new format is used (by creating a new password file). This also introduces minimum password complexities that cannot be overruled.
- Check for symbolic links in directory names
- Manage database users
- Ensure RMAN recovery window is correct
ORAENV_ASK=NO
for i in ${SIDLIST}; do
export ORACLE_SID="$i"
printf "\n%s\n" "Processing $ORACLE_SID"
. oraenv >/dev/null
[[ $? -ne 0 ]] && echo "WARNING: Cannot set environment for $ORACLE_SID, skipping" && continue
orapwd describe file=${ORACLE_HOME}/dbs/orapw${ORACLE_SID}
orapwd file=${ORACLE_HOME}/dbs/orapw${ORACLE_SID} password=something force=y
orapwd describe file=${ORACLE_HOME}/dbs/orapw${ORACLE_SID}
sqlplus -s / as sysdba<<-'EOSQL'
@?/rdbms/admin/utldirsymlink.sql
alter profile default limit password_life_time unlimited;
alter user dbsnmp identified by something account unlock;
alter user system account lock;
alter user sys account lock;
EOSQL
echo "CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 28 DAYS;"|rman target / catalog rman/rman@rman12
done
<code>
=== Following 2 sections should no longer be necessary as network config are no longer upgraded ===
* Ensure environment from here on is set to 19c
* Remove just upgraded database(s) from listener.ora.19c
<code>
vi $TNS_ADMIN/listener.ora.19c
* Check 19c tnsnames and listener.ora is not corrupted
cd $TNS_ADMIN diff sqlnet.ora.19c sqlnet.ora diff listener.ora.19c listener.ora diff tnsnames.ora.19c tnsnames.ora cd -
Restart listeners
for i in $(ps -ef | grep [t]ns|grep "LSNR_HN"|grep '/19.9.0/'|awk '{print $10}'); do
echo $i
lsnrctl stop $i
lsnrctl start $i
done
Check appli connection is in tnsnames.ora
- Test connections via tns
ORAENV_ASK=NO
for i in ${SIDLIST}; do
export ORACLE_SID="$i"
printf "\n%s\n" "Processing $ORACLE_SID"
. oraenv >/dev/null
[[ $? -ne 0 ]] && echo "WARNING: Cannot set environment for $ORACLE_SID, skipping" && continue
echo "register database with the listener"
echo "alter system register;" | sqlplus -s / as sysdba
echo "test connection to appli database"
echo "exit" | sqlplus -s cgkmon/C6KM0N@appli
echo "test connection to ${ORACLE_SID} database"
echo "exit" | sqlplus -s cgkmon/C6KM0N@"${ORACLE_SID}"
done
autougrade.txt · Last modified: 2022/02/19 23:07 by 127.0.0.1
