Ich habe die Datenbank "performance_schema" von MySQL gelöscht. Wie kann ich sie erstellen?

10

Beim Beheben eines ibdata / log-Problems habe ich versehentlich meine performance_schemaDatenbank gelöscht . Ich möchte eine neue erstellen.

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)

Diese Variablen scheinen mir in Ordnung zu sein.

Die folgende Frage stellt dasselbe, jedoch kommt der Benutzer zu dem Schluss, dass er sie erstellen konnte, indem er der Dokumentation folgte, in der ich solche Anweisungen nicht finden konnte.

MySQL: Performance_Schema gelöscht, ist das ein Problem?

Irgendwelche Gedanken?

Wacholder X.
quelle

Antworten:

17

Tabellen in der Datenbank performance_schema sind eine Sammlung von Ansichten und temporären Tabellen, in denen Daten nicht dauerhaft gespeichert werden. Der Befehl mysql_upgrade stellt die Datenbank performance_schema wieder her

Aus der Schale

mysql_upgrade --user=root --password=password
Craig Efrein
quelle
2
Starten Sie den mysqlDienst danach neu! Es hat erst nach dem Neustart für mich funktioniert.
Caesarsol
-1

Es spielt darauf an, dass DROP DATABASE wiederhergestellt werden kann, aber nur unter ungewöhnlichen Bedingungen bin ich mit http://dev.mysql.com/doc/refman/5.0/en/binary-log.html nicht vertraut

Laut Docs sind Binlogs nur eine Folge von Befehlen, die basierend auf einem bestimmten Referenzpunkt ausgeführt werden. Wenn Sie also "DROP DATABASE" ausgeführt haben, anstatt "Oh, er lässt die Datenbank fallen, sollten wir jetzt nur für den Fall sichern", wurde lediglich eine "DROP DATABASE" in das letzte Binlog geschrieben. Die Wiederherstellung ist nicht so einfach wie das Rückwärtsspielen des Bandes.

Sie müssen lediglich die Datenbank von einem zuletzt bekannten Gut wiederherstellen und die Binlogs anwenden, die zwischen diesem Wiederherstellungspunkt und dem DROP-Befehl aufgetreten sind.

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

Wie man bestimmt, welche Binlogs verwendet werden sollen, ist unklar.

Es gibt nichts Besseres als vollständige Dateisystemsicherungen. Und Sie sollten zumindest diese haben, auf die Sie zurückgreifen können.

Mahesh Patil
quelle
1
Ich bin nicht daran interessiert, die dort vorhandenen Daten wiederherzustellen, sondern nur, dass die Leistungsmetriken erneut erfasst / gespeichert werden können. Die Lösung von Craig Efrein funktionierte für diesen Zweck.
Juniper X
-1. Die Leistungsschemadaten werden nicht repliziert, es gibt nichts im Binlog, das wiederhergestellt werden kann (und es ist in 5.0 sowieso nicht vorhanden).
Marc Alff