防删库实用指南 | 只需一步,快速召回被误删的表

数据库的一些非常不错的企业级功能都是“养兵千日,用兵一时”,比如Oracle 10g中的回收站(Recycle Bin)功能,可以在特殊情况下发挥特种兵的功能,比如当你删除一个表空间、一个用户(Schema)时,可能会删除很多的表,包括你不想删除的一些表。

这种例子还是很多的,早些年很多的DBA使用图形工具来访问数据库,所连接的用户权限又比较高,当查询大量数据引起图形工具短暂失去响应时,很容易多打几下键盘或者多点几下鼠标,等到图形工具响应过来,发现些表或某些用户已经不见了。

前面讲的是无心之过,还可以看到一些有心的恶意操作,比如因员工和公司的关系不够友善引起的破坏性操作。这时就可以检查一下Oracle数据库回收站中是否还有被删除的表。

AliSQL是阿里云RDS MySQL团队精心打造的一个分支,在性能、功能、稳定性上都有极大的提升和突破。在2019年12月份发布的版本中也带了Recycle Bin功能,只需要设置一个参数就可以开启:

mysql> set global recycle_bin=on;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'recycle_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recycle_bin   | ON    |
+---------------+-------+
1 row in set (0.00 sec)

接下来让我们来创建一个表,插入一些数据,进行功能测试和验证。如下所示:

mysql> use test;
Database changed
mysql> create table t_recycle_bin_demo (col1 int not null);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t_recycle_bin_demo values (1),(2);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> select * from t_recycle_bin_demo;
+------+
| col1 |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

假设这是一张很重要的表,并且被意外Drop掉了,让我们来看一下如何找回这张表的数据。如下所示:
*请左右滑动阅览

mysql> drop table t_recycle_bin_demo;
Query OK, 0 rows affected (0.01 sec)
mysql> call dbms_recycle.show_tables();
+-----------------+---------------+---------------+--------------------+---------------------+---------------------+
| SCHEMA          | TABLE         | ORIGIN_SCHEMA | ORIGIN_TABLE       | RECYCLED_TIME       | PURGE_TIME          |
+-----------------+---------------+---------------+--------------------+---------------------+---------------------+
| __recycle_bin__ | __innodb_1073 | test          | t_recycle_bin_demo | 2020-02-27 06:48:24 | 2020-03-05 06:48:24 |
+-----------------+---------------+---------------+--------------------+---------------------+---------------------+
1 row in set (0.00 sec)
mysql> select * from `__recycle_bin__`.`__innodb_1073`;
+------+
| col1 |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

可以看到,AliSQL在开启回收站功能的情况下,被删除的表被移到了“__recycle_bin__”数据库下面,可以通过Select语句直接访问读出被删除的数据以进行恢复,这样就找回了你的重要数据。和Oracle不同的地方是,“__recycle_bin__”数据库访问需要明确的授权操作,这样可以防止表的所有者(可能是恶意者)同步清理回收站中的表。比如我用一般用户登进去操作,就会报权限错误,如下所示:
*请左右滑动阅览

mysql> select * from `__recycle_bin__`.`__innodb_1073`;
ERROR 1142 (42000): SELECT command denied to user 'test'@'localhost' for table '__innodb_1073'
mysql> call dbms_recycle.purge_table('__innodb_1073');
ERROR 1142 (42000): DROP command denied to user 'test'@'localhost' for table '__innodb_1073'

可以看到通过AliSQL的回收站功能,以及精心规划的权限管理机制,可以有效地处理表被意外或恶意删除的问题,确保你的数据安全。

点这里了解Recycle Bin功能详情


 

上阿里云采购季
云数据库分会场一站解决
扫描二维码直达


啦啦.jpg

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能化中的控制与自动化中的控制不同

智能化中的控制相对于自动化中的控制更加灵活、智能、综合和学习能力强。智能化控制系统能够根据实际情况进行自主决策和优化,适用范围更广,效果更好。 首先,智能化控制系统能够根据外部环境的变化和实时数据的反馈来自主调整和优化控制策略&…

Flink on Zeppelin (4) - 机器学习篇

今天我来讲下如何在 Zeppelin 里做机器学习。机器学习的重要性我就不多说了,我们直奔主题。 Flink 在机器学习这个领域发力较晚,社区版没有一个完整的机器学习算法库可以用,Alink[1]是目前 Flink 生态圈相对比较完整的机器学习算法库&#x…

五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰

“基于OSS在弹性扩容、跨省容灾、多租户管理以及传输加速方面的基础能力,钉钉在此次战役过程中,实现了一键切换写入区域,拆分业务到多个区域的功能,同时钉钉在跨区域的图片处理、文档预览的并发处理量上有了10倍速的提升。”——钉…

知乎高赞:一行代码凭什么躺普通程序员的10年工资?

