Jadi saya punya server uji db yang diatur pada aliran replikasi. Atas nama optimasi datang melalui yang dengan cepat mengisi ruang pada datadir slave. Mysql patuh hanya menunggu ruang lagi.
Datadir ini adalah sistem file yang HANYA digunakan sebagai datad mysql sehingga tidak ada hal lain untuk dibebaskan.
Saya memiliki meja tes innodb 4 manggung yang bukan bagian dari aliran replikasi jadi saya pikir saya akan mencoba sesuatu untuk melihat apakah itu akan berhasil, dan menjadi lingkungan pengujian saya tidak terlalu khawatir jika ada yang salah.
Inilah langkah-langkah yang saya ambil
- Membilas meja saya akan pindah
- Menempatkan kunci baca di atasnya (meskipun tidak ada yang menulis dan tidak ada dalam aliran replikasi)
- Menyalin .frm dan .ibd ke sistem file dengan ruang cadangan
- Membuka kunci meja
- Memotong tabel itu - ini membebaskan ruang yang cukup untuk optimisasi untuk menyelesaikan replikasi mulai berbunyi lagi.
- Hentikan slaving / shutdown mysql
- Salin file dari tmp kembali ke dir data
- Mulai ulang mysql
Tidak ada yang muncul di log .err, semuanya terlihat bagus. Saya terhubung dan menggunakan mydb; dan lihat meja tempat saya bermain-main. Tapi, kalau saya coba
select * from testtable limit 10;
Saya mendapatkan kesalahan
ERROR 1146 (42S02): Table 'mydb.testtable' doesn't exist
Dari apa yang saya tahu sejauh ini saya bisa membaca dari semua tabel lainnya baik-baik saja dan replikasi mulai kembali tanpa keluhan.
Adakah yang bisa saya lakukan untuk pulih dari titik ini? Saya dapat membangunnya kembali dari awal jika perlu tetapi ingin tahu apa pendapat orang lain tentang usaha ini secara umum. Apakah ada sesuatu tentang serangkaian langkah yang saya ambil yang akan berakhir dengan hasil yang lebih sempurna?
Bagaimana jika ini bukan server pengujian saya tidak bisa hanya 'melakukannya langsung' dan melihat apa yang terjadi? Apa yang akan memiliki cara terbaik untuk mengosongkan ruang sementara pada budak produksi jika saya harus seperti itu?
sumber
Table 'X' doesn't exist in engine
. Apakah saya harus melakukan metode di atas untuk setiap tabel atau apakah ada cara yang lebih baik untuk memperbaikinya?Saya alami dengan Mac saya, sebelum menjual ke teman cukup salin folder XAMPP hanya ke hard drive saya. (BUKAN KEBERHASILAN) Sayangnya, itu membawa masalah bagi saya, karena saya mencoba langkah-langkah berikut: - Saya menginstal XAMPP baru dan menyalin seluruh \ httdocs dan var \ mysql ke Mac baru saya, yang db hanya dengan .frm dan .ibd, BUKAN BEKERJA, saya masih tidak bisa mengakses tabel di dalam PHPMyAdmin ... - Saya mencoba menginstal versi xampp yang sama dan mengulangi langkah-langkah di atas, masih BUKAN BEKERJA. - Memutuskan untuk pergi tidur.
(SUKSES) - Pagi ini, saya membawa disk cadangan saya dan mencoba dengan Windows 7. - Instal XAMPP terbaru untuk Windows, c: \ xampp - Saya memiliki salah satu situs web (folder) dari cadangan saya \ httdocs dan folder database yang sesuai di dalamnya \ var \ mysql SIAP di windows 7 saya, saya hanya ingin mencoba dengan satu situs web lalu mencoba sisanya karena saya punya banyak proyek di dalam httdocs \ dan \ var \ mysql - Saya menyalin folder httdocs \ yang disebutkan ke windows c: \ xampp \ httdocs dan salin data \ var \ mysql ke c: \ xampp \ mysql \
BELUM TERAKHIR Saya menyalin file ib_logfile0, ib_logfile1, ibdata1 dari file cadangan saya ke windows xampp c: data \ xampp \ mysql \
Saya menyegarkan http: // localhost / mywebsite
WOW WOW DONE ... berhasil ...
sumber