Monday, December 30, 2013

RAC database dataguard configuration of two node DC and one node DR:

In drpdb1 as root:
###############################

Copy password file:
######## dcpdb1 User root: #################

# whoami
root
# pwd
/u02/app/oracle/product/11.2.0/dbhome_1/dbs
#

# scp orapwdcpdb1 drpdb1:/u02/app/oracle/product/11.2.0/dbhome_1/dbs
Warning: the RSA host key for 'drpdb1' differs from the key for the IP address '172.31.200.1'
Offending key for IP in /.ssh/known_hosts:6
Matching host key in /.ssh/known_hosts:9
Are you sure you want to continue connecting (yes/no)? yes
Password:
orapwdcpdb1                                    100% 3072     3.0KB/s   3.0KB/s   00:00  
#

###### drpdb1 user root: #########
# cd /u02/app/oracle/product/11.2.0/dbhome_1/dbs
# pwd
/u02/app/oracle/product/11.2.0/dbhome_1/dbs

# ls
hc_drpdb.dat   init.ora       orapwdcpdb1
initdrpdb.ora  lkDRPDB        peshm_drpdb_0

# mv orapwdcpdb1 orapwdrpdb

# ls
hc_drpdb.dat   init.ora       orapwdrpdb
initdrpdb.ora  lkDRPDB        peshm_drpdb_0

******************************************************************
drpdb1: as grid user:
******************************************************************
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=drpdb1-vip.nblitd.com)(PORT=1521))))' scope=both sid='+ASM1';
alter system register;


******************************************************************
drpdb1 as oracle user:
******************************************************************
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=drpdb1-vip.nblitd.com)(PORT=1521))))'scope=BOTH SID='drpdb1';
alter system register;

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=drpdb1-vip.nblitd.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=drpdb1-vip.nblitd.com)(PORT=1971))))'scope=BOTH SID='drpdb1';
alter system register;

******************************************************************
dcpdb1: as grid user:
******************************************************************

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dcpdb1-vip.nblitd.com)(PORT=1521))))' scope=both sid='+ASM1';
alter system register;

******************************************************************
dcpdb2: as grid user:
******************************************************************

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dcpdb2-vip.nblitd.com)(PORT=1521))))' scope=both sid='+ASM2';
alter system register;


******************************************************************
dcpdb2: as oracle user:
******************************************************************
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dcpdb2-vip.nblitd.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=dcpdb2-vip.nblitd.com)(PORT=1971))))'scope=BOTH SID='dcpdb2';
alter system register;


******************************************************************
dcpdb1 as oracle user:
******************************************************************
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dcpdb1-vip.nblitd.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=dcpdb1-vip.nblitd.com)(PORT=1590))))'scope=BOTH SID='dcpdb1';
alter system register;


******************************************************************
add logfile with thread 2:
******************************************************************
SQL> ALTER DATABASE ADD LOGFILE THREAD 2
     GROUP 5 ('+DATA','+DATA') SIZE 200M;

SQL> ALTER DATABASE ADD LOGFILE THREAD 2
     GROUP 6 ('+DATA','+DATA') SIZE 200M;


******************************************************************
create tablespace:
******************************************************************
SQL> CREATE TABLESPACE  T24MASTERDATA
     DATAFILE '+DATA' SIZE 10G;


SQL> CREATE TABLESPACE  T24MASTERINDEX
     DATAFILE '+DATA' SIZE 3G;




SQL> alter database force logging;

Database altered.