笔者这两天闲逛知乎,看到了这个帖子:匿名答题,发表于2014年,此外没有留下任何多余信息。2年躺赚200万,相当于普通程序员10年的工资。没想到Pyhon这么强大,怪不得有人说“除了不会生孩子,Python什…

第九弹 - 脚本模式与参数视图

MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高…

在家“隔离”这1个月,阿里云视频云这些工程师都经历了什么?

战"疫”当前,没有谁会置身事外。从1月底开始,一场全民疫情阻击战拉开帷幕,企业停工、学校停课、商场停业,城市街道分外冷清,相反的是,无法出门的数亿网民却在互联网上掀起了一阵不小的流量热潮。距离2…

让安全威胁无所遁形,全方位掌握攻击“前世今生”的黑科技来了

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)据启明星辰发布的《2019~2020网络安全态势观察报告》显示,在过去一年多时间里,勒索攻击由 2014 年的广泛无目的的传播阶段到2017 年 WannaCry 带来的大规模自动化传播阶段,如今已…

docker mysql 日志在哪里_docker容器启动后日志在哪里

docker容器启动后日志在哪里? docker启动后日志会在以下位置 /var/lib/docker/containers/容器ID/容器ID-json.log 也可以使用以下命令查看日志: docker logs 容器ID使用docker-compose可以通过配置把日志记录到本地文件中 实战,演示以mys…

数据价值挖掘利器!阿里云实时数仓AnalyticDB PG

目的 随着数字经济时代的到来,越来越多的应用依赖数据分析来挖掘数据的价值。作为大数据存储、在线分析的重要基础系统,分析型数据库(OLAP)为数据价值的在线化提供重要的技术平台。 阿里巴巴OLAP团队经过调研发现,现…

美国AI博士指出:60天掌握Python全栈需要...

我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式&#xff0…

别琢磨了,企业高效灵活运作的秘密拿走:企业邮箱5折起!分享会场抽取苹果手机和猫超卡!

办了公司没个官方邮箱怎么行?还在用私人邮箱联系业务吗? - 不专业! 业务多了维护客户人脉关系怎么整?还在靠数名片管客户?- 太费劲! 公司大了管理维护难?还指望能靠人力运营&#x…

docker 配置nginx镜像出现 403 Forbidden的问题

(1)docker 配置nginx镜像的时候,将映射文件配置到当前宿主机上,启动nginx镜像,,通过域名访问,出现 403 查看nginx error.log日志,发现出现 (2)nginx镜像文件的配置: 启…

一套 SQL 搞定数据仓库?Flink有了新尝试

数据仓库是公司数据发展到一定规模后必然需要提供的一种基础服务,也是“数据智能”建设的基础环节。迅速获取数据反馈不仅有利于改善产品及用户体验,更有利于公司的科学决策,因此获取数据的实时性尤为重要。 目前企业的数仓建设大多是离线一套…

17 年安全界老兵,专注打造容器安全能行吗?

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)容器作为云原生的代表技术,很多人认为是容器技术掀起云原生的变革:2004 年,谷歌开始使用容器技术,并在2006年发布进程容器,将容器虚拟化基础设施引入 Lin…

“开源”vs“商业”,差别到底有多大?这篇测试一目了然

近些年来在数据分析领域,涌现出很多开源的技术方案,例如Presto、Spark、Impala等。面对多种选择,客户往往会比较困惑、无从下手。此外,MySQL生态非常火热,但对于数据分析类场景,使用此类关系型数据库是否合…

docker: Error response from daemon: driver failed programming external connectivity

docker: Error response from daemon: driver failed programming external connectivity 解决方案 (重新启动docker) systemctl restart docker

该买哪家二手手机呢?程序员爬取京东告诉你!

作者 | AJ Gordon责编 | 李雪敬出品 | CSDN(ID:CSDNnews)当你手头有一件闲置的物品时,最好的办法不是放在家里积灰,而是拿到二手网站上进行拍卖,例如淘宝的闲鱼,京东的拍拍等等。有这方面经验的…

服务3000万制造企业 阿里云数字工厂诚邀合伙人

阿里云工业互联网平台(数字工厂)通过整合阿里云资源可提供从产品研发、生产制造、销售、物流仓储、能源管理等链路中所需要的全部应用。为大型制造企业提供工业大数据分析以实现更高层次的价值挖掘,赋能中小制造企业用云化工具以较低成本实现…

大厂面试录取通过率不到3%,我真是太太太难了......

对今年应届毕业生来说,这个毕业季太难了,今年应届生总人数 874 万多,再创历史新高,各大招聘单位不仅缩减了招聘岗位,还取消了线下春招。最近在后台看到不少吐槽,很多同学反映自己面试一面就挂,有…

springbot微服务打包docker镜像

1.新建springboot项目 2.打包项目 3.编写Dockerfile 4.构架镜像 5.发布运行 6.上传至私服 7.拉取私服镜像运行 1.新建springboot项目 通过idea创建一个项目,新建一个HelloController 并新增一个hello方法便与测试 package com.gblfy.hello.controller;import org.…