Disable Data Guard Pre Import\Refresh of PRI
- Stop Redo Transport
- Cancel Managed Recovery
- Turn Off Flashback
- Shutdown Standby
- Disable Log Shipping
- Disable Archivelog Mode (ArchiveLogMode.enable.sql)
- Monitoring
Overview
Cleanly disengage the Standby (SB) environment and Data Guard processes before doing a large Data Pump refresh on the Primary.
Role Abbrev Hostname db_unique_name ------- ------ -------- -------------- Primary PRI d2-oratrn-s01 dnatra StandBy SB d1-oratrn-s01 dnatra_sb
- Change entries to match your PRI and SB environment.
- SELECT value FROM v$parameter WHERE name = 'db_unique_name';
Your configuration uses LGWR ASYNC transport and active Data Guard apply.
✅ Step-by-Step Disable Procedure
🔸 1. On PRI: Stop redo transport.
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER SCOPE=BOTH; This halts redo log shipping to the Standby. Check status: SELECT DEST_ID, STATUS, ERROR FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2; Expect STATUS=DEFERRED.
🔸 2. On SB: Cancel managed recovery
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
🔸 3. On BOTH: Turn off Flashback (reduces overhead)
ALTER DATABASE FLASHBACK OFF;
This command does not require a database bounce.
SHUTDOWN IMMEDIATE (If planning to rebuild SB from scratch) rm -rf /u01/app/oracle/oradata/dnatra/* rm -rf /u02/fra/dnatra/* rm -f /u03/controlfiles/dnatra/control01.ctl
🔸 5. On PRI: Disable log shipping config (optional cleanup)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='' SCOPE=BOTH; ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='' SCOPE=BOTH;
Skip if you plan to restore DG immediately after refresh and want to keep config.
If rebuilding SB later with new SRLS and sizes, on PRI: Prevent SRL log allocation.
--Generally this is not needed though.--
SELECT GROUP#, THREAD# FROM V$STANDBY_LOG; -- Drop standby logs if you need space or want to recreate clean ALTER DATABASE DROP STANDBY LOGFILE GROUP <group#>;
🔸 6. On PRI, disable Archivelog mode (ArchiveLogMode.disable.sql):
shutdown immediate connect / as sysdba startup mount alter database noarchivelog; alter database open; select log_mode from v$database;
If you can't disable, the below script will purge created archive logs during import:
while true; do rman target / <<EOF CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT ARCHIVELOG ALL; DELETE NOPROMPT OBSOLETE; EOF sleep 120 done
Run from a separate console session.
🔸 7. Monitoring Check redo status on Primary:
SELECT SEQUENCE#, APPLIED, STATUS FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# DESC;
Check FRA pressure:
SELECT SPACE_USED/1024/1024/1024 AS USED_GB, SPACE_LIMIT/1024/1024/1024 AS LIMIT_GB FROM V$RECOVERY_FILE_DEST;
🧠 Tips & Gotchas
Gotcha / Risk Mitigation FRA overload during refresh Disable redo transport early (Step 1) Temp space exhaustion Monitor temp usage with v$sort_usage SB appearing out-of-sync or stale Rebuild from active DB when refresh completes Forgetting to resume transport Include post-refresh checklist (see below) Flashback logs filling FRA Disable flashback on SB if not needed
APPENDIX
ArchiveLogMode.enable.sql
shutdown immediate connect / as sysdba startup mount alter database archivelog; alter database open; select log_mode from v$database;