Ho lasciato cadere il database `performance_schema` di MySQL, come posso crearlo?


10

Durante la risoluzione di un problema ibdata / log, ho accidentalmente lasciato cadere il mio performance_schemadatabase, vorrei crearne uno nuovo.

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)

Queste variabili sembrano andare bene per me.

La seguente domanda pone la stessa cosa, tuttavia l'utente conclude che sono stati in grado di crearla seguendo la documentazione in cui non sono riuscito a trovare tali istruzioni.

mysql: eliminato performance_schema, è un problema?

qualche idea?

Risposte:


17

Le tabelle nel database performance_schema sono una raccolta di viste e tabelle temporanee che non memorizzano i dati in modo permanente. Il comando mysql_upgrade ripristinerà il database performance_schema

Dalla conchiglia

mysql_upgrade --user=root --password=password

2
Riavvia il mysqlservizio dopo averlo fatto! Ha funzionato solo dopo il riavvio per me.
Caesarsol,

-1

Allude a DROP DATABASE come recuperabile, ma solo in condizioni strane non ho familiarità con http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Secondo Docs, i binlog sono solo una sequenza di comandi eseguiti in base a un determinato punto di riferimento. Quindi, quando hai fatto "DROP DATABASE", invece di "Oh, sta lasciando cadere il database, dovremmo eseguire il backup nel caso in cui" semplicemente scrivesse un "DROP DATABASE" sull'ultimo binlog. Il recupero non è semplice come riprodurre il nastro all'indietro.

Quello che devi fare è recuperare il database da un ultimo bene noto e applicare i binlog che si sono verificati tra quel punto di ripristino e il comando DROP.

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

Come si determina quali binlog usare, non è chiaro.

Non c'è niente di meglio che avere backup completi del file system. E dovresti almeno avere questi a cui ricorrere.


1
Non sono interessato a recuperare i dati che erano lì, solo che le metriche delle prestazioni possono essere raccolte / archiviate di nuovo. La soluzione di Craig Efrein ha funzionato per questo scopo.
Juniper X,

-1. I dati dello schema delle prestazioni non vengono replicati, non c'è nulla nel binlog da recuperare (e comunque non esiste in 5.0).
Marc Alff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.