Можно ли восстановить данные из таблицы BLACKHOLE? [закрыто]

8

Я создал таблицу с механизмом BLACKHOLE, в основном механизм хранения BLACKHOLE действует как «черная дыра», которая принимает данные, но выбрасывает их и не хранит. Поиски всегда возвращают пустой результат.

Я слышал, что мы можем получить данные, создав новую таблицу, аналогичную старой таблице с механизмом хранения, как innodb или myisam. но я попробовал это также, но не смог получить результат. Может ли кто-нибудь PL мне помочь в этом вопросе, чтобы исправить это.

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
источник
4
Ничто не может выйти из черной дыры, даже свет. Вот почему они были названы так.
ypercubeᵀᴹ
2
@ypercube А как насчет излучения Хокинга? А как насчет восстановления во времени с журналами бина?
jynus
4
Что насчет движка MySQLWormhole? Таким образом, вы можете путешествовать во времени и извлекать свои данные до того, как они попадут в черную дыру MySQL!
Vérace
6
Вы работаете на Unix? Данные могут быть в / dev / null
Philᵀᴹ
5
Этот вопрос кажется не по теме, потому что речь идет о невозможном. Как утверждают пользователь и документация, «механизм хранения BLACKHOLE действует как« черная дыра », которая принимает данные, но выбрасывает их и не сохраняет. Результаты поиска всегда возвращают пустой результат»
billinkc

Ответы:

13

Вы сказали

Я слышал, что мы можем получить данные, создав новую таблицу, аналогичную старой, с механизмом хранения, как innodb или myisam.

Тот, кто сказал вам, должен был включить двоичные журналы, как прокомментировал @jynus.

BLACKHOLE Storage Engine не хранит данные на всех . Это специальный механизм хранения, используемый в очень дотошных настройках.

ПРИМЕР № 1: топология звезды

У некоторых есть топологии Star для записи данных в MySQL Replication Master. Мастер не имеет ничего, кроме таблиц BLACKHOLE. Все Рабы имеют InnoDB или MyISAM. Таким образом, если Мастер взломан, локальных данных нет. Такой Мастер известен как Мастер Распределения.

ПРИМЕР № 2: один ведомый, несколько мастеров

Это включает в себя настройку кольцевой репликации с тремя серверами. Два Мастера со смесью столов BLACKHOLE и Раб со всеми настоящими столами. Эта техника предшествует многоисточниковой репликации.

ПРИМЕР № 3: Увеличение производительности записи

Я знал о клиенте веб-хостинга, который отправился в Percona за проблемами производительности на одном столе. Поскольку клиент имел MySQL Replication с несколькими ведомыми устройствами, Percona преобразовала таблицу проблем в BLACKHOLE. Это увеличило производительность записи на Мастере. Данные должны были быть прочитаны от рабов.

Однажды я предложил это в записи для записи информации аудита ( Производительность триггера против хранимой процедуры в MySQL )

Эпилог

В то время как некоторые комментарии напоминают мне о StarTrek DS9, механизм хранения BLACKHOLE - это то, что написано в его имени: НИКАКИЕ ДАННЫЕ никогда не хранятся !!! Если бы у вас были включены двоичные журналы, это был бы ваш единственный шанс получить данные.

RolandoMySQLDBA
источник
6
с каких это пор факты и технические детали были вовлечены в этот вопрос? :)
Philᵀᴹ
2
Разве это не здорово, что мы можем быть техниками (или даже, может быть, ботаниками), не будучи гребнями с пропеллерными головами! +1
Верас
2
Конечно, если binlogging включено ... данные есть на самом деле все, если журналы не были очищены, и там есть возможность восстановления его воспроизведение их в нужный момент на другую систему.
Майкл - sqlbot