HBase从入门到精通系列:误删数据如何抢救?
云栖君导读:有时候我们操作数据库的时候不小心误删数据,这时候如何找回?mysql里有binlog可以帮助我们恢复数据,但是没有开binlog也没有备份就尴尬了。如果是HBase,你没有做备份误删了又如何恢复呢?
数据保护
当误删数据发生时候,不管三七二十一,第一要务是进入hbase shell,执行如下命令:
如果误删一张表的有多个family里的数据,需要都执行一下:
alter 'tt', { NAME=> 'f1', KEEP_DELETED_CELLS=> TRUE }, { NAME=> 'f2', KEEP_DELETED_CELLS=> TRUE }
设置 KEEP_DELETED_CELLS 为 True 的目的在于防止数据被物理删除。这里有必要解释一下HBase清理数据的原理:
KEEP_DELETED_CELLS 的作用就是在major compaction发生的时候,决定要不要清理旧数据。这里需要注意一点,即便 KEEP_DELETED_CELLS 设置为True,数据仍然会因为过期而被清理(HBsae表中的TTL属性)。这个设定无可厚非,既然过期了,误删不误删也无所谓了。
数据恢复
数据恢复的前提数据没有被物理删除,也就是上文提及的。你只需要在查询(Scan)的时候,指定raw模式来搜索数据,就能看到被删除的数据,之后你要做就是把数据再写入一次。我们来看一个简单的例子,还是以hbase shell为例子:
1.首先我们准备几行数据
2.然后我们删掉y开头掉数据
3.查一下,现在只有3行了
4.现在我们带上raw再次查找数据,不仅能看到被删除数据,还能看到删除标记。
这里我设置了TIMERANGE, 指定的是数据写入的时间。大学排名对于我这个case其实并没有什么用,我只是想说明几点:
数据恢复完,建议关闭KEEP_DELETED_CELLS,节省空间,提高查询效率。
其他
上文使用的是hbase shell演示,你可以使用任何语言的API完成上面的操作。
如果你使用的是云HBase,即便因为major compaction物理删除了数据,只要你开启了备份功能,依然可以恢复。
end
如果,Google 早已解决不了你的问题。
如果,你还想知道 Apple、Facebook、IBM、阿里等国内外名企的核心架构设计。
来,我们在深圳准备了知识星球,想助你成长:
文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/80837541
HBase从入门到精通系列:误删数据如何抢救?的更多相关文章
- ArcGIS10从入门到精通系列实验图文教程(附配套实验数据持续更新)
@ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 本教程<ArcGIS从入门到精通系列实验教程>内容包括:ArcGIS平台简介.ArcGIS应用基础.空间数据的采集 ...
- NHibernate从入门到精通系列
http://www.cnblogs.com/GoodHelper/archive/2011/02/17/1948744.html NHibernate从入门到精通系列(4)——持久对象的生命周期(上 ...
- Provisioning Services 7.6 入门到精通系列之一:PVS前期规划
1. Provisioning Services 产品概述 Provisioning Services (简称PVS)采用了一种与传统映像解决方案截然不同的方法,从根本上改变了硬件与依托硬件而运行的 ...
- Jenkins pipeline 入门到精通系列文章
Jenkins2 入门到精通系列文章. Jenkins2 下载与启动jenkins2 插件安装jenkins2 hellopipelinejenkins2 pipeline介绍jenkins2 jav ...
- 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)
办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...
- WPF MVVM从入门到精通8:数据验证
原文:WPF MVVM从入门到精通8:数据验证 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF M ...
- Selenium 入门到精通系列:六
Selenium 入门到精通系列 PS:Checkbox方法 例子 HTML: <html> <head> <title>测试页面</title> &l ...
- Selenium 入门到精通系列:五
Selenium 入门到精通系列 PS:显式等待.隐式等待.强制等待方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...
- Selenium 入门到精通系列:四
Selenium 入门到精通系列 PS:鼠标右键.鼠标悬停.键盘操作方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...
随机推荐
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:禁用状态
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Python实现的远程登录windows系统功能示例
https://www.jb51.net/article/142326.htm 重点是这几本书要好好读读!: 更多关于Python相关内容感兴趣的读者可查看本站专题:<Python进程与线程操作 ...
- Fiddler里面AutoResponder和mock用法
AutoResponder 1.找到对应图片请求的链接 2.操作步骤如下图: mock 使用场景:上一步骤模块没有完成,但是下一步模块完成了,需要使用到快速模拟,主要使用的地方就是测试接口
- Linux动静态库
gcc编译过程 预处理,gcc -E,.c->.i 展开宏和头文件,替换条件编译,删除注释.空白和空行 编译, gcc -S,.i -> .s 检查语法规范 [消耗时间和系统资源最多] 汇 ...
- 004.Oracle数据库 , 查询多字段连接合并
/*Oracle数据库查询日期在两者之间*/ SELECT PKID , OCCUR_DATE, PKID || TO_CHAR( OCCUR_DATE, ' yyyy/mm/dd hh24:mi:s ...
- spring core:@AliasFor的派生性
spring对Annotation的派生性应用可谓炉火纯青,在spring core:@Component的派生性讲过支持层次上派生性,而属性上派生的需求则借助了@AliasFor,它是从spring ...
- 响应式布局rem的使用
在如今移动端,响应式布局的时代,用rem作为单位已经是非常普及的一门小技巧了..rem的单位根据html的font-size来进行换算! 1.rem的兼容性: 如下图所示IE9以上就支持了rem这个属 ...
- 08 SSM整合案例(企业权限管理系统):06.产品操作
04.AdminLTE的基本介绍 05.SSM整合案例的基本介绍 06.产品操作 07.订单操作 08.用户操作 09.权限控制 10.权限关联与控制 11.AOP日志 06.产品操作 SSM 环境搭 ...
- Window Server 2019 配置篇(1)- 创建域并把本机设置成域控制器
由于这个学期的Window Server大作业是做一个服务器群,在域中创建包括DNS,DHCP,网关,更新服务器,hyper-v,自动部署等服务,所以我会把制作过程分步写在这个博客上 首先我们新建一个 ...
- Golang的环境安装
Golang的环境安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Go语言环境安装 1>.下载Golang的安装包 博主推荐阅读: https://studygola ...