May 22, 2026

Step-by-Step Guide to Convert Physical Standby to Snapshot Standby in Oracle 19c

 

In many Oracle Data Guard environments, the standby database is usually seen only as a DR database. But I have seen several customers use their Snapshot Standby as a temporary sandbox for testing.

Before moving important changes to production whether it is a patch, program change, or database modification they first validate everything on snapshot standby. Since the standby stays very close to production data, testing becomes much more reliable than using an outdated DEV or TEST environment.

Recently, I had a similar requirement where the application team wanted to validate some changes. Instead of refreshing a separate database clone, we simply converted the physical standby into a Snapshot Standby and used it for testing.

In fact they had a batch script in place which used to run every night to keep the standby database in sync to make it very close to actual production environment.

 

Environment details: -

Env details

Primary DB

Standby DB

DB unique Name

Orcl

DVDB

DB name

Orcl

Orcl

DB role

Primary

Standby

DB Version

19.29

19.29

OS Version

Windows 2022

Windows 2022

 

 

Today I will show how to convert a physical standby database into snapshot standby database.

In primary:-

FRA must be configured

Sufficient FRA space should exist

Standby should be mounted and healthy

SQL> show parameter db_recovery

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      D:\oracle\fast_recovery_area

db_recovery_file_dest_size           big integer 300G

 

 

Check for archive log gap status in Primary:-

SQL> select status,instance_name,database_role,open_mode from v$database,v$Instance;

 

STATUS       INSTANCE_NAME    DATABASE_ROLE    OPEN_MODE

------------ ---------------- ---------------- --------------------

OPEN         orcl             PRIMARY          READ WRITE

 

SQL> select max(sequence#) from v$archived_log where archived='YES';

 

MAX(SEQUENCE#)

--------------

         87655

 

 

In standby:-

SQL> show parameter db_recovery_file_dest

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      D:\oracle\fast_recovery_area

db_recovery_file_dest_size           big integer 200G

 

SQL> select max(sequence#) from v$archived_log where archived='YES';

 

MAX(SEQUENCE#)

--------------

         87655

 

 

Now login to DGMGRL utility to perform conversion to snapshot database

In standby:-

C:\Windows\system32>dgmgrl sys@dvdb as sysdba

DGMGRL for 64-bit Windows: Release 19.0.0.0.0 - Production on Fri May 22 13:32:26 2026

Version 19.29.0.0.0

 

Copyright (c) 1982, 2025, Oracle and/or its affiliates.  All rights reserved.

 

Welcome to DGMGRL, type "help" for information.

Password:

Connected to "DVDB"

Connected as SYSDBA.

 

DGMGRL> show configuration

 

Configuration - my_dg_config

 

  Protection Mode: MaxPerformance

  Members:

  orcl   - Primary database

 dvdb   - Physical standby database

 

Fast-Start Failover:  Disabled

 

Configuration Status:

SUCCESS   (status updated 39 seconds ago)

 

Lets start conversion (in standby site)

DGMGRL> CONVERT DATABASE dvdb to snapshot standby ;

Converting database "dvdb" to a Snapshot Standby database, please wait...

Database "dvdb" converted successfully

DGMGRL> show configuration

 

Configuration - my_dg_config

 

  Protection Mode: MaxPerformance

  Members:

  orcl   - Primary database

    dvdb   - Snapshot standby database

 

Fast-Start Failover:  Disabled

 

Configuration Status:

SUCCESS   (status updated 50 seconds ago)

 

SQL> select status,instance_name,database_role,open_mode from v$database,v$Instance;

 

STATUS       INSTANCE_NAME    DATABASE_ROLE    OPEN_MODE

------------ ---------------- ---------------- --------------------

OPEN         orcl             SNAPSHOT STANDBY READ WRITE

 

SQL>

 

So this concludes the conversion of physical standby database into standby database.

At this point we can start application and point to the standby database as the database is currently in read write mode.

Note: Any changes made into standby database is not permanent. They get removed whenever the database is converted back to physical standby database.

No comments:

Post a Comment

Step-by-Step Guide to Convert Physical Standby to Snapshot Standby in Oracle 19c

  In many Oracle Data Guard environments, the standby database is usually seen only as a DR database. But I have seen several customers use ...