数据库状态管理
数据库状态分类
broker管理的数据库可以存在多种不同的状态,在DG中扮演不同角色的数据的状态类型也不一样,详细状态如下。
-
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。
-
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。
-
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”一项
Database
Name: torcla
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
torcla
Current status for "torcla":
SUCCESS
2. 修改数据库的状态
通过edit命令来修改数据库的状态,命令语法如下
下面我们来个设置数据库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
IntendedState: OFFLINE
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
IntendedState: ONLINE
Instance(s):
torcla
Currentstatusfor"torcla":
SUCCESS
数据库属性管理
数据库属性分类
broker管理的数据库属性包含两类:第一类是可监控的属性,第二类是可配置的属性。
对于可配置的数据库属性,broker会保证启用了broker的数据库它在broker配置文件后中记录的数据库的属性和数据库运行所使用的参数是一致的,但这也有两种情况:
- 如果对应的数据库参数是可以动态更新的,那么broker配置文件、SGA、spfile这三个地方所涉及的属性值将会是一样的。
- 如果对应的数据库参数不能动态更新,那么在数据库重启之前broker配置文件、SGA这两个地方的参数值是一样的,spfile中参数值要在数据库重新启动之后才能与broker配置文件值一致。
显示/修改数据库属性
1. 同show database verbose命令可以查看数据库当前的属性设置,值显示为“(monitor)”的自然就是可监控的属性了,其他的属性都属于可配置的。
Database
Name: torcla
Role: PHYSICALSTANDBY
Enabled: YES
IntendedState: ONLINE
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命令修改数据库属性,基本语法如下
下面实战一下,修改下数据库的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配置日志传送管理需要涉及下面这些可配置的数据库属性。
- ON:传送日志到指定数据库
- OFF:不传送日志到指定数据库
- SYNC:相当于LGWR, SYNC, AFFIRM
- ASYNC:相当于LGWR, ASYNC, NOAFFIRM
- ARCH:相当于ARCH
除了上面几个重要的设置之外还有Binding、MaxFailure、NetTimeout、ReopenSecs这几个属性,这些属性会在数据库加入broker的时候自动导入,通常不需要修改。
日志应用管理
日志应用相关的可配置参数有下面这些。
- ApplyInstanceTimeout
- DelayMins
- PreferredApplyInstance
- ApplyParallel
- LsbyASkipTxnCfgPr
- LsbyDSkipTxnCfgPr
- LsbyASkipCfgPr
- LsbyDSkipCfgPr
- LsbyASkipErrorCfgPr
- LsbyDSkipErrorCfgPr
- LsbyMaxEventsRecorded
- LsbyTxnConsistency
- LsbyRecordSkipErrors
- LsbyRecordSkipDdl
- LsbyRecordAppliedDdl
- LsbyMaxSga
- LsbyMaxServers
数据库保护模式
设置数据库的保护模式
保护模式与其他设置之间的关系
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来操作
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命令就可以查看数据库的状态了。命令格式如下
可用的状态命令列表如下:
命令操作示例
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
相关推荐
在配置管理方面,Broker将Data Guard环境划分为数据库配置对象和数据库对象。数据库配置对象定义了整个环境的全局属性,如保护模式和恢复窗口。数据库对象则代表单个数据库实例,包括其特定的初始化参数和状态信息。...
Oracle Data Guard Broker是Oracle数据库的一项重要特性,尤其在11g Release 2 (11.2)版本中,它提供了一种管理和维护Data Guard配置的自动化解决方案。Data Guard旨在为Oracle数据库提供高可用性和灾难恢复能力,...
4. 简化管理:Oracle 9i Data Guard Broker Release 2 (9.2) 提供了简洁的管理界面,方便管理员管理和维护数据保护和灾难恢复系统。 Oracle 9i Data Guard Broker Release 2 (9.2) 的技术特点包括: 1. 基于 ...
对于监控和维护Data Guard环境,管理员还需要了解如何使用Oracle Data Guard Broker和Oracle Enterprise Manager等工具,以便于更直观和高效地管理Data Guard配置。 综上所述,该手册为IT专业人员提供了一套完整的...
Oracle Data Guard Broker是Oracle数据库的一项重要特性,主要在Oracle 19c版本中提供了一种自动化和集中化的管理工具,用于管理和维护Data Guard配置。它简化了Data Guard环境的复杂性,确保数据保护和高可用性,...
Data Guard Broker 提供了一系列强大的命令,可以轻松地管理 Data Guard 环境中的数据库。例如: 1. **显示当前状态**: ```sql SHOW DATABASE; ``` 2. **执行切换操作**: ```sql SWITCHOVER DATABASE oradg11g...
首先,Data Guard Broker允许管理员通过一个中心控制点来管理多个数据库实例,无论是主数据库还是备用数据库。它自动处理参数设置、角色转换和故障切换,确保在出现故障时能快速恢复服务。对于FSFO,它提供了一种...
在"10G Data Guard Manager"这个文件中,你可能能找到关于如何设置和管理Data Guard环境的具体步骤,包括配置Data Guard Broker、创建和维护备用数据库、设置保护模式,以及进行故障切换演练。此外,还可能包含性能...
3. **配置Data Guard**:设置Data Guard broker,这是一个管理工具,可以简化Data Guard环境的管理和监控。配置Data Guard的保护模式,如Maximum Availability或Maximum Performance,根据业务需求选择是否启用redo...
Oracle 11.2.0.3 数据保护技术在企业级数据库管理中扮演着至关重要的角色,其中Active Data Guard(ADG)是Oracle提供的一种高级数据保护解决方案,用于构建高可用性和灾难恢复策略。本案例将详细介绍如何使用ADG来...
搭建物理备库主要步骤包括在备用站点安装Oracle数据库软件、创建备用数据库,并通过Data Guard Broker或者手动方式来进行管理。逻辑备库则通常用于数据仓库和数据迁移场景。 SWITCHOVER和FAILOVER是Data Guard的两...
Data Guard 可以通过命令行方式管理 primary 数据库或 standby 数据库,也可以通过 Data Guard broker 提供的专用命令行界面(DGMGRL),或者通过 OEM 图形化界面管理。 Data Guard 的优点包括:高可用性、灾难恢复、...
- 使用Data Guard Broker进行集中管理和监控,自动化处理部分任务,如日志传输和角色转换。 10. **安全性与网络**: - 安全地通过TNS网络传输归档重做日志,确保数据安全。 - 需要定期验证备用数据库的完整性和...
5. Data Guard Broker:集中式管理工具,统一管理多个Data Guard配置。 四、Data Guard监控与维护 1. Data Guard动态性能视图:如V$DATA_GUARD_PROCESS,V$SESSION_LONGOPS等,用于监控Data Guard状态。 2. Data ...
综上所述,Oracle 10gR2中的Data Guard是企业级数据库高可用性的重要保障,通过合理的配置和管理,可以有效防止数据丢失,提升业务连续性。理解和掌握Data Guard的各项特性和操作是每个Oracle DBA的必备技能。
这部分内容涵盖了配置Data Guard的各种步骤,例如设置Data Guard Broker,这是一个图形化的管理工具,可以简化Data Guard的配置和管理过程。Data Guard Broker允许管理员通过图形用户界面或命令行界面创建、修改和...
8. **Data Guard Broker**:Data Guard Broker是一个管理工具,简化了Data Guard环境的配置、监控和维护,允许同时管理多个Data Guard配置。 9. **Adaptive Data Guard**:此特性根据网络条件和系统负载自动调整...
Data Guard由一系列组件组成,包括物理 standby数据库、逻辑 standby数据库以及相应的管理工具。物理standby数据库与主数据库保持实时同步,而逻辑standby则允许在不影响主数据库运行的情况下进行数据转换。这些...
- **SQL 命令行工具**:Data Guard 提供了一系列 SQL 命令行工具,用于管理和监控主数据库和备用数据库的状态。 - **Data Guard Broker 工具**:这是一种图形化的管理工具,集成在 Oracle 企业管理器中,便于用户...
- **Data Guard Broker**: 一个管理工具,用于监控 Data Guard 配置并自动化常见任务。 ##### 2.4 网络 为了确保 RAC 系统中的 Data Guard 正常工作,网络配置必须能够支持多路径连接以及高可用性。通常包括以下...