Database
 sql >> Datenbank >  >> RDS >> Database

Festlegen des physischen Standby-Modus von Active Data Guard in der RAC-One-Node-Architektur – Teil 2

Dieser Artikel ist Teil 2 einer zweiteiligen Serie, in der die Schritte zum Einstellen des physischen Standbymodus von Active Data Guard in der RAC-One-Node-Architektur beschrieben werden. Teil 1 finden Sie hier.

1. Wenn der Vorgang zum Duplizieren der Datenbank abgeschlossen ist (Teil 1 des Artikels), fügen Sie die Standby-Datenbank in Clusterware hinzu

 
srvctl add database -d analytics_dg -o /u01/app/oracle/product/12.1.0.2/dbhome_1 -c RACONENODE -p '+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' -r PHYSICAL_STANDBY -s MOUNT -n analytics_dg -e hostdr

2. Herunterfahren einer Datenbank

sqlplus> shutdown immediate;

3. Kopieren Sie die „Oracle-Kennwortdatei“ mit dem neuen Instanznamen „orapwanalyticsdg_1“

cd $ORACLE_HOME/dbs
cp orapwanalytics_dg orapwanalyticsdg_1

4. Datenbank starten

$ srvctl start database -d analytics_dg
$ srvctl config database -d analytics_dg
Database unique name: analytics_dg
Database name: analytics_dg
Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_1
Oracle user: oracle
Spfile: +DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora
Password file:
Domain:
Start options: read only
Stop options: immediate
Database role: PHYSICAL_STANDBY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DG_DATA,DG_RECO
Mount point paths:
Services:
Type: RACOneNode
Online relocation timeout: 30
Instance name prefix: analyticsdg
Candidate servers: hostdr
OSDBA group: sdba
OSOPER group: soper
Database instances:
Database is administrator managed

5. Gemäß dem Muster von Oracle Restart wird die Instanz analytics_dg analyticsdg_1 genannt, daher muss listener.ora aktualisiert werden.

Führen Sie den Befehl „listener reload“ aus, um den Listener zu zwingen, die „listener.ora“-Einträge erneut zu lesen. Beachtung! Dieser Vorgang wirkt sich auf die Verfügbarkeit des Listeners aus.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = analytics_dg_dgmgrl)
# (SID_NAME = analytics_dg)
(SID_NAME = analyticsdg_1)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/dbhome_1)
)
)

6. Redo Transport Service wird manuell aktiviert, um Verbindungen und Einstellungen zu validieren.

Parameter DB_BLOCK_CHECKSUM , DB_BLOCK_CHECKING und DB_LOST_WRITE_PROTECT wird für beide Datenbanken, primär und Standby, eingerichtet, um beschädigte Blöcke zu verhindern und zu erkennen.

6.1. Parameter in der Standby-Datenbank anpassen

sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*' ;
sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES, ALL_LOGFILES) db_unique_name=analytics_dg' scope=both sid='*' ;
sqlplus> alter system set log_archive_dest_2='service=analytics LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics' scope=both sid='*';
sqlplus> alter system set fal_server='analytics' scope=both sid='*';
sqlplus> alter system set fal_client='analytics_dg' scope=both sid='*';
sqlplus> alter system set log_archive_max_processes=4 scope=both sid='*';
sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*';
sqlplus> alter system set db_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*';
sqlplus> alter system set log_file_name_convert='+DG_DATA_DR/analytics','+DG_DATA/analytics_DG','+DG_RECO_DR/analytics','+DG_RECO/analytics_DG' scope=spfile sid='*';
sqlplus> alter system set db_block_checksum=FULL scope=both sid='*' ;
sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*' ;
sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*' ;
sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='*';
sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*';

6.2. Passen Sie die Parameter in der primären Datenbank an:

