User Tools

Site Tools


autougrade

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki