質問

私は OCD の人です。mysql に誤って何かを落としてしまったようです。

問題は、データベースが約 50 個あり、すべてを手動でチェックできないことです:(

このような変更を確認する方法はありますか?/var/lib/mysql のタイムスタンプを見ようとしましたが、役に立ちませんでした。ディレクトリのタイムスタンプを見ていました。

私も実行しました:

SELECT table_schema,table_name,update_time FROM information_schema.tables WHERE update_time > (NOW() - INTERVAL 1 day)

過去数秒間に変更されたデータベースのみを返しました。

役に立ちましたか?

解決

information_schema.tables テーブルで苦労した結果、最終的に問題の答えを発見しました。InnoDB では更新時間が機能しません。ポイントを見る ここ a.out と ajacian81 による。

これを行う唯一の方法は実装することです ロギングテーブル (MySQL/データベースの専門家である Bill Karwin が提案したものです)。

他に思いつくことは、バックアップを使用し、diff プログラムを使用して、現在のデータベースとバックアップ データベースからのクエリのテキスト出力を比較することです。ひどいことだとは思いますが、重要な場合にこれを実行できるツールがあります。MySQL 独自のもの (MySQLdiff - ユーティリティ内) があるので、試してみることができます リキベース または 飛び去る (この機能があると思います) または Google "データベース diff プログラム mysql".

これも見つけました 役職 information_schema テーブルが動的であることを理解するのに役立ちます。

たぶん私も少しOCD気味です(これを手放すことはできません!):-) ) でも、私も見つけました このスレッド - Jacket による回答をチェックしてください - この機能が本当に必要な場合は、Percona が最適な方法かもしれません。ただし、特定の状況では明らかに遅すぎます。それはあなたのバックアップだと思います:-(。

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top