Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

起因:业务已知在之前某个时间点范围内发生了可疑异常操作,希望通过日志挖掘来审查SQL动作

现状:生产库在线归档已备份后删除,RMAN归档备份已经刷出超期的备份集文件

需求:通过RMAN还原归档到线上以进行日志挖掘

定位归档日志涉及范围:

select * from v$archived_log l where to_date(‘2018-11-12 16:18:51‘,‘yyyy-mm-dd hh24:mi:ss‘) between L.FIRST_TIME and L.NEXT_TIME;

假设指定时段的归档日志已经被备份规则排除编录并删除,

如果备份也被排除编录、但进行了异机或者磁盘备份则首先需要加回编录:

CATALOG backuppiece ‘/u02/rmanbackup/181113_0215_L1_6201_arc_ECDBN_1pti31lf_1_1.rbf‘;

那么首先需要把归档从备份集还原到文件系统:

restore archivelog from logseq 31128 until logseq 31129 thread 1; --不加thread默认为1

再重新进行编录:

CATALOG ARCHIVELOG ‘+FRA/archivelog/arc_ecdbpr_2_31129_928378592.arc‘;

下面是ORACLE日志挖掘的函数操作部分,

Begin
  SYS.DBMS_LOGMNR.ADD_LOGFILE( ‘+FRA/archivelog/arc_ecdbpr_2_31128_928378592.arc‘,
  sys.dbms_logmnr.New);

  SYS.DBMS_LOGMNR.ADD_LOGFILE( ‘+FRA/archivelog/arc_ecdbpr_2_31129_928378592.arc‘,
  sys.dbms_logmnr.AddFile);
end;

Begin
  SYS.DBMS_LOGMNR.START_LOGMNR( Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG );
end;

Select * From V$LOGMNR_CONTENTS Order by 1

接下来就是怎么从挖掘出的SQL内容里怎么找出业务跟踪时段的操作单号等等了:

Select scn,timestamp,operation,seg_owner,table_name,sql_redo,SESSION#,SERIAL#,SESSION_INFO,CLIENT_ID,sql_undo
 From V$LOGMNR_CONTENTS lc where LC.SQL_REDO like ‘%DOC20181111550736%‘ Order by 1
;

原文地址:https://www.cnblogs.com/smartree/p/10331645.html

时间: 2024-11-10 13:21:51

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析的相关文章

oracle数据库中rman备份脚本非常实用

查询字符集 SQL> select * from nls_database_parameters; NLS_CHARACTERSETAL32UTF8 备份时字符集很重要,不然会出乱码 一.0级备份(全备)红色是要修改的,根据个人的存放位置. [[email protected] script]$ cat db_bak0.rman run{    configure retention policy to recovery window of 8 days;    configure contro

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性 作者:赵全文  网名:guestart 我们生产环境的Oracle数据库都做了RMAN备份,是采用了一周的RMAN备份保留策略:除了使用RMAN备份以外,我们还使用了爱数(Eisoo)备份软件来进行备份,可以说是做到了有备无患.可是,如果有一天,Oracle数据库由于主机层面硬件原因或是数据库层面的原因不能对外提供高可用服务的时候,假设数据丢了一大部分,我们只有用RMAN备份来进行恢复,再如果发现,RMAN备份失效了,那就往地缝里

Navicat工具进行Oracle数据库复制 or 备份、还原功能(由评教需要所谈)

GXPT是一个分布式系统,此系统暂时包含权限系统.基础系统.评教系统.考试系统,各个系统建有自己的oracle数据库.我们小组负责的是评教系统,而评教系统的正常需要借助于权限系统和基础系统,具体的业务这里就不多解释了.近期要进行评教活动了,基础系统在往基础库中录入真实数据,而评教系统还想进行一下功能及压力测试,当然就不同直接操作基础真实数据库的数据了,于是我们准备了一台装有oracle的备用服务器,作为测试使用. Oracle数据库不能像SqlServer那样直接进行备份还原.我首先建好了基础系

linux下仅仅有rman备份集的异机不同文件夹恢复

昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下来供大家參考 环境: 全部操作都是按主机名区分 源库: 主机名  bre1  实例名为bre1  数据文件文件夹在/u01/app/oradata下 目标库: 主机名 bre2   数据文件准备放在/bre1/oradata下 废话不多说,以下是实际操作步骤 1.在源库创建备份集,而且复制到目标库

linux下只有rman备份集的异机不同目录恢复

昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给测试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下重新测试了一下,记录下来供大家参考 环境: 所有操作都是按主机名区分 源库: 主机名  bre1  实例名为bre1  数据文件目录在/u01/app/oradata下 目标库: 主机名 bre2   数据文件准备放在/bre1/oradata下 废话不多说,下面是实际操作步骤 1.在源库创建备份集,并且拷贝到目标库 拷贝

搭建ORACLE DataGuard(使用RMAN备份)

搭建ORACLE DataGuard(使用RMAN备份) 操作系统:windows 2008 数据库:11.1.0.6 一.信息收集 1.配置信息收集 说明  主机名   IP地址      db_name   sid   DB_UNIQUE_NAME  Service_name 主库   dg1  192.168.0.11     orcl    orcl    orcldg1       orcldg1 备库   dg2  192.168.0.22     orcl    orcl    o

无RMAN备份集情况下的坏块恢复

测试的环境是没有可用的RMAN备份集,但是有数据文件的热备,下面来看测试: --创建测试用户和测试表 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 16 16:01:02 2014 Copyright (c) 1982, 2005, Oracle.  All rights reserved. Connected to: Oracle Database 10g Ente

Windows环境下Oracle数据库的自动备份脚本

批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据库的自动备份脚本 echo  1. 使用当前日期命名备份文件. echo  2. 自动删除7天前的备份. echo ================================================ ::以“YYYYMMDD”格式取出当前时间. set BACKUPDATE=%date

Oracle 11g 使用RMAN备份数据库

使用Oracle自带的备份恢复工具RMAN(Recovery Manager)具有以下几种优势: 支持增量备份 能自动管理备份文件 自动化备份与恢复 备份的文件有效性检查 配置快闪恢复区(flash recovery area) 快闪恢复区是存储备份和恢复数据文件以及相关信息的存储区.需要设置两个参数:db_recovery_file_dest_size(快闪恢复区的最大容量),db_recovery_file_dest(快闪恢复区所在的路径). 查看快闪恢复区信息: SQL> show par