Oracle Data Guard
用来保护
Oracle
数据,可提供最高级别的数据保护和可用性的同时,使
Oracle
数据库保持最卓越的性能。它的运行遵循一个原则:传输重做数据,然后应用重做数据。
它分成两种实现方式,分别为逻辑备库(
logical standby
)和物理备库
(physical standby)
,用于不同的应用场景。如逻辑备库用于数据库的读写分离,物理备库用于数据库异地灾备。
在
Oracle 10g
逻辑备库中
,如主库出现故障,备库也是可以迅速切换成主库使用。
在
Oracle 10g logical standby
模式下,主库损毁,逻辑备库如何
完成切换成主库的任务?
在
Data Guard
之逻辑备库的故障切换
(logical
standby failover)
(
http://mikixiyou.iteye.com/blog/1530120
)
一文中,我介绍一种切换操作过程,但那是在主库的日志文件还没有丢失的情况下进行的操作。
在本文中,我们介绍在主库日志文件没有传输到逻辑备库时,逻辑备库上的应用的日志
SCN
和最新的日志
SCN
不一致的情况下,如何完成逻辑备库到主库的切换操作。
在切换过程中报
ORA-00308
错误,显示缺少归档日志文件。
我以
logical standby failover ora-00308
在
google
搜很多文档,也没有发现合适的解决方法和解决建议。
于是,只好自己去查阅文档和测试解决方法。
(
miki
西游
@mikixiyou
文档,原文链接
:
http://mikixiyou.iteye.com/blog/1558314
)
第一步,检查逻辑备库上应用进程的
applied scn
和
latest scn
SQL> r
1* select
to_char(applied_scn),to_char(latest_scn) from v$logstdby_progress
TO_CHAR(APPLIED_SCN)
TO_CHAR(LATEST_SCN)
----------------------------------------
----------------------------------------
11565985537
11565985750
如果有两者相等,请参照文档
Data Guard
之逻辑备库的故障切换
(logical standby
failover)
去完成逻辑备库的灾难切换工作。
关键点就是,我们这里的
SCN
是不相等的,否则也就没了下文了。
再次调用一下逻辑备库的日志应用操作。
SQL> alter database
start logical standby apply immediate;
Database altered.
在后台警告日志文件中,发现此错误,说缺少一个日志文件。
Mon Jun 11 14:00:27 2012
LOGMINER: Error 308
encountered, failed to read missing logfile
+VG2/archivelog/standby/1_31907_739157941.dbf
停止逻辑备库日志应用工作。
SQL> alter database stop
logical standby apply;
Database altered.
SQL> ALTER DATABASE
START LOGICAL STANDBY APPLY FINISH;
Database altered.
停止
logical standby
的日志应用工作,再使用新的命令去启用日志应用。
在警告日志文件中,还是报错,依然是缺少日志文件。
Mon Jun 11 13:55:16 2012
LOGMINER: Error 308
encountered during failover, failed to read missing logfile
+VG2/archivelog/standby/1_31907_739157941.dbf
LOGSTDBY status: ORA-00308:
cannot open archived log '+VG2/archivelog/standby/1_31907_739157941.dbf'
ORA-17503: ksfdopn:2 Failed
to open file +VG2/archivelog/standby/1_31907_739157941.dbf
ORA-15173: entry
'1_31907_739157941.dbf' does not exist in directory 'standby'
即使我们使用激活逻辑备库为主库模式的操作命令去强行切换,也是会出错的。道理很简单,在切换过程中缺少相应的归档日志文件。
ALTER DATABASE ACTIVATE
LOGICAL STANDBY DATABASE FINISH APPLY
这个语句的作用是停止
RFS
进程,应用所有保存在
standby
日志文件中重做日志,停止
SQL
应用,将控制文件切换成主库模式的控制文件,去掉
GUARD
保护状态使得所有人可以像正常库一样使用此库,最后激活主库模式,完成切换。
这里
finish apply
是一个可选子句。如果不带上这个子句,那么将有部分重做日志会不被应用。
那么,我们如何解决呢
两种方法:一种是找到归档日志文件,手工拷贝过来,然后注册进去。这样就可以切换成功。另一种,是采用忽略的方式切换。
SQL> alter
database activate logical standby database ;
Database altered.
将数据库的角色,确认是主库了。
SQL> select
2
database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
在归档日志环节上,我陷入了误区,想去找到如何
until scn
的方法,类似于
rman
中的
recover
方式。
其实,在这种环境下,解决起来很简单。直接
alter database activate logical standby database;
而不需要去加子句
finish
apply
。
分享到:
相关推荐
1. 创建备库:使用DBMS_RAC_ADMIN.SYNC_INSTANCE或RMAN命令创建物理备库,或者通过Logical Standby和Datapump创建逻辑备库。 2. 数据同步:通过Redo Transport Services传输redo日志,备库应用这些日志进行数据更新...
2. **工作模式**:Data Guard支持多种工作模式,包括Physical Standby(物理备用)、Logical Standby(逻辑备用)和Snapshot Standby(快照备用)。物理备用数据库与主数据库结构完全相同,而逻辑备用则允许在备用...
Oracle 12c是甲骨文公司推出的一款关系型数据库管理系统版本,它提供了多项新功能和改进,其中包括Data Guard的增强,Data Guard是Oracle提供的数据保护解决方案,主要用来保护生产数据库免受灾难性故障的影响。...
Oracle Data Guard是Oracle数据库系统提供的一种高可用性和灾难恢复解决方案,它通过创建、维护和管理一个或多个备用数据库来保护关键数据免受意外损失或系统故障的影响。在Oracle Data Guard配置中,主数据库...
Fast Start Failover是Data Guard的一项特性,它可以自动检测并处理主数据库的故障,立即启动standby数据库,最小化停机时间。结合Alert Log和Notification Services,可以实现快速响应和通知。 七、Golden Gate...
Data Guard的主要组件包括主数据库(Primary Database)、备用数据库(Standby Database)以及Data Guard Broker,它们协同工作以实现数据的实时复制和故障切换。主数据库负责处理用户事务,而备用数据库则接收来自...
它通过创建和维护一个或多个物理或者逻辑standby数据库,来确保在主数据库遇到故障时能够快速切换,从而实现业务连续性。Data Guard提供了一套全面的保护机制,包括实时数据复制、故障检测、自动故障转移以及可配置...
- **Fast-Start Failover**: 自动故障切换机制,当主数据库出现故障时,Data Guard会自动将业务切换到备用数据库。 **2. Oracle Data Guard的配置类型** - **Physical Standby**: 备用数据库的数据文件与主数据库...
2. Logical Standby:允许在备用数据库上执行查询,同时保持与主数据库同步。 3. Switchover和Failover:Switchover是在主备数据库之间非破坏性的角色交换,Failover是当主数据库不可用时,备用数据库接管。 4. ...
- **逻辑备用数据库(Logical Standby Database)**:通过SQL Apply过程将redo日志转换为SQL语句再应用到备用数据库,支持在线查询。 - **远距离备用数据库(Distant Standby Database)**:位于远离主数据库的...
- Data Guard Broker:简化Data Guard环境的管理和监控,自动化许多配置和故障切换任务。 4. **配置步骤** - 创建备用数据库:包括物理备用数据库和逻辑备用数据库的创建过程。 - 启动和维护日志传输:配置redo...
7. **切换和恢复**:Data Guard支持在主备数据库之间安全地进行角色切换,以及在出现故障时进行快速恢复。切换过程可以手动或通过FSWF自动完成。 8. **Data Guard Broker**:Data Guard Broker是一个管理工具,简化...
它允许用户在网络环境下对生产数据库进行完整的在线备份,并能够确保在主数据库发生故障时,备库能够迅速接管业务,从而最大程度地降低数据丢失的风险。 #### 二、Data Guard 的新特性(9i R2) 在Oracle 9i R2...
- **Logical Standby**:逻辑备用数据库允许在备用上执行SQL查询,因为它接收并解析redo数据,而不是直接应用。 - **Snapshot Standby**:快照备用数据库仅用于定期数据备份,不支持实时应用redo日志。 2. **保护...
Data Guard的核心是通过创建一个或多个备用数据库(standby databases),这些备用数据库可以是物理备用(physical standby)或逻辑备用(logical standby)。在本例中,我们重点关注物理备用数据库,它与主数据库...
Data Guard保证了数据的零丢失,并支持物理备用数据库(physical standby database)和逻辑备用数据库(logical standby database)两种工作模式。 本书详细阐述了Data Guard的两种主要的工作模式,以及它们各自的...
同时,论文还会讨论Data Guard的其他高级特性,如Fast Start Failover(快速启动故障切换)和Managed Standby Databases(管理的备用数据库),以提高系统的响应速度和自动化程度。 在论文的实验部分,作者将设计一...
2. Managed Standby Databases:简化了备用数据库的管理和配置,通过Data Guard Broker自动处理大部分设置和维护工作。 3. Active Data Guard:在某些保护模式下,备用数据库可以启用额外的功能,如读取访问,实现...
5. **Fast-Start Failover**:当主数据库出现故障时,Oracle Data Guard可以自动触发快速故障切换到备用数据库,减少了服务中断时间。 6. **Database Recovery Manager (RMAN)**:RMAN是Oracle的备份和恢复工具,它...