在配置DG broker之前需要确保Dataguard配置正常且主库和备库均使用spfile.
1. 主库配置
- 配置DG_BROKER_START参数
检查主库dg_broker_start设置
SQL> show parameter dg_broker_start;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_start boolean FALSE
启用dg_broker_start,启用后oracle会自动启动一个dmon进程
SQL> alter system set dg_broker_start = true;
System altered.
- 在监听文件中加入DGMGRL静态监听
修改listener.ora文件,加入DGMGRL静态监听:SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora11db)
(ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ora11db)
)
(SID_DESC =
(GLOBAL_DBNAME = ora11db_DGMGRL)
(ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ora11db)
)
)
重启监听$> lsnrctl reload
2. 备库配置
- 配置DG_BROKER_START参数
检查主库dg_broker_start设置
SQL> show parameter dg_broker_start;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_start boolean FALSE
启用dg_broker_start,启用后oracle会自动启动一个dmon进程
SQL> alter system set dg_broker_start = true;
System altered.
- 在监听文件中加入DGMGRL静态监听
修改listener.ora文件,加入DGMGRL静态监听:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora11sty)
(ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ora11sty)
)
(SID_DESC =
(GLOBAL_DBNAME = ora11sty_DGMGRL)
(ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ora11sty)
)
)
重启监听:
$> lsnrctl reload
3.配置broker
- 创建dg broker
启动dgmgrl命令行
oracle@solora11g:~ $> dgmgrl sys/manager
DGMGRL for Solaris: Version 11.2.0.1.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
创建dg broker配置
DGMGRL> create configuration 'DGORA11G' as primary database is 'ora11db' connect identifier is ora11db;
Configuration "DGORA11G" created with primary database "ora11db"
显示配置信息
DGMGRL> show configuration
Configuration - DGORA11G
Protection Mode: MaxPerformance
Databases:
ora11db - Primary database
Fast-Start Failover: DISABLED
Configuration Status:
DISABLED
- 增加备库设置
增加备库
DGMGRL> add database 'ora11sty' as connect identifier is 'ora11sty' maintained as physical;
Database "ora11sty" added
显示配置
DGMGRL> show configuration
Configuration - DGORA11G
Protection Mode: MaxPerformance
Databases:
ora11db - Primary database
ora11sty - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
DISABLED
- enable配置
启用配置
DGMGRL> enable configuration
Enabled.
显示配置
DGMGRL> show configuration
Configuration - DGORA11G
Protection Mode: MaxPerformance
Databases:
ora11db - Primary database
ora11sty - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
4. 测试switchover
DGMGRL> switchover to ora11sty
Performing switchover NOW, please wait...
New primary database "ora11sty" is opening...
Operation requires shutdown of instance "ora11db" on database "ora11db"
Shutting down instance "ora11db"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "ora11db" on database "ora11db"
Starting instance "ora11db"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "ora11sty"