******************************************************************
add standby logfile with thread 1:
******************************************************************
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
  2  GROUP 7 ('+DATA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
  2  GROUP 8 ('+DATA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
  2  GROUP 9 ('+DATA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
  2  GROUP 10 ('+DATA','+DATA') size 200M;

Database altered.

******************************************************************
add standby logfile with thread 2:
******************************************************************
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
  2  GROUP 11 ('+DATA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
  2  GROUP 12 ('+DATA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
  2  GROUP 13 ('+DATA','+DATA') size 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
  2  GROUP 14 ('+DATA','+DATA') size 200M;

Database altered.


SQL> alter system set log_archive_config = 'DG_CONFIG=(dcpdb,drpdb)'scope=both sid='*';

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dcpdb' scope=both sid='*';

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=drpdb SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=drpdb' scope=both sid='*';

System altered.

SQL> alter system set log_archive_dest_state_1=enable scope=both;

System altered.

SQL> alter system set log_archive_dest_state_2=enable scope=both;

System altered.

SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile sid='*';

System altered.

SQL> alter system set log_archive_max_processes=5 scope=both sid='*';

System altered.


SQL> alter system set fal_server=drpdb scope=both sid='*';

System altered.

SQL> alter system set fal_client=dcpdb scope=both sid='*';

System altered.


SQL> alter system set db_file_name_convert='drpdb','dcpdb' scope=spfile sid='*';

System altered.



SQL> alter system set log_file_name_convert='drpdb','dcpdb' scope=spfile sid='*';

System altered.


SQL> alter system set db_unique_name='dcpdb' scope=spfile sid='*';

System altered.


SQL> alter system set standby_file_management=AUTO scope=both sid='*';

System altered.


SQL> alter database set standby database to maximize availability;

Database altered.

drpdb1: user oracle
** Create a listener with following listener.ora file on the standby server:

LISTENERDB =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = drpdb1)(PORT = xxxx))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCxxxx))
    )
  )
SID_LIST_LISTENERDB =
(SID_LIST =
 (SID_DESC =
  (ORACLE_HOME= /u02/app/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = drpdb)
    (GLOBAL_DBNAME= drpdb.nblitd.com)
     )
      )
ADR_BASE_LISTENERDB = /u02/app/oracle


N.B: Restart all server login again in dcpdb1 as oracle then


SQL> create pfile from spfile;

File created.

copy pfile to another location and modify parameter then paste this pfile in dbs location in drpdb1(dr).

initdcpdb1.ora file:

*.audit_file_dest='/u02/app/oracle/admin/drpdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='+DATA/drpdb/controlfile/current.261.809456283','+DATA/drpdb/controlfile/current.260.809456283'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_create_online_log_dest_1='+DATA'
*.db_create_online_log_dest_2='+DATA'
*.db_domain='nblitd.com'
*.db_file_name_convert='dcpdb','drpdb'
*.db_name='dcpdb'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=535797170176
*.db_unique_name='drpdb'
*.diagnostic_dest='/u02/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dcpdbXDB)'
*.fal_client='drpdb'
*.fal_server='dcpdb'
dcpdb2.instance_number=2
dcpdb1.instance_number=1
*.job_queue_processes=1000
#*.local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST =drpdb1.nblitd.com)(PORT=1590))'
*.log_archive_config='DG_CONFIG=(dcpdb,drpdb)'
*.log_archive_dest_1='SERVICE=dcpdb SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dcpdb'
*.log_archive_dest_2='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=drpdb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=10
*.log_file_name_convert='dcpdb','drpdb'
*.memory_target=15440281600
*.open_cursors=5000
*.processes=5000
*.remote_login_passwordfile='exclusive'
*.sessions=5505
*.standby_file_management='AUTO'
dcpdb2.thread=2
dcpdb1.thread=1
dcpdb1.undo_tablespace='UNDOTBS1'
dcpdb2.undo_tablespace='UNDOTBS2'#It will be comment for single instance DR



In DRPDB1 as root:

# cd /u02/app/oracle/product/11.2.0/dbhome_1/dbs/

# ls
hc_drpdb.dat    init.ora        orapwdrpdb
initdcpdb1.ora  lkDRPDB         peshm_drpdb_0


# mv initdcpdb1.ora initdrpdb.ora
#


N:B: IN DRPDB1: user oracle

$ export ORACLE_BASE=/u02/app/oracle
$ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
$ export GRID_HOME=/u01/app/11.2.0/grid
$ export ORACLE_SID=drpdb
$ cd $ORACLE_HOME/bin


./sqlplus " / as sysdba"$

SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 13 15:53:13 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount pfile='/u02/app/oracle/product/11.2.0/dbhome_1/dbs/initdrpdb1.ora'
ORACLE instance started.

Total System Global Area 1.5400E+10 bytes
Fixed Size                  2184872 bytes
Variable Size            7683967320 bytes
Database Buffers         7683964928 bytes
Redo Buffers               29409280 bytes

SQL>

SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE


In DCPDB1 login as oracle:

export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export GRID_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=dcpdb1
cd $ORACLE_HOME/bin

$ ./rman target sys/HPinvent123nbl@dcpdb AUXILIARY sys/HPinvent123nbl@drpdb


Recovery Manager: Release 11.2.0.1.0 - Production on Thu Mar 14 13:33:16 2013

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

connected to target database: DCPDB (DBID=322322458)
connected to auxiliary database: DCPDB (not mounted)

RMAN>


RMAN> duplicate target database for standby from active database;

Starting Duplicate Db at 14-MAR-13
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=5649 device type=DISK

contents of Memory Script:
{
   backup as copy reuse
   targetfile  '/u02/app/oracle/product/11.2.0/dbhome_1/dbs/orapwdcpdb1' auxiliary format
 '/u02/app/oracle/product/11.2.0/dbhome_1/dbs/orapwdrpdb'   ;
}
executing Memory Script

Starting backup at 14-MAR-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=5655 instance=dcpdb1 device type=DISK
Finished backup at 14-MAR-13

