Larguei o banco de dados `performance_schema` do MySQL, como posso criá-lo?

10

Ao corrigir um problema ibdata / log, deixei cair meu performance_schemabanco de dados acidentalmente , gostaria de criar um novo.

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)

Essas variáveis ​​parecem estar bem para mim.

A pergunta a seguir faz a mesma coisa, no entanto, o usuário conclui que foi capaz de criá-lo seguindo a documentação na qual não encontrei essas instruções.

mysql: deletado performance_schema, isso é um problema?

Alguma ideia?

Juniper X
fonte

Respostas:

17

As tabelas no banco de dados performance_schema são uma coleção de visualizações e tabelas temporárias que não armazenam dados permanentemente. O comando mysql_upgrade restaurará o banco de dados performance_schema

Da casca

mysql_upgrade --user=root --password=password
Craig Efrein
fonte
2
Reinicie o mysqlserviço depois de fazer isso! Funcionou apenas após o reinício para mim.
caesarsol
-1

Alude à recuperação do DROP DATABASE, mas apenas em condições estranhas não conheço http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Segundo o Docs, os binlogs são apenas uma sequência de comandos executados com base em um determinado ponto de referência. Assim, quando você fez "DROP DATABASE", em vez de "Ah, ele está descartando o banco de dados, devemos fazer o backup agora apenas por precaução", apenas escreveu "DROP DATABASE" no último binlog. A recuperação não é tão simples quanto reproduzir a fita ao contrário.

O que você precisa fazer é recuperar o banco de dados de um último bem conhecido e aplicar os binlogs que ocorreram entre esse ponto de recuperação e o comando DROP.

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

Como alguém determina quais binlogs usar, não está claro.

Não há nada melhor do que ter backups completos do sistema de arquivos. E você deve pelo menos ter isso para recorrer.

Mahesh Patil
fonte
11
Não estou interessado em recuperar os dados que estavam lá, apenas que as métricas de desempenho possam ser coletadas / armazenadas novamente. A solução de Craig Efrein funcionou para esse fim.
Juniper X
-1. Os dados do esquema de desempenho não são replicados, não há nada no binlog para recuperar (e eles não existem no 5.0 de qualquer maneira).
Marc Alff