zoukankan      html  css  js  c++  java
  • DG常用运维命令及常见问题解决

    DG常见运维命令及常见问题解决方法

    l> DG库启动、关闭标准操作
    Dataguard关闭
    1)、先取消日志应用

    1 alter database recover managed standby database cancel;


    2)、正常关闭DG库

    1 Shutdown immediate;

    Dataguard开启
    1)、数据库先启动到nomount状态

    1 startup nomount;


    2)、然后数据库在启动到standby mount状态

    1 alter database mount standby database;


    3、最后开启日志应用

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

    2> DG监听、TNS配置及说明

    复制代码
     1 1、    监听、TNS配置路径
     2 $ORACLE_HOME/network/admin
     3 2、    监听配置
     4 SID_LIST_oradb =
     5 (SID_LIST =
     6 (SID_DESC =
     7 (GLOBAL_DBNAME = oradb)
     8 (ORACLE_HOME = $ORACLE_HOME)
     9 (SID_NAME = oradb)
    10 )
    11 )
    12 
    13 oradb =
    14 (DESCRIPTION =
    15 (ADDRESS = (PROTOCOL = TCP)(HOST = ip )(PORT = 1521))
    16 )
    复制代码

    3、 TNS配置

    复制代码
     1 oradb_primary =
     2 (DESCRIPTION =
     3 (ADDRESS_LIST =
     4 (ADDRESS = (PROTOCOL = TCP)(HOST = primary_ip)(PORT = 1521))
     5 )
     6 (CONNECT_DATA =
     7 (SERVICE_NAME = oradb)
     8 )
     9 )
    10 
    11 oradb_standby =
    12 (DESCRIPTION =
    13 (ADDRESS_LIST =
    14 (ADDRESS = (PROTOCOL = TCP)(HOST = standby_ip)(PORT = 1521))
    15 )
    16 (CONNECT_DATA =
    17 (SERVICE_NAME = oradb)
    18 )
    19 )
    复制代码

    3> DG归档文件系统使用率100%解决办法
    1、 查看归档目录
    例如:/oradb/db_dg_arc/oradb
    2、 查询归档目录使用情况
    AIX (df -g)
    HPUX (bdf)
    Linux (df -h)
    3、 手动清理归档日志步骤
    (1)、登陆数据库实例查询最新日志应用号

    复制代码
    1 select PROCESS,STATUS,SEQUENCE#,BLOCKS from V$MANAGED_STANDBY;
    2 用SEQUENCE#去和主库对 MRP0为日志应用进程 RFS为日志传输进程
    3 PROCESS STATUS SEQUENCE# BLOCKS
    4 --------- ------------ ---------- ----------
    5 ARCH CLOSING 116489 1063
    6 ARCH CONNECTED 0 0
    7 ARCH CLOSING 116491 200
    8 ARCH CLOSING 116490 1642
    9 MRP0 APPLYING_LOG 116492 4194304
    复制代码

    (2)、查看是否部署了删除归档日志脚本,如果存在,手工执行脚本删除过期日志
    (3)如果删除脚本不存在,首先手工删除部分应用过的日志,再部署自动删除归档日志脚本

    4> DG GAP问题分析解决办法
    1、 查询GAP

    复制代码
     1 SQL> select PROCESS,STATUS,SEQUENCE#,BLOCKS from V$MANAGED_STANDBY;
     2 
     3 PROCESS STATUS SEQUENCE# BLOCKS
     4 --------- ------------ ---------- ----------
     5 ARCH CLOSING 511899 1971
     6 ARCH CLOSING 511892 308
     7 ARCH CLOSING 511895 1399
     8 ARCH CLOSING 511887 1404
     9 ARCH CONNECTED 0 0
    10 ARCH CLOSING 511900 1591
    11 MRP0 WAIT_FOR_GAP 511901 0
    12 RFS IDLE 0 0     
    复制代码

    2、 GAP原因分析
    (1)、归档空间满,日志无法传输
    (2)、网络延迟导致日志传输速度慢
    (3)、DG监听没有启动导致日志无法传输
    (4)、DG本身日志缺失
    (5)、DG库宕机故障

    3、 常规GAP解决办法
    DG备库GAP恢复操作过程:

    复制代码
     1 1) 在主库查找所缺日志的备份片
     2 select 'catalog device type '|| '''SBT_TAPE''' ||' backuppiece ''/'||HANDLE||''';' from 
     3 (select distinct a.HANDLE from v$backup_piece_details a, v$backup_archivelog_details b 
     4 where set_count = id2 and b.thread#=1 and b.SEQUENCE# >缺失的sequence号 and b.SEQUENCE#<缺失的sequence号) ;
     5 
     6 2)、在DG库上注册备份集
     7 rman target /
     8 configure CHANNEL device type 'SBT_TAPE' PARMS 'ENV=(NB_ORA_CLIENT=主机名)';
     9 catalog device type 'SBT_TAPE' backuppiece '/al_XXXXXXXXXXXXXXXXX';
    10 3)、注册完了 第一个配置的参数清除下
    11 CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' CLEAR; 
    12 使用oracle用户rman target /
    13 RMAN>catalog start with '归档路径'; 
    14 3)检查日志是否开始应用
    复制代码

    l DG库ORA-01111错误处理
    1、 问题描述:主库添加数据文件,DG库同步时发现无法同步添加导致报错
    2、 问题原因:
    1) DG库standby_file_management参数没有设置为auto
    2) DG库对应文件系统剩余空间不足以添加数据文件
    3、解决办法:

    如果主备文件系统剩余空间不一致,先清理目标目录的历史文件(如归档日志、dmp包等)

    1 alter system set standby_file_management=manual;
    2 alter database create datafile '/u01/oracle/product/db11gr2/dbs/UNNAMED00070' as '/oradb/datafile/oradb/oradb.dbf';
    3 alter system set standby_file_management=auto;
    4 打开应用:
    5 alter database recover managed standby database parallel 4 disconnect from session;


    5> DG库上归档出现ORA-03113错误

    1 SQL> select dest_name,status,error from v$archive_dest;
    2 DEST_NAME STATUS ERROR
    3 ------------------------------ --------------------------------------
    4 LOG_ARCHIVE_DEST_1 VALID
    5 
    6 LOG_ARCHIVE_DEST_2 ERROR ORA-03113: end-of-file on communication channel

    解决办法:在主库执行

    1 SQL> alter system set log_archive_dest_state_2= enable;


    这个命令式手动触发主库区尝试连接备库。
    其实这种情况下,只要保证主备库之间的网络和配置是正确的。dataguard会自动恢复这个错误。这个周期默认是300秒,
    也可以在log_archive_dest_1的参数中添加reopen参数指定这个主备库之间失败后继续尝试的周期

    2、 ORA-01031: insufficient privileges错误

    1 SQL> select dest_name,status,error from v$archive_dest;
    2 DEST_NAME STATUS ERROR
    3 ---------------------- -----------------------------------------------
    4 LOG_ARCHIVE_DEST_1 VALID
    5 LOG_ARCHIVE_DEST_2 ERROR ORA-01031: insufficient Privileges


    解决办法:统一主备库的数据库密码文件,或者重建密码文件,sys密码设置成一样。
    然后在主库执行

    1 SQL> alter system set log_archive_dest_state_2= enable;



    3、 ORA-16191: Primary log shipping client not logged on standby

    1 SQL> select dest_name,status,error from v$archive_dest;
    2 DEST_NAME STATUS ERROR
    3 ------------------------------ -----------
    4 LOG_ARCHIVE_DEST_1 VALID
    5 LOG_ARCHIVE_DEST_2 ERROR ORA-16191: Primary log shipping client not logged on standby


    解决办法:统一主备库的数据库密码文件,或者重建密码文件,sys密码设置成一样。
    然后在主库执行

    1 SQL> alter system set log_archive_dest_state_1= enable;

    注意事项

    建议在主备库的涉及到名称地方都统一用小写字母,避免在配置过程出现莫名的错误。
    如果在主库执行alter database clear unarchived logfile或alter database open resetlogs,则dataguard要重建。
    在连续恢复模式下工作之前,需要保证之前所有的归档日志己经应用到备用库上。因为在连续恢复模式的情况下,oracle不会应用之前的归档日志,而只会应用后面陆续到来的归档日志。
    新建表、表空间、datafile都能通过日志应用到备库,但新建一个临时表空间和rename datafile均不能应用到备库上。
    出现归档日志gap时,需要找出相应的归档日志,然后将这些归档日志copy到备用节点的log_archive_dest目录下面。然后ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE;
    应当实时察看standby库的alert文件,就能清晰明了地知道主备更新的情况。这也是排错的重要方法。

  • 相关阅读:
    [HNOI2010]CITY 城市建设

    [HNOI2011]数学作业
    [NOI2012]美食节
    [HEOI2014]大工程
    [HEOI2013]ALO(待更)
    [HEOI2016/TJOI2016]序列
    贪食蛇(未完待续)
    [HEOI2016/TJOI2016]字符串
    bzoj 2437[Noi2011]兔兔与蛋蛋 黑白染色二分图+博弈+匈牙利新姿势
  • 原文地址:https://www.cnblogs.com/shujuyr/p/13092622.html
Copyright © 2011-2022 走看看