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

l> DG库启动、关闭标准操作
Dataguard关闭
1)、先取消日志应用
alter database recover managed standby database cancel;
2)、正常关闭DG库
Shutdown immediate;

Dataguard开启
1)、数据库先启动到nomount状态
startup nomount;
2)、然后数据库在启动到standby mount状态
alter database mount standby database;
3、最后开启日志应用
alter database recover managed standby database disconnect from session using current logfile;

2> DG监听、TNS配置及说明
1、 监听、TNS配置路径
$ORACLE_HOME/network/admin
2、 监听配置
SID_LIST_oradb =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oradb)
(ORACLE_HOME = $ORACLE_HOME)
(SID_NAME = oradb)
)
)

oradb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip )(PORT = 1521))
)

3、 TNS配置
oradb_primary =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
)

oradb_standby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
)

3> DG归档文件系统使用率100%解决办法
1、 查看归档目录
例如:/oradb/db_dg_arc/oradb
2、 查询归档目录使用情况
AIX (df -g)
HPUX (bdf)
Linux (df -h)
3、 手动清理归档日志步骤
(1)、登陆数据库实例查询最新日志应用号
select PROCESS,STATUS,SEQUENCE#,BLOCKS from V$MANAGED_STANDBY;
用SEQUENCE#去和主库对 MRP0为日志应用进程 RFS为日志传输进程
PROCESS STATUS SEQUENCE# BLOCKS
--------- ------------ ---------- ----------
ARCH CLOSING 116489 1063
ARCH CONNECTED 0 0
ARCH CLOSING 116491 200
ARCH CLOSING 116490 1642
MRP0 APPLYING_LOG 116492 4194304

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

4> DG GAP问题分析解决办法
1、 查询GAP
SQL> select PROCESS,STATUS,SEQUENCE#,BLOCKS from V$MANAGED_STANDBY;

PROCESS STATUS SEQUENCE# BLOCKS
--------- ------------ ---------- ----------
ARCH CLOSING 511899 1971
ARCH CLOSING 511892 308
ARCH CLOSING 511895 1399
ARCH CLOSING 511887 1404
ARCH CONNECTED 0 0
ARCH CLOSING 511900 1591
MRP0 WAIT_FOR_GAP 511901 0
RFS IDLE 0 0
2、 GAP原因分析
(1)、归档空间满,日志无法传输
(2)、网络延迟导致日志传输速度慢
(3)、DG监听没有启动导致日志无法传输
(4)、DG本身日志缺失
(5)、DG库宕机故障

