作为一个达梦的初学者,写这篇文章的目的是为了把学到的新知识做个总结梳理,在整理中查缺补漏,也希望大家看了我的文章能有收获,如有错误的地方欢迎指出。

误删数据分为以下几种场景,针对不同场景做不同恢复操作。

误删前闪回处于开启

可以依靠回滚段进行闪回查询到被删除的数据。(truncate和drop除外)

开启闪回/设置保持时间:

SQL> alter system set 'ENABLE_FLASHBACK' = 1 both;SQL> alter system set 'UNDO_RETENTION' = 3600 both;--(单位S)

查询是否开启闪回:

SQL> select name,valuefrom v$parameterwhere name in ('ENABLE_FLASHBACK','UNDO_RETENTION');

开启且在保持时间内,执行查询语句:

SQL>select * from table_name when timestamp '20220426 19:00:00'; 

误删前有备份和开启归档

可以初始化一个新实例,将新实例恢复至删除前时间点。

  • 初始化一个和故障实例参数一致的新实例
./dminit path=新实例目录
  • 通过备份+归档还原

打开RMAN:

RMAN> RESTORE DATABASE '新实例DM.INI目录' FROM BACKUPSET '备份目录';RMAN> RECOVER DATABASE '新实例DM.INI目录' with archivedir '归档目录' UNTIL time '恢复时间点';RMAN> recover database '新实例DM.INI目录' update db_magic

若误操作数据很少,可以使用DBMS_LOGMNR对数据库归档日志进行挖掘,重构误操作,前提是开启了在日志中记录逻辑操作(1,2,3),查询语句如下。

SQL>select para_name, para_value
from v$dm_ini
where para_name in ('RLOG_APPEND_LOGIC');

参数说明:

  • 查询归档信息,拿到name
SQL>select sequence# seq, name , to_char(first_time,'yyyy-mm-dd hh24:mi:ss') first_time, to_char(next_time,'yyyy-mm-dd hh24:mi:ss') next_time,
first_change# , next_change#
from v$archived_log; 

若操作时间段的redo未归档,需要手动切换日志

SQL>alter system archive log current;
  • 向系统包中添加日志文件(一次性可以添加多个,可以在V$LOGMNR_LOGS中查询信息)
SQL>DBMS_LOGMNR.ADD_LOGFILE('&name');
  • 启动归档日志文件分析
SQL>DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128,
STARTTIME=>TO_DATE(‘2022-04-01 00:00:00’,‘YYYY-MM-DD HH24:MI:SS’),
ENDTIME=>TO_DATE(‘2022-04-01 12:00:00’,‘YYYY-MM-DD HH24:MI:SS’));--还可以指定START_SCN,END_SCN等参数 

OPTIONS入参说明:

  • 查看分析结果
SQL>SELECT OPERATION_CODE,OPERATION,SCN,SQL_REDO,TIMESTAMP ,SEG_OWNER, TABLE_NAME
FROM V$LOGMNR_CONTENTS
WHERE TABLE_NAME ='T_TEST3' and OPERATION='UPDATE';

  • 终止归档日志文件分析
SQL>DBMS_LOGMNR.END_LOGMNR();

无备份和开启归档,未开启闪回

正常手段无法恢复。

 

达梦社区地址:https://eco.dameng.com