contents of Memory Script:
{
   backup as copy current controlfile for standby auxiliary format  '+DATA/drpdb/controlfile/current.256.809999501';
   restore clone controlfile to  '+DATA/drpdb/controlfile/current.257.809999501' from
 '+DATA/drpdb/controlfile/current.256.809999501';
   sql clone "create spfile from memory";
   shutdown clone immediate;
   startup clone nomount;
   sql clone "alter system set  control_files =
  ''+DATA/drpdb/controlfile/current.256.809999501'', ''+DATA/drpdb/controlfile/current.257.809999501'' comment=
 ''Set by RMAN'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

Starting backup at 14-MAR-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/u02/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_dcpdb1.f tag=TAG20130314T135301 RECID=1 STAMP=810049983
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 14-MAR-13

Starting restore at 14-MAR-13
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: copied control file copy
Finished restore at 14-MAR-13

sql statement: create spfile from memory

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area   15399526400 bytes

Fixed Size                     2184872 bytes
Variable Size               7717521752 bytes
Database Buffers            7650410496 bytes
Redo Buffers                  29409280 bytes

sql statement: alter system set  control_files =   ''+DATA/drpdb/controlfile/current.256.809999501'', ''+DATA/drpdb/controlfile/current.257.809999501'' comment= ''Set by RMAN'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area   15399526400 bytes

Fixed Size                     2184872 bytes
Variable Size               7717521752 bytes
Database Buffers            7650410496 bytes
Redo Buffers                  29409280 bytes

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-05529: WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed to disk group only.

contents of Memory Script:
{
   set newname for tempfile  1 to
 "+data";
   switch clone tempfile all;
   set newname for datafile  1 to
 "+data";
   set newname for datafile  2 to
 "+data";
   set newname for datafile  3 to
 "+data";
   set newname for datafile  4 to
 "+data";
   set newname for datafile  5 to
 "+data";
   set newname for datafile  6 to
 "+data";
   set newname for datafile  7 to
 "+data";
   backup as copy reuse
   datafile  1 auxiliary format
 "+data"   datafile
 2 auxiliary format
 "+data"   datafile
 3 auxiliary format
 "+data"   datafile
 4 auxiliary format
 "+data"   datafile
 5 auxiliary format
 "+data"   datafile
 6 auxiliary format
 "+data"   datafile
 7 auxiliary format
 "+data"   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to +data in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 14-MAR-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=+DATA/dcpdb/datafile/t24masterdata.277.809459733
output file name=+DATA/drpdb/datafile/t24masterdata.258.809999543 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:15:26
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=+DATA/dcpdb/datafile/t24masterindex.278.809459821
output file name=+DATA/drpdb/datafile/t24masterindex.259.810000471 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:04:45
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=+DATA/dcpdb/datafile/sysaux.257.809456141
output file name=+DATA/drpdb/datafile/sysaux.260.810000755 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=+DATA/dcpdb/datafile/system.256.809456139
output file name=+DATA/drpdb/datafile/system.261.810000841 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:05
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=+DATA/dcpdb/datafile/undotbs1.258.809456141
output file name=+DATA/drpdb/datafile/undotbs1.262.810000907 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=+DATA/dcpdb/datafile/undotbs2.267.809456519
output file name=+DATA/drpdb/datafile/undotbs2.263.810000931 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=+DATA/dcpdb/datafile/users.259.809456141
output file name=+DATA/drpdb/datafile/users.264.810000939 tag=TAG20130314T135343
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 14-MAR-13

sql statement: alter system archive log current

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=810051347 file name=+DATA/drpdb/datafile/system.261.810000841
datafile 2 switched to datafile copy
input datafile copy RECID=2 STAMP=810051347 file name=+DATA/drpdb/datafile/sysaux.260.810000755
datafile 3 switched to datafile copy
input datafile copy RECID=3 STAMP=810051347 file name=+DATA/drpdb/datafile/undotbs1.262.810000907
datafile 4 switched to datafile copy
input datafile copy RECID=4 STAMP=810051347 file name=+DATA/drpdb/datafile/users.264.810000939
datafile 5 switched to datafile copy
input datafile copy RECID=5 STAMP=810051347 file name=+DATA/drpdb/datafile/undotbs2.263.810000931
datafile 6 switched to datafile copy
input datafile copy RECID=6 STAMP=810051347 file name=+DATA/drpdb/datafile/t24masterdata.258.809999543
datafile 7 switched to datafile copy
input datafile copy RECID=7 STAMP=810051347 file name=+DATA/drpdb/datafile/t24masterindex.259.810000471
Finished Duplicate Db at 14-MAR-13

RMAN>


Login DRPDB1 as oracle:

export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export GRID_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=drpdb
cd $ORACLE_HOME/bin

./sqlplus " / as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Thu Mar 14 14:23:29 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
NO

SQL> alter database flashback on;

Database altered.

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

SQL>

SQL> select database_role,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

SQL> alter database open read only;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Database altered.

SQL>


SQL> select database_role,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

SQL>


How to Open DR in Read only Mode?

SQL> shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT;
ORACLE instance started.

Total System Global Area 1.5400E+10 bytes
Fixed Size                  2184872 bytes
Variable Size            7717521752 bytes
Database Buffers         7650410496 bytes
Redo Buffers               29409280 bytes
Database mounted.
SQL> ALTER DATABASE OPEN READ ONLY;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Database altered.

SQL>


##################### Query #########################

set pagesize 999
set linesize 999
col member for a30
col status for a18

select l.thread#,l.group#,l.members, member,l.archived,l.status
  from v$log l, v$logfile lf
  where l.group# = lf.group#;

   THREAD#     GROUP#    MEMBERS MEMBER                         ARC STATUS
---------- ---------- ---------- ------------------------------ --- ------------------
         1          2          2 +DATA/drpdb/onlinelog/group_2. YES CLEARING
                                 267.810000953

         1          2          2 +DATA/drpdb/onlinelog/group_2. YES CLEARING
                                 268.810000955

         1          1          2 +DATA/drpdb/onlinelog/group_1. YES CLEARING_CURRENT
                                 265.810000949

         1          1          2 +DATA/drpdb/onlinelog/group_1. YES CLEARING_CURRENT
                                 266.810000951

         2          4          2 +DATA/drpdb/onlinelog/group_4. YES CLEARING
                                 271.810000961

         2          4          2 +DATA/drpdb/onlinelog/group_4. YES CLEARING
                                 272.810000963

         2          5          2 +DATA/drpdb/onlinelog/group_5. YES CLEARING
                                 273.810000965

         2          5          2 +DATA/drpdb/onlinelog/group_5. YES CLEARING
                                 274.810000967

         1          3          2 +DATA/drpdb/onlinelog/group_3. YES CLEARING
                                 269.810000955

         1          3          2 +DATA/drpdb/onlinelog/group_3. YES CLEARING
                                 270.810000957

         2          6          2 +DATA/drpdb/onlinelog/group_6. YES CLEARING_CURRENT
                                 275.810000967

         2          6          2 +DATA/drpdb/onlinelog/group_6. YES CLEARING_CURRENT
                                 276.810000969


12 rows selected.

SQL> select name from v$controlfile;

NAME
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+DATA/drpdb/controlfile/current.256.809999501
+DATA/drpdb/controlfile/current.257.809999501

SQL> select file_name, tablespace_name from dba_data_files;

FILE_NAME                                                                                                            TABLESPACE_NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------
+DATA/drpdb/datafile/users.264.810000939                                                                             USERS
+DATA/drpdb/datafile/undotbs1.262.810000907                                                                          UNDOTBS1
+DATA/drpdb/datafile/sysaux.260.810000755                                                                            SYSAUX
+DATA/drpdb/datafile/system.261.810000841                                                                            SYSTEM
+DATA/drpdb/datafile/undotbs2.263.810000931                                                                          UNDOTBS2
+DATA/drpdb/datafile/t24masterdata.258.809999543                                                                     T24MASTERDATA
+DATA/drpdb/datafile/t24masterindex.259.810000471                                                                    T24MASTERINDEX

7 rows selected.

SQL>

SQL> select recovery_mode from v$archive_dest_status;

RECOVERY_MODE
-----------------------
IDLE
MANAGED REAL TIME APPLY
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE

32 rows selected.

SQL>

SQL> select database_role,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY




SQL> select database_mode, recovery_mode, protection_mode, synchronization_status, synchronized from v$archive_dest_status;

DATABASE_MODE   RECOVERY_MODE           PROTECTION_MODE      SYNCHRONIZATION_STATUS SYN
--------------- ----------------------- -------------------- ---------------------- ---
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
OPEN_READ-ONLY  MANAGED REAL TIME APPLY MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO
UNKNOWN         IDLE                    MAXIMUM PERFORMANCE  STATUS NOT AVAILABLE   NO

32 rows selected.

SQL>

SQL>


Change the Protection Mode

New Protection Mode: Maximum Availability.

    On Primary:

alter system set LOG_ARCHIVE_DEST_1='SERVICE=drpdb SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=drpdb' scope=both sid='*';
alter database set standby database to maximize availability;

    On Standby:


alter system set LOG_ARCHIVE_DEST_1='SERVICE=dcpdb SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dcpdb' scope=both sid='*';
alter database set standby database to maximize availability;




DR Shutdown & Startup Process:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1.5400E+10 bytes
Fixed Size                  2184872 bytes
Variable Size            7717521752 bytes
Database Buffers         7650410496 bytes
Redo Buffers               29409280 bytes
Database mounted.
SQL> alter database open read only;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Database altered.

SQL> select database_role,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

SQL>

SQL> select status from v$instance;

STATUS
------------------
OPEN

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY WITH APPLY

SQL>

SQL> select open_mode ,protection_mode , database_role from v$database ;


SQL> SELECT THREAD#, SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG order by SEQUENCE# ;



###########################  Test Log Transport ##################


On the primary server, check the latest archived redo log and force a log switch.

dcpdb1: and dcpdb2:
    ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS';

    SELECT sequence#, first_time, next_time
    FROM   v$archived_log
    ORDER BY sequence#;

    ALTER SYSTEM SWITCH LOGFILE;

Check the new archived redo log has arrived at the standby server and been applied.

drpdb1:
    ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS';

    SELECT sequence#, first_time, next_time, applied
    FROM   v$archived_log
    ORDER BY sequence#;

############################ END Test Log Transport ##########

No comments:

Post a Comment