首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能从黑洞表中恢复数据?

问是否有可能从黑洞表中恢复数据?
EN

Database Administration用户
提问于 2014-08-08 12:16:38
回答 1查看 1.4K关注 0票数 8

我用引擎黑洞创建了表,基本上,黑洞存储引擎充当一个“黑洞”,它接受数据,但丢弃数据,而不存储数据。检索总是返回空的结果。

我听说,我们可以通过创建一个新表来检索数据,该表与存储引擎的旧表相同,存储引擎为innodb或myisam。但我也试过了,但没能得到结果。有人能帮我解决这个问题吗?

代码语言:javascript
复制
mysql> CREATE TABLE test1(i INT, c CHAR(10)) ENGINE = BLACKHOLE;
Query OK, 0 rows affected (0.08 sec)

mysql> INSERT INTO test1 VALUES(1,'record one'),(2,'record two');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from test1;
Empty set (0.00 sec)

mysql>  CREATE TABLE test_recovery as select * from test1;
Query OK, 0 rows affected (0.17 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE test_recovery ENGINE = innodb;
Query OK, 0 rows affected (0.25 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> SELECT * FROM test_recovery;
Empty set (0.00 sec)
EN

回答 1

Database Administration用户

发布于 2014-08-08 15:44:11

你说过

我听说我们可以通过创建一个新的表来检索数据,这个新表与存储引擎的旧表相同,比如innodb或myisam。

任何告诉您这一点的人都应该告诉您启用二进制日志,如@jynus所述。

黑洞存储引擎根本不存储数据。这是一个特殊的存储引擎,用于非常细致的设置。

示例1:星形拓扑

有些有星空拓扑可以将数据写入MySQL复制母版。大师除了黑洞桌子什么都没有。所有奴隶都有InnoDB或MyISAM。这样,如果主人被黑了,就没有本地数据。这样的大师被称为分销大师。

示例2:单从、多主

这包括用三台服务器设置循环复制。两个大师,混合了黑洞表和奴隶与所有真实的桌子。此技术先于多源复制。

示例3:提高写入性能

我知道有一个Web托管客户端会去Percona处理一个表上的性能问题。由于客户端具有多个从服务器的MySQL复制,Percona将问题表转换为黑洞。这提高了母版的写性能。数据必须从奴隶那里读取。

我曾在一篇用于记录审计信息(在MySQL中触发器与存储过程的性能)的文章中建议这样做。

尾声

虽然其中的一些评论让我想起了StarTrek DS9,黑洞存储引擎的名字是这样的:从来没有数据被存储!如果启用了二进制日志,这将是获得数据的唯一机会。

票数 13
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/73502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档