zoukankan      html  css  js  c++  java
  • oracle dg状态检查及相关命令

    oracle dg 状态检查

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

    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;

  • 相关阅读:
    P2762 [网络流24题]太空飞行计划问题(最小割)
    poj2987 Firing[最小割]
    P2051 [AHOI2009]中国象棋[线性DP]
    poj1637 Sightseeing tour[最大流+欧拉回路]
    hdu3739 Anti LIS[最小割]
    P2766 [网络流24题]最长不下降子序列问题
    P2764 [网络流24题]最小路径覆盖问题[最大流]
    P2936(BZOJ3396) [USACO09JAN]全流Total Flow[最大流]
    BZOJ4278 [ONTAK2015]Tasowanie[后缀数组+贪心]
    Robot framework之元素定位实战
  • 原文地址:https://www.cnblogs.com/ect123/p/11739435.html
Copyright © 2011-2022 走看看