sqlplus> alter system set log_archive_config='dg_config=(analytics,analytics_dg)' scope=both sid='*' ;
sqlplus> alter system SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_ROLES,ALL_LOGFILES) db_unique_name=analytics' scope=both sid='*' ;
sqlplus> alter system set log_archive_dest_2='service=analytics_dg LGWR ASYNC NOAFFIRM max_failure=10 max_connections=1 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=analytics_dg' scope=both sid='*';
sqlplus> alter system set fal_server='analytics_dg' scope=both sid='*';
sqlplus> alter system set fal_client='analytics' scope=both sid='*';
sqlplus> alter system set log_archive_max_processes=4 scope=both sid='*' ;
sqlplus> alter system set standby_file_management='AUTO' scope=both sid='*' ;
sqlplus> alter system set db_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*';
sqlplus> alter system set log_file_name_convert='+DG_DATA/analytics_DG','+DG_DATA_DR/analytics','+DG_RECO/analytics_DG','+DG_RECO_DR/analytics' scope=spfile sid='*';
sqlplus> alter system set db_block_checksum=TYPICAL scope=both sid='*' ;
sqlplus> alter system set db_block_checking=MEDIUM scope=both sid='*' ;
sqlplus> alter system set db_lost_write_protect=TYPICAL scope=both sid='*' ;
sqlplus> alter system set log_archive_dest_state_1='enable' scope=both sid='*' ;
sqlplus> alter system set log_archive_dest_state_2='enable' scope=both sid='*' ;

6.3. Das „Status“-Attribut von „Primary“ und „Standby“ muss „VALID“ zurückgeben

sqlplus> select dest_id,status,destination ,error from v$archive_dest where dest_id <=5;
 ID DB_status Archive_dest Error
---------- --------- ----------------------------- -------
1 VALID USE_DB_RECOVERY_FILE_DEST
2 VALID analytics_dg
3 INACTIVE
4 INACTIVE
5 INACTIVE

sqlplus> select dest_id,status,database_mode,recovery_mode from v$archive_dest_status where status <> 'INACTIVE';
 DEST_ID STATUS DATABASE_MODE RECOVERY_MODE
---------- --------- --------------- -----------------------
1 VALID OPEN IDLE
2 VALID MOUNTED-STANDBY IDLE

6.4. Redo Apply manuell starten:

sqlplus> alter database recover managed standby database using current logfile disconnect;

6.5. Synchronisierung zwischen Primär- und Standby-Datenbankvalidierung

sqlplus> select * from v$archive_gap;
sqlplus> select name, value, datum_time, time_computed from v$dataguard_stats where name like 'apply lag';
sqlplus> select file_type, number_of_files, percent_space_used from v$recovery_area_usage;
sqlplus> select current_scn from v$database;
sqlplus> select sequence#, first_time, applied from v$archived_log order by sequence#;

6.6. Beenden Sie Redo Apply, bevor Sie Data Guard Broker einrichten

sqlplus> alter database recover managed standby database cancel;
Database altered.

7. Data Guard Broker in Primär- und Standby-Datenbank einrichten

Hinweis:Data Guard-Einstellungsdateien werden in ASM in verschiedenen Datenträgergruppen erstellt:dg_broker_config_file1 und dg_broker_config_file2

7.1. In der primären Datenbank:

sqlplus> alter system set dg_broker_config_file1 = '+DG_DATA_DR/analytics/BROKERCFG/brokeranalytics1.dat' scope=both sid='*';
sqlplus> alter system set dg_broker_config_file2 = '+DG_RECO_DR/analytics/BROKERCFG/brokeranalytics2.dat' scope=both sid='*';
sqlplus> alter system set log_archive_dest_2='' scope=both sid='*' ;
sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*';
sqlplus> alter system set DG_BROKER_START=TRUE scope=both sid='*';

7.2. In Standby-Datenbank:

sqlplus> alter system set dg_broker_config_file1 = '+DG_DATA/analytics_DG/BROKERCFG/brokeranalytics_dg1.dat' scope=both sid='*';
sqlplus> alter system set dg_broker_config_file2 = '+DG_RECO/analytics_DG/BROKERCFG/brokeranalytics_dg2.dat' scope=both sid='*';
sqlplus> alter system set log_archive_dest_2='' scope=both sid='*' ;
sqlplus> alter system set DG_BROKER_START=FALSE scope=both sid='*';
sqlplus> alter system set DG_BROKER_START=TRUE scope=both sid='*';

7.3. Broker-Einstellungen:

$ dgmgrl
dgmgrl> connect sys/xxxxx@analytics
Connected as SYSDBA.
dgmgrl> create configuration 'analytics_cfg' as primary database is 'analytics' connect identifier is analytics;
Configuration "analytics_cfg" created with primary database "analytics"
dgmgrl> add database 'analytics_dg' as connect identifier is analytics_dg maintained as physical;
Database "analytics_dg" added
dgmgrl> edit database 'analytics_dg' set property logxptmode=async;
Property "logxptmode" updated
dgmgrl> edit configuration set protection mode as MAXPERFORMANCE;
Succeeded.
dgmgrl> enable configuration; 
Enabled.

