Redis-误操作尝试恢复】的更多相关文章

对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句(回滚的话就是反向的SQL语句).在格式为binlog格式为row的日志模式下,binlog中的内容记录了数据库中曾经执行的增删改信息,都是包含了反向信息的比如执行delete from table where p…
对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句(回滚的话就是反向的SQL语句).在格式为binlog格式为row的日志模式下,binlog中的内容记录了数据库中曾经执行的增删改信息,都是包含了反向信息的比如执行delete from table where p…
问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会有更大的灾难.直到你放弃. 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了.但是唯一遗憾的是,不支持2008及更高版本,这…
原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会有更大的灾难.直到你放弃. 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的…
解决方法:       对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了.但是唯一遗憾的是,不支持2008及更高版本,这时除了其他第三方工具,那么最常用的就是本文提到的方法——日志尾部备份.本文实验环境2008R2,对于2008及其以上版本可以使用这个方法,其实2005也可以,2000很少用,没试过,只是2008之前可以使用Log Exploer,所以就没必要用这种方法. 下面图文并茂讲解操作方法,…
原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会有更大的灾难.直到你放弃. 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的…
原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会有更大的灾难.直到你放弃. 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的…
如果不小心使用了flushall把全部数据清楚怎么办 127.0.0.1:6379> set site www.google.com OK 127.0.0.1:6379> set address beijing OK 127.0.0.1:6379> 127.0.0.1:6379> flushall #清楚所有数据 OK 127.0.0.1:6379> 127.0.0.1:6379> get address (nil) 127.0.0.1:6379> 此时立即shu…
需求 开发的代码还未commit到git本地仓库,就从git远程仓库上pull了代码,导致开发的代码直接被冲掉,需要退回到上一个版本代码. 操作 进入到项目git本地仓库文件夹下 打开cmd窗口,执行命令:git reflog 找到需要回退的版本,执行命令:git reset --hard HEAD@{n} 如执行:git reset --hard 61a942c…
一.flushall/flushdb误操作的处理 假设进行flush操作的Redis是一对主从结构的主节点,其中键值对的个数是100万,每秒写入量是1000. 1.缓存与存储 被误操作flush后,根据当前Redis是缓存还是存储使用策略有所不同: 缓存:对于业务数据的正确性可能造成损失还小一点,因为缓存中的数据可以从数据源重新进行构建,但是缓存雪崩和缓存穿透的相关知识,当前场景也有类似的地方,如果业务方并发量很大,可能会对后端数据源造成一定的负载压力,这个问题也是不容忽视. 存储:对业务方可能…
ORACLE数据库误操作执行了DELETE,该如何恢复数据? 原创 2016年08月11日 17:23:04 10517 作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后果. 今天一不小心,干了一件揪心的事情,将正在使用的组织机构误操作执行了delete,顿时大脑有点缺氧,感觉蒙圈了(相信对于没有数据备份和回滚经验的小伙伴来说都是这样的感受),但是一想,数据库一般都是支持数据回滚的,然后查找了一下解决方案. 由于用的是Oracle数据库,这一点非常好,因为Oracl…
Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的.怎么才能快速恢复数据,让损失达到最小呢? 假设进行flush操作的Redis是一对主从结构的主节点,其中键值对的个数是100万,每秒写入量是1000. 1.缓存与存储 被误操作flush后,根据当前Redis是缓存还是存储使用策略有所不同: □ 缓存: 对于业务数据的正确性可能造成损失还小一点,因为缓存中的数据可以从数据源重新进行构建,但是Redis存…
实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 概要: 1.误操作drop了emp表 2.误操作delete了emp表 3.误操作delete了emp表的部分记录 4.误操作truncate了emp表 5.误操作带有purge选项drop了表 本文以Oracle自带的scott用户进行演示: 首先逻辑备份导出scott的对象数据 $ exp scott/tiger file='/u01/app/backup/scott.dmp' log='/u01/ap…
SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-18', 'YYYY/MM/DD') select b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes/1024/1024 大小M, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.b…
update.delete没有带where条件,误操作,如何恢复呢? 我现在有一张学生表,我要把小于60更新成不及格. mysql> select * from student; +----+------+-------+-------+ | id | name | class | score | +----+------+-------+-------+ | 1 | a | 1 | 56 | | 2 | b | 1 | 61 | | 3 | c | 2 | 78 | | 4 | d | 2 |…
MySQL5.7下面,误操作导致的drop table db1.tb1; 的恢复方法: 0.停业务数据写入.[iptables封禁] 1.从备份服务器上拉取最新的一个全备文件,恢复到一个临时的服务器上,解压并启动mysqld. 2.在这台新的slave上执行如下命令: 2.1 先配置好复制关系, change master to 到当前误操作的服务器,但是不要启动复制进程.[类似如下命令] 1 2 3 4 5 6 >CHANGE MASTER TO  MASTER_HOST='172.16.20…
MySQL误操作删除后,怎么恢复数据?登陆查数据库mysql> select * from abc.stad;+----+-----------+| id | name |+----+-----------+| 1 | abc1 || 2 | abc2 |+----+-----------+ 0点全量备份[root@M ~]# mkdir /opt/backup[root@M ~]# mysqldump -uroot -p123456 -F -B --master-data=2 abc|gzip…
提示:建议每次对数据库进行修改时都做下备份 注意:以下Mysql开启的是row格式的binlog日志,确定到误操作具体时间可能有些麻烦,默认的格式就能很快找出来.这里开启row的原因是还有一种更快的方法实现误操作数据回滚(binlog2sql工具或用python脚本生成反向sql语句),以下介绍的为最常规方法. 1.发现生产主页打不开,并确定是数据库误操作更新了某个表格引起,大概误操作时间为2018-04-03 15:49——2018-04-03 15:55(每次数据库操作前都通过脚本进行了备份…
参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时Commmit记录也消失了. 此时解决方法是通过git reflog来查看先前记录并恢复: git reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会…
在生产数据库做CURD操作时,可能会有执行某条语句误操作的情况发生,针对这个种情况有两点建议: 1. 在SQL SERVER上开启事务确认功能,当执行完语句后确认无误,再提交事务.(开启方法见附件图片). 2. 新建存储过程,粘贴附件脚本.此存储过程执行后能够自动产生两个操作日志表,自动记录CRUD的所有操作.适用于提交事务后才发现错误的情况.只需要打开表UPDATE_LOG,粘贴RollbackupSQL里的语句执行即可恢复数据. 注意:1)如果表中有自增长的ID,所恢复数据的ID值是最大ID…
为保证没有其他参数配置影响,重新安装配置了一台最小化安装的CentOS7虚拟机 1. 基础知识
 安装mysql5.6数据库Mysql binlog初步理解 2. 配置mysql 开启binlog.修改binlog模式为Row Level模式
 [root@localhost ~]# vi /etc/my.cnf 
