`

Oracle 10G windows 平台 DataGuard 实例(三)

阅读更多

 

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

分享到:
评论

相关推荐

    Oracle10Gwindows平台DataGuard实例.pdf

    ### Oracle 10G Windows平台DataGuard实例解析 #### 一、概述 Oracle Data Guard是一种高可用性解决方案,用于保护数据库免受数据丢失,并确保在出现故障时能够快速恢复服务。本文将详细介绍如何在Windows平台上...

    oracle多实例创建和DataGuard配置

    在实际应用中,Oracle多实例和DataGuard的组合使用可以构建出强大的高可用性和灾难恢复架构,为企业关键业务提供可靠的保障。在配置和管理过程中,应根据具体业务需求和资源情况,选择合适的实例类型和DataGuard模式...

    虚拟机windows2008+oracle11g dataguard

    【虚拟机Windows2008+Oracle11g DataGuard部署详解】 在IT环境中,数据库高可用性是关键,Oracle的DataGuard技术提供了一种高效且可靠的灾难恢复和业务连续性解决方案。本教程将详细讲解如何在Windows Server 2008...

    oracle10g dataguard配置

    在Oracle 10g DataGuard配置的过程中,我们主要关注如何在一个主数据库(primary database)和一个或多个备用数据库(standby database)之间建立一种高可用性和灾难恢复机制。以下是对整个配置流程的详细解析: ### ...

    Oracle10g RAC环境下DataGuard备库搭建实例

    Oracle 10g RAC 环境下的 DataGuard 备库搭建实例是一个重要的数据库高可用性和灾难恢复方案。DataGuard 提供了主库和备库之间的实时数据复制,确保在主库出现故障时,备库能够快速接管,保证业务连续性。在 RAC ...

    Oracle11G数据库DataGuard灾备切换方案.pdf

    Oracle 11G 数据库 DataGuard 灾备切换方案 本文档介绍了 Oracle 11G 数据库 DataGuard 灾备切换方案,旨在帮助数据库管理员快速实现灾备切换,确保数据安全和可用性。 一、检查 在进行灾备切换之前,需要检查...

    Oracle_11G_DataGuard配置手册

    ### Oracle 11g R2 DataGuard 配置详解 #### 一、判断DataGuard是否已安装 在开始配置Oracle 11g R2 DataGuard之前,首先要确认Oracle环境是否支持DataGuard功能。可以通过查询`v$option`视图来验证这一点: ```...

    Oracle11g RAC环境至单实例asm环境的Dataguard配置信息v1.0.html

    Oracle11g rac至ASM单实例dataguard配置 包括系统系统配置到数据库安装最后dg配置

    ORACLE LINUX 11G RAC 单实例DATAGUARD

    总之,Oracle Linux 11g RAC 单实例DATAGUARD配置涉及到一系列的参数设置和数据库操作,目的是为了在保持高可用性的同时,提供数据保护和故障恢复的能力。在实际操作中,确保所有步骤正确无误是极其重要的,因为任何...

    Oracle 11g R2 to DataGuard实施方案.doc

    在Oracle 11g R2中,DataGuard提供了多种功能,如物理 standby、逻辑 standby、以及快速恢复等特性。 **第一章 配置环境** 1.1 网络拓扑架构图 网络拓扑是DataGuard实施的关键部分,通常包含主数据库(Primary ...

    Oracle10G DataGuard灾备配置

    在配置DataGuard灾备之前,需要在 primary 和 standby 服务器上安装Oracle 10G数据库管理系统,并自动创建实例。安装路径、数据库实例名(cz2013)和密码都设置成一样,以便于后续的灾备恢复操作。 二、 Primary ...

    oracle dataguard 运维正确停机启动步骤

    ### Oracle DataGuard 运维:正确停机启动步骤详解 #### 一、Oracle RAC DataGuard 基础概述 Oracle RAC (Real Application Clusters) 和 Oracle DataGuard 是两个非常重要的技术,前者用于实现数据库的高可用性和...

    oracle多实例创建和DataGuard配置DEMO

    oracle多实例创建和DataGuard配置,欢迎下载,个人觉得还是很不错的哦

    oracle官方的实战10gRAC + dataguard

    综上所述,"Oracle官方的实战10gRAC + dataguard"的资料涵盖了高可用性的数据库部署和保护策略,对于理解和实施Oracle数据库的企业级解决方案有着重要的指导意义。通过深入学习和实践这些内容,IT专业人员能够提升在...

    oracle11g RAC ASM dataguard配置

    Oracle11g RAC ASM与DATAGUARD配置知识点详解: 一、实施目的和环境准备 实施目的: 本次配置的目的是为了创建一个由两个节点组成的自动存储管理(ASM)存储方式的Oracle真正应用集群(RAC)数据库,并与一个使用...

    oracle 11g RAC<--&gt;单机 高可用dataguard 主备正确切换步骤

    Oracle 11g RAC高可用Dataguard 主备正确切换步骤 Oracle 11g RAC高可用Dataguard是Oracle公司推出的高可用解决方案,旨在提供高可用性和灾难恢复能力。本文将详细介绍Oracle 11g RAC高可用Dataguard 主备正确切换...

    oracle 10g rac dataguard 参考

    Oracle 10g RAC (Real Application Clusters) 和 Data Guard 是两个强大的数据库技术,用于构建高可用性和灾难恢复解决方案。在Oracle数据库系统中,RAC允许多台服务器共享同一个数据库,提供并行处理和故障切换能力...

    ORACLE 11G 搭建DATAGUARD步骤.pdf

    ORACLE 11G 搭建Data Guard 的步骤涉及一系列配置过程,目的是为了确保数据库的高可用性和数据的安全备份。Data Guard 是Oracle数据库的一个组件,它能够提供一个或多个辅助数据库(standby databases)来实现数据...

Global site tag (gtag.js) - Google Analytics