DG—dgmglr failover配置

主库、备库都开启dg_broker
SYS@PROD1> show parameter dg_broker;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /u01/app/oracle/product/11.2.0
                                                 /dbhome_1/dbs/dr1PROD1.dat
dg_broker_config_file2               string      /u01/app/oracle/product/11.2.0
                                                 /dbhome_1/dbs/dr2PROD1.dat
dg_broker_start                      boolean     FALSE

SYS@PROD1> alter system set dg_broker_start=true;

System altered.

SYS@PROD1> show parameter dg_broker;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /u01/app/oracle/product/11.2.0
                                                 /dbhome_1/dbs/dr1PROD1.dat
dg_broker_config_file2               string      /u01/app/oracle/product/11.2.0
                                                 /dbhome_1/dbs/dr2PROD1.dat
dg_broker_start                      boolean     TRUE

SYS@SBDB1> show parameter dg_broker;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /u01/app/oracle/product/11.2.0
                                                 /db_1/dbs/dr1SBDB1.dat
dg_broker_config_file2               string      /u01/app/oracle/product/11.2.0
                                                 /db_1/dbs/dr2SBDB1.dat
dg_broker_start                      boolean     FALSE

SYS@SBDB1> alter system set dg_broker_start=true;

System altered.

SYS@SBDB1> show parameter dg_broker;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /u01/app/oracle/product/11.2.0
                                                 /db_1/dbs/dr1SBDB1.dat
dg_broker_config_file2               string      /u01/app/oracle/product/11.2.0
                                                 /db_1/dbs/dr2SBDB1.dat
dg_broker_start                      boolean     TRUE

主库、备库检查进程是否启动
[oracle@enmoedu1 ~]$ ps -ef | grep dmon
oracle   24937     1  0 11:36 ?        00:00:00 ora_dmon_PROD1
oracle   24941  5533  0 11:36 pts/5    00:00:00 grep dmon

[oracle@enmoedu2 ~]$ ps -ef | grep dmon
oracle   22742     1  0 11:48 ?        00:00:00 ora_dmon_SBDB1
oracle   23031 10959  0 11:53 pts/1    00:00:00 grep dmon

主库配置broker:
[oracle@enmoedu1 ~]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.3.0 - Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.

DGMGRL> connect sys
Password:
Connected.
DGMGRL> 
DGMGRL> create configuration 'drsolution' as         
> primary database is 'PROD1'
> connect identifier is PROD1;

Configuration "drsolution" created with primary database "PROD1"

DGMGRL> show configuration;
Configuration - drsolution

  Protection Mode: MaxPerformance
  Databases:
    PROD1 - Primary database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

DGMGRL> add database 'SBDB1' as connect identifier is SBDB1;
Database "SBDB1" added

DGMGRL> show configuration;
Configuration - drsolution

  Protection Mode: MaxPerformance
  Databases:
    PROD1 - Primary database
    SBDB1 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

DGMGRL> enable configuration;
Enabled.
DGMGRL> enable database 'SBDB1';
Enabled.
DGMGRL> show configuration;
Configuration - drsolution

  Protection Mode: MaxPerformance
  Databases:
    PROD1 - Primary database
    SBDB1 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL> show database 'PROD1';
Database - PROD1

  Role:            PRIMARY
  Intended State:  TRANSPORT-ON
  Instance(s):
    PROD1

Database Status:
SUCCESS

DGMGRL> show database 'SBDB1';
Database - SBDB1

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       0 seconds
  Real Time Query: ON
  Instance(s):
    SBDB1

Database Status:
SUCCESS

确保主库、备库的日志组相同:
SYS@PROD1> set linesize 200;
SYS@PROD1> col member for a60;
SYS@PROD1> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ------------------------------------------------------------
         3 /u01/app/oracle/oradata/PROD1/redo03.log
         2 /u01/app/oracle/oradata/PROD1/redo02.log
         1 /u01/app/oracle/oradata/PROD1/redo01.log
         4 /u01/app/oracle/oradata/PROD1/redo04.log
         5 /u01/app/oracle/oradata/PROD1/redo05.log
         6 /u01/app/oracle/oradata/PROD1/redo06.log
         7 /u01/app/oracle/oradata/PROD1/redo07.log

7 rows selected.

SYS@SBDB1> set linesize 200;
SYS@SBDB1> col member for a60;
SYS@SBDB1> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ------------------------------------------------------------
         3 /u01/app/oracle/oradata/SBDB1/redo03.log
         2 /u01/app/oracle/oradata/SBDB1/redo02.log
         1 /u01/app/oracle/oradata/SBDB1/redo01.log
         4 /u01/app/oracle/oradata/SBDB1/redo04.log
         5 /u01/app/oracle/oradata/SBDB1/redo05.log
         6 /u01/app/oracle/oradata/SBDB1/redo06.log
         7 /u01/app/oracle/oradata/SBDB1/redo07.log

7 rows selected.

Step2 Set the LogXptMode database property appropriately.
If the protection mode to be set is MAXAVAILABILITY, it is required that the redo transport service of at least one standby database is set to SYNC

DGMGRL> edit database 'SBDB1' SET PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated

Step3 Change the overall protection mode for the configuration.

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
Succeeded.