修改mysql配置文件,在[mysqld]下增加以下内容 # 注释: 开启binlog 文件名以mysql-bin开头 log-bin = mysql-bin # 注释: 备份恢复模…
今天操作Oracle数据库时,做一个Update数据时,不小心少写了个where,看这粗心大意的. 于是乎,把所有的员工工号都给更新成一个同一个工号了.这是一个悲催的故事. 因为工号是Check了好多次才存入数据库,工号是唯一性的啊~~ 不过,好在更新过后意识到这一点了.于是乎,先停止操作数据库.想想数据库Commit过后的数据可以回退不!在网上搜索了一下.发现Oracle有“闪回”的功能.具体“闪回”的概念,可以参见百度百科. 如果多次commit数据后,那可不可以闪回呢?貌似不可以.闪回只能…
场景:我往同一个集合里面插入 三条数据  aa:aa  bb:bb  cc:cc .后来我后悔了,不想插入 bb:bb,通过oplog重放过滤好 bb:bb这条数据. 原理: 1.通过 oplog.rs 找到后悔那条命令的操作时间(ts). 1521094621, 1 2.恢复全量备份的数据,然后恢复从全量备份最后时间戳即到:1521094621, 0 前面. 3.再恢复 1521094621, 1 后面的数据.即可成功绕过 bb:bb 执行这条命令.达到过滤的目录 笔者: 在实现源库和目标库为…
注意: 本文的恢复,并不是基于恢复某个时间点的全量备份后的增量恢复,而是指在现有数据库基础上基于binlog的恢复.适用于较小的数据误操作. 提取日志文件为sql语句: /usr-ext/local/mysql/bin/mysqlbinlog --database=db_name --base64-output=decode-rows -v mysql-bin.000418 > /home/mysqllog.txt 报错: Error writing file '/tmp/tmp.Tt5I62'…
小白操作Linux,手抖导致误修改了系统文件和目录权限,导致系统宕机的修复. -R / -R / test 有的是真不懂,执行了上面的第一条命令,有的是懂,但是操作太快或者粗心大意,或者有乱敲空格的恶习,诸如此类... 不胜枚举,总之闯祸了. Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 命令来拷贝和还原系统权限,若是其他系统目录被误操作,同样可行. 修复的方法如下:…
前几天同事不小心误操作,将SQLServer库的一张表的一个状态字段给刷成了一个统一状态,由于是update执行所以原来的相关状态无法确定.发生这种事情的时候我的小伙伴背后 一凉,估计心里里面想这怕是要删库跑路了. 由于是在开发试运行中的项目,还没来得及进行备份处理,所以从备份恢复宣告失败.就算有备份那么恢复的也是备份时间节点的数据,意味着使用平台做的数据需要从备份时间重新做过,而且有可能有遗漏. 小伙伴问我这咋办,首先没有备份,那么只有从数据库日志查找,然后看能不能通过日志找回之前的数据,再还…
作为DBA,细心.沉稳是首要的基本素质.不过总有那么一会心烦意乱或者开发同学出现误操作之类的...这里模拟一个误update操作,然后恢复. 如果开发同学有误操作之后最好先别乱动生产环境,需要记录几个信息给DBA同学来恢复数据. 1:binlog_format.autocommit.binlog位置.误操作的时间点 mysql> SHOW VARIABLES LIKE '%binlog_format%'; +---------------+-------+ | Variable_name | V…
IT系统最怕什么,我觉得就两点: 1.不可靠的软硬件. 2.误操作. 第一点就不用解释了,第二点是该文的内容,主要摘选自ITPUB的精华贴——[精华] 请列出你在从事DBA生涯中,最难以忘怀的一次误操作 中摘录各位网友的经验和教训,常看看以警惕自己. #2 一次一个session占用内存很大,这个session id比较大,所以以为是用户进程,kill, 则库立刻down了,查日志后,才知道是一个后台进程,但详细是哪个进程,现在忘记了. 好的是库起来了,这个故障,我一直牢记于心. 现在做任何操作…
上一篇>> 摘要 上一篇讲述了安装redis客户端和服务器端,也大体地介绍了一下redis.本篇着重讲解.NET4.0 和 .NET4.5中如何使用redis和C# redis操作哈希表.并且会将封装的一些代码贴一下.在讲解的过程中,我打算结合redis操作命令一起叙述,算是作为对比吧.这样也能让读者清楚了 解,所分装的代码对应的redis的哪一些操作命令. hash哈希表简介 这里仅仅是对哈希表作简单概念级介绍(摘自csdn),如果需要,自己去研究. 1.哈希表的概念 哈希表(Hash Ta…
摘要 上一篇讲述了安装redis客户端和服务器端,也大体地介绍了一下redis.本篇着重讲解.NET4.0 和 .NET4.5中如何使用redis和C# redis操作哈希表.并且会将封装的一些代码贴一下.在讲解的过程中,我打算结合redis操作命令一起叙述,算是作为对比吧.这样也能让读者清楚了 解,所分装的代码对应的redis的哪一些操作命令. hash哈希表简介 这里仅仅是对哈希表作简单概念级介绍(摘自csdn),如果需要,自己去研究. 1.哈希表的概念 哈希表(Hash Table)也叫散…