0

私は、mySQL バックエンドを使用して Web ベースのオンライン ゲームを運営しています。毎日、ユーザー データを保持する何百もの関連テーブルに対して多くの書き込みが実行されます。

多くの場合、ユーザーのアカウントが危険にさらされます。他のユーザー データに影響を与えることなく、ユーザーのデータを攻撃前の特定の時点に復元する機能が必要です。

私は mySQL のバイナリ ロギングを認識していますが、私が知る限り、これは特定の時点までのデータベース全体の回復です。より詳細なソリューション、つまり、どのテーブル、どの行などを指定できるようにしたいのですが、何を調べる必要がありますか? 一般的なベストプラクティスは何ですか?

4

3 に答える 3

0

(トリガーを介して入力された)監査テーブルを作成して使用すると、任意のテーブル内の特定の1人のユーザーのデータにいつでも戻ることができます。

ただし、必要になる前に、必ず一般的な復元スクリプトを作成してください。すでに利用可能なスクリプトにユーザーIDを入力する方が、監査テーブルを確認するよりもはるかに簡単です。これをもう一度行うにはどうすればよいですか。

于 2010-12-31T19:34:03.840 に答える
0

これは (外部モジュールなしでは) 不可能です。

コメントのthejhが示唆したように、改訂は良い解決策です。ユーザーデータのみを操作する必要がある場合は、タイムスタンプなどを追加したユーザーテーブルに似たテーブルを作成し、最近変更されたユーザーデータをコピーする cron ジョブを週/日/.. に 1 回実行します (実際のユーザー テーブル) をこのテーブルに挿入します。

于 2010-12-31T18:58:00.187 に答える
0

MySQL (または私が認識しているその他の RDBMS) は、単独ではそれを行うことができません。したがって、アプリケーション層でそれを自分で実装する必要があります。

于 2010-12-31T18:43:40.920 に答える