AutoUpgrade and Data Guard - denis-kol4ev/OraDBA GitHub Wiki

Использование утилиты AutoUpgrade при наличии standby

Документация:

https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/non-cdb-to-pdb-upgrade-guidelines-examples.html#GUID-7985739B-B33B-4BA6-A9FE-FEFC7721FFE8

Тестовый стенд:

  • Обновление с 12.2 на 19.10.
  • Primary хост angel, БД angel_orcl
  • Standby хост devil, БД devil_orcl

1. Перед апгрейдом

1.1 Остановить standby

srvctl stop database -d devil_orcl -stopoption immediate
srvctl disable database -d devil_orcl

2. Обновляем primary БД при помощи AutoUpgrade

2.1 Подготовка файла параметров

AutoUpgrade определяет конфигурацию Data Guard и автоматически выполняет следующее:

  • выставляет состояние primary TRANSPORT-OFF
  • файлы брокера копируются в целевой хоум

Для этого в файл конфигурации добавляем параметр defer_standby_log_shipping

vi /home/oracle/sample_config.cfg

global.autoupg_log_dir=/opt/oracle/cfgtoollogs/autoupgrade

upg1.log_dir=/opt/oracle/cfgtoollogs/autoupgrade
upg1.sid=orcl 
upg1.source_home=/opt/oracle/rdbms/12.2
upg1.target_home=/opt/oracle/rdbms/19c
upg1.start_time=NOW
upg1.upgrade_node=angel
upg1.run_utlrp=yes
upg1.timezone_upg=yes       
upg1.remove_underscore_parameters=yes
upg1.defer_standby_log_shipping=yes

2.2 Проверка версии

export ORACLE_HOME=/opt/oracle/rdbms/19c
$ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -version
  • Oracle recommends that you download the most recent version of the AutoUpgrade Utility from My Oracle Support Document 2485457.1

2.3 Запуск в режиме analyze

$ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config /home/oracle/sample_config.cfg -mode analyze

2.4 Запуск в режиме deploy

$ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config /home/oracle/sample_config.cfg -mode deploy

cмотрим логи выполнения

tail -100f /opt/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/autoupgrade.log

tail -100f /opt/oracle/cfgtoollogs/autoupgrade/orcl/<job_number>/autoupgrade_<upgrade_date>_user.log

tail -100f /opt/oracle/cfgtoollogs/autoupgrade/orcl/106/autoupgrade_20220212_user.log  

Если AutoUpgrade отработал успешно, то вывод по завершению будет такой

upg> Job 107 completed
------------------- Final Summary --------------------
Number of databases            [ 1 ]

Jobs finished                  [1]
Jobs failed                    [0]
Jobs pending                   [0]

---- Drop GRP at your convenience once you consider it is no longer needed ----
Drop GRP from orcl: drop restore point AUTOUPGRADE_9212_ANGEL_ORCL122010

---- Data Guard broker configuration is disabled. Enable it once ready to sync up standby database  ----
Enable Data Guard from angel_orcl using the following DGMGRL command:
EDIT DATABASE angel_orcl SET STATE=TRANSPORT-ON;

Please check the summary report at:
/opt/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html
/opt/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log
oracle@angel ~ $

Дополнительная проверка по отдельным этапам апгрейда

egrep -i "Stage|Status" /opt/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log

3. После завершения работы AutoUpgrade

3.1 На primary

3.1.1 Изменяем ORACLE_HOME в .bash_profile на актуальный
3.1.2 Удаляем GRP
rman target /
list restore point all;
drop restore point AUTOUPGRADE_9212_ANGEL_ORCL122010;
3.1.3 Изменяем параметр compatible
sqlplus / as sysdba
show parameter compatible;
alter system set compatible='19.0.0' scope=spfile;

srvctl stop database -d angel_orcl
srvctl start database -d angel_orcl
3.1.4 Актуализация настроек листнера

В listener.ora меняем ORACLE_HOME в статическом сервисе листнера SID_LIST_LISTENER на актуальный, перезагружаем листнер (lsnrctl reload)

3.2 На standby

3.2.1 Изменяем ORACLE_HOME в .bash_profile на актуальный
3.2.2 Актуализация настроек листнера

В listener.ora меняем ORACLE_HOME в статическом сервисе листнера SID_LIST_LISTENER на актуальный, перезагружаем листнер (lsnrctl reload)

3.2.3 Копируем файлы конфигурации из старого ORACLE_HOME в новый
export ORACLE_UNQNAME=devil_orcl
export OLD_HOME=/opt/oracle/rdbms/12.2
export ORACLE_HOME=/opt/oracle/rdbms/19c
export PATH=$ORACLE_HOME/bin:$PATH

cp $OLD_HOME/network/admin/sqlnet.ora $ORACLE_HOME/network/admin
cp $OLD_HOME/network/admin/tnsnames.ora $ORACLE_HOME/network/admin

cp $OLD_HOME/dbs/orapw$ORACLE_SID $ORACLE_HOME/dbs
cp $OLD_HOME/dbs/spfile$ORACLE_SID.ora $ORACLE_HOME/dbs

cp $OLD_HOME/dbs/dr1$ORACLE_UNQNAME.dat $ORACLE_HOME/dbs
cp $OLD_HOME/dbs/dr2$ORACLE_UNQNAME.dat $ORACLE_HOME/dbs
3.2.4 Изменяем параметр compatible
sqlplus / as sysdba
startup nomount
show parameter compatible;
alter system set compatible='19.0.0' scope=spfile;
shutdown 
3.2.5 Обновляем ресурсы clusterware до актуальной версии
srvctl upgrade database -d $ORACLE_UNQNAME -oraclehome $ORACLE_HOME
srvctl modify database -d $ORACLE_UNQNAME -startoption MOUNT -role PHYSICAL_STANDBY
srvctl modify database -d $ORACLE_UNQNAME -spfile
srvctl enable database -d $ORACLE_UNQNAME
srvctl start database -d $ORACLE_UNQNAME

3.3 На primary

3.3.1 Включаем передачу журналов
dgmgrl sys@angel
SHOW DATABASE angel_orcl;
EDIT DATABASE angel_orcl SET STATE=TRANSPORT-ON;
3.3.2 Проверяем что передача выполняется успешно
SHOW DATABASE angel_orcl 'LogXptStatus';
3.3.3 Проверяем лаг транспорта и лаг применения журналов
SHOW DATABASE devil_orcl;

3.4 На standby, после завершения синхронизации с primary

3.4.1 Изменяем параметр автостарта на READ ONLY
srvctl modify database -d devil_orcl -startoption "READ ONLY" -role PHYSICAL_STANDBY
srvctl stop database -d devil_orcl
srvctl start database -d devil_orcl
⚠️ **GitHub.com Fallback** ⚠️