Active Data Guard is more than just the Read-Only Standby database. Together with your Active Data Guard license comes the “Rolling Upgrade using Active Data Guard” Feature, better known as DBMS_ROLLING.
This is really the only way to go from now on. It makes life so much easier for the dba. See my AutoUpgrade page for my real life working document.
There are two things that influence access to the database with 10g passwords.
Autoupgrade sets a guaranteed restore point before it does the upgrade in case anything goes wrong.
I have done an upgrade that went wrong so to make life a lot easier, use a FRA!
Note: Flashback does not need to be enabled for this to work.
alter system set db_recovery_file_dest_size = 10g scope=both; alter system set db_recovery_file_dest = ‘/cln/acc/ora_data2/archivelog/aarct' scope=both; SQL> sho parameter recovery NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /cln/acc/ora_data2/archivelog/aarct db_recovery_file_dest_size big integer 10G recovery_parallelism integer 0
The recompilation and timezone options are commented as 'yes' is the default anyway.
# -------------------- # Global configuration # -------------------- global.autoupg_log_dir=/home/oracle/autoupgrade/logs global.target_version=19 # ----------------- # Database number 1 # ----------------- upg1.dbname=aarct upg1.start_time=now upg1.source_home=/cln/tst/ora_bin1/app/oracle/product/11.2.0.4/dbhome_1 upg1.target_home=/cln/tst/ora_bin1/app/oracle/product/19/dbhome_1 upg1.sid=aarct upg1.log_dir=/home/oracle/autoupgrade/logs/aarct upg1.upgrade_node=localhost #upg1.run_utlrp=yes #upg1.timezone_upg=yes
export CFGS="/oracle/scripts"
export OH19="$ORACLE_BASE/product/19/dbhome_1"
echo $OH19
/cln/tst/ora_bin1/app/oracle/product/19/dbhome_1
"${OH19}/jdk/bin/java" -jar "${OH19}/rdbms/admin/autoupgrade.jar" -config "${CFGS}/autoupgrade_aarct.cfg" -mode analyze
"${OH19}/jdk/bin/java" -jar "${OH19}/rdbms/admin/autoupgrade.jar" -config "${CFGS}/autoupgrade_aarct.cfg" -mode deploy -restore_on_fail
If the application testing shows that this database version is not going to work there are options.
NOTE: The whole database will be rewound - dictionary and data!
select * from v$restore_point; shu immediate startup mount; flashback database to restore point &grp; alter database open resetlogs;
The advantage of this method is that the dictionary is downgraded but the data remains as it is.
shutdown immediate startup downgrade set echo on termout on serveroutput on timing on spool /home/oracle/autoupgrade/logs/aarct/catdwgrd.log @?/rdbms/admin/catdwgrd.sql shutdown immediate exit
Switch back to the old ORACLE_HOME. A duplicated entry in /etc/oratab helps here.
export ORACLE_SID=aarct_11 . oraenv
Start the instance up in upgrade mode to to complete the downgrade!
startup upgrade set echo on termout on timing on spool /home/oracle/autoupgrade/logs/aarct/catrelod.log @?/rdbms/admin/catrelod.sql shutdown immediate
Startup and recompile any uncompiled objects
startup @?/rdbms/admin/utlrp.sql