From f6bbb797fc0abf16f21bb2900ddd07e997a28f43 Mon Sep 17 00:00:00 2001 From: ranbeersingh1 <43067999+ranbeersingh1@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:07:27 +0000 Subject: [PATCH] Dba 847 (#515) * Add source legacy option * Adapt to handle restore, recover and open from legacy * Use source legacy workflow input value * Remove development target environments * Remove unwanted character * Run post or build ha jobs if required * Debugging * Uncomment debug * Uncomment * Require db_unique_name for legacy restore * Misplaced double quote * Correct variable name * Append to pfile * Add db_unique_name option * Do not perform asm diskgroup deletion for legacy recover/open condition * Modify database resources * Spelling correction --- playbooks/oracle_duplicate/rman_duplicate.sh | 79 +++++++++++--------- 1 file changed, 45 insertions(+), 34 deletions(-) diff --git a/playbooks/oracle_duplicate/rman_duplicate.sh b/playbooks/oracle_duplicate/rman_duplicate.sh index 0d83bf1c..4ed6c136 100644 --- a/playbooks/oracle_duplicate/rman_duplicate.sh +++ b/playbooks/oracle_duplicate/rman_duplicate.sh @@ -422,8 +422,10 @@ EOF echo " recover database;" >> $RMANDUPLICATECMDFILE if [[ "${LEGACY_OPTION}" = "open" ]] then - echo ' sql "alter database active standby database";' >> $RMANDUPLICATECMDFILE + echo ' sql "alter database activate standby database";' >> $RMANDUPLICATECMDFILE echo ' sql "alter database open";' >> $RMANDUPLICATECMDFILE + echo " host 'srvctl modify database -d ${TARGET_DB} -startoption OPEN';" >> $RMANDUPLICATECMDFILE + echo " host 'srvctl modify database -d ${TARGET_DB} -role PRIMARY';" >> $RMANDUPLICATECMDFILE fi for (( i=1; i<=${CPU_COUNT}; i++ )) do @@ -447,6 +449,7 @@ EOF echo " set db_file_name_convert='+DATA/${SOURCE_DB}','+DATA/${TARGET_DB}'" >> $RMANDUPLICATECMDFILE echo " set log_file_name_convert='+DATA/${SOURCE_DB}','+DATA/${TARGET_DB}','+FLASH/${SOURCE_DB}','+FLASH/${TARGET_DB}'" >> $RMANDUPLICATECMDFILE fi + [[ "${LEGACY_OPTION}" == "restore" ]] && echo " set db_unique_name='${TARGET_DB}'" >> $RMANDUPLICATECMDFILE echo " set fal_server=''" >> $RMANDUPLICATECMDFILE echo " set log_archive_config=''" >> $RMANDUPLICATECMDFILE echo " set log_archive_dest_2=''" >> $RMANDUPLICATECMDFILE @@ -469,7 +472,11 @@ EOF else echo " until scn ${SCN};" >> $RMANDUPLICATECMDFILE fi - + if [[ "${LEGACY_OPTION}" == "restore" ]] + then + echo " host 'srvctl modify database -d ${TARGET_DB} -startoption MOUNT';" >> $RMANDUPLICATECMDFILE + echo " host 'srvctl modify database -d ${TARGET_DB} -role PHYSICAL_STANDBY';" >> $RMANDUPLICATECMDFILE + fi echo "}" >>$RMANDUPLICATECMDFILE echo "exit" >>$RMANDUPLICATECMDFILE } @@ -759,6 +766,7 @@ if [[ ! -z "$JSON_INPUTS" ]]; then JSON_INPUTS=$(echo $JSON_INPUTS | base64 --decode ) fi + if [ "${SPFILE_PARAMETERS}" != "UNSPECIFIED" ] then for PARAM in ${SPFILE_PARAMETERS[@]} @@ -770,47 +778,50 @@ then done fi -info "Shutdown ${TARGET_DB}" - sqlplus -s / as sysdba < ${DUPLICATEPFILE} -echo "${COMPATIBLE}" >> ${DUPLICATEPFILE} + DUPLICATEPFILE=${ORACLE_HOME}/dbs/init${TARGET_DB}_duplicate.ora + info "Create ${DUPLICATEPFILE} pfile" + echo "db_name=${TARGET_DB}" > ${DUPLICATEPFILE} + echo "${COMPATIBLE}" >> ${DUPLICATEPFILE} -info "Place ${TARGET_DB} in nomount mode" -if ! sqlplus -s / as sysdba << EOF - whenever sqlerror exit failure - startup force nomount pfile=${DUPLICATEPFILE} + info "Place ${TARGET_DB} in nomount mode" + if ! sqlplus -s / as sysdba << EOF + whenever sqlerror exit failure + startup force nomount pfile=${DUPLICATEPFILE} EOF -then - error "Placing ${TARGET_DB} in nomount mode" + then + error "Placing ${TARGET_DB} in nomount mode" + fi fi info "Generating rman command file"