Saya menjatuhkan basis data `performance_schema` MySQL, bagaimana saya bisa membuatnya?

10

Saat memperbaiki masalah ibdata / log, saya tidak sengaja menjatuhkan performance_schemadatabase saya , saya ingin membuat yang baru.

mysql> SHOW VARIABLES LIKE 'perf%';
+---------------------------------------------------+---------+
| Variable_name                                     | Value   |
+---------------------------------------------------+---------+
| performance_schema                                | ON      |
| performance_schema_events_waits_history_long_size | 10000   |
| performance_schema_events_waits_history_size      | 10      |
| performance_schema_max_cond_classes               | 80      |
| performance_schema_max_cond_instances             | 1000    |
| performance_schema_max_file_classes               | 50      |
| performance_schema_max_file_handles               | 32768   |
| performance_schema_max_file_instances             | 10000   |
| performance_schema_max_mutex_classes              | 200     |
| performance_schema_max_mutex_instances            | 1000000 |
| performance_schema_max_rwlock_classes             | 30      |
| performance_schema_max_rwlock_instances           | 1000000 |
| performance_schema_max_table_handles              | 100000  |
| performance_schema_max_table_instances            | 50000   |
| performance_schema_max_thread_classes             | 50      |
| performance_schema_max_thread_instances           | 1000    |
+---------------------------------------------------+---------+
16 rows in set (0.06 sec)

Variabel-variabel itu tampaknya baik untuk saya.

Pertanyaan berikut menanyakan hal yang sama, namun pengguna menyimpulkan bahwa mereka dapat membuatnya dengan mengikuti dokumentasi yang saya tidak dapat menemukan instruksi tersebut di.

mysql: dihapus performance_schema, apakah ini masalah?

Adakah pikiran?

Juniper X
sumber

Jawaban:

17

Tabel dalam database performance_schema adalah kumpulan tampilan dan tabel sementara yang tidak menyimpan data secara permanen. The mysql_upgrade perintah akan mengembalikan database performance_schema

Dari cangkang

mysql_upgrade --user=root --password=password
Craig Efrein
sumber
2
Mulai ulang mysqllayanan setelah melakukan ini! Itu bekerja hanya setelah restart untuk saya.
caesarsol
-1

Ini menyinggung DROP DATABASE yang dapat dipulihkan, tetapi hanya dalam kondisi aneh saya tidak terbiasa dengan http://dev.mysql.com/doc/refman/5.0/id/binary-log.html

Menurut Documents, binlog hanyalah urutan perintah yang dijalankan berdasarkan titik referensi yang diberikan. Sehingga ketika Anda melakukan "DROP DATABASE", alih-alih "Oh, dia menjatuhkan basis data, kita harus membuat cadangan sekarang untuk berjaga-jaga" itu hanya menulis "DROP DATABASE" ke binlog terakhir. Pemulihan tidak sesederhana memutar kaset ke belakang.

Yang perlu Anda lakukan adalah memulihkan basis data dari barang yang terakhir diketahui, dan menerapkan binlog yang terjadi antara titik pemulihan itu dan perintah DROP.

http://dev.mysql.com/doc/refman/5.0/id/recovery-from-backups.html

Bagaimana seseorang menentukan binlog mana yang akan digunakan, tidak jelas.

Tidak ada yang lebih baik daripada memiliki cadangan sistem file lengkap. Dan Anda setidaknya harus memiliki ini untuk kembali.

Mahesh Patil
sumber
1
Saya tidak tertarik memulihkan data yang ada di sana, hanya metrik kinerja yang dapat dikumpulkan / disimpan lagi. Solusi Craig Efrein bekerja untuk tujuan ini.
Juniper X
-1. Data skema kinerja tidak direplikasi, tidak ada dalam binlog untuk dipulihkan (dan tidak ada di 5.0 pula).
Marc Alff