Ich hatte eine Tabelle mit der Engine BLACKHOLE erstellt. Im Grunde genommen fungiert die BLACKHOLE-Speicher-Engine als „Schwarzes Loch“, das Daten akzeptiert, aber wegwirft und nicht speichert. Abfragen geben immer ein leeres Ergebnis zurück.
Ich habe gehört, dass wir die Daten abrufen können, indem wir eine neue Tabelle erstellen, die der alten Tabelle mit der Speicher-Engine wie innodb oder myisam entspricht. aber ich hatte das auch versucht, konnte aber das ergebnis nicht erzielen. Kann mir jemand bei diesem Problem helfen, es zu beheben?
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)
mysql
mysql-5.5
storage-engine
Karthick
quelle
quelle
Antworten:
Du sagtest
Wer auch immer Ihnen gesagt hat, dass Sie Binärprotokolle aktivieren sollen, wie @jynus kommentiert hat.
Die BLACKHOLE Storage Engine speichert überhaupt keine Daten . Es ist eine spezielle Speicher-Engine, die in sehr sorgfältigen Setups verwendet wird.
BEISPIEL 1: Sterntopologie
Einige haben Sterntopologien, um Daten in einen MySQL Replication Master zu schreiben. Der Meister hat nichts als BLACKHOLE-Tische. Alle Slaves haben InnoDB oder MyISAM. Auf diese Weise gibt es keine lokalen Daten, wenn der Master gehackt wird. Ein solcher Master ist als Distributionsmaster bekannt.
Apr 28, 2011
: MySQL in Sterntopologie (ServerFault)Mar 11, 2011
: MySQL in Sterntopologie (StackOverflow)BEISPIEL 2: Einzelner Slave, mehrere Master
Dazu muss die zirkuläre Replikation mit drei Servern eingerichtet werden. Zwei Meister mit einer Mischung aus BLACKHOLE-Tischen und einem Slave mit allen echten Tischen. Diese Technik ist älter als die Replikation mehrerer Quellen.
Apr 18, 2013
: Einzelner Slave - MySQL-Replikation mit mehreren MasternMay 16, 2011
: Ist Multi Master Single Slave in mySQL DB möglich? (ServerFault)BEISPIEL 3: Erhöhen Sie die Schreibleistung
Ich kannte einen Webhosting-Client, der wegen Leistungsproblemen an einem Tisch zu Percona ging. Da der Client über eine MySQL-Replikation mit mehreren Slaves verfügte, konvertierte Percona die Problemtabelle in BLACKHOLE. Dies erhöht die Schreibleistung auf dem Master. Die Daten mussten von den Slaves gelesen werden.
Ich habe dies einmal in einem Beitrag zum Aufzeichnen von Überwachungsinformationen vorgeschlagen ( Leistung eines Triggers gegenüber gespeicherter Prozedur in MySQL ).
EPILOG
Während einige der Kommentare mich an StarTrek DS9 erinnern, heißt die BLACKHOLE Storage Engine so: KEINE DATEN WERDEN GESPEICHERT !!! Wenn Sie Binärprotokolle aktiviert hätten, wäre dies Ihre einzige Chance gewesen, Daten zu haben.
quelle