3、 常规GAP解决办法
DG备库GAP恢复操作过程:
1) 在主库查找所缺日志的备份片
select 'catalog device type '|| '''SBT_TAPE''' ||' backuppiece ''/'||HANDLE||''';' from
(select distinct a.HANDLE from v$backup_piece_details a, v$backup_archivelog_details b
where set_count = id2 and b.thread#=1 and b.SEQUENCE# >缺失的sequence号 and b.SEQUENCE#<缺失的sequence号) ;

2)、在DG库上注册备份集
rman target /
configure CHANNEL device type 'SBT_TAPE' PARMS 'ENV=(NB_ORA_CLIENT=主机名)';
catalog device type 'SBT_TAPE' backuppiece '/al_XXXXXXXXXXXXXXXXX';
3)、注册完了 第一个配置的参数清除下
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' CLEAR;
使用oracle用户rman target /
RMAN>catalog start with '归档路径';
3)检查日志是否开始应用

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

如果主备文件系统剩余空间不一致,先清理目标目录的历史文件(如归档日志、dmp包等)
alter system set standby_file_management=manual;
alter database create datafile '/u01/oracle/product/db11gr2/dbs/UNNAMED00070' as '/oradb/datafile/oradb/oradb.dbf';
alter system set standby_file_management=auto;
打开应用:
alter database recover managed standby database parallel 4 disconnect from session;

5> DG库上归档出现ORA-03113错误
SQL> select dest_name,status,error from v$archive_dest;
DEST_NAME STATUS ERROR
------------------------------ --------------------------------------
LOG_ARCHIVE_DEST_1 VALID

LOG_ARCHIVE_DEST_2 ERROR ORA-03113: end-of-file on communication channel

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

2、 ORA-01031: insufficient privileges错误
SQL> select dest_name,status,error from v$archive_dest;
DEST_NAME STATUS ERROR
---------------------- -----------------------------------------------
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 ERROR ORA-01031: insufficient Privileges
解决办法:统一主备库的数据库密码文件,或者重建密码文件,sys密码设置成一样。
然后在主库执行
SQL> alter system set log_archive_dest_state_2= enable;

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

SQL> select dest_name,status,error from v$archive_dest;
DEST_NAME STATUS ERROR
------------------------------ -----------
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 ERROR ORA-16191: Primary log shipping client not logged on standby
解决办法:统一主备库的数据库密码文件,或者重建密码文件,sys密码设置成一样。
然后在主库执行
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文件,就能清晰明了地知道主备更新的情况。这也是排错的重要方法。

DG常用运维命令及常见问题解决的更多相关文章

  1. Liunx常用运维命令整理记录

    前言 作为后端开发者,掌握一些常用的运维命令也是很有必要的,本文记录常用Liunx运维命令 基本命令 目录切换 cd base-admin/ 切换到当前目录下的base-admin目录 cd .. 切 ...

  2. linux基本语法和常用运维命令

    linux上的操作一般是命令行操作,看起来很高大上,让人畏而远之. Help!Help! 忽然间闯入的linux黑黑的世界,怎么办,不要慌.赶紧敲出一个help命令,然后回车,黑色的窗口就会展示一些常 ...

  3. DB2常用运维命令

    DB2是IBM公司推出关系型数据库管理系统.主要应用于银行.医院等大型机构.现今DB2主要包含以下三个系列:DB2 for Linux, UNIX and Windows(LUW) . DB2在Lin ...

  4. linux系列之常用运维命令整理笔录

    目录 本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍 ...

  5. linux常用运维命令【转】

    自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! 1.查看有多少个IP访问: awk ...

  6. Oracle 常用运维命令整理

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 一.oracle建库与删库命令 (1)oracle11g ...

  7. (转)ceph 常用 运维命令--查看信息 - 不错的文档

    下面是测试验证环节 1. 创建一个 pool rbd create foo --size 4 --image-format 2 --image-feature layering 2. 挂载和格式化 r ...

  8. Etcd常用运维命令

    目录 常用命令 常见操作 如何缩容? 如何扩容? 数据目录丢失或被误删除,节点启动失败或者加入集群报错? 操作步骤 操作步骤不正确的各种常见错误日志 常用命令 #查看集群member情况 etcdct ...

  9. linux系统常用运维命令

    目录/文件处理命令 mkdir dirname         创建文件夹 mkdir -p /tmp/a/b         递归创建目录 rm -rf dirname         删除目录及内 ...

随机推荐

  1. Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中

    在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问.而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找 ...

  2. springboot数据库主从方案

    本篇分享数据库主从方案,案例采用springboot+mysql+mybatis演示:要想在代码中做主从选择,通常需要明白什么时候切换数据源,怎么切换数据源,下面以代码示例来做阐述: 搭建测试环境(1 ...

  3. SpannableString设置文本背景色

    参考内容: http://blog.csdn.net/harvic880925/article/details/38984705 http://blog.it985.com/14433.html 1. ...

  4. hbase shell命令及Java接口介绍

    一. shell命令 1. 进入hbase命令行  ./hbase shell 2. 显示hbase中的表  list3. 创建user表,包含info.data两个列族create 'user', ...

  5. 用button 属性来保存字符串地址

    我用到for循环创建button  通过点击不同的按钮拿到每个button对应的链接地址,因为button的个数也是通过后台数据返回.上代码: //保存到数组 _array = [Article mj ...

  6. CTC安装错误之:binding.cpp:6:29: fatal error: torch/extension.h: No such file or directory

    错误原因:该问题主要由于CTC的版本导致. 解决方法: 在终端打开warp-ctc文件夹: cd warp-ctc 然后:git checkout ac045b6072b9bc3454fb9f9f17 ...

  7. 第二次作业:使用Packet Tracer分析应用层协议(DNS、FTP、DHCP、SMTP、POP3)

    0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序. 2 实验内容 ...

  8. TestNG(五) 5-7 套件测试

    <?xml version="1.0" encoding="utf-8" ?> <suite name="test"> ...

  9. Java位运算符&、|、^、>>、<<、~、>>>

    如果要搞懂Java中的位运算符,首先要搞懂二进制的运算,之前一篇有介绍详细请看 二进制运算-十进制与二进制的转换 Java中的位运算符有:&(按位与).|(按位或).^(按位异或).>& ...

  10. Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取

    在文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码中我们提到了两个问题: 1,为什么在以前的代码流程中从来没有addMapper,而这里却有getMapper? 2,UserDao ...