达梦数据库-误删表数据的恢复相关推荐

  1. SQL达梦数据库复制表数据和表结构[当前模式下]

    达梦数据库复制表数据和表结构sql: 语法:create table 新表表名 as select * from 老表表名 示例: create table "SZFMIMP".& ...

  2. 达梦数据库备份与数据守护

    达梦数据库备份与数据守护 一.数据库备份 在达梦数据库中进行备份操作,可通过图形化管理工具和命令行两行方式实现. 1.1 图形化备份 1.确保数据库实例处于归档模式 通过达梦数据库管理工具连接实例服务 ...

  3. 达梦数据库DM8-多表连接查询

    达梦数据库DM8-多表连接查询 系列文章目录 本文环境 1.达梦数据库连接查询介绍 2.交叉连接(cross join)迪卡集 2.1 无过滤条件 2.1 有过滤条件 3.自然连接 4.join... ...

  4. Oracle Drop误删表、Delete误删表数据后恢复方法

    关于ORALCE误删表后恢复 1. 查看回收站的表: select object_name,original_name,type,createtime,droptime from recyclebin ...

  5. 达梦数据库删除用户_DM 达梦数据库 删除表空间 [-3412]:试图删除已经使用的表空间. 错误 处理方法...

    达梦数据库drop 表空间时报如下错误: [dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@127.0.0.1:6236 服务器[127.0.0.1:6236]:处 ...

  6. DM达梦数据库删除表时提示锁超时的解决方法

    DM 达梦数据库删除表时提示锁超时的问题 1. 问题描述 达梦数据库删除表时,删除失败,提示的报错信息是 锁超时 2. 解决方法 查询所删除表对应的SESS_ID,sql语句如下: select a. ...

  7. 达梦数据库导入oracle数据_达梦数据库和oracle数据的一些区别

    近期我在考达梦的dca发现有一些和oracle不同的地方,由于我是oracleDBA在维护达梦数据库的时候有需要注意的地方,现在分享一下2个数据库的一些区别. 1.登陆的区别 oracle:如果sys ...

  8. 达梦数据库异机还原、恢复数据库

    以下数据库都需要配置归档,没有归档文件不能进行备份还原. 1.192.168.254.177数据库下,创建表TXT,插入数据. CREATE TABLE TXT(ID INT,NAME VARCHAR ...

  9. 达梦数据库删除用户_达梦数据库的表空间及用户管理

    一.达梦数据库表空间的管理 1.达梦数据库表空间介绍 Select tablespace_name from dba_tablespace; 1)SYSTEM表空间--> 系统表空间有很多的数据 ...

最新文章

  1. 浅析php curl_multi_*系列函数进行批量http请求
  2. session一致性架构设计极简教程
  3. linux下的软件包安装(rpm   yum)
  4. 16、Event事件(定时任务)是什么?
  5. python可视化文本分析(1)—分析QQ班群聊天记录宏观
  6. oracle创建表空间 扩展表空间文件 修改表空间自动增长
  7. php保存设置,php如何实现编辑和保存文件?
  8. Android JNI开发生成.h头文件问题(转)
  9. jdk动态代理和cglib的区别
  10. 办公室小野与爆米花视频身亡女孩家属和解:补偿金额保密
  11. 改了个字符串 项目无法启动,springboot循环依赖问题分析
  12. web项目怎么打包上线_如何打包发布Web Application应用程序
  13. android表情选择器,android 新浪微博客户端的表情功能的实现
  14. 铨顺宏RFID:应用超高频RFID技术智能档案管理系统
  15. Vue 下载文件需要token设置
  16. 使用Excel背单词-高效-简单
  17. 饮茶而思其源,中国茶叶之起源
  18. Oracle 数据去重sql
  19. Linux命令之sed批量替换字符串
  20. rows是横着的还是cols_rows和cols到底哪个是列哪个是行

热门文章

  1. Windows文件资源管理器“快速访问”的隐藏、关闭及开启(win10)
  2. 【Excel VBA】设置宏语句的快速访问按钮即如何设置快速访问工具栏
  3. Paimei(白眉)安装
  4. Arduino与Proteus仿真实例-雷达扫描仿真
  5. matlab 绘制极坐标三叶玫瑰线,几何画板如何画三叶玫瑰线?
  6. web基础设施知识;web前端安全***,客户端安全基础
  7. linux下安装wine
  8. 膨胀与腐蚀的彻底击破
  9. java培训是指什么培训
  10. android 开发中将十六进制 颜色代码 转换为int类型数值