`

Data Guard Broker系列之四:数据库管理

 
阅读更多

数据库状态管理

数据库状态分类

broker管理的数据库可以存在多种不同的状态,在DG中扮演不同角色的数据的状态类型也不一样,详细状态如下。

Primary数据库
  • ONLINE:默认状态。Primary数据库正常打开,日志传送服务正常传送日志到Standby数据库。
    当 数据库转为ONLINE状态的时候,初始化参数LOG_ARCHIVE_DEST_n和LOG_ARCHIVE_DEST_STATE_n会被自动设置以 启用日志传送服务,同时primary数据库以及所有standby数据库的LOG_ARCHIVE_CONFIG参数也会被设置,如果需要的话会根据 broker配置中的信息重新设置数据库的保护模式,同时将数据库打开为读写模式,最后系统将做一个日志却换。
  • LOG-TRANSPORT-OFF:Primary数据库正常打开,日志传送服务不传送日志到Standby数据库。
    当数据库从别的状态切换到LOG-TRANSPORT-OFF状态的时候,参数LOG_ARCHIVE_DEST_STATE_n会被设置成FALSE,这样到所有standby数据库的日志传送将会停止,但是primary数据库的本地归档操作还是正常的。
  • OFFLINE: 数据库关闭,不再接受broker管理,重新启动数据库之后恢复默认状态。
    当数据库从别的状态切换到OFFLINE状态的时候,broker会关闭数据库,当然此时数据库无法被broker管理了,要重新启用的话只需要重启数据库到MOUNT状态就行了,broker会自动的使数据库ONLINE。
physical Standby数据库
  • ONLINE:默认状态。数据库处于MOUNT状态,日志恢复正常,不能进行只读查询。
    当数据库装换成ONLINE状态,相关参数被设置以启用日志恢复。
  • LOG-APPLY-OFF:数据库MOUNT,日志恢复停止,不能进行制度查询。
    当数据库装换成LOG-APPLY-OFF状态时,如果之前数据库ONLINE,则日志恢复关闭,如果之后是READ-ONLY则关闭数据库到MOUNT状态。
  • READ-ONLY:数据库只读打开,可以查询,日志恢复停止。
    当数据库装换成READ-ONLY状态时,日志恢复被停止,同时将数据库打开为只读。
  • OFFLINE:数据库关闭,不再接受broker管理,重新启动数据库之后恢复默认状态。
    当数据库从别的状态切换到OFFLINE状态的时候,broker会关闭数据库,当然此时数据库无法被broker管理了,要重新启用的话只需要重启数据库到MOUNT状态就行了,broker会自动的使数据库ONLINE。
logical Standby数据库
  • ONLINE:默认状态。数据库只读打开,日志恢复正常。
    转换为ONLINE状态时,broker将打开数据库,同时启用database guard以防止对表数据的修改,同时修改SQL应用相关参数启用SQL应用。
  • LOG-APPLY-OFF:数据库只读打开,日志恢复关。
    转换为LOG-APPLY-OFF状态时,broker将停止SQL应用草操作。
  • OFFLINE:数据库关闭,不再接受broker管理,重新启动数据库之后恢复默认状态。
    当数据库从别的状态切换到OFFLINE状态的时候,broker会关闭数据库,当然此时数据库无法被broker管理了,要重新启用的话只需要重启数据库到MOUNT状态就行了,broker会自动的使数据库ONLINE。
数据库各种转换路径
数据库各种转换路径

 

相关DGMGRL命令

1. 查看一个数据库当前的状态

直接使用show database命令,然后查看“Intended State”一项

DGMGRL> show database torcla
Database
 
Name:            torcla
 
Role:            PHYSICAL STANDBY
 
Enabled:         YES
 
Intended StateONLINE
 
Instance(s):
    
torcla
 
Current status for "torcla":
SUCCESS

2. 修改数据库的状态

通过edit命令来修改数据库的状态,命令语法如下

EDIT DATABASE 'db_unique_name' SET STATE='database_state';

下面我们来个设置数据库offline的操作

-- 设置我们的standby数据库OFFLINE
DGMGRL> edit database torcla set state='OFFLINE';
Operation requires shutdown of instance "torcla" on database "torcla"
Shutting down instance "torcla"...
ORA-01109: database not open
 
Database dismounted.
ORACLE instance shutdown.
-- 此时再看数据库的state已经是OFFLINE了
SYS@torcla> startup mount
ORACLE instance started.
 
Total System Global Area 1191182336 bytes
FixedSize                  1259312bytes
VariableSize             355207376bytes
DatabaseBuffers          819200000bytes
RedoBuffers               15515648bytes
Database mounted.
DGMGRL> show database torcla
Database
 
Name:            torcla
 
Role:            PHYSICALSTANDBY
 
Enabled:         NO
 
IntendedStateOFFLINE
 
Instance(s):
    
torcla
 
Current status for "torcla":
SHUTDOWN
 
-- 下面我们启动下这个数据库,然后再看数据库的state,又变成了ONLINE
SYS@torcla> startup mount
ORACLE instance started.
 
Total System Global Area 1191182336 bytes
FixedSize                  1259312bytes
VariableSize             355207376bytes
DatabaseBuffers          819200000bytes
RedoBuffers               15515648bytes
Databasemounted.
 
DGMGRL> show database torcla
Database
 
Name:            torcla
 
Role:            PHYSICALSTANDBY
 
Enabled:         YES
 
IntendedStateONLINE
 
Instance(s):
    
torcla
 
Currentstatusfor"torcla":
SUCCESS

数据库属性管理

数据库属性分类

broker管理的数据库属性包含两类:第一类是可监控的属性,第二类是可配置的属性。

可监控属性
顾名思义,可监控的属性是能在broker的界面中看到属性的设定值,但是不能够修改。
可配置属性
可配置属性既能监控,同时还能够动态的修改。可配置属性在数据库处于任何状态的是很都能够修改,不过当数据库处于OFFLINE状态或者是DISABLE状态的时候,属性的修改会先记录到broker配置文件中,在数据库broker被启用之后会被应用到据库中。

对于可配置的数据库属性,broker会保证启用了broker的数据库它在broker配置文件后中记录的数据库的属性和数据库运行所使用的参数是一致的,但这也有两种情况:

  • 如果对应的数据库参数是可以动态更新的,那么broker配置文件、SGA、spfile这三个地方所涉及的属性值将会是一样的。
  • 如果对应的数据库参数不能动态更新,那么在数据库重启之前broker配置文件、SGA这两个地方的参数值是一样的,spfile中参数值要在数据库重新启动之后才能与broker配置文件值一致。

显示/修改数据库属性

1. 同show database verbose命令可以查看数据库当前的属性设置,值显示为“(monitor)”的自然就是可监控的属性了,其他的属性都属于可配置的。

DGMGRLshow database verbose torcla
 
Database
 
Name:            torcla
 
Role:            PHYSICALSTANDBY
 
Enabled:         YES
 
IntendedStateONLINE
 
Instance(s):
    
torcla
 
 
Properties:
    
InitialConnectIdentifier        = 'torcla.mycompany'
    
LogXptMode                      = 'SYNC'
    
Dependency                      = ''
    
DelayMins                       = '0'
    
Binding                         = 'OPTIONAL'
    
MaxFailure                      = '0'
    
MaxConnections                  = '1'
    
ReopenSecs                      = '300'
    
NetTimeout                      = '180'
    
LogShipping                     = 'ON'
    
PreferredApplyInstance          = ''
    
ApplyInstanceTimeout            = '0'
    
ApplyParallel                   = 'AUTO'
    
StandbyFileManagement           = 'MANUAL'
    
ArchiveLagTarget                = '3600'
    
LogArchiveMaxProcesses          = '2'
    
LogArchiveMinSucceedDest        = '1'
    
DbFileNameConvert               = 'torclb, torcla'
    
LogFileNameConvert              = 'torclb, torcla'
    
FastStartFailoverTarget         = ''
    
StatusReport                    = '(monitor)'
    
InconsistentProperties          = '(monitor)'
    
InconsistentLogXptProps         = '(monitor)'
    
SendQEntries                    = '(monitor)'
    
LogXptStatus                    = '(monitor)'
    
RecvQEntries                    = '(monitor)'
    
HostName                        = 'orainst.desktop.mycompany.com'
    
SidName                         = 'torcla'
    
LocalListenerAddress            = '(ADDRESS=(PROTOCOL=tcp)(HOST=orainst.desktop.mycompany.com)(PORT=8000))'
    
StandbyArchiveLocation          = '/data1/dg/databases/torcla/redolog'
    
AlternateLocation               = ''
    
LogArchiveTrace                 = '0'
    
LogArchiveFormat                = 'log-%s-%t-%r.arc'
    
LatestLog                       = '(monitor)'
    
TopWaitEvents                   = '(monitor)'
 
Current status for"torcla":
SUCCESS

2. 通过edit database命令修改数据库属性,基本语法如下

EDIT DATABASE db_unique_name SET PROPERTY 'property_name' =property_value;

下面实战一下,修改下数据库的NetTimeout属性

-- 先看下当前的值
DGMGRL> show database torcla NetTimeout
 
NetTimeout = '60'
 
-- 将60修改成120
DGMGRL> edit database torcla set property 'NetTimeout'=120;
Property "NetTimeout" updated
-- 再看torclb的broker日志文件,可以看到broker在修改log_archive_dest_2值
DG2009-08-31-07:21:25        020 Executing SQL [altersystemsetlog_archive_dest_2'service="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=orainst.desktop.mycompany.com)(PORT=8000)))(CONNECT_DATA=(SERVICE_NAME=torcla_XPT.mycompany)(INSTANCE_NAME=torcla)(SERVER=dedicated)))"', '   LGWR SYNC AFFIRM delay=0 OPTIONAL max_failure=0 max_connections=1   reopen=300 db_unique_name="torcla" register net_timeout=120  valid_for=(online_logfile,primary_role)']
 
-- 这个时候torcla的broker日志文件也有动作,是在同步broker配置……
DG2009-08-31-07:21:32        020DRCX: Startreceivingmetadatafile: /data1/dg/10.2.0.2/A10db/dbs/dr2torcla.dat
DG2009-08-31-07:21:32        020DRCX: Receivingblock#1, 86 blocks.

日志传送管理

使用broker配置日志传送管理需要涉及下面这些可配置的数据库属性。

LogShipping
决定是否传送日志到指定的数据库,和primary数据库的状态LOG-TRANSPORT-OFF不同的是LOG-TRANSPORT-OFF会停止向所有的standby数据库传送日志。
  • ON:传送日志到指定数据库
  • OFF:不传送日志到指定数据库
LogXptMode
这个属性设置的是LOG_ARCHIVE_DEST_n中传送模式那部分
  • SYNC:相当于LGWR, SYNC, AFFIRM
  • ASYNC:相当于LGWR, ASYNC, NOAFFIRM
  • ARCH:相当于ARCH
StandbyArchiveLocation
指定standby数据库上从primary接收的归档日志的存放位置,和standby自己本地的日志归档不一样,standby数据库本地的日志归档由LOG_ARCHIVE_DEST_n指定。当然这个值最好设置和本地归档位置一样最好。
AlternateLocation
这个属性是和StandbyArchiveLocation配合使用,如果设置了这儿属性,一旦StandbyArchiveLocation指定的目录因为磁盘满之类的原因fail了的话数据库就会归档日志存放在这个属性指定的位置上。
Dependency
这个参数设置一个standby数据库的归档日志依赖于别的那个standby或者是primary数据库,这个参数在多个数据库放在一个机器上的是很很有用,可以保证不用再同一个机器上存好几份同样的归档日志。

除了上面几个重要的设置之外还有Binding、MaxFailure、NetTimeout、ReopenSecs这几个属性,这些属性会在数据库加入broker的时候自动导入,通常不需要修改。

日志应用管理

日志应用相关的可配置参数有下面这些。

同时适应于Redo Apply和SQL Apply的
  • ApplyInstanceTimeout
  • DelayMins
  • PreferredApplyInstance
只适用于Redo Apply的属性
  • ApplyParallel
只适用于SQL Apply的属性
  • LsbyASkipTxnCfgPr
  • LsbyDSkipTxnCfgPr
  • LsbyASkipCfgPr
  • LsbyDSkipCfgPr
  • LsbyASkipErrorCfgPr
  • LsbyDSkipErrorCfgPr
  • LsbyMaxEventsRecorded
  • LsbyTxnConsistency
  • LsbyRecordSkipErrors
  • LsbyRecordSkipDdl
  • LsbyRecordAppliedDdl
  • LsbyMaxSga
  • LsbyMaxServers

数据库保护模式

设置数据库的保护模式

保护模式与其他设置之间的关系

 

保护模式 日志传送模式 是否需要standby日志? 是否能和fast-start failover一起用
MAXPROTECTION SYNC
MAXAVAILABILITY SYNC
MAXPERFORMANCE ASYNC或ARCH ASYNC时是

PS:在MAXAVAILABILITY和MAXPROTECTION保护模式下,standby database的standby redo logfile组个数必须大于等于standby database的standby redo logfile组数,并且standby redo logfile的大小必须大于等于redo logfile. 同时,standby redo logfile组的编号(v$standby_log.group#)必须于primary database上的standby redo logfile组编号(v$log.group#)一致。

使用broker来设置保护模式也是通过edit configuration来操作

-- 先看下当前的设置,是MaxPerformance
DGMGRL> show configuration
 
Configuration
 
Name:                FSF
 
Enabled:             YES
 
ProtectionMode:     MaxPerformance
 
Fast-Start Failover: DISABLED
 
Databases:
    
torcla - Physical standby database
    
torclb - Primary database
-- 然后我们将它变更为MaxAvailability
DGMGRL> edit configuration set protection mode as maxavailability;
Operation requires shutdown of instance "torclb" on database "torclb"
Shutting down instance "torclb"...
Database closed.
Database dismounted.
ORACLE instance shutdown.
Operation requires startup of instance "torclb" on database "torclb"
Starting instance "torclb"...
ORACLE instance started.
Database mounted.
DGMGRL> show configuration
 
Configuration
 
Name:                FSF
 
Enabled:             YES
 
ProtectionMode:     MaxAvailability
 
Fast-StartFailover: DISABLED
 
Databases:
    
torcla - Physical standby database
    
torclb - Primary database
 
Currentstatusfor"FSF":
SUCCESS

broker还是很聪明的,会自动的关闭primary数据库然后将保护模式修改为MaxAvailability。

不同的保护模式对broker操作的影响

1. 当升级保护模式的时候,broker会自动的重启primary数据库。降低保护模式级别的时候是不需要重启数据库的。
2. switchover操作不会改变当前的保护模式。
3. 做手工的failover之后,如果原来保护模式是MaxProtection的话会被自动降级为MaxPerformance;如果是其他模式的话则保持不变。
4. fast-start failover所作的自动的failover操作不会改变数据库的保护模式。
5. 做disable操作或remove database之前,broker会检查disable之后是否还能保证满足当前的保护模式,如果不能的话disable/remove会失败。
6. fast-start failover启用的是很不能做disable configuration操作。

 

数据库监控状态查看

broker会自动的收集同一个配置之下的所有数据库的健康状态,管理员只需要通过简单的show命令就可以查看数据库的状态了。命令格式如下

show database db_unique_name statue_name

可用的状态命令列表如下:

StatusReport
显示所有broker检查到的问题
LogXptStatus
显示日志传送的状态
InconsistentProperties
显示不一致的数据库属性
InconsistentLogXptProps
显示不一致的日志传送设定

命令操作示例

DGMGRL> show database torclb statusreport
STATUS REPORT
      
INSTANCE_NAME   SEVERITYERROR_TEXT
              
torclb      ERRORORA-16737: theredotransportserviceforstandbydatabase"torcla"hasanerror

DGMGRL> show database orclt1cn_aLogXptStatus
LOGTRANSPORTSTATUS
PRIMARY_INSTANCE_NAMESTANDBY_DATABASE_NAME               STATUS
            
torcla            torclb
 
DGMGRL> show database torcla InconsistentProperties
INCONSISTENTPROPERTIES
  
INSTANCE_NAME        PROPERTY_NAME         MEMORY_VALUE         SPFILE_VALUE         BROKER_VALUE
 
DGMGRL> show database torcla InconsistentLogXptProps
INCONSISTENTLOGTRANSPORTPROPERTIES
  
INSTANCE_NAME         STANDBY_NAME        PROPERTY_NAME         MEMORY_VALUE         BROKER_VALUE

参考至:http://www.dbabeta.com/2009/learn-data-guard-broker_db-management.html

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    Data_Guard_Broker

    在配置管理方面,Broker将Data Guard环境划分为数据库配置对象和数据库对象。数据库配置对象定义了整个环境的全局属性,如保护模式和恢复窗口。数据库对象则代表单个数据库实例,包括其特定的初始化参数和状态信息。...

    Oracle Data Guard Broker 11g Release 2 (11.2)-290

    Oracle Data Guard Broker是Oracle数据库的一项重要特性,尤其在11g Release 2 (11.2)版本中,它提供了一种管理和维护Data Guard配置的自动化解决方案。Data Guard旨在为Oracle数据库提供高可用性和灾难恢复能力,...

    Oracle 9i Data Guard Broker Release 2 (9.2)

    4. 简化管理:Oracle 9i Data Guard Broker Release 2 (9.2) 提供了简洁的管理界面,方便管理员管理和维护数据保护和灾难恢复系统。 Oracle 9i Data Guard Broker Release 2 (9.2) 的技术特点包括: 1. 基于 ...

    12c Data Guard配置手册-01

    对于监控和维护Data Guard环境,管理员还需要了解如何使用Oracle Data Guard Broker和Oracle Enterprise Manager等工具,以便于更直观和高效地管理Data Guard配置。 综上所述,该手册为IT专业人员提供了一套完整的...

    官方资料:[英文]Oracle Database 19c data-guard-broker

    Oracle Data Guard Broker是Oracle数据库的一项重要特性,主要在Oracle 19c版本中提供了一种自动化和集中化的管理工具,用于管理和维护Data Guard配置。它简化了Data Guard环境的复杂性,确保数据保护和高可用性,...

    【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置

    Data Guard Broker 提供了一系列强大的命令,可以轻松地管理 Data Guard 环境中的数据库。例如: 1. **显示当前状态**: ```sql SHOW DATABASE; ``` 2. **执行切换操作**: ```sql SWITCHOVER DATABASE oradg11g...

    dataguard broker配置参考

    首先,Data Guard Broker允许管理员通过一个中心控制点来管理多个数据库实例,无论是主数据库还是备用数据库。它自动处理参数设置、角色转换和故障切换,确保在出现故障时能快速恢复服务。对于FSFO,它提供了一种...

    Oracle 10G Data Guard 资料--全面详细,绝对值得学习!!!

    在"10G Data Guard Manager"这个文件中,你可能能找到关于如何设置和管理Data Guard环境的具体步骤,包括配置Data Guard Broker、创建和维护备用数据库、设置保护模式,以及进行故障切换演练。此外,还可能包含性能...

    Oracle 11.2.0.3 RAC 与 RAC 之间搭建Data Guard 案例 -- Aative Data Guard 案例

    3. **配置Data Guard**:设置Data Guard broker,这是一个管理工具,可以简化Data Guard环境的管理和监控。配置Data Guard的保护模式,如Maximum Availability或Maximum Performance,根据业务需求选择是否启用redo...

    Oracle 11.2.0.3 使用 ADG 搭建Data Guard 案例

    Oracle 11.2.0.3 数据保护技术在企业级数据库管理中扮演着至关重要的角色,其中Active Data Guard(ADG)是Oracle提供的一种高级数据保护解决方案,用于构建高可用性和灾难恢复策略。本案例将详细介绍如何使用ADG来...

    一点一滴讲解Data Guard前世今生

    搭建物理备库主要步骤包括在备用站点安装Oracle数据库软件、创建备用数据库,并通过Data Guard Broker或者手动方式来进行管理。逻辑备库则通常用于数据仓库和数据迁移场景。 SWITCHOVER和FAILOVER是Data Guard的两...

    Oracle Data Guard 部署

    Data Guard 可以通过命令行方式管理 primary 数据库或 standby 数据库,也可以通过 Data Guard broker 提供的专用命令行界面(DGMGRL),或者通过 OEM 图形化界面管理。 Data Guard 的优点包括:高可用性、灾难恢复、...

    ORACLE之Data Guard部署培训讲学.pdf

    - 使用Data Guard Broker进行集中管理和监控,自动化处理部分任务,如日志传输和角色转换。 10. **安全性与网络**: - 安全地通过TNS网络传输归档重做日志,确保数据安全。 - 需要定期验证备用数据库的完整性和...

    Oracle Data Guard概念和管理10g版本2

    5. Data Guard Broker:集中式管理工具,统一管理多个Data Guard配置。 四、Data Guard监控与维护 1. Data Guard动态性能视图:如V$DATA_GUARD_PROCESS,V$SESSION_LONGOPS等,用于监控Data Guard状态。 2. Data ...

    oracle10gr2_data_guard.rar_data guard_oracle_oracle data guard

    综上所述,Oracle 10gR2中的Data Guard是企业级数据库高可用性的重要保障,通过合理的配置和管理,可以有效防止数据丢失,提升业务连续性。理解和掌握Data Guard的各项特性和操作是每个Oracle DBA的必备技能。

    Oracle Data Guard 11gR2 管理 初学者指南

    这部分内容涵盖了配置Data Guard的各种步骤,例如设置Data Guard Broker,这是一个图形化的管理工具,可以简化Data Guard的配置和管理过程。Data Guard Broker允许管理员通过图形用户界面或命令行界面创建、修改和...

    Oracle Data Guard Concepts and Administration 11g Release 2 (11

    8. **Data Guard Broker**:Data Guard Broker是一个管理工具,简化了Data Guard环境的配置、监控和维护,允许同时管理多个Data Guard配置。 9. **Adaptive Data Guard**:此特性根据网络条件和系统负载自动调整...

    Data Guard10gR2 中文翻译

    Data Guard由一系列组件组成,包括物理 standby数据库、逻辑 standby数据库以及相应的管理工具。物理standby数据库与主数据库保持实时同步,而逻辑standby则允许在不影响主数据库运行的情况下进行数据转换。这些...

    Data Guard10gR2中文翻译

    - **SQL 命令行工具**:Data Guard 提供了一系列 SQL 命令行工具,用于管理和监控主数据库和备用数据库的状态。 - **Data Guard Broker 工具**:这是一种图形化的管理工具,集成在 Oracle 企业管理器中,便于用户...

    Oracle11g RAC 上安装和配置 Data Guard.pdf

    - **Data Guard Broker**: 一个管理工具,用于监控 Data Guard 配置并自动化常见任务。 ##### 2.4 网络 为了确保 RAC 系统中的 Data Guard 正常工作,网络配置必须能够支持多路径连接以及高可用性。通常包括以下...

Global site tag (gtag.js) - Google Analytics