¿Es posible recuperar datos de una tabla BLACKHOLE? [cerrado]

8

Había creado una tabla con el motor BLACKHOLE, básicamente, el motor de almacenamiento BLACKHOLE actúa como un "agujero negro" que acepta datos pero los tira y no los almacena. Las recuperaciones siempre devuelven un resultado vacío.

Escuché que podemos recuperar los datos creando una nueva tabla igual que la tabla anterior con motor de almacenamiento como innodb o myisam. pero también lo intenté pero no pude obtener el resultado. ¿Alguien puede ayudarme en este problema para solucionarlo?

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
fuente
44
Nada puede salir de un agujero negro, ni siquiera la luz. Es por eso que fueron nombrados de esta manera.
ypercubeᵀᴹ
2
@ypercube ¿Qué pasa con la radiación de Hawking? ¿Y qué hay de la recuperación de un punto en el tiempo con los registros bin?
jynus
44
¿Qué pasa con el motor MySQLWormhole? ¡De esa manera podría viajar en el tiempo y recuperar sus datos antes de que ingresen al MySQLBlackhole!
Vérace
66
¿Estás corriendo en Unix? Los datos pueden estar en / dev / null
Philᵀᴹ
55
Esta pregunta parece estar fuera de tema porque se trata de lo imposible. Como dice el usuario y la documentación "El motor de almacenamiento BLACKHOLE actúa como un" agujero negro "que acepta datos pero los tira y no los almacena. Las recuperaciones siempre devuelven un resultado vacío"
billinkc

Respuestas:

13

Tu dijiste

Escuché que podemos recuperar los datos creando una nueva tabla igual que la tabla anterior con motor de almacenamiento como innodb o myisam

Quien le haya dicho eso debería haberle dicho que habilite los registros binarios como comentó @jynus.

El motor de almacenamiento BLACKHOLE no almacena datos en absoluto . Es un motor de almacenamiento especial utilizado en configuraciones muy meticulosas.

EJEMPLO # 1: Topología en estrella

Algunos tienen topologías en estrella para escribir datos en un maestro de replicación MySQL. El maestro no tiene más que mesas BLACKHOLE. Todos los esclavos tienen InnoDB o MyISAM. De esa manera, si el maestro es pirateado, no hay datos locales. Tal maestro se conoce como maestro de distribución.

EJEMPLO # 2: Esclavo único, Maestros múltiples

Esto implica configurar la replicación circular con tres servidores. Dos Maestros con una mezcla de mesas BLACKHOLE y un Esclavo con todas las mesas reales. Esta técnica es anterior a la replicación de múltiples fuentes.

EJEMPLO # 3: Aumente el rendimiento de escritura

Sabía de un cliente de alojamiento web que fue a Percona por problemas de rendimiento en una mesa. Como el cliente tenía la replicación MySQL con múltiples esclavos, Percona convirtió la tabla de problemas a BLACKHOLE. Esto aumentó el rendimiento de escritura en el Master. Los datos tuvieron que ser leídos de los esclavos.

Una vez sugerí esto en una publicación para registrar información de auditoría ( Rendimiento de un desencadenador vs procedimiento almacenado en MySQL )

EPÍLOGO

Si bien algunos de los comentarios me recuerdan a StarTrek DS9, el motor de almacenamiento BLACKHOLE es lo que su nombre dice: ¡ NO SE ALMACENAN DATOS ! Si tuviera habilitados los registros binarios, esa habría sido su única oportunidad de tener datos.

RolandoMySQLDBA
fuente
66
¿Desde cuándo los hechos y tecnicismos involucrados en esta pregunta? :)
Philᵀᴹ
2
¡No es genial que podamos ser expertos en tecnología (o incluso, quizás, nerds), sin ser imbéciles con cabeza de hélice! +1
Vérace
2
Por supuesto, si se habilita binlogging ... los datos es en realidad todo lo que hay si los registros no han sido purgados, y no es una posibilidad de recuperarla mediante la reproducción desde el punto justo a la derecha en otro sistema.
Michael - sqlbot