7. 启动备用数据库
C:>set ORACLE_SID=orcl
SQL>sqlplus "/as sysdba"
SQL>startup nomount pfile='D:/oracle/product/10.2.0/db_1/database/initorcl.ora';
SQL>create spfile from pfile='D:/oracle/product/10.2.0/db_1/database/initorcl.ora';
若采用Rman备份的, 则在此standby 端进行 Rman还原数据库:
$rman target sys/admin@primary auxiliary /
RMAN> duplicate target database for standby dorecover nofilenamecheck;
SQL>alter database mount standby database ;
SQL>alter database recover managed standby database disconnect from session;
---------------------------------------------------------------------------
测试
注意Data Guard 启动顺序:
启动顺序:先standby ,后primary;
关闭顺序:先primary 后standby;
在备库将实例启动到mount 状态:
SQL> startup nomount;
SQL>alter database mount standby database ;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL>alter database recover managed standby database disconnect from session;
在备库启动监听:
$lsnrctl start
在主库启动实例:
SQL> startup;
在主库启动监听:
$lsnrctl start
在主库验证归档目录是否有效:
SQL> SELECT STATUS,DESTINATION, ERROR FROM V$ARCHIVE_DEST;
如果有错误,要排查原因。
SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
70
主备查询结果一致,Data Guard 搭建结束。
1. 测试主库产生的归档日志是否能正常传送到归档日志
主库进行日志切换:
SQL>Alter system switch logfile;
然后分别查看主库和备库的D:/arch目录下是否产生了同样的归档日志
文件。
select max(sequence#) from v$archived_log;
select max(sequence#) from v$log_history;
select group#,sequence#,archived,status from v$log;
select name,sequence#,applied from v$archived_log;
select sequence#,applied from v$archived_log;
若不同步,
1. 看log日志, archive是否有丢失
2. 可以在备库坐如下操作:
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
-----------------------------------------------------------------------
主备库切换
1. switchover
一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。 在进行DATA GUARD的物理STANDBY切换前需要注意:
确认主库和从库间网络连接通畅;
确认没有活动的会话连接在数据库中;
PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;
确保STANDBY数据库处于ARCHIVELOG模式;
如果设置了REDO应用的延迟,那么将这个设置去掉;
确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。
主库:
1. 查看switchover 状态
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
to standby
附: A:switchover_status出现session active/not allowed
当出现session active的时候表示还有活动的session,则运行
Alter database commit to switchover to physical standby with session shutdown;
当出现not allowed时,在官方文档说转换会不成功,但是我测试的时候成功了,如果大家在测试不成功的时候再和我说,让我看看在什么情况下会不成功。
B.ora- 01153: an incompatible media recovery is active
运行下面代码
Alter database recover managed standby database finish;
或者Alter database recover managed standby database finish force;
Alter database recover managed standby database disconnect from session;
2 切换成备库
SQL>Alter database commit to switchover to physical standby with session shutdown;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
Database altered.
3 启动到mount和应用日志状态
SQL> SHUTDOWN IMMEDIATE
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
4. 查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
备库:
1.查看switchover状态
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
TO PRIMARY
附:若不是用此语句切换:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown
2. 切换成主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
SQL> shutdown immediate;
SQL> startup;
SQL> alter system switch logfile;
3. 查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
注意地方:
如果做了switchover,主库参数设置成以下方式,会触发ora-16009错误
Alert system set log_archive_dest_2=’service=primary
DB_UNIQUE_NAME=orcl’ scope=spfile;
然后再alert_orcl.log 日志中会出现以下错误内容
Thu Nov 27 10:19:12 2008
Redo Shipping Client Connect
-- Connected User is Valid
RFS[2]: Assigned to RFS process 1292
RFS[2]: Database mount ID mismatch [0x4781d95f:0x47823be1]
RFS[2]: Client instance is standby database i
RFS[2]: Not using real app
Thu Nov 27 10:19Errors in file
d:/oracle/product/10.2.0/admin/orcl/udump/orc
ORA-16009: 远程归档日
从metalink上查到:
* fact: Oracle Server - Enterprise Edition 9
* symptom: Errors appears in alert.log on primary database
* symptom: RFS: client instance is standby database instead
* symptom: RFS: Not using real application clusters
* symptom: Errors appear in alert.log on standby database
* symptom:
database
standby database
primary database
* symptom: Standby redo log files are defined on the standby database
* cause: The standby redo log files are synchronously filled with redo
from the primary database. When a logswitch occur on the primary database,
those files are archived on the standby database before being applyed on
it. The archiving process on the standby database should only archive to
the local disks on tprimarfix:
Disable the remote archiving on the standby databasExample: alter system set log_archive_dest_2 = ''
是因为没有把standby 上的log_archive_dest_2 清空导致的。
另外也有可
bug 4676659
Standby may not be recognised (ORA-16009)
When the log transport is LGWR ASYNC and logical standby has
LOG_ARCHIVE_DEST setting VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE)
ORA-16009 is reportedregular interWorkaround:
There is no workaround to prevent ORA-16009 from appearing in alert logs.
2. Failovers:
FAILOVER切换一般是PRIMARY数据库发生故障后的切换,这种情况是STANDBY数据库发挥其作用的情况。这种切换发生后,可能会造成数据的丢失。而且这个过程不是可逆的,DATA GUARD环境会被破坏。
由于PRIMARY数据库已经无法启动,所以FAILOVER切换所需的条件并不多,只要检查STANDBY是否运行在最大保护模式下,如果是的话,需要将其置为最大性能模式,否则切换到PRIMARY角色也无法启动。
1.查看是否有日志GAP,没有应用的日志:
SQL> SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
如果有,则拷贝过来并且注册
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '路径';
重复查看直到没有应用的日志:
2. 然后停止应用归档:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
3. 下面将STANDBY数据库切换为PRIMARY数据库:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
或 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;
Database altered.
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
SQL> ALTER DATABASE OPEN; 或者 shutdown immediate+startup
Database altered.
检查数据库是否已经切换成功:
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
PRIMARY
至此,FAILOVER切换完成。这个时候应该马上对新的PRIMARY数据库进行备份。
更多信息请查看 java进阶网 http://www.javady.com
分享到:
相关推荐
### Oracle 10G Windows平台DataGuard实例解析 #### 一、概述 Oracle Data Guard是一种高可用性解决方案,用于保护数据库免受数据丢失,并确保在出现故障时能够快速恢复服务。本文将详细介绍如何在Windows平台上...
在实际应用中,Oracle多实例和DataGuard的组合使用可以构建出强大的高可用性和灾难恢复架构,为企业关键业务提供可靠的保障。在配置和管理过程中,应根据具体业务需求和资源情况,选择合适的实例类型和DataGuard模式...
【虚拟机Windows2008+Oracle11g DataGuard部署详解】 在IT环境中,数据库高可用性是关键,Oracle的DataGuard技术提供了一种高效且可靠的灾难恢复和业务连续性解决方案。本教程将详细讲解如何在Windows Server 2008...
在Oracle 10g DataGuard配置的过程中,我们主要关注如何在一个主数据库(primary database)和一个或多个备用数据库(standby database)之间建立一种高可用性和灾难恢复机制。以下是对整个配置流程的详细解析: ### ...
Oracle 10g RAC 环境下的 DataGuard 备库搭建实例是一个重要的数据库高可用性和灾难恢复方案。DataGuard 提供了主库和备库之间的实时数据复制,确保在主库出现故障时,备库能够快速接管,保证业务连续性。在 RAC ...
Oracle 11G 数据库 DataGuard 灾备切换方案 本文档介绍了 Oracle 11G 数据库 DataGuard 灾备切换方案,旨在帮助数据库管理员快速实现灾备切换,确保数据安全和可用性。 一、检查 在进行灾备切换之前,需要检查...
### Oracle 11g R2 DataGuard 配置详解 #### 一、判断DataGuard是否已安装 在开始配置Oracle 11g R2 DataGuard之前,首先要确认Oracle环境是否支持DataGuard功能。可以通过查询`v$option`视图来验证这一点: ```...
Oracle11g rac至ASM单实例dataguard配置 包括系统系统配置到数据库安装最后dg配置
总之,Oracle Linux 11g RAC 单实例DATAGUARD配置涉及到一系列的参数设置和数据库操作,目的是为了在保持高可用性的同时,提供数据保护和故障恢复的能力。在实际操作中,确保所有步骤正确无误是极其重要的,因为任何...
在Oracle 11g R2中,DataGuard提供了多种功能,如物理 standby、逻辑 standby、以及快速恢复等特性。 **第一章 配置环境** 1.1 网络拓扑架构图 网络拓扑是DataGuard实施的关键部分,通常包含主数据库(Primary ...
在配置DataGuard灾备之前,需要在 primary 和 standby 服务器上安装Oracle 10G数据库管理系统,并自动创建实例。安装路径、数据库实例名(cz2013)和密码都设置成一样,以便于后续的灾备恢复操作。 二、 Primary ...
### Oracle DataGuard 运维:正确停机启动步骤详解 #### 一、Oracle RAC DataGuard 基础概述 Oracle RAC (Real Application Clusters) 和 Oracle DataGuard 是两个非常重要的技术,前者用于实现数据库的高可用性和...
oracle多实例创建和DataGuard配置,欢迎下载,个人觉得还是很不错的哦
综上所述,"Oracle官方的实战10gRAC + dataguard"的资料涵盖了高可用性的数据库部署和保护策略,对于理解和实施Oracle数据库的企业级解决方案有着重要的指导意义。通过深入学习和实践这些内容,IT专业人员能够提升在...
Oracle11g RAC ASM与DATAGUARD配置知识点详解: 一、实施目的和环境准备 实施目的: 本次配置的目的是为了创建一个由两个节点组成的自动存储管理(ASM)存储方式的Oracle真正应用集群(RAC)数据库,并与一个使用...
Oracle 11g RAC高可用Dataguard 主备正确切换步骤 Oracle 11g RAC高可用Dataguard是Oracle公司推出的高可用解决方案,旨在提供高可用性和灾难恢复能力。本文将详细介绍Oracle 11g RAC高可用Dataguard 主备正确切换...
Oracle 10g RAC (Real Application Clusters) 和 Data Guard 是两个强大的数据库技术,用于构建高可用性和灾难恢复解决方案。在Oracle数据库系统中,RAC允许多台服务器共享同一个数据库,提供并行处理和故障切换能力...
ORACLE 11G 搭建Data Guard 的步骤涉及一系列配置过程,目的是为了确保数据库的高可用性和数据的安全备份。Data Guard 是Oracle数据库的一个组件,它能够提供一个或多个辅助数据库(standby databases)来实现数据...