达梦误删数据,挖掘归档,查找误删数据的语句
客户误删数据,没有开启慢日志,只有备份文件和归档日志,挖掘归档,分析删除数据影响的范围大小
1、概述
可以使用 DBMS_LOGMNR 包对归档日志进行挖掘,重构出 DDL 和 DML 等操作,并通过获取的信息进行更深入的分析。相关限制说明如下:
1)目前 DBMS_LOGMNR 只支持对归档日志进行分析,配置归档后,还需要将 dm.ini 中的 RLOG_APPEND_LOGIC 选项置为 1、2、3 或 4:
1:如果有主键列,记录 UPDATE 和 DELETE 操作时只包含主键列信息,若没有主键列则包含所有列信息;
2:不论是否有主键列,记录 UPDATE 和 DELETE 操作时都包含所有列的信息;
3:记录 UPDATE 时包含更新列的信息以及 ROWID,记录 DELETE 时只有 ROWID;
4:只生成事务以及 DDL 相关的逻辑日志
2)DM MPP 环境下不支持 DBMS_LOGMNR 包;
3)DMDPC 使用 DBMS_LOGMNR 时, DBMS_LOGMNR.ADD_LOGFILE 只能添加同一个节点的多个日志同时进行分析,不支持同时分析不同节点的日志
1、启用归档
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST = /data/data5/DAMENG/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 20480';
ALTER DATABASE OPEN;
2、修改RLOG_APPEND_LOGIC参数
SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);
3、归档日志解析
1、创建测试表
CREATE TABLE A(id int,name VARCHAR(10));
INSERT INTO A VALUES(1,'A');
INSERT INTO A VALUES(2,'B');
INSERT INTO A VALUES(3,'C');
INSERT INTO A VALUES(4,'D');
INSERT INTO A VALUES(5,'E');
COMMIT;
2、查看已有归档日志信息
SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE# , NEXT_CHANGE# FROM V$ARCHIVED_LOG;
3、添加需要分析的归档日志
DBMS_LOGMNR.ADD_LOGFILE('/data/data5/DAMENG/arch/ARCHIVE_LOCAL1_0x74E67B64_EP0_2024-10-12_10-37-10.log')
DBMS_LOGMNR.ADD_LOGFILE('/data/data5/DAMENG/arch/ARCHIVE_LOCAL1_0x74E67B64_EP0_2024-10-12_10-42-35.log')
可通过V$LOGMNR_LOGS查看已添加的归档日志信息:
SELECT LOW_SCN, NEXT_SCN, LOW_TIME, HIGH_TIME, LOG_ID, FILENAME FROM V$LOGMNR_LOGS;
挖掘这个时间段的日志
DBMS_LOGMNR.START_LOGMNR(OPTIONS =>2128 , STARTTIME =>TO_DATE('2025-01-14 14:35:00','YYYY-MM-DD HH24:MI:SS') , ENDTIME=>TO_DATE('2025-01-14 14:40:00','YYYY-MM-DD HH24:MI:SS'));
查找记录
SELECT OPERATION_CODE , SCN, SQL_REDO , TIMESTAMP ,SEG_OWNER, TABLE_NAME FROM V$LOGMNR_CONTENTS ;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