Upuściłem bazę danych MySQL `performance_schema`, jak mogę ją stworzyć?

10

Podczas rozwiązywania problemu z plikiem ibdata / log przypadkowo upuściłem performance_schemabazę danych, chciałbym utworzyć nową.

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)

Te zmienne wydają mi się w porządku.

Poniższe pytanie dotyczy tego samego, jednak użytkownik stwierdza, że ​​był w stanie go utworzyć, postępując zgodnie z dokumentacją, w której nie mogłem znaleźć takich instrukcji.

mysql: usunięto schemat wydajności, czy to problem?

jakieś pomysły?

Juniper X
źródło

Odpowiedzi:

17

Tabele w bazie danych performance_schema to zbiór widoków i tabel tymczasowych, które nie przechowują danych na stałe. Komenda mysql_upgrade przywróci bazę danych schematu wydajności

Z muszli

mysql_upgrade --user=root --password=password
Craig Efrein
źródło
2
mysqlPo wykonaniu tej czynności ponownie uruchom usługę! Dla mnie zadziałało to dopiero po restarcie.
caesarsol,
-1

To sugeruje, że DROP DATABASE można odzyskać, ale tylko w nieparzystych warunkach nie jestem zaznajomiony z http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Według Docs binlogs to po prostu sekwencja poleceń wykonywanych w oparciu o dany punkt odniesienia. Aby więc wykonać „DROP DATABASE” zamiast „Och, on upuszcza bazę danych, powinniśmy teraz wykonać kopię zapasową na wszelki wypadek”, po prostu napisał „DROP DATABASE” do ostatniego binlogu. Odzyskiwanie nie jest tak proste, jak odtwarzanie taśmy wstecz.

To, co musisz zrobić, to odzyskać bazę danych z ostatniego znanego dobra i zastosować blogi bin, które wydarzyły się między tym punktem odzyskiwania a poleceniem DROP.

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

Nie wiadomo, jak określić, które binlogi należy użyć.

Nie ma nic lepszego niż pełne kopie zapasowe systemu plików. I powinieneś mieć przynajmniej te, do których warto wrócić.

Mahesh Patil
źródło
1
Nie jestem zainteresowany odzyskiwaniem danych, które tylko tam były, tylko to, że wskaźniki wydajności mogą być ponownie gromadzone / przechowywane. Rozwiązanie Craiga Efreina działało w tym celu.
Juniper X
-1. Dane schematu wydajności nie są replikowane, binlog nie ma nic do odzyskania (i tak w 5.0 nie istnieje).
Marc Alff,