Let's talk about the three Protection modes of DG.
Maximum Protection:
The maximum protection mode does not allow data loss. All transactions can be committed only after the logs of the master and slave databases are written. If a network exception occurs between the master and slave databases, the performance of the master database will be seriously affected.
Maximum Performance:
This is the default mode of DG. This mode ensures that the master database runs at maximum performance and allows the transaction to be committed immediately after the local log is written successfully, without waiting for redo data to be written to the slave database, the redo data generated by the transaction is asynchronously transmitted to the slave database. In this mode, when the master database fails, a small amount of data may be lost in the slave database, minimizing the impact on the performance of the master database.
Maximum Availability:
Under normal circumstances, this Protection mode is the same as Maximum Protection. All redo data of the transaction to be restored is synchronized to the online redo file of the master database and the standby redo log of the slave database, transactions can be successfully committed. When the master database cannot synchronize the redo data to the master database and the slave database, this protection mode will automatically change to the same Maximum Performance mode for running without causing unavailability of the master database, when the Exception Processing is completed, it is restored to the same Maximum Protection mode.
You can use different modes based on your actual situation and requirements. The setting of various protection modes is very simple, but you still need to understand it in some places.
The Protection modes correspond to the log transmission attribute of the log_archive_dest_n parameter to the Maximum Availability Maximum Performance Maximum Protection affrem noaffrem affrem sync async sync DB_UNIQUE_NAME parameter.
SELECT PROTECTION_MODE from v $ DATABASE;
Set Maximum Avalilability mode:
SQL> alter database set standby database to maximize availability;
Database altered.
SQL> SELECT NAME, PROTECTION_MODE, PROTECTION_LEVEL, DATABASE_ROLE, DB_UNIQUE_NAME FROM v $ database;
NAME PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE DB_UNIQUE_NAME
-----------------------------------------------------------------------------------------------
Ogg maximum availability resynchronization primary ogg
Set Maximum Performance mode:
SQL> alter database set standby database to maximize PERFORMANCE;
Database altered.
SQL> SELECT NAME, PROTECTION_MODE, PROTECTION_LEVEL, DATABASE_ROLE, DB_UNIQUE_NAME FROM v $ database;
NAME PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE DB_UNIQUE_NAME
-----------------------------------------------------------------------------------------------
Ogg maximum performance primary ogg
The preceding two modes have no special restrictions. You can convert them from one mode without worrying about the parameter settings of log_archive_dest_n.
Maximum Protection has restrictions. perform the following test:
Set Maximum Protection in Maximum Avalilability Mode
Condition Maximum Avalilability + log_archive_dest_n ASYNC
SQL> alter database set standby database to maximize availability;
Database altered.
SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
-----------------------------------------------------------------------------
Log_archive_dest_2 string SERVICE = tgg lgwr async VALID_F
OR = (ONLINE_LOGFILES, PRIMARY_RO
LE) DB_UNIQUE_NAME = tgg
SQL> SELECT PROTECTION_MODE FROM V $ DATABASE;
PROTECTION_MODE
--------------------
MAXIMUM AVAILABILITY
SQL> alter database set standby database to maximize PROTECTION;
Database altered.
SQL> alter database open;
Alter database open
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 4876
Session ID: 1 Serial number: 5
In this case, the master database instance is directly DOWN and the alert log Database has been changed to the Maximum Protection mode. However, because the LAG_ARCHIVE_DEST_2 parameter uses ASYNC for asynchronous transmission, this is not allowed in the Maximum Protection mode, therefore, Oracle directly shuts down the instance to protect data from loss.
For more details, please continue to read the highlights on the next page:
Recommended reading:
Use the Duplicate function of RMAN to create a physical partition uard
Basic Oracle tutorial-copying a database through RMAN
Reference for RMAN backup policy formulation
RMAN backup learning notes
Oracle Database Backup encryption RMAN Encryption
Use RMAN to back up duplicate to create a replica uard