È possibile recuperare i dati da una tabella BLACKHOLE? [chiuso]


8

Avevo creato una tabella con il motore BLACKHOLE, fondamentalmente il motore di archiviazione BLACKHOLE funge da "buco nero" che accetta i dati ma li butta via e non li memorizza. I recuperi restituiscono sempre un risultato vuoto.

Ho sentito che possiamo recuperare i dati creando una nuova tabella uguale alla vecchia tabella con motore di archiviazione come innodb o myisam. ma ci avevo provato anche ma non riuscivo a ottenere il risultato. Qualcuno può aiutarmi su questo problema per risolverlo.

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)

4
Nulla può uscire da un buco nero, nemmeno la luce. Ecco perché sono stati nominati in questo modo.
ypercubeᵀᴹ

2
@ypercube Che dire delle radiazioni Hawking? E che dire del recupero temporizzato con i registri bin?
jynus

4
Che dire del motore MySQLWormhole? In questo modo potresti viaggiare indietro nel tempo e recuperare i tuoi dati prima che entrino nel MySQLBlackhole!
Vérace,

6
Stai correndo su Unix? I dati potrebbero essere in / dev / null
Philᵀᴹ

5
Questa domanda sembra fuori tema perché riguarda l'impossibile. Come afferma l' utente e la documentazione "Il motore di archiviazione BLACKHOLE funge da" buco nero "che accetta i dati ma li butta via e non li archivia. I recuperi restituiscono sempre un risultato vuoto"
billinkc

Risposte:


13

Tu hai detto

Ho sentito che possiamo recuperare i dati creando una nuova tabella uguale alla vecchia tabella con motore di archiviazione come innodb o myisam

Chiunque ti abbia detto che avrebbe dovuto dirti di abilitare i log binari come ha commentato @jynus.

Il motore di archiviazione BLACKHOLE non memorizza affatto i dati . È un motore di archiviazione speciale utilizzato in configurazioni molto meticolose.

ESEMPIO # 1: Star Topology

Alcuni hanno Star Topologies per scrivere dati su un master di replica MySQL. Il Master non ha altro che tabelle BLACKHOLE. Tutti gli slave hanno InnoDB o MyISAM. In questo modo, se il Master viene violato, non ci sono dati locali. Tale Master è noto come un Master di distribuzione.

ESEMPIO # 2: Single Slave, Multiple Master

Ciò comporta l'impostazione della replica circolare con tre server. Due Master con un mix di tavoli BLACKHOLE e uno Slave con tutti i tavoli reali. Questa tecnica precede la replica multisorgente.

ESEMPIO # 3: aumentare le prestazioni di scrittura

Conoscevo un Web Hosting Client che andava a Percona per problemi di prestazioni su un tavolo. Poiché il client aveva la replica MySQL con più slave, Percona ha convertito la tabella dei problemi in BLACKHOLE. Ciò ha aumentato le prestazioni di scrittura sul Master. I dati dovevano essere letti dagli Slaves.

Una volta l'ho suggerito in un post per la registrazione delle informazioni di audit ( Performance di un trigger vs Stored procedure in MySQL )

EPILOGO

Mentre alcuni dei commenti mi ricordano StarTrek DS9, BLACKHOLE Storage Engine è quello che dice il suo nome: NESSUN DATO È MAI STATO MEMORIZZATO !!! Se avessi abilitato i log binari, quella sarebbe stata la tua unica possibilità di avere dati.


6
da quando sono stati coinvolti fatti e tecnicismi in questa domanda? :)
Philᵀᴹ

2
Non è grandioso che possiamo essere dei tecnici (o addirittura, forse, dei nerd), senza essere dei demoni a testa di elica! +1
Vérace,

2
Naturalmente, se binlogging è abilitata ... il dato è in realtà tutto quello che c'è, se non sono stati eliminati i registri, e non v'è una possibilità di recupero da loro riproduzione dal punto giusto su un altro sistema.
Michael - sqlbot,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.