PLSQL使用SCN码恢复误删表数据】的更多相关文章

#查询数据库当前的SCN码select current_scn from v$database 1250494 #将当前的SCN码减小后,根据SCN码查询误删数据表的数据情况#直至找到被删的数据为止select * from gg_user as of scn 1210000; #使用flashback 语句根据SCN码恢复数据表的数据.flashback table gg_user to scn 1210000; #再次查询数据表的数据就是被删之前的数据select * from gg_use…
数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数据.关键是我在第一步就碰到了问题,进行不下去,网上第一步的描述如下: a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20…
概要: 计算HIVE BI库下每天数据表总大小及增量 输出: 总大小:xxxG 日同比新增数据量:xxxG 周同比新增数据量:xxxG 月同比新增数据量:xxxG 总表数:xxx 日新增表数:xxx 周新增表数:xxx 月新增表数:xxx 最大的20张表: ...... 表数据增量TOP20: ...... 代码: bi_report.sh #!/bin/bash GIGA=1000000000 content="\n" prefix='bi' today=`date -d"…
关键误操作:mysql误删除 1.备份+binlog恢复数据 [1.1]场景:不小心误删除某张表 [1.2]解决方法:在另外一台机器,恢复全库+日志,然后导出删除的表,再插入会生产库. [1.3]案例演示: 案例描述:test1数据库,test1表 1点全备,3点更新,4点删表.如何恢复? 模拟案例步骤如下: (1)查看全备时的数据    (2)1点:进行全备 #切换到linux环境(mysqldump参考) #备份所有数据库:mysqldump -F -R -uroot -p -A >/tmp…
参考文档:https://www.percona.com/doc/percona-xtrabackup/2.4/xtrabackup_bin/restoring_individual_tables.html 需要满足的条件: innodb_file_per_table开启 innodb存储引擎 表有对应的.ibd文件 满足以上条件就可以通过物理备份集生成以表为单位的export文件 测试 物理全备 /usr/local/bin/xtrabackup --defaults-.cnf --user=…
转载地址:https://www.cnblogs.com/mrzl/p/4043313.html…
  Preface       Today I'm gonna test how to rescue a dropped table from binlog server based on a full Xtrabackup backup set.   Framework   Hostname IP/Port Identity OS Version MySQL Version GTID Mode Binlog Format zlm1 192.168.56.100/3306 master Cent…
