É possível recuperar dados de uma tabela BLACKHOLE? [fechadas]

8

Eu criei a tabela com o mecanismo BLACKHOLE, basicamente, o mecanismo de armazenamento BLACKHOLE atua como um "buraco negro" que aceita dados, mas os joga fora e não os armazena. As recuperações sempre retornam um resultado vazio.

Ouvi dizer que podemos recuperar os dados criando uma nova tabela igual à tabela antiga com o mecanismo de armazenamento como innodb ou myisam. mas eu tentei isso também, mas incapaz de obter o resultado. Qualquer um pode me ajudar nessa questão para corrigi-lo.

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)
Karthick
fonte
4
Nada pode sair de um buraco negro, nem mesmo a luz. Por isso foram nomeados dessa maneira.
precisa saber é o seguinte
2
@ypercube E a radiação Hawking? E quanto à recuperação pontual com logs de lixeira?
jynus
4
E o mecanismo do MySQLWormhole? Dessa forma, você pode voltar no tempo e recuperar seus dados antes que eles entrem no MySQLBlackhole!
Vérace 8/08/14
6
Você está rodando no Unix? Os dados podem estar em / dev / null
Philᵀᴹ
5
Esta questão parece estar fora de tópico, porque é praticamente impossível. Como usuário e a documentação estados "O mecanismo de armazenamento BLACKHOLE atua como um‘buraco negro’que aceita dados, mas joga fora e não armazená-lo Retrievals sempre retornar um resultado vazio."
billinkc

Respostas:

13

Você disse

Ouvi dizer que podemos recuperar os dados criando uma nova tabela igual à tabela antiga com o mecanismo de armazenamento innodb ou myisam

Quem disse isso para ativar logs binários, como comentou o @jynus.

O BLACKHOLE Storage Engine não armazena dados . É um mecanismo de armazenamento especial usado em configurações muito meticulosas.

EXEMPLO # 1: Topologia em estrela

Alguns têm topologias em estrela para gravar dados em um MySQL Replication Master. O Mestre não tem nada além de mesas BLACKHOLE. Todos os escravos têm InnoDB ou MyISAM. Dessa forma, se o mestre for hackeado, não haverá dados locais. Esse mestre é conhecido como mestre de distribuição.

EXEMPLO # 2: Escravo Único, Mestres Múltiplos

Isso envolve a configuração da replicação circular com três servidores. Dois mestres com uma mistura de mesas BLACKHOLE e um escravo com todas as mesas reais. Essa técnica é anterior à replicação de várias fontes.

EXEMPLO # 3: Aumente o desempenho de gravação

Eu conhecia um cliente de hospedagem na Web que foi à Percona por problemas de desempenho em uma mesa. Como o cliente possuía replicação MySQL com vários escravos, a Percona converteu a tabela de problemas em BLACKHOLE. Isso aumentou o desempenho de gravação no mestre. Os dados tinham que ser lidos pelos escravos.

Uma vez, sugeri isso em um post para registrar informações de auditoria ( desempenho de um gatilho versus procedimento armazenado no MySQL )

EPÍLOGO

Enquanto alguns dos comentários me lembram o StarTrek DS9, o BLACKHOLE Storage Engine é o que seu nome diz: NENHUM DADO É NENHUM ARMAZENAMENTO ! Se você tivesse os logs binários ativados, essa seria sua única chance de ter dados.

RolandoMySQLDBA
fonte
6
desde quando fatos e detalhes técnicos foram envolvidos nessa questão? :)
Phil
2
Não é ótimo podermos ser técnicos (ou até, talvez, nerds), sem sermos impulsivos! +1
Vérace 8/08/14
2
Claro, se o log binário estiver habilitado ... os dados é , na verdade, tudo o que existe se os logs não foram purgados, e não é uma possibilidade de recuperá-lo, repetindo-los a partir de apenas o ponto certo em outro sistema.
Michael - sqlbot