dg如何验证是否同步成功 oracle_oracle dg如何验证是否同步成功 - CSDN
精华内容
参与话题
  • 概述: 一、环境 ... ip地址:192.168.122.203 ... oracle根目录:/data/db/oracle  SID:qyq  数据文件路径/data/db/oracle/oradata/qyq  归档文件路径:/data/db/oracle/archive'  备库:  

    概述:


    一、环境
         主库:
          ip地址:192.168.122.203
          oracle根目录:/data/db/oracle
          SID:qyq
          数据文件路径/data/db/oracle/oradata/qyq
          归档文件路径:/data/db/oracle/archive'

         备库:
          ip地址:192.168.122.204
          oracle根目录:/data/app/oracle
          SID:qyq
          数据文件路径/data/app/oracle/oradata/qyq
          归档文件路径:/data/app/oracle/archive'

    二、备库不同步的问题检查方法

    1、检查主备两边的序号
    select max(sequence#) from v$log;   ---检查发现一致


    2、备库执行,查看是否有数据未应用
    select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;

    select SEQUENCE#,FIRST_TIME,NEXT_TIME ,APPLIED from v$archived_log order by 1;

    3、检查备库是否开启实时应用
    select recovery_mode from v$archive_dest_status where dest_id=2;

    4、检查备库状态
    select switchover_status from v$database; --发现状态not allowed 

    3、看看进程MRP是否存在
     ps aux|grep mrp      --发现进程不存在

    4、如果不存在执行以下:
    alter database recover managed standby database using current logfile disconnect;

    alter database recover managed standby database disconnect from session;  --后台执行

    alter database recover managed standby database --前台执行,执行这个可以看到报错的情况

    如果有报错,查看alert日志和log.xml日志 

    5、验证是否正常
    select process,status from v$managed_standby;
    select process,status,sequence# from v$managed_standby;

    如果看到mrp0正常

    6、以上步骤处理好后,如果数据还不正常,接着处理

    关闭备库,接着处理:
    把主库上 undotbs01.dbf 文件,物理的重拷到备库机上以前undotbs01.dbf 所在目录下;

    $scp /data/oracle/oradata/voip/undotbs01.dbf   192.168.122.204:/data/oracle/oradata/voip

    再在主库上重新生成一个standby control file ,拷到备库机上相应目录下,

    alter database create standby controlfile as '/data/oracle/oradata/voip/qyqdg01.ctl'

    $scp /data/oracle/oradata/voip/qyqdg01.ctl   192.168.122.204:/data/oracle/oradata/voip
    $ mv qyqdg01.ctl  control01.ctl
    $ cp control01.ctl /data/oracle/flash_recovery_area/qyq/
    $cd /data/oracle/flash_recovery_area/qyq/
    $ mv control01.ctl  control02.ctl

    接着
    STARTUP NOMOUNT;
    ALTER DATABASE MOUNT STANDBY DATABASE;
    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

    --------------------------------------
    session恢复完成后,重启打开备库;

    alter database open read only;

    
    展开全文
  • Oracle之ADG与DG的区别?

    千次阅读 2019-07-20 20:07:05
    在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份,ADG比DG更好!”。究竟ADG作Oracle数据灾备的优势在什么地方? 一、ADG主要解决了DG时代读写不能并行的...

         在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份,ADG比DG更好!”。究竟ADG作Oracle数据灾备的优势在什么地方?

     

     

    一、ADG主要解决了DG时代读写不能并行的问题

            DG时代的数据同步方式如采用Redo Log的物理方式,则数据库同步数据快、耗用资源低,但存在一个大问题。

            Oracle 11G以前的Data Guard物理备份数据库,可以以只读的方式打开数据,但这时日志的数据同步过程就停止了。而如果日志的数据同步处于执行过程中,则数据库就不能打开。也就是日志读、写两个状态是互相排斥的。而Active Data Guard则是主要解决这个问题。

     

    二、Oracle具有闪回数据库的功能,避免删表等误操作造成无法挽回

            当主数据库打开并处于活动状态时,事务处于处理状态,生成Redo Log数据,并将其传送到备用的数据库中,正常情况下,可以做到秒级的数据同步。但如果在主用数据库上执行一个错误的命令,如drop database,则所有备用数据库中的数据也会被删除。

            Oracle DG提供了易于使用的方式来避免这种用户错误。DBA可以在主数据库、备用数据库中同时使用闪回数据库功能,以快速将数据库恢复到一个较早的时间点上,从而取消这个误操作。

           另外,Oracle还提供了延时执行备份数据库同步的功能,这样又是另一种方式防止误操作。

     

    三、Oracle的DG、RAC一般是联合使用

           RAC主要解决系统应用的故障,它不提供数据故障的快速、自动恢复,它还提供数据库应用的伸缩能力,提供应用级的保护。

            DG只提供数据的备份、恢复能力,提供数据级的保护。

    四、建议使用DG做数据实时同步,而不是第三方的磁盘copy工具

          原因三点:

          1、DG具有延时写入数据功能,可以避免误操作,而第三方工具没有。

          2、DG传输的数据量更小,而第三方工具的所需的带宽更高。

          3、实战中的坑:有些第三方工具的磁盘同步最小单元与Oracle的最小磁盘单元不同,造成异常故障时,备份数据库无法启用,这非常吓人。

     

     

    希望以上文章能帮到您。

    更多内容实时更新,请访问公众号。    

     

    点击这里,获取最高¥1888阿里云产品通用代金券

    展开全文
  • ORACLE DG概念及切换

    万次阅读 2019-01-15 16:02:46
    DG的原理: DG分为物理standy,逻辑standy 物理standy: 物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。它是直接应用REDO实现同步的。 逻辑standy: 逻辑STANDBY则不是...

    DG的原理:

    DG分为物理standy,逻辑standy

    物理standy:

    物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。它是直接应用REDO实现同步的。

    逻辑standy:

    逻辑STANDBY则不是这样,在逻辑STANDBY中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表。

    DG三种模式:

    最大保护模式(Maximum protection)  --性能不佳

    alter database set standby database to maximize protection;

    Primary Database上的每个事务的Redo日志必须在本地和Standby Database上都写入日志文件后才能提交,如果不能写入到Standby Database,Primary Database就会自动关闭(挂起)以防止数据丢失。

    最大可用性(Maximum Availability)

    Primary Database每个事务的Redo日志要写到本地和Standby Database中才能提交。

    这个和最大保护模式不同的是,如果写入到Standby Database失败,Primary Database不会自动关闭。这时Primary Database会自动转换为Maximum Performance模式,等待问题解决并且Standby Database再次和Primary Database同步之后,Primary Database会自动的转换为Maximum Availability。

    这种模式要求Standby Database必须配置Standby Redo log,而Primary Database必须配置为LGWR、SYNC、AFFIRM方式归档。

    最大性能(Maximum Performance)

    这个模式是缺省模式,他更加侧重对Primary Database的可用性不造成任何影响。

    Primary Database上的事务的Redo日志只要写到本地日志文件就可以提交,不必等待到Standby Database的传递完成。

    Primary Database的Redo流可以异步的发送到Standby Database。

    这种模式通过LGWR ASYNC或者ARCH实现,Standby Database也不要求使用Standby Redo Log。

    一、检查DG是否正常的四个方法

    1.看备库的告警日志,正在恢复的日志号是否对应得上

    2.看三个进程是否都已经启动

    SQL>select process from v$managed_standby

    主库中显示:

    PROCESS

    ---------

    ARCH

    ARCH

    ARCH

    ARCH

    备库中显示:ARCH、MRPO和RFS 表示正常

    3.先切换一次日志,再进到归档目录里,看两边的归档文件号是否对得上

    4.用命令查看两边归档是否对得上

    SQL> select max(sequence#) from v$archived_log where applied='YES';

    二、切换DG步骤

    关闭:先主库,后备机,开启的时候先开备库启动备库监听,再开主库

    1.先将主库切换成备库,然后将原主库启动到物理库的状态

    SQL> Alter database commit to switchover to physical standby with session shutdown;

    2.关闭主库

    SQL> shutdown immediate

    3.打开数据库nomount

    SQL> startup nomount

    4.更改主库为备库

    SQL> alter database mount standby database;

    SQL> alter database recover managed standby database disconnect from session;

    如果配置了 standby redo log 并需要启用实时同步则执行以下代码

    SQL>alter database recover managed standby database using current logfile disconnect from session;

    5.将备库切换成主库

    SQL> select switchover_status from v$database;

    SQL> select * from v$version where rownum<2;

    SQL> alter database commit to switchover to primary with session shutdown;

    如果备库还有未应用的日志则执行

    SQL>alter database recover managed standby database disconnect from session;

    SQL> shutdown immediate

    SQL> startup

    切换日志进行检查

    SQL> select max(sequence#) from v$log;

    SQL>select sequence#,applied from v$archived_log;

    SQL> alter system switch logfile;

     

    展开全文
  • oracle dg 状态检查

    万次阅读 2018-05-18 10:04:40
    先检查备库的归档日志同步情况 SELECT NAME,applied FROM v$archived_log; alter database recover managed standby database cancel;select thread#,sequence#,standby_dest,archived,applied,status from v$...

    先检查备库的归档日志同步情况 

    SELECT NAME,applied FROM v$archived_log; 

    alter database recover managed standby database cancel;

    select thread#,sequence#,standby_dest,archived,applied,status from v$archived_log order by 1,2;

    alter database recover managed standby database using current logfile disconnect from session;

    .在备库 查看gap

    1. select * from v$archive_gap;


    ALTER  DATABASE RECOVER MANAGED STANDBY  DATABASE DISCONNECT FROM SESSION;

    查看主库的基本信息:

    SYS@enmo1 hey~1->select open_mode,protection_mode,database_role,switchover_status from v$database;

    OPEN_MODE            PROTECTION_MODE             DATABASE_ROLE         SWITCHOVER_STATUS
    -------------------- ----------------------------- ------------------------ ------------------------
    READ WRITE           MAXIMUM PERFORMANCE      PRIMARY                      TO STANDBY

    查看备库的基本信息:

    SYS@enmo2 hey~2->select open_mode,protection_mode,database_role,switchover_status from v$database;

    OPEN_MODE                   PROTECTION_MODE             DATABASE_ROLE         SWITCHOVER_STATUS
    ------------------------- ----------------------------- ------------------------ ------------------------
    READ ONLY WITH APPLY MAXIMUM PERFORMANCE      PHYSICAL STANDBY      NOT ALLOWED

    备库应用日志保持和主库数据一致(如果不一致,执行如下语句应用日志)

    SYS@enmo2 hey~2->recover managed standby database using current logfile disconnect from session;
    Media recovery complete.

    SYS@enmo2 hey~2->recover managed standby database cancel;
    Media recovery complete.

    主库切换到备库角色并查看切换之后的状态为RECOVERY NEEDED

    SYS@enmo1 hey~1->alter database commit to switchover to physical standby with session shutdown;

    Database altered.

    SYS@enmo1 hey~1->shutdown abort;

    ORACLE instance started.

    Total System Global Area 830930944 bytes
    Fixed Size 2257800 bytes
    Variable Size 700451960 bytes
    Database Buffers 121634816 bytes
    Redo Buffers 6586368 bytes
    Database mounted.
    SYS@enmo1 hey~1->select switchover_status from v$database;

    SWITCHOVER_STATUS
    --------------------
    RECOVERY NEEDED

    切换应用日志,然后在查看切换状态为TO primary正常:

    SYS@enmo1 hey~1->recover managed standby database using current logfile disconnect from session;
    Media recovery complete.
    SYS@enmo1 hey~1->select switchover_status from v$database;

    SWITCHOVER_STATUS
    --------------------
    TO PRIMARY

    备库切主库:

    SYS@enmo2 hey~2->select open_mode,protection_mode,database_role,switchover_status from v$database;

    OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
    -------------------- -------------------- ---------------- --------------------
    MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY TO PRIMARY

    SYS@enmo2 hey~2->alter database commit to switchover to primary with session shutdown;

    Database altered.

    SYS@enmo2 hey~2->alter database open;

    Database altered.

    SYS@enmo2 hey~2->select switchover_status,database_role from v$database;

    SWITCHOVER_STATUS DATABASE_ROLE
    -------------------- ----------------
    FAILED DESTINATION PRIMARY

    SYS@enmo2 hey~2->select open_mode,protection_mode,database_role from v$database;

    OPEN_MODE PROTECTION_MODE DATABASE_ROLE
    -------------------- -------------------- ----------------

    READ WRITE MAXIMUM PERFORMANCE PRIMARY


    二、备库不同步的问题检查方法

    1、检查主备两边的序号
    select max(sequence#) from v$log;   ---检查发现一致


    2、备库执行,查看是否有数据未应用
    select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;

    select SEQUENCE#,FIRST_TIME,NEXT_TIME ,APPLIED from v$archived_log order by 1;

    3、检查备库是否开启实时应用
    select recovery_mode from v$archive_dest_status where dest_id=2;

    4、检查备库状态
    select switchover_status from v$database; --发现状态not allowed 

    3、看看进程MRP是否存在
     ps aux|grep mrp      --发现进程不存在

    4、如果不存在执行以下:
    alter database recover managed standby database using current logfile disconnect;

    alter database recover managed standby database disconnect from session;  --后台执行

    alter database recover managed standby database --前台执行,执行这个可以看到报错的情况

    如果有报错,查看alert日志和log.xml日志 

    5、验证是否正常
    select process,status from v$managed_standby;
    select process,status,sequence# from v$managed_standby;

    如果看到mrp0正常

    6、以上步骤处理好后,如果数据还不正常,接着处理

    关闭备库,接着处理:
    把主库上 undotbs01.dbf 文件,物理的重拷到备库机上以前undotbs01.dbf 所在目录下;

    $scp /data/oracle/oradata/voip/undotbs01.dbf   192.168.122.204:/data/oracle/oradata/voip

    再在主库上重新生成一个standby control file ,拷到备库机上相应目录下,

    alter database create standby controlfile as '/data/oracle/oradata/voip/qyqdg01.ctl'

    $scp /data/oracle/oradata/voip/qyqdg01.ctl   192.168.122.204:/data/oracle/oradata/voip
    $ mv qyqdg01.ctl  control01.ctl
    $ cp control01.ctl /data/oracle/flash_recovery_area/qyq/
    $cd /data/oracle/flash_recovery_area/qyq/
    $ mv control01.ctl  control02.ctl

    接着
    STARTUP NOMOUNT;
    ALTER DATABASE MOUNT STANDBY DATABASE;
    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

    --------------------------------------
    session恢复完成后,重启打开备库;

    alter database open read only;






    展开全文
  • DG既可以同步,也可以异步。 DG有三种模式: 最大保护 是同步 最大性能 是异步 最高可用 能同步就不异步,不能同步时才会异步。
  • [Oracle, MySQL] Oracle通过dblink连接MySQL

    万次阅读 2013-08-29 12:05:48
    业务上有这么一个需求,需要把Oracle的一些数据同步到MySQL,如果每次都是手动同步的话,实在太麻烦,因此花了点时间研究了下Oracle直连MySQL的方式。 参考文档:Detailed Overview of Connecting Oracle to MySQL ...
  • HA/DG/RAC 三者的区别

    千次阅读 2010-08-14 16:04:00
    高可用性解决方案分为4种 (DG AR RAC HA): 一种是oracle提供的被用方法,Standby (=9i DataGuard) 一种是AR (高级复制Advanced Replication,在以前版本叫快照snapshot) 一种是oracle 并行...
  • oracle dataguard 传输方式(基本原理)

    千次阅读 2014-04-14 22:19:38
     那么对于oracle dataguard(简称DG)有两种传输模式:async(异步)和sync(同步),在介绍这两种传输模式前,说一下dg的重做传输进程架构。 在主库使用LNS进程从sga中的重做缓冲区中获得相应redo数据,然后...
  • ORACLE RAC+DG(单实例)

    万次阅读 2019-07-02 14:55:43
    ORACLE RAC+DG(单实例) 前提条件: 1.主库RAC已经成功安装,数据库也已经创建。 2.DG备库已经安装完相同版本的oracle软件,无需创建数据库。 1、RAC开启归档。 任意节点: alter system set log_archive_format='%t_%s...
  • 今天帮一朋友检查主库alter日志的时候,
  • 一、物理DG与逻辑DG的区别 官方文档是这样说明的 The main difference between physical and logical standby databases is the manner in which log apply services apply the archived redo logs:  For ...
  • Oracle Active DataGurad和Data Guard的区别

    千次阅读 2020-05-25 08:19:45
    以下简称Active Data Guard为ADG,Data Guard为DG。 首先如果用户购买了企业版许可,DG是免费的,而ADG是需要额外付费的数据库选件。 ADG和DG的的架构类似,如下图: ADG是DG的演进,或者说是DG的超集。ADG的主要...
  • Oracle数据库--读写分离架构

    万次阅读 2016-09-24 18:29:25
     采用Oracle读写分离的思路,Writer DB和Reader DB采用日志复制软件实现实时同步; Writer DB负责交易相关的实时查询和事务处理,Reader DB负责只读接入,处理一些非实时的交易明细,报表类的汇总查询等。同时,...
  • Oracle 单实例DG搭建详解

    万次阅读 2017-06-06 14:50:41
    oracle DG datagrad switchover failover failover恢复
  • 不同Oracle数据库之间的数据同步

    万次阅读 2017-04-19 15:11:55
    对于中大型数据库,业务数据库里所有的数据同步到另外一个处理服务器上最佳的选择还是使用SnapShot方式,即快照的方式。 Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或
  • Oracle 11gR2 DG部署(RMAN方式)

    千次阅读 2018-12-04 09:47:16
    Oracle DG部署(RMAN方式) Oracle DG部署(RMAN方式) 1.环境介绍 2.DG部署 2.1.建立主库orcl 2.2.主库开启归档 2.3.主库添加Standby Redo Log 2.4.从主库创建pfile文件 2.5.设置主库初始化参数 2.6.设置备库...
  • linux创建软链接命令-ln -s

    万次阅读 2013-05-29 12:13:15
    linux 创建连接命令 ln -s 软链接 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件。...
  • dg和ogg的区别--oracle数据库

    万次阅读 2018-12-04 15:42:21
    ADG和OGG的新特性,目前越来越多的客户重视灾备数据站点的建设,由于存储级灾备和操作系统级灾备的局限性(主要是带宽高及事务完整性不容易保证),因此在选择甲骨文的应用...Oracle DataGuard 11g的新特性 ~~~~~~ ...
  • ogg 故障解决一则

    万次阅读 2013-08-28 18:07:58
    因两边同步出错,数据已不一致,我添加字段后也没有有同步过去,所以我把表删除重建。 但后来错误更多,想直接删除同步文件(./dirdat/gg000000)看看。但目标端一直要求此文件。 后来 重置Extract 和Replicat ...
  • oracle dg adg failover switchover broker
1 2 3 4 5 ... 20
收藏数 4,632
精华内容 1,852
关键字:

dg如何验证是否同步成功 oracle