Verwenden Sie den Befehl SHOW CONFIGURATION, um eine kurze Zusammenfassung der Einstellungen anzuzeigen.

dgmgrl> show configuration

Configuration - analytics_cfg
Protection Mode: MaxPerformance
Databases:
analytics - Primary database
analytics_dg - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

7.4. Einstellungen mit Befehlen validieren

dgmgrl> show database verbose 'analytics_dg' 'RecvQEntries';
dgmgrl> show database verbose 'analytics';
dgmgrl> show database verbose 'analytics_dg';

Knoten 1:

sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database;
NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE
--------- -------------------- -------------------- -------------------- -----------
analytics READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY

Knoten 2:

sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database;
NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVE DATABASE_ROLE
--------- -------------------- -------------------- -------------------- -----------
analytics READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY

Standby-DB:

sqlplus> select NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE from v$database;
NAME OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE
--------- ---------------- -------------------- -------------------- ----------------
analytics MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY

8. Anpassungen am Broker werden an den Einstellungen „MaxConnections“, „TransportDisconnectedThreshold“ und „TransportLagThreshold“ vorgenommen [1]

Die Eigenschaft „MaxConnections“ gibt an, wie viele ARCn-Prozesse parallel verwendet werden, um Daten aus einer Redo-Log-Datei an die Remote-Site zu übertragen, wenn es eine Lücke im Prozess gibt. Wenn MaxConnections mit einem Wert größer als 1 definiert ist, verwenden Redo-Transportdienste mehrere ARCn-Prozesse, um Daten aus einer Redo-Log-Datei in Standby zu übertragen.

Die Eigenschaft „TransportDisconnectedThreshold“ kann verwendet werden, um einen Warnstatus für ein logisches oder physisches Warten oder eine sofortige Erfassung zu erstellen, wenn die letzte primäre Datenbankkommunikation den für die Eigenschaft angegebenen Wert überschreitet. Der Wert der Eigenschaft wird in Sekunden ausgedrückt.

Die Eigenschaft „TransportLagThreshold“ kann verwendet werden, um einen Warnstatus für ein logisches oder physisches Warten oder eine sofortige Erfassung zu erstellen, wenn die Datenbanktransportverzögerung den für die Eigenschaft angegebenen Wert überschreitet. Der Wert der Eigenschaft wird in Sekunden ausgedrückt.

dgmgrl> edit database 'analytics' SET PROPERTY 'MaxConnections'= 4;
Property "MaxConnections" updated
dgmgrl> edit database 'analytics' SET PROPERTY TransportDisconnectedThreshold='180';
Property "transportdisconnectedthreshold" updated
dgmgrl> edit database 'analytics' SET PROPERTY TransportLagThreshold='900';
Property "transportlagthreshold" updated
dgmgrl> edit database 'analytics_dg' SET PROPERTY 'MaxConnections'= 4;
Property "MaxConnections" updated
dgmgrl> edit database 'analytics_dg' SET PROPERTY TransportDisconnectedThreshold='180';
Property "transportdisconnectedthreshold" updated
dgmgrl> edit database 'analytics_dg' SET PROPERTY TransportLagThreshold='900';
Property "transportlagthreshold" updated

9. Archivprotokolle der Ausschlussrichtlinie in der primären Datenbank ändern.

rman> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;

Aktive Dataguard-Aktivierung

10. Redo Apply im Broker stoppen

$ dgmgrl
dgmgrl> connect sys
dgmgrl> edit database 'analytics_dg' set state = 'apply-off';
dgmgrl> show database 'analytics_dg'

11. Standby-Instanz im Nur-Lese-Modus öffnen.

sqlplus> alter database open read only;

12. Starten Sie Redo Apply im Broker

$ dgmgrl
dgmgrl> connect sys
dgmgrl> edit database 'analytics_dg' set state = 'apply-on';
dgmgrl> show database 'analytics_dg'
 

Referenzen

[1] Data Guard-Broker. Verfügbar unter:https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781