Conclusion: -- two single-instance databases are used as DG and the database version is 10.2.0.1.0.
1. Configure the master database as arch async, And the slave database does not have a standby log.
The log contains: RFS [4]: No standby redo logfiles created.
2. Configure the master database as arch async. The slave database has a standby log, which is not displayed in the LOG.
Special case: the master database is configured as arch async, the slave database has a standby log, the slave database has not opened the log application, and the LOG contains: RFS [8]: Successfully opened standby log 4: '/u01/app/Oracle/prod/disk1/standbylog1.log'
3. Modify the parameter of the master database to lgwr async. The slave database has a standby log. The LOG is as follows:
RFS [10]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'
4. Modify the parameter of the master database to log_archive_dest_2 = SERVICE = PROD. Write only SERVICE = PROD. the archive of the master database cannot be transferred to the slave database.
Experiment 1: configure the master database as arch async, And the slave database does not have a standby log.
1. master database configuration and logs:
Master database:
SQL> select protection_mode, database_role, protection_level from v $ database;
PROTECTION_MODE DATABASE_ROLE PROTECTION_LEVEL
--------------------------------------------------------
MAXIMUM PERFORMANCE PRIMARY MAXIMUM PERFORMANCE
15:47:43 SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
-----------------------------------------------------------------------------
Log_archive_dest_2 string SERVICE = prod1 arch async VALI
D_FOR = (ONLINE_LOGFILES, PRIMARY
_ ROLE) DB_UNIQUE_NAME = prod1
15:47:49 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
27
Slave database:
SQL> select protection_mode, database_role, protection_level from v $ database;
PROTECTION_MODE DATABASE_ROLE PROTECTION_LEVEL
--------------------------------------------------------
MAXIMUM PERFORMANCE PHYSICAL STANDBY MAXIMUM PERFORMANCE
03:48:02 SQL> select group #, thread #, bytes/1024/1024 mb, status from v $ standby_log;
No rows selected
03:48:05 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
27
####################
2. Switch the REDO log of the master database and view the log:
At 15:48:18 SQL> alter system switch logfile;
System altered.
At 15:49:33 SQL> alter system switch logfile;
System altered.
15:50:11 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
29
The slave database has received:
03:49:48 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
29
Master database log:
[Oracle @ ocm1 ~] $ Tail-f alert_PROD.log
Sun Apr 20 15:49:33 2014
Thread 1 advanced to log sequence 29
Current log #2 seq #29 mem #0:/u01/app/oracle/prod/disk1/redo02.log
Current log #2 seq #29 mem #1:/u01/app/oracle/prod/disk2/log2b. log
Sun Apr 20 15:50:11 2014
Thread 1 advanced to log sequence 30
Current log #3 seq #30 mem #0:/u01/app/oracle/prod/disk1/redo03.log
Current log #3 seq #30 mem #1:/u01/app/oracle/prod/disk2/log3b. log
Slave database log:
[Oracle @ ocm2 ~] $ Tail-f alert_PROD1.log
RFS [4]: Archived Log: '/u01/app/oracle/prod/arch/1_28_844894247.arc'
Sun Apr 20 03:49:30 2014
Media Recovery Log/u01/app/oracle/prod/arch/logs 28_844894247.arc
Media Recovery Waiting for thread 1 sequence 29
Sun Apr 20 03:50:07 2014
RFS [4]: No standby redo logfiles created
RFS [4]: Archived Log: '/u01/app/oracle/prod/arch/1_29_844894247.arc'
Sun Apr 20 03:50:10 2014
Media Recovery Log/u01/app/oracle/prod/arch/1_29_844894247.arc
Media Recovery Waiting for thread 1 sequence 30
######################################## ##################
Experiment 2: configure the master database as arch async and the slave database has a standby log. The STANDBY database's standby log is automatically used.
The master database configuration remains unchanged.
Add standby log to the slave database:
03:55:04 SQL> alter database recover managed standby database cancel;
Database altered.
03:56:39 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog1.log' size 100 m;
Database altered.
03:56:50 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog2.log' size 100 m;
Database altered.
03:56:55 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog3.log' size 100 m;
Database altered.
03:57:00 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog4.log' size 100 m;
Database altered.
03:57:05 SQL> select group #, thread #, bytes/1024/1024 mb, status from v $ standby_log;
GROUP # THREAD # MB STATUS
----------------------------------------
4 0 100 UNASSIGNED
5 0 100 UNASSIGNED
6 0 100 UNASSIGNED
7 0 100 UNASSIGNED
04:13:33 SQL> alter database recover managed standby database disconnect from session;
Database altered.
04:14:12 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
38
### Log switching in the master database:
At 16:15:40 SQL> alter system switch logfile;
System altered.
At 16:15:53 SQL> alter system switch logfile;
System altered.
16:16:10 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
40
Standby database query:
04:02:47 SQL> select max (sequence #) from v $ archived_log;
MAX (SEQUENCE #)
--------------
32
04:02:49 SQL>
############################
Logs for the second normal time:
[Oracle @ ocm1 ~] $ Tail-f alert_PROD.log
Sun Apr 20 16:18:21 2014
Thread 1 cannot allocate new log, sequence 42
Checkpoint not complete
Current log #2 seq #41 mem #0:/u01/app/oracle/prod/disk1/redo02.log
Current log #2 seq #41 mem #1:/u01/app/oracle/prod/disk2/log2b. log
Thread 1 advanced to log sequence 42
Current log #3 seq #42 mem #0:/u01/app/oracle/prod/disk1/redo03.log
Current log #3 seq #42 mem #1:/u01/app/oracle/prod/disk2/log3b. log
Sun Apr 20 16:19:08 2014
Thread 1 cannot allocate new log, sequence 43
Checkpoint not complete
Current log #3 seq #42 mem #0:/u01/app/oracle/prod/disk1/redo03.log
Current log #3 seq #42 mem #1:/u01/app/oracle/prod/disk2/log3b. log
Thread 1 advanced to log sequence 43
Current log #1 seq #43 mem #0:/u01/app/oracle/prod/disk1/redo01.log
Current log #1 seq #43 mem #1:/u01/app/oracle/prod/disk2/log1b. log
Sun Apr 20 16:20:41 2014
Expanded controlfile section 11 from 56 to 112 records
Requested to grow by 56 records; added 2 blocks of records
Slave database:
[Oracle @ ocm2 ~] $ Tail-f alert_PROD1.log
Sun Apr 20 04:20:36 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS [8]: Assigned to RFS process 16069
RFS [8]: Identified database type as 'physical standby'
RFS [8]: Archived Log: '/u01/app/oracle/prod/arch/1_40_844894247.arc'
RFS [8]: Archived Log: '/u01/app/oracle/prod/arch/1_41_844894247.arc'
RFS [8]: Archived Log: '/u01/app/oracle/prod/arch/1_42_844894247.arc'
Sun Apr 20 04:20:37 2014
Media Recovery Log/u01/app/oracle/prod/arch/12740_844894247.arc
Media Recovery Log/u01/app/oracle/prod/arch/logs 41_844894247.arc
Media Recovery Log/u01/app/oracle/prod/arch/1_42_844894247.arc
Media Recovery Waiting for thread 1 sequence 43
For more details, please continue to read the highlights on the next page: