MySQLの `performance_schema`データベースを削除しました。どのように作成できますか?


10

ibdata / logの問題を修正しているときに、誤ってperformance_schemaデータベースを削除してしまいました。新しいデータベースを作成したいと思います。

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)

これらの変数は私には問題ないようです。

次の質問は同じことを尋ねますが、ユーザーは、そのような指示を見つけることができなかったドキュメントに従うことで作成できたと結論付けています。

mysql:performance_schemaを削除しました。問題ですか?

何かご意見は?

回答:


17

performance_schemaデータベースのテーブルは、データを永続的に保存しないビューと一時テーブルのコレクションです。mysql_upgradeコマンドのコマンドはperformance_schemaデータベースを復元します

シェルから

mysql_upgrade --user=root --password=password

2
mysqlこれを実行した後、サービスを再起動してください!それは私のために再起動した後にのみ機能しました。
caesarsol 2015年

-1

DROP DATABASEが回復可能であることを示唆していますが、奇妙な状況でのみ、http://dev.mysql.com/doc/refman/5.0/en/binary-log.htmlに精通していません。

ドキュメントによると、binlogは特定の参照ポイントに基づいて実行される一連のコマンドにすぎません。そのため、「DROP DATABASE」を実行したときに、「ああ、データベースをドロップしているので、念のためバックアップしてください」というのは、「DROP DATABASE」を最後のバイナリログに書き込んだだけです。リカバリは、テープを逆再生するほど簡単ではありません。

あなたがする必要があるのは、最新の既知の状態からデータベースを回復し、その回復ポイントとDROPコマンドの間に発生したバイナリログを適用することです。

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

どのビンログを使用するかを決定する方法は不明です。

ファイルシステム全体のバックアップを作成することよりも優れた方法はありません。そして、少なくともこれらをフォールバックする必要があります。


1
そこにあったデータの回復には興味がありません。パフォーマンスメトリックを再度収集/保存できるということだけです。Craig Efreinのソリューションはこの目的のために機能しました。
ジュニパーX 14年

-1。パフォーマンススキーマデータは複製されません。binlogには回復するものがありません(とにかく5.0には存在しません)。
マークアルフ2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.