DG备库缺失归档文件GAP日志
问题现象:
XXXsdgebus-dg GAP手工注册归档
#出现GAP
idle>select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 140513 140513
一、备库查询:
#查询DG架构中存在的UNIQUE_NAME
log_archive_config DG_CONFIG=(tdcxrac,sdgebus)
#查询DB_UINQIE_NAME
db_name string ebus
db_unique_name string sdgebus
#备库查询到的信息可以得到:
#主库db_name= ebus db_unique_name=tdcxrac
fal_client string sdgebus
fal_server string TDCXRAC1, TDCXRAC2
#idle>!tnsping TDCXRAC1
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =XXX)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = tdcxrac)))
OK (80 msec)
#本机IP地址
idle>!/sbin/ifconfig
inet addr:XXX
#备库查询:是一个单实例
idle>select inst_id,instance_number,instance_name from gv$instance;
INST_ID INSTANCE_NUMBER INSTANCE_NAME
---------- --------------- --------------------------------
1 1 ebus
二、主库查询
#主库 RAC环境
SQL> select inst_id,instance_number,instance_name from gv$instance;
INST_ID INSTANCE_NUMBER INSTANCE_NAME
---------- --------------- ----------------
1 1 tdcxrac1
2 2 tdcxrac2
#参数fal
fal_client string tdcxrac
fal_server string sdgebus
#tnsping
SQL> !tnsping sdgebus
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = sdgebus) (FAILOVER_MODE= (TYPE=session)(METHOD=BASIC)(RETRIES=180)(DELAY=5))))
OK (90 msec)
#查询主库max_sequence
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
140914
#备库GAP
idle>select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 140513 140513
三、主库日志传输至备库
#备库缺失日志
idle>select THREAD#,sequence#,name,registrar,applied from gv$archived_log where thread#=1 and sequence#=140513;
no rows selected
#归档日志名称参数查询
log_archive_format %t_%s_%r.log
#查询备库缺失的归档名称
SQL> select inst_id,thread#,sequence#,name from gv$archived_log where sequence#=140513;
INST_ID THREAD# SEQUENCE# NAME
---------- ---------- -------------------- ---------- ----------
1 1 140513
+DATA/tdcxrac/archivelog/2018_05_19/thread_1_seq_140513.25007.976502281
2 1 140513
+DATA/tdcxrac/archivelog/2018_05_19/thread_1_seq_140513.25007.976502281
#使用COPY备份归档文件至指定路径 Failed
RMAN> backup as copy archivelog sequence 140513 thread 1 format '/tmp/thread_1_seq_140513.25007.log';
skipping archive log file +DATA/tdcxrac/archivelog/2018_05_19/thread_1_seq_140513.25007.976502281; already backed up 1 time(s)
Finished backup at 29-MAY-18
---提示该归档已有备份--直接skip 跳过去了,没有备份
#使用COPY备份归档文件
#查询当前的归档日志保留策略
RMAN> show archivelog deletion policy;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ENMO are:
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
#查询RMAN 参数配置
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
#修改RMAN 保留策略:
#冗余度6,代表备份相同的文件,可以备份6次
RMAN> configure retention policy to redundancy 6;
#copy 备份
RMAN> backup as copy archivelog sequence 140513 thread 1 format '/tmp/thread_1_seq_140513.25007.log';
#RMAN参数保留策略还原
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
#可选方案:备份归档
backup as compressed backupset archivelog sequence between ${SEQ1} and ${SEQ2} thread ${THD} format '/picclife/backup/rman_gap/arch_%
u_%d_%t' not backed up 22 times;
#本次使用的是,修改备份冗余测试,使用操作系统拷贝方式备份归档,归档文件未压缩,scp传输备库,需要的时间很长
#可以使用以上命令,临时修改备份参数-- 且是备份片方式,压缩了归档文件,传输速度,操作简单
#使用备份片传输后,备库注册,restore还原归档文件
RMAN> catalog start with '/picclife/backup/rman_gap';
RMAN> restore archivelog from sequence 140858 until sequence 140864 thread 1;
#传输至备库
idle>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /picclife/app/oracle/arch
idle>!/sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:BD:2B:FF
inet addr:XXXX
tdcxrac2:/tmp$ scp thread_1_seq_140513.25007.log oracle@XXX:/picclife/app/oracle/arch
#备库注册:
idle>alter database register logfile '/picclife/app/oracle/arch/thread_1_seq_140513.25007.log';
四、备库检查缺失归档
#缺失归档的数量
#正常的归档数量
select (a.max - b.min +1) as "num_seq"
from (select max(sequence#) max from v$archived_log)a,
(select LOW_SEQUENCE# min from v$archive_gap )b;
num_seq
----------
405
#查询备库正常接收的归档数量
#查询count(*) 备库存在的归档日志数量
idle>select count(*) from v$archived_log where sequence#>=(select LOW_SEQUENCE# min from v$archive_gap);
COUNT(*)
----------
381
#缺失--25个归档日志 --对比
#缺失归档文件的序列号sequence#
#通过WPS表格报表显示:明显备库不存在的SEQUENCE#
|
#查询主库-sequence# SQL> select sequence# from v$archived_log where sequence#>=140513 group by sequence# order by 1; |
#查询备库-sequence# idle>select sequence# from v$archived_log where sequence#>=(select LOW_SEQUENCE# min from v$archive_gap) order by 1; |
#选择两列 =》 开始菜单=》条件格式=>突出显示单元格规则=》重复值突出!!!
|
SEQUENCE# |
SEQUENCE# |
|
|
---------- |
---------- |
|
|
140513 |
140514 |
|
|
140514 |
140515 |
|
|
140515 |
140516 |
###还可以使用外部表,可以两个表进行集合运算找出备库缺失的sequence#,本次直接使用offlice表格工具,对比统计sequence#
DG备库缺失归档文件GAP日志的更多相关文章
- DG备库无法接受主库归档日志之密码文件
DG备库无法接受主库归档日志之密码文件 实验目的:还原某个客户案例,客户审计需要,对主库sys用户进行锁定,一小时后对sys用户进行解锁后,发现备库无法接受主库的归档日志 本篇文章,测试sys用户与D ...
- DG备库磁盘空间满导致无法创建归档
上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...
- DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证
本篇文档学习,DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证 1.取消MRP进程 备库查询进程状态select process,client_process,sequen ...
- Oracle-DG最大保护模式下,dg备库出现问题对主库有什么影响?
一.需求 疑问?Oracle最大保护模式下,dg备库出现问题,影响主库吗? 我们都知道Oracle最大保护模式的意思是oracle不允许数据丢失,1条记录都不行! 那么备库有问题? oracle主库还 ...
- 模拟主库创建数据文件,dg备库空间不足时问题处理
本篇文档测试目的: 模拟实际环境中,主库对表空间添加数据文件,备库空间不足,最终导致MRP进程自动断开,处理方式. 1.问题环境模拟 1)正常情况下的dg 主库创建数据文件,备库接受日志,自动创建表空 ...
- 使用DUPLICATE 方式创建ORACLE 11G DG备库环境
我的最佳实践 ① 手动创建好初始化参数文件: *.audit_file_dest='E:\APP\XJXU\ADMIN\ORASTAND\ADUMP'*.control_files='E:\APP\X ...
- 使用using current logfile实现DG备库实时更新
DG1是主库,DG2是备库:运行在最大可用模式. 实验一:未使用using current logfile参数时,备库在最大可用模式下,不能实时同步备库的更新 -此时需要等待主库进行归档---侧面证明 ...
- Oracle DG备库强制switch_over过程
故障描述: 主库异常下线,需要将备库强制启动为主库,切断日志时提示需要介质恢复,执行介质恢复后,再激活日志即可进行切换 1. 执行alter database recover managed sta ...
- oracle dg 备库不同步主库数据
今天遇到一个数据库同步问题,主库被关闭,重启主库后,备库不能正常同步主库数据.只有当手动切换归档日志的时候,备库才能和主库一致. 这个问题的解决方法: 重启备库,重新应用归档日志. 操作步骤如下: / ...
随机推荐
- Spring Cloud系列之客户端请求带“Authorization”请求头,经过zuul转发后丢失了
先摆解决方案: 方法一: 方法二: zuul.routes.<routeName>.sensitive-headers= zuul.routes.<routeName>.cus ...
- 利用NPOI解析Excel的通用类
using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using NPOI. ...
- Redis在CentOS7中的启动警告
CentOS7安装Redis,启动时会出现如下图3个警告. 问题1:WARNING: The TCP backlog setting of 511 cannot be enforced because ...
- python-列表,元组,range
# 列表# lst = ["光头强", 1, True, {}, (1, ), {123}, ["周杰伦",[], "周杰", " ...
- WPF技术实现控件截图
1.http://www.cnblogs.com/TianFang/archive/2012/10/07/2714140.html 2.http://www.silverlightchina.net/ ...
- flask项目结构(二)创建flask,同步docker
简介: 建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新………… 所以我从构建,就考虑部署的问题,使用docker部署. 程序都打包进docker,本博客有相关文章. pycharn直接 ...
- 每天CSS学习之!important
通过在CSS属性后面跟上!important参数,就会让该属性的优先级变为最高,不管是在css文件,还是内联style中,就属后面跟了!important这个小弟的属性的优先级最高. 让我们来测试一下 ...
- 读书笔记 C#事件event浅析(一)
在C#中,所谓event事件,就是一种特殊的委托.如果要声明事件,首先就要声明一个相对应的委托类型.按照流程来说,事件相当于委托类型往上升了一级似的,我是这样认为的. //1.先声明委托类型 publ ...
- C/C++知识补充 (1)
● C++的圆括号运算符() 下列关于圆括号运算符的功能说法不正确的是(C) . A. 可用于强制类型转换 B 可用于类型构造 C 可用于类型声明 D 可用于函数调用 对大部分可重载的运算符来说,它既 ...
- C++基础知识:构造与析构
1.构造函数的定义: C++中的类可以定义与类名相同的特殊成员函数这种与类名相同的成员函数叫做构造函数构造函数在定义时可以有参数,但是没有任何返回类型的声明 2.构造函数的调用: 一般情况下C++编译 ...