在配置
DG broker
之前需要确保
Dataguard
配置正常且主库和备库均使用
spfile
主备库
tnsnames.ora
相同如下:
tnspri=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
tnsstd=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)
)
)
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 scope=both;
System altered.
在监听文件中加入DGMGRL
静态监听
修改listener.ora
文件,加入DGMGRL
静态监听:SID_LIST_LISTENER
=
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl) ##db_unique_name
(ORACLE_HOME=/u01/app/oracle/product/11.2/db)
(SID_NAME=orcl))
(SID_DESC=
(GLOBAL_DBNAME=orcl_DGMGRL) ##db_unique_name_DGMRRL
(ORACLE_HOME=/u01/app/oracle/product/11.2/db)
(SID_NAME=orcl)))
重新加载监听$> 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 scope=both;
System altered.
在监听文件中加入DGMGRL
静态监听
修改listener.ora
文件,备库本身就是静态监听,追加DGMGRL
静态监听:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcldg)
(ORACLE_HOME=/u01/app/oracle/product/11.2/db)
(SID_NAME=orcl))
(SID_DESC=
(GLOBAL_DBNAME=orcldg_DGMGRL)
(ORACLE_HOME=/u01/app/oracle/product/11.2/db)
(SID_NAME=orcl)))
重新加载监听:$> lsnrctl reload
3.配置broker
创建dg broker
启动dgmgrl
命令行(主库)
[oracle@dg1 ~]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> connect sys/oracle@tnspri
Connected.
创建dg broker
配置
##配置名(随便起) ##db_unique_name ##tnsname中的名字
DGMGRL> create configuration 'DGBROKER11G' as primary database is 'orcl' connect identifier is tnspri;
Configuration "DGBROKER11G" created with primary database "orcl"
显示配置信息
DGMGRL> show configuration
Configuration - DGBROKER11G
Protection Mode: MaxPerformance
Databases:
orcl - Primary database
Fast-Start Failover: DISABLED
Configuration Status:
DISABLED
增加备库设置
增加备库
##db_unique_name ##tnsname中的名字
DGMGRL> add database 'orcldg' as connect identifier is 'tnsstd' maintained as physical;
Database "orcldg" added
显示配置
DGMGRL> show configuration
Configuration - DGBROKER11G
Protection Mode: MaxPerformance
Databases:
orcl - Primary database
orcldg - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
DISABLED
启用配置(enable
配置)
DGMGRL> enable configuration
Enabled.
显示配置
DGMGRL> show configuration
Configuration - DGBROKER11G
Protection Mode: MaxPerformance
Databases:
orcl - Primary database
orcldg - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
4.测试switchover
DGMGRL> switchover to orcldg
Performing switchover NOW, please wait...
Operation requires a connection to instance "orcl" on database "orcldg"
Connecting to instance "orcl"...
Connected.
New primary database "orcldg" is opening...
Operation requires startup of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Database opened.
Switchover succeeded, new primary is "orcldg"