MySQL'in `performance_schema` veritabanını düşürdüm, nasıl oluşturabilirim?


10

Bir ibdata / log sorununu çözerken, yanlışlıkla performance_schemaveritabanımı düşürdüm , yeni bir tane oluşturmak istiyorum.

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)

Bu değişkenler benim için iyi görünüyor.

Aşağıdaki soru aynı şeyi soruyor, ancak kullanıcı bu talimatları bulamadığım belgeleri izleyerek oluşturabileceği sonucuna varıyor.

mysql: performance_schema silindi, bir sorun mu var?

Düşüncesi olan var mı?

Yanıtlar:


17

Tablolar performance_schema veritabanına kalıcı veri depolamak yok görüş ve geçici tabloların bir koleksiyonudur. Mysql_upgrade komut performance_schema veritabanını geri yükler

Kabuktan

mysql_upgrade --user=root --password=password

2
mysqlBunu yaptıktan sonra hizmeti yeniden başlatın ! Sadece benim için yeniden başlattıktan sonra çalıştı.
caesarsol

-1

DROP DATABASE'in kurtarılabilir olması anlamına gelir, ancak sadece garip koşullarda http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Dokümanlar'a göre, binlog'lar yalnızca belirli bir referans noktasına göre yürütülen bir komut dizisidir. Böylece, "DROP DATABASE" yaptığınızda, "Oh, veritabanını bırakarak değil, şimdi sadece" sadece son binlog bir "DROP DATABASE" yazdı durumunda yedeklemeliyiz. Kurtarma, kaseti geriye doğru oynatmak kadar basit değildir.

Yapmanız gereken, veritabanını son bilinen bir maldan kurtarmak ve bu kurtarma noktası ile DROP komutu arasında gerçekleşen binlog'ları uygulamaktır.

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

Hangi binlogların tho kullanılacağını nasıl belirlediği belli değil.

Tam dosya sistemi yedeklerine sahip olmaktan daha iyi bir şey yoktur. Ve en azından bunlara geri dönmelisin.


1
Oradaki verileri kurtarmakla ilgilenmiyorum, sadece performans metrikleri tekrar toplanabilir / saklanabilir. Craig Efrein'in çözümü bu amaçla çalıştı.
Ardıç X

-1. Performans şeması verileri çoğaltılmaz, binlog'da kurtarılacak hiçbir şey yoktur (ve yine de 5.0'da mevcut değildir).
Marc Alff
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.