You are on page 1of 8

ORACLE DATABASE 12C RELEASE 2 NEW FEATURE – CREATE

DATA GUARD STANDBY DATABASE USING DBCA


One of the real nice new features in Oracle 12c Release 2 (12.2.0.1) is the ability to create an
Oracle Data Guard Standby Database using DBCA (Database Configuration Assistant). This
really does simplify the process of creating a standby database as well and automates a number
of steps in the creation process which were earlier manually performed.

In this example we will see how a 12.2.0.1 Data Guard environment is created via DBCA and
then Data Guard Broker (DGMGRL).

The source database is called salesdb and the standby database DB_UNIQUE_NAME will


be salesdb_sb.

Primary database host name is host01 and the Standby database host name is host02.

The syntax is:


dbca -createDuplicateDB

-gdbName global_database_name

-primaryDBConnectionString easy_connect_string_to_primary

-sid database_system_identifier

[-createAsStandby

[-dbUniqueName db_unique_name_for_standby]]

We will run the command from the standby host host02 as shown below.
 
[oracle@host02 ~]$ dbca -silent -createDuplicateDB -gdbName salesdb
-primaryDBConnectionString host01:1521/salesdb -sid salesdb -createAsStandby
-dbUniqueName salesdb_sb

Enter SYS user password:

Listener config step

33% complete

Auxiliary instance creation

66% complete

RMAN duplicate

100% complete
Look at the log file "/u02/app/oracle/cfgtoollogs/dbca/salesdb_sb/salesdb.log" for
further details.

Connect to the Standby Database and verify the role of the database
 

Note that the SPFILE and Password File for the Standby Database has been automatically
created
[oracle@host02 dbs]$ ls -l sp*

-rw-r-----. 1 oracle dba 5632 Mar 22 09:40 spfilesalesdb.ora

[oracle@host02 dbs]$ ls -l ora*

-rw-r-----. 1 oracle dba 3584 Mar 17 14:38 orapwsalesdb

Add the required entries to the tnsnames.ora file


Continue with the Data Guard Standby Database creation using the Data Guard Broker
 
SQL> alter system set dg_broker_start=true scope=both;

System altered.

SQL> quit

Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit
Production

[oracle@host01 archivelog]$ dgmgrl

DGMGRL for Linux: Release 12.2.0.1.0 - Production on Fri Mar 17 14:47:27 2017

connect /

Connected to "salesdb"

Connected as SYSDG.

DGMGRL> create configuration 'salesdb_dg'

> as primary database is 'salesdb'

> connect identifier is 'salesdb';

Configuration "salesdb_dg" created with primary database "salesdb"


DGMGRL> add database 'salesdb_sb' as connect identifier is 'salesdb_sb';

Database "salesdb_sb" added

DGMGRL> enable configuration;

Enabled.

Create the Standby Redo Log Files on the primary database

 
SQL> select member from v$logfile;

MEMBER

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

/u03/app/oradata/salesdb/redo03.log

/u03/app/oradata/salesdb/redo02.log

/u03/app/oradata/salesdb/redo01.log

SQL> select bytes/1048576 from v$log;

BYTES/1048576

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

     200

     200

     200

SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo1.log'


size 200m;

Database altered.
SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo2.log'
size 200m;

Database altered.

SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo3.log'


size 200m;

Database altered.

SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo4.log'


size 200m;

Database altered.

 
Create the Standby Redo Log Files on the standby database

 
DGMGRL> connect /

Connected to "salesdb"

Connected as SYSDG.

DGMGRL> edit database 'salesdb_sb' set state='APPLY-OFF';

Succeeded.

SQL> shutdown immediate;

Database closed.

Database dismounted.
ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1174405120 bytes

Fixed Size          8619984 bytes

Variable Size           436209712 bytes

Database Buffers   721420288 bytes

Redo Buffers              8155136 bytes

Database mounted.

SQL>  alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo1.log'


size 200m;

Database altered.

SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo2.log'


size 200m;

Database altered.

SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo3.log'


size 200m;

Database altered.

SQL> alter database add standby logfile '/u03/app/oradata/salesdb/standy_redo4.log'


size 200m;
Database altered.

SQL> alter database open;

Database altered.

SQL>

 
Verify the Data Guard Configuration
 
DGMGRL> edit database 'salesdb_sb' set state='APPLY-ON';

Succeeded.

DGMGRL> show configuration;

Configuration - salesdb_dg

Protection Mode: MaxPerformance

salesdb    - Primary database

   salesdb_sb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS   (status updated 8 seconds ago)


 
Set the property StaticConnectIdentifier to prevent errors during switchover operations
 
Edit database ‘salesdb’ set property StaticConnectIdentifier=
'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host01.localdomain)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=salesdb_DGMGRL)(INSTANCE_NAME=salesdb)
(SERVER=DEDICATED)))';

Edit database ‘salesdb_sb’ set property


StaticConnectIdentifier=StaticConnectIdentifier=
'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host02.localdomain)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=salesdb_sb_DGMGRL)(INSTANCE_NAME=salesdb)
(SERVER=DEDICATED)))';

Edit listener.ora on primary database host and add the lines shown below. Reload the
listener.
 
SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = salesdb_DGMGRL)

      (SID_NAME = salesdb)

        )

  )

 
Edit listener.ora on standby database host and add the lines shown below. Reload the
listener.
 
SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = salesdb_sb_DGMGRL)

      (SID_NAME = salesdb)

        )

  )

You might also like