DGMGRL> edit configuration set protection mode as maxavailability;
Error: ORA-16627: operation disallowed since no standby databases would remain to support protection mode
错误原因:因为没有设置到备库是SYNC同步模式,解决办法是第二步骤

Step4 Verify the protection mode has changed.

DGMGRL> show configuration;
Configuration - drsolution

  Protection Mode: MaxAvailability
  Databases:
    PROD1 - Primary database
    SBDB1 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

另一种校验方式:没修改模式之前
SYS@PROD1> select SWITCHOVER_STATUS,PROTECTION_MODE from v$database;

SWITCHOVER_STATUS    PROTECTION_MODE
-------------------- --------------------
TO STANDBY           MAXIMUM PERFORMANCE

SYS@SBDB1> select DATAGUARD_BROKER,PROTECTION_MODE from v$database;

DATAGUAR PROTECTION_MODE
-------- --------------------
ENABLED  MAXIMUM PERFORMANCE

修改之后:
SYS@PROD1> select DATAGUARD_BROKER,PROTECTION_MODE from v$database;

DATAGUAR PROTECTION_MODE
-------- --------------------
ENABLED  MAXIMUM AVAILABILITY

SYS@SBDB1> select DATAGUARD_BROKER,PROTECTION_MODE from v$database;

DATAGUAR PROTECTION_MODE
-------- --------------------
ENABLED  MAXIMUM AVAILABILITY

Step1 Ensure standby redo logs are configured on the primary and target standby databases.

SYS@PROD1> set linesize 200;
SYS@PROD1> col member for a60;
SYS@PROD1> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ------------------------------------------------------------
         3 /u01/app/oracle/oradata/PROD1/redo03.log
         2 /u01/app/oracle/oradata/PROD1/redo02.log
         1 /u01/app/oracle/oradata/PROD1/redo01.log
         4 /u01/app/oracle/oradata/PROD1/redo04.log
         5 /u01/app/oracle/oradata/PROD1/redo05.log
         6 /u01/app/oracle/oradata/PROD1/redo06.log
         7 /u01/app/oracle/oradata/PROD1/redo07.log

7 rows selected.

SYS@SBDB1> set linesize 200;
SYS@SBDB1> col member for a60;
SYS@SBDB1> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ------------------------------------------------------------
         3 /u01/app/oracle/oradata/SBDB1/redo03.log
         2 /u01/app/oracle/oradata/SBDB1/redo02.log
         1 /u01/app/oracle/oradata/SBDB1/redo01.log
         4 /u01/app/oracle/oradata/SBDB1/redo04.log
         5 /u01/app/oracle/oradata/SBDB1/redo05.log
         6 /u01/app/oracle/oradata/SBDB1/redo06.log
         7 /u01/app/oracle/oradata/SBDB1/redo07.log

7 rows selected.

Step2 Ensure the LogXptMode Property is set to SYNC.

DGMGRL> edit database 'PROD1' set PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated
DGMGRL> edit database 'SBDB1' set PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated

Step3 Set the FastStartFailoverTarget configuration property.

DGMGRL> edit database 'PROD1' set PROPERTY FastStartFailoverTarget='SBDB1';
Property "faststartfailovertarget" updated

Step4 Upgrade the protection mode to MAXAVAILABILITY, if necessary.

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
Succeeded.

Step5 Enable Flashback Database on the primary and target standby databases, if necessary.

ALTER SYSTEM SET UNDO_RETENTION=3600 SCOPE=SPFILE;
ALTER SYSTEM SET UNDO_MANAGEMENT='AUTO' SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
SHOW PARAMETER UNDO;
ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH;
ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET db_recovery_file_dest_size=4g;
ALTER SYSTEM SET db_recovery_file_dest=/home/oracle/flash;
ALTER DATABASE FLASHBACK ON;
ALTER DATABASE OPEN;

Step6 Start the observer.
DGMGRL> start observer;
Observer started

Step7 Enable fast-start failover.

DGMGRL> enable fast_start failover;
Error: ORA-16651: requirements not met for enabling fast-start failover
Failed.
原因是:主库没有开启flashback功能
解决方法:
SYS@PROD1> select flashback_on from v$database;

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

SYS@PROD1> alter database flashback on;

Database altered.

DGMGRL> enable fast_start failover;
Enabled.

Step8 Verify the fast-start failover configuration.

DGMGRL> show fast_start failover;

Fast-Start Failover: ENABLED

  Threshold:        30 seconds
  Target:           SBDB1
  Observer:         enmoedu1.example.com
  Lag Limit:        30 seconds (not in use)
  Shutdown Primary: TRUE
  Auto-reinstate:   TRUE

Configurable Failover Conditions
  Health Conditions:
    Corrupted Controlfile          YES
    Corrupted Dictionary           YES
    Inaccessible Logfile            NO
    Stuck Archiver                  NO
    Datafile Offline               YES

  Oracle Error Conditions:
(none)

DGMGRL> show database 'PROD1' FastStartFailoverTarget;
FastStartFailoverTarget = 'SBDB1'
DGMGRL> show database 'SBDB1' FastStartFailoverTarget;
FastStartFailoverTarget = 'PROD1'

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30192548/viewspace-2121488/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30192548/viewspace-2121488/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值