达梦数据库-误删表数据的恢复
作为一个达梦的初学者,写这篇文章的目的是为了把学到的新知识做个总结梳理,在整理中查缺补漏,也希望大家看了我的文章能有收获,如有错误的地方欢迎指出。
误删数据分为以下几种场景,针对不同场景做不同恢复操作。
误删前闪回处于开启
可以依靠回滚段进行闪回查询到被删除的数据。(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
达梦数据库-误删表数据的恢复相关推荐
- SQL达梦数据库复制表数据和表结构[当前模式下]
达梦数据库复制表数据和表结构sql: 语法:create table 新表表名 as select * from 老表表名 示例: create table "SZFMIMP".& ...
- 达梦数据库备份与数据守护
达梦数据库备份与数据守护 一.数据库备份 在达梦数据库中进行备份操作,可通过图形化管理工具和命令行两行方式实现. 1.1 图形化备份 1.确保数据库实例处于归档模式 通过达梦数据库管理工具连接实例服务 ...
- 达梦数据库DM8-多表连接查询
达梦数据库DM8-多表连接查询 系列文章目录 本文环境 1.达梦数据库连接查询介绍 2.交叉连接(cross join)迪卡集 2.1 无过滤条件 2.1 有过滤条件 3.自然连接 4.join... ...
- Oracle Drop误删表、Delete误删表数据后恢复方法
关于ORALCE误删表后恢复 1. 查看回收站的表: select object_name,original_name,type,createtime,droptime from recyclebin ...
- 达梦数据库删除用户_DM 达梦数据库 删除表空间 [-3412]:试图删除已经使用的表空间. 错误 处理方法...
达梦数据库drop 表空间时报如下错误: [dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@127.0.0.1:6236 服务器[127.0.0.1:6236]:处 ...
- DM达梦数据库删除表时提示锁超时的解决方法
DM 达梦数据库删除表时提示锁超时的问题 1. 问题描述 达梦数据库删除表时,删除失败,提示的报错信息是 锁超时 2. 解决方法 查询所删除表对应的SESS_ID,sql语句如下: select a. ...
- 达梦数据库导入oracle数据_达梦数据库和oracle数据的一些区别
近期我在考达梦的dca发现有一些和oracle不同的地方,由于我是oracleDBA在维护达梦数据库的时候有需要注意的地方,现在分享一下2个数据库的一些区别. 1.登陆的区别 oracle:如果sys ...
- 达梦数据库异机还原、恢复数据库
以下数据库都需要配置归档,没有归档文件不能进行备份还原. 1.192.168.254.177数据库下,创建表TXT,插入数据. CREATE TABLE TXT(ID INT,NAME VARCHAR ...
- 达梦数据库删除用户_达梦数据库的表空间及用户管理
一.达梦数据库表空间的管理 1.达梦数据库表空间介绍 Select tablespace_name from dba_tablespace; 1)SYSTEM表空间--> 系统表空间有很多的数据 ...
最新文章
- 浅析php curl_multi_*系列函数进行批量http请求
- session一致性架构设计极简教程
- linux下的软件包安装(rpm yum)
- 16、Event事件(定时任务)是什么?
- python可视化文本分析(1)—分析QQ班群聊天记录宏观
- oracle创建表空间 扩展表空间文件 修改表空间自动增长
- php保存设置,php如何实现编辑和保存文件?
- Android JNI开发生成.h头文件问题(转)
- jdk动态代理和cglib的区别
- 办公室小野与爆米花视频身亡女孩家属和解:补偿金额保密
- 改了个字符串 项目无法启动,springboot循环依赖问题分析
- web项目怎么打包上线_如何打包发布Web Application应用程序
- android表情选择器,android 新浪微博客户端的表情功能的实现
- 铨顺宏RFID:应用超高频RFID技术智能档案管理系统
- Vue 下载文件需要token设置
- 使用Excel背单词-高效-简单
- 饮茶而思其源,中国茶叶之起源
- Oracle 数据去重sql
- Linux命令之sed批量替换字符串
- rows是横着的还是cols_rows和cols到底哪个是列哪个是行