Apakah Mungkin untuk Memulihkan Data dari tabel BLACKHOLE? [Tutup]


8

Saya telah membuat tabel dengan mesin BLACKHOLE pada dasarnya mesin penyimpanan BLACKHOLE bertindak sebagai "lubang hitam" yang menerima data tetapi membuangnya dan tidak menyimpannya. Pengambilan selalu mengembalikan hasil kosong.

Saya mendengar bahwa kami dapat mengambil data dengan membuat tabel baru yang sama dengan tabel lama dengan mesin penyimpanan sebagai innodb atau myisam. tetapi saya telah mencobanya juga tetapi tidak bisa mendapatkan hasilnya. Adakah yang bisa membantu saya tentang masalah ini untuk memperbaikinya.

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
Tidak ada yang bisa keluar dari lubang hitam, bahkan cahaya. Itu sebabnya mereka diberi nama seperti ini.
ypercubeᵀᴹ

2
@ypercube Bagaimana dengan radiasi Hawking? Dan bagaimana dengan pemulihan waktu dengan log bin?
jynus

4
Bagaimana dengan mesin MySQLWormhole? Dengan begitu Anda dapat melakukan perjalanan kembali ke masa lalu dan mengambil data Anda sebelum memasuki MySQLBlackhole!
Vérace

6
Apakah Anda menjalankan di Unix? Data mungkin dalam / dev / null
Philᵀᴹ

5
Pertanyaan ini tampaknya di luar topik karena ini tentang yang mustahil. Saat pengguna dan dokumentasi menyatakan "Mesin penyimpanan BLACKHOLE bertindak sebagai" lubang hitam "yang menerima data tetapi membuangnya dan tidak menyimpannya. Pengambilan selalu mengembalikan hasil yang kosong"
billinkc

Jawaban:


13

Kamu berkata

Saya mendengar bahwa kami dapat mengambil data dengan membuat tabel baru yang sama dengan tabel lama dengan mesin penyimpanan sebagai innodb atau myisam

Siapa pun yang memberi tahu Anda bahwa seharusnya memberi tahu Anda untuk mengaktifkan log biner seperti yang dikomentari @jynus.

The Blackhole Storage Engine tidak menyimpan data sama sekali . Ini adalah mesin penyimpanan khusus yang digunakan dalam pengaturan yang sangat teliti.

CONTOH # 1: Topologi Bintang

Beberapa memiliki Topologi Star untuk menulis data ke Master Replikasi MySQL. Master tidak memiliki apa-apa selain meja BLACKHOLE. Semua Budak memiliki InnoDB atau MyISAM. Dengan begitu, jika Master diretas, tidak ada data lokal. Master semacam itu dikenal sebagai Master Distribusi.

CONTOH # 2: Budak Tunggal, Banyak Tuan

Ini melibatkan pengaturan Replikasi Sirkular dengan tiga server. Dua Master dengan campuran tabel BLACKHOLE dan seorang Slave dengan semua tabel asli. Teknik ini mendahului replikasi multisource.

CONTOH # 3: Tingkatkan Kinerja Menulis

Saya tahu tentang Klien Web Hosting yang pergi ke Percona untuk masalah kinerja di satu meja. Karena klien memiliki Replika MySQL dengan Beberapa Budak, Percona mengonversi tabel masalah ke BLACKHOLE. Ini meningkatkan kinerja menulis pada Master. Data harus dibaca dari Budak.

Saya pernah menyarankan ini di sebuah pos untuk merekam informasi audit ( Kinerja Pemicu vs Prosedur Tersimpan di MySQL )

EPILOG

Sementara beberapa komentar mengingatkan saya pada StarTrek DS9, BLACKHOLE Storage Engine adalah seperti namanya: TIDAK ADA DATA YANG PERNAH DISIMPAN !!! Jika Anda memiliki log biner diaktifkan, itu akan menjadi satu-satunya kesempatan Anda memiliki data.


6
sejak kapan fakta dan teknis terlibat dalam pertanyaan ini? :)
Philᵀᴹ

2
Bukankah luar biasa bahwa kita bisa menjadi teknisi (atau bahkan, mungkin, kutu buku), tanpa menjadi baling-baling yang menuju ke dweeb! +1
Vérace

2
Tentu saja, jika binlogging diaktifkan ... data adalah benar-benar semua ada jika log belum dibersihkan, dan ada adalah kemungkinan pulih dengan memutar mereka dari hanya titik yang tepat pada sistem lain.
Michael - sqlbot
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.