解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据. 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当时吓出一身冷汗.原因是由于Spring JPA的配置中,有一个spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop,其用途是每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除.,这个可不…
HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作.这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要. 本文针对误删HDFS文件的问题,通过利用HDFS的内部机制,提供了以下几种方法: 1. 回收站机制恢复 HDFS提供了回收站功能,当我们执行hdfs dfs -rm -r some_file命令后,文件不会被立即删除.而是先将要删除的数据移动到当前用户的.Trash目录下,待超过一定时间(可通过…
闪回表,实际上就是将表中的数据快速恢复到过去的一个时间点或者系统改变号SCN上.实现表的闪回,需要用到撤销表空间相关的UNDO信息,通过SHOW PARAMETER UNDO命令就可以了解这些信息.用户对表的数据的修改操作,都记录在撤销表空间中,这为表的闪回提供的数据恢复的基础. 修改记录被提交到undo表空间中的默认保留时间为900秒,用户可以在这900秒的时间内对表的进行闪回操作,从而将表中的数据恢复的修改前的状态. 如上图显示的默认900秒,我们通过sql来修改这个默认时间为1200: f…
由于头两天面试时被问了这样一个问题,如果某同事误删了某个表,你该怎么恢复? 当时想了一下,因为博主没有遇到过这个问题,但是也多少了解一些,所以就回答通过mysql的binlog日志进行恢复. 面试官当时问了一下具体的流程.就有些懵逼了.所以就总结了一下,前提一定要做好备份! 数据库误删某表恢复方法,这个前提是针对每天有备份的数据库和开启binlog日志的 ,如果没有备份和binlog日志 恢复起来会非常非常麻烦,所以奉劝大家还是要备份!备份!备份! /*查看数据库是否开启binlog日志*/my…
1.某表的数据误删了,那么可以查询这个表某一时间节点之前的数据,并放到一个新建的表里. create table temptable as select * from t_billdefi  as OF TIMESTAMP TO_TIMESTAMP('2018-12-20 14:00:00',  'yyyy-mm-dd hh24:mi:ss'); 2.某表被删除了(备份还原工作一般会删除表的,恢复后,新表覆盖了老表(老表被删除了)) 下面命令可以查询 被删除的表名 select * from r…
1.登录阿里云RDS后台,找到“备份”入口,如下图: 2.下载最近的备份数据,如下图: 3.解压,找到误删数据的表,如下图:(这里拿sys_role举例) 4.在本机(Windows系统), a. 装MySQL(注意,最好保持数据库版本一致) b. 创建数据库,数据库名与待恢复的数据库名一致 c. 将下载的备份数据中对应的表(第三步中框选的文件) 拷贝到 本地数据库目录中,如下图: PS:若本地库中已存在相同的表名,删除前需要停掉MySQL服务,否则删不掉,停服务,如下图:(右键停.启) 5.覆…
--开启行移动功能 ALTER TABLE tablename ENABLE row movement ; --恢复表数据,时间为删除或修改的时间点 flashback table tablename to timestamp to_timestamp('2016-05-07/17:01:50','yyyy-mm-dd hh24:mi:ss'); --备注:恢复后请关闭行移动功能 ALTER TABLE tablename DISABLE row movement ;   1.查询表数据如下:…
linux下开启mysql的binlog日志功能 1.配置mysql配置文件my.cnf(内容如下). #配置文件储存的位置log-bin=mysql-bin#5.7以及以上版本需要配置这一行(保证唯一性,可随意输入)server-id=123#binlog的格式 :statement(保存语句).row(保存执行后的结果).mixed(同时保存语句和结果)binlog-format=ROW#表示每执行一次就同步sync-binlog=1 2.重启mysql服务后.查看日志功能是否正常开启 my…
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L                         Oracle Version:10gR2 1. undo_retention參数的查询与改动 使用show parameter undo命令查看当前的数据库參数undo_retention设置. 显演示样例如以下: SQL> show parameter undo NAME                                 TYPE       …
     现在进入oracle12c时代:普遍用的oracle版本为10g以上.在oracle10g之后提供了一个回收的机制.所以恢复drop表的数据以及表很容易.当然需要打开回收机制以及是归档模式.若表被drop table tablename purge;这个是闪回技术恢复不了的.现如今中国技术达人(laoxiong)提供了odu工具,让这成为现实.大家可以关注他的博客.在此感谢(laoxiong)的贡献.        就在这几天,技术老大认为数据库有几张表没用(其实另外一个平台页面有用)…
背景:          同事误删除线上数据.所以须要从备份中找回数据恢复. 真实屋漏偏逢连夜雨.船迟又遇打头风.前两天备份的磁盘坏块,如今仅仅有rman全备的.bak文件,没有控制文件和參数文件,所以如今须要考虑的是怎样依据bak文件在备份数据库上恢复数据,从中找出被误删的数据. 1 通过catalog start with''的方式来恢复 1.1手动创建控制文件 CREATE CONTROLFILE REUSE set DATABASE"powerdes" RESETLOGS AR…
Flashback query(闪回查询)原理 Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. Flashback query(闪回查询)前提 SQL> show parameter undo; 其中undo_management = auto,设置自动undo管理(AUM),该参数默认设置为:auto: Undo_retention = n(秒),设置决定undo最多的保存时间,其值越大,就需要越多的undo表空…
ORACLE表数据误删除的恢复方法(提交事务也可以) 缓存加时间戳 开启行移动功能:ALTER TABLE tablename ENABLE row movement 把表还原到指定时间点:flashback table tablename to timestamp to_timestamp(''2011-02-28 10:40:00'',''yyyy-mm-dd hh24:mi:ss''); 关闭行移动功能: alter table tablename  disable row movemen…
在Oracle中:删除表或者误删表记录:有个闪回特性,不需要停机操作,可以完美找回记录.当然也有一些其他的恢复工具:例如odu工具,gdul工具.都可以找回数据.而PostgreSQL目前没有闪回特性.如何在不停机情况下恢复误删数据.还好是有完整的热备份. 本文描述的方法是:利用热备份在另一台服务器进行数据恢复:再导入正式环境:这样不影响数据库操作.这方法也适用在Oracle恢复.必须满足几个条件 有完整的基础数据文件备份和归档文件备份.所以备份是很重要的. 有一台装好同款Postgres软件的…
本文将介绍使用物理备份恢复Innodb单表数据的方法 前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行恢复呢? 下文将进行详细分析. 恢复过程中需要用到的工具,percona data recover tool PS:以下所有方案仅支持 innodb-file-per-table = 1 的情况 注意: 以下操作非文档推荐,切勿在没有测试的情况下…
己亥清爽系列说明:清爽系列是作为恢复系列的基础篇,基于FS(File System)文件系统的手工还原恢复,也叫基于用户管理的还原恢复,来自于博客园AskScuti. 实验说明:你不小心Drop掉了一张表数据,且没能及时反应过来,后面才恍然大悟,想利用闪回Drop技术进行闪回操作,可发现表空间被挤占,导致回收站里改表已被清空,又或者表是以Purge方式Drop掉的.如何进行手工不完全还原恢复操作.注:在数据文件.控制文件.在线日志和归档日志都完整的情况下. 基于版本:Oracle 11gR2 1…
此时测试表中有7条数据,做个全备. 全备: mongodump --host=192.168.43.43 --port=37017 --oplog --out=/opt/mongo/fullbackup 在插入一条: 此时做增备,找出oplog中最近新增数据的ts时间:并记录下这个时间:1574845947, 3,这个时间需要在做增备以及恢复的时候用到. db.oplog.rs.find({op:{$ne:"n"}}).sort({$natural:-1}).limit(2);   做…
数据误删 表结构没有发生改变 --开启表字段转移,不开启无法还原 alter table 表名 enable row movement; --数据闪回 flashback table 表名 to timestamp to_timestamp('2021-07-21 12:00:00','yyyy-mm-dd hh24:mi:ss'); 表结构误删 --查询这个"回收站"或者查询user_table视图来查找已被删除的表 select table_name,dropped from us…
flashback query可以查询过去某个时间点对象的状态,从而可以利用此来进行恢复数据 1 准备测试数据 用普通用户创建一个表,表中插入部分数据: SQL> show user USER is "KEL" SQL> create table flqy(id int,old int); Table created. SQL> insert into flqy values (1,20); 1 row created. SQL> insert into flq…
场景:项目开发完之后要部署在不同的环境进行测试,这时候就需要将数据库中的表结构,序号,数据进行迁移,这时候就需要能够熟练的使用plsql. 问题: 导出的表结构,在另一个数据库中无法导入 部分表的数据过大,导致长时间无响应,其实数据仍然在迁移,这个时候就需要找出关键的数据表,对于不需要的数据直接丢弃即可 1 导出表和序列结构 1.1 实践方法 导出表结构: Tools(工具)-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->…
一.双击 plsql 工具,输入登陆用户.登陆密码以及登陆数据库名称,如下图: 二.菜单 Tools --> Export Tables...,如下图: 三.进入导出界面后,可以选择单个表,进行单个表数据导出,也可以选择多个数据表,进行多个表数据导出,然后选择导出的路径,输入要导出的文件名,点击按钮 “Export”,如下图:…
Oracle 备份.恢复单表或多表数据步骤,适用于 Oracle 8.9.10.        *备份单表或多表数据: exp user/password@server file=filefullpathname log=logfullpathname tables=(tablespacename.table1,tablespacename.table2,...) 例如,作者要导出用户名为 sybj,密码为 sybj,sid 为 lyzz,表空间 sybj 下表 table1.table2 中的…
最近内部的 mysql 数据库发生了一件奇怪的事,其中有一个表 users625 突然出现问题, 所有对它的操作都报错误 数据表不存在. mysql> select count(*) from users625; ERROR 1146 (42S02): Table 'km8.users625' doesn't exist show tables 它还显示在列表里,在 mysql 数据目录中也可以找到对应的表文件,也没有 进行过删除操作,突然出现这样的错误非常奇怪. 内部运行环境: 名称 值 OS…