在broker可用配置中,主数据库上的broker配置中,主数据库上的DMON进程时是配置的所有者。
尽管用DGMGRL CLI在配置中附加任何数据库,但所有备用数据库必须从主数据库DMON进程获得发出命令,
无论连接到哪个数据库,都要通过主数据库来执行所有用来修改配置的命令。
如果sql命令用于主数据库,RSM进程将直接执行sql命令,否则,如果sql命令用于一个备用数据库,
RSM进程就要求NSV进程将sql命令发送到目标备用数据库,这是为了RSM进程免受网络挂起的影响,与保护DMON进程的情景相似。
------------------------------------------------------------------------------------------------------------------
如果未使用数据库上的spfile,就必须在Dataguard配置中的所有数据库对其配置,因为需要重新启动生产数据库,
在开始配置broker前,就要安排这些变化,之所以需要spfile,是因为broker动态设置与dataguard相关的各种参数。
Broker维护配置中每个数据库的配置文件,以跟踪Data guard全局设置以及配置中每个数据库预期状态,为了保持冗余,始终将配置文件的两个副本存储在每个数据库中。
alter system set dg_broker_config_file1='/u01/app/broker';
alter system set dg_broker_config_file2='/u01/app/oracle/product/11.2.0/db_1/broker';
通过sql*plus连接每个数据库,并将broker start参数设置为true来启动broker。
alter system set dg_broker_start=true scope=both;
--------------------------------------------------------------------------------------------------------------
连接broker,指定一个拥有sysdba权限的用户名和密码
]$dgmgrl sys/oracle
创建基本配置,确保连接到主数据库
create configuration orcl11g as primary database is orcl11g connect identifier is orcl11g;
连接到备用数据库
add database stby as connect identifier is stby maintained as physical;
启用配置
enable congfiguration;
查看属性
show database verbose orcl11g;
show configuration;
show database orcl11g;
--备用----------------------------------------------------------------------------------------------------------
更改数据库状态
1.主数据库状态包括为配置中的所有备用数据库打开或者关闭重做传输服务。只有使用当前担当主数据库角色的数据库的名称,才能更改这类状态。
dgmgrl>edit database orcl11g set state=TRANSPORT-OFF;关闭到所有备用数据库的重做传输
如果停止到一个备用数据库的重做传输,就要编辑数据库的logshipping属性,仅在该备用数据库的重做传输上执行重置,并保留其他备用数据库很开心地接收重做数据
2.备用数据库的状态用于打开或关闭应用服务,仅能在备用数据库上执行
dgmgrl>edit database stby set state=APPLY-OFF;
利用active data guard选项将数据库设置为实时查询摸索
dgmgrl>edit database stby set state=APPLY-OFF;
sql>alter database open read only;
dgmgrl>edit database stby set state=APPLY-On
-----------------------------------------------------------------------------------------------------------
更改保护模式:
在没有任何sync的备用数据库上,设置最高可用性模式时可能的,此时配置将在非同步状态下运行。
故障转移到备用数据库将导致数据丢失,因为最高可用性模式至少需要一个sync备用数据库,才允许零数据丢失的故障转移。
由于仅能在mount状态设置最大保护模式,额密友任何sync备用目的地,将不允许打开主数据库,除非保护模式的所有先决条件得到满足,否则broker将不允许设置保护模式。
dgmgrl>edit database stby set property logxptmde='SYNC';
dgmgrl>edit configuration set protection mode as MaxAvailability;
------------------------------------------------------------------------------------------------------------
更改broker配置属性
1.配置级别属性
BystandersFollowRoleChange
FastStartFailOverAutoReinstatetrue 失败的主数据库再次可以访问时,FSFO将尝试自动恢复失败的主数据库。
FastStartFailOverLagLimit 在最高性能模式下,如果数据丢失数量比设置的滞后限制更大,FSFO将不会故障转移。
备注:在最高可用性模式下,如果备用数据库不是100%与主数据库同步,就会答复不能进行故障转移。
FastStartFailOverPmyShutdown 主数据库挂起,故障转移已发生,是否应该关闭主数据库。默认true关闭
FastStartFailOverThreshold 开始故障转移前观察器应等待多长时间,以注意主数据库不是真的关闭情形。
communicationTimeout broker放弃前等待配置中的两个数据库间网络连接响应的时间。
dgmgrl>edit configuration set property communicationTimeout=200;
2.数据库级别属性
特定BROKER属性
FastStartFailOverTarget(故障)故障转移目标
ObserverConnectIdentifier(故障) 如果想要观察器使用自身的连接标识符
ApplyInstanceTimeout(备用)定义了broker失去与当前应用实例的连接时,将应用进程移动到备用rac数据库中另一个实例前应该等待的时间。
PreferredApplyInstance(备用)使用多节点rac备用数据库时,允许通知broker要在哪里运行应用。
dgmgrl>edit database set property PreferredApplyInstance='stby';
数据库参数属性
ArchiveLagTarget
DbFileNameConver db_file_name_convert
LogArchiveMaxProcesses log_archive_max_processes
LogArchiveMinSuccessDest log_archive_min_success_dest
LogFileNameConvert log_file_name_convert
LogShipping(备用角色) log_archive_dest_State_n
StandbyFileManagement(备用角色)standby_file_management
dgmgrl>edit database stby set property logshipping='OFF';
Log_archive_dest_n特性属性
binding mandatory optional
logxptmode async sync
maxconnections max_connections
maxfailure maxfailure
nettimeout net_timeout
redocompression compression
reopensecs reopen
delaymins delay=n
3.实例级别属性
LogArchiveTrace log_archive_trace
LogArchiveFormat log_archive_format
StandbyArchiveLocation log_Archive_dest_n
AlternateLication log_archive_dest_n的备用位置
dgmgrl>edit instance
-------------------------------------------------------------------------------------------------
通过dgmgrl,查询数据库状态
statusreport:列出数据库健康检查状况过程中检测到的所有问题
logxptstatus:列出主数据库所有实例上检测到的所有日志传输错误
inconsistentproperties:列出在broker配置与数据库设置之间存在不一致的情况
inconsistentlogxptprops:列出在broker配置与重做传输设置之间存在不一致情况重做传输设置
-------------------------------------
卸载broker
与主数据库连接
执行命令:remove configuration preserve destinatins;
---------------------------------------------------------------------------------------------------------
broker和oracle net services
1.transparent networking substrate 和字符串
从oracle11g,引入了新属性DGConectIdentifier,当提供tnsname来指定broker应如何连接到特定数据库时,将加载此属性,
现在,不是将tnsname转换为连接字符串,而是按原样存储在配置文件,所有与该数据库的连接都将使用tnsname创建,
意味着,在tnsname项中设置的任何特殊配置设在已通过broker使用,并不再被丢弃。
增加会话单元(SDU),传输控制协议(TCP)发送和接收缓存区大小,以满足网络需要。
orcl11g =
(DESCRIPTION =
(SDU=32767)
(SEND_BUF_SIZE=20925500)
(RECV_BUF_SIZE=2092500)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER=DEDICATED)
(SERVICE_NAME = orcl11g)
)
)
2.BROKER和监听器
监听器配置的先决条件,就是为broker配置中的每个数据库创建专门命名的静态监听器项,该项允许broker使用远程sysdba连接,
与空闲的实例进行连接,并完成必需的启动。静态项必须又数据库唯一名,追加字符串
_DGMGRL以及随后的数据库域组成。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = stby_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = stby)
)
)
3.为broker配置oracle net
需要在配置中的每个系统定义tnsname项
尽管用DGMGRL CLI在配置中附加任何数据库,但所有备用数据库必须从主数据库DMON进程获得发出命令,
无论连接到哪个数据库,都要通过主数据库来执行所有用来修改配置的命令。
如果sql命令用于主数据库,RSM进程将直接执行sql命令,否则,如果sql命令用于一个备用数据库,
RSM进程就要求NSV进程将sql命令发送到目标备用数据库,这是为了RSM进程免受网络挂起的影响,与保护DMON进程的情景相似。
------------------------------------------------------------------------------------------------------------------
如果未使用数据库上的spfile,就必须在Dataguard配置中的所有数据库对其配置,因为需要重新启动生产数据库,
在开始配置broker前,就要安排这些变化,之所以需要spfile,是因为broker动态设置与dataguard相关的各种参数。
Broker维护配置中每个数据库的配置文件,以跟踪Data guard全局设置以及配置中每个数据库预期状态,为了保持冗余,始终将配置文件的两个副本存储在每个数据库中。
alter system set dg_broker_config_file1='/u01/app/broker';
alter system set dg_broker_config_file2='/u01/app/oracle/product/11.2.0/db_1/broker';
通过sql*plus连接每个数据库,并将broker start参数设置为true来启动broker。
alter system set dg_broker_start=true scope=both;
--------------------------------------------------------------------------------------------------------------
连接broker,指定一个拥有sysdba权限的用户名和密码
]$dgmgrl sys/oracle
创建基本配置,确保连接到主数据库
create configuration orcl11g as primary database is orcl11g connect identifier is orcl11g;
连接到备用数据库
add database stby as connect identifier is stby maintained as physical;
启用配置
enable congfiguration;
查看属性
show database verbose orcl11g;
show configuration;
show database orcl11g;
--备用----------------------------------------------------------------------------------------------------------
更改数据库状态
1.主数据库状态包括为配置中的所有备用数据库打开或者关闭重做传输服务。只有使用当前担当主数据库角色的数据库的名称,才能更改这类状态。
dgmgrl>edit database orcl11g set state=TRANSPORT-OFF;关闭到所有备用数据库的重做传输
如果停止到一个备用数据库的重做传输,就要编辑数据库的logshipping属性,仅在该备用数据库的重做传输上执行重置,并保留其他备用数据库很开心地接收重做数据
2.备用数据库的状态用于打开或关闭应用服务,仅能在备用数据库上执行
dgmgrl>edit database stby set state=APPLY-OFF;
利用active data guard选项将数据库设置为实时查询摸索
dgmgrl>edit database stby set state=APPLY-OFF;
sql>alter database open read only;
dgmgrl>edit database stby set state=APPLY-On
-----------------------------------------------------------------------------------------------------------
更改保护模式:
在没有任何sync的备用数据库上,设置最高可用性模式时可能的,此时配置将在非同步状态下运行。
故障转移到备用数据库将导致数据丢失,因为最高可用性模式至少需要一个sync备用数据库,才允许零数据丢失的故障转移。
由于仅能在mount状态设置最大保护模式,额密友任何sync备用目的地,将不允许打开主数据库,除非保护模式的所有先决条件得到满足,否则broker将不允许设置保护模式。
dgmgrl>edit database stby set property logxptmde='SYNC';
dgmgrl>edit configuration set protection mode as MaxAvailability;
------------------------------------------------------------------------------------------------------------
更改broker配置属性
1.配置级别属性
BystandersFollowRoleChange
FastStartFailOverAutoReinstatetrue 失败的主数据库再次可以访问时,FSFO将尝试自动恢复失败的主数据库。
FastStartFailOverLagLimit 在最高性能模式下,如果数据丢失数量比设置的滞后限制更大,FSFO将不会故障转移。
备注:在最高可用性模式下,如果备用数据库不是100%与主数据库同步,就会答复不能进行故障转移。
FastStartFailOverPmyShutdown 主数据库挂起,故障转移已发生,是否应该关闭主数据库。默认true关闭
FastStartFailOverThreshold 开始故障转移前观察器应等待多长时间,以注意主数据库不是真的关闭情形。
communicationTimeout broker放弃前等待配置中的两个数据库间网络连接响应的时间。
dgmgrl>edit configuration set property communicationTimeout=200;
2.数据库级别属性
特定BROKER属性
FastStartFailOverTarget(故障)故障转移目标
ObserverConnectIdentifier(故障) 如果想要观察器使用自身的连接标识符
ApplyInstanceTimeout(备用)定义了broker失去与当前应用实例的连接时,将应用进程移动到备用rac数据库中另一个实例前应该等待的时间。
PreferredApplyInstance(备用)使用多节点rac备用数据库时,允许通知broker要在哪里运行应用。
dgmgrl>edit database set property PreferredApplyInstance='stby';
数据库参数属性
ArchiveLagTarget
DbFileNameConver db_file_name_convert
LogArchiveMaxProcesses log_archive_max_processes
LogArchiveMinSuccessDest log_archive_min_success_dest
LogFileNameConvert log_file_name_convert
LogShipping(备用角色) log_archive_dest_State_n
StandbyFileManagement(备用角色)standby_file_management
dgmgrl>edit database stby set property logshipping='OFF';
Log_archive_dest_n特性属性
binding mandatory optional
logxptmode async sync
maxconnections max_connections
maxfailure maxfailure
nettimeout net_timeout
redocompression compression
reopensecs reopen
delaymins delay=n
3.实例级别属性
LogArchiveTrace log_archive_trace
LogArchiveFormat log_archive_format
StandbyArchiveLocation log_Archive_dest_n
AlternateLication log_archive_dest_n的备用位置
dgmgrl>edit instance
-------------------------------------------------------------------------------------------------
通过dgmgrl,查询数据库状态
statusreport:列出数据库健康检查状况过程中检测到的所有问题
logxptstatus:列出主数据库所有实例上检测到的所有日志传输错误
inconsistentproperties:列出在broker配置与数据库设置之间存在不一致的情况
inconsistentlogxptprops:列出在broker配置与重做传输设置之间存在不一致情况重做传输设置
-------------------------------------
卸载broker
与主数据库连接
执行命令:remove configuration preserve destinatins;
---------------------------------------------------------------------------------------------------------
broker和oracle net services
1.transparent networking substrate 和字符串
从oracle11g,引入了新属性DGConectIdentifier,当提供tnsname来指定broker应如何连接到特定数据库时,将加载此属性,
现在,不是将tnsname转换为连接字符串,而是按原样存储在配置文件,所有与该数据库的连接都将使用tnsname创建,
意味着,在tnsname项中设置的任何特殊配置设在已通过broker使用,并不再被丢弃。
增加会话单元(SDU),传输控制协议(TCP)发送和接收缓存区大小,以满足网络需要。
orcl11g =
(DESCRIPTION =
(SDU=32767)
(SEND_BUF_SIZE=20925500)
(RECV_BUF_SIZE=2092500)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER=DEDICATED)
(SERVICE_NAME = orcl11g)
)
)
2.BROKER和监听器
监听器配置的先决条件,就是为broker配置中的每个数据库创建专门命名的静态监听器项,该项允许broker使用远程sysdba连接,
与空闲的实例进行连接,并完成必需的启动。静态项必须又数据库唯一名,追加字符串
_DGMGRL以及随后的数据库域组成。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = stby_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = stby)
)
)
3.为broker配置oracle net
需要在配置中的每个系统定义tnsname项