2010-12-31 1 views
0

Я управляю сетевой онлайн-игрой с бэкэнд mySQL. Каждый день многие записи выполняются против сотен связанных таблиц, содержащих данные пользователя.Гранулярная возможность восстановления данных mySQL с точностью до минуты

Часто учетная запись пользователя будет скомпрометирована. Я хотел бы, чтобы восстановить данные пользователя в определенный момент времени до атаки, не затрагивая никаких других пользовательских данных.

Мне известно о двоичном входе в mySQL, но насколько я знаю, это восстановление всей базы данных до определенного момента времени. Я хотел бы получить более гранулированное решение, то есть указать конкретные таблицы, строки и т. Д. На что я должен смотреть? Каковы общие рекомендации?

+0

Не могли бы вы реализовать какие-то изменения данных самостоятельно? Как в Википедии. – thejh

ответ

0

Если вы создаете и используете таблицы аудита (заполненные триггерами), вы всегда можете вернуться к данным для одного конкретного пользователя в любой таблице.

Обязательно напишите свой общий скрипт восстановления, прежде чем он понадобится. Намного проще вставить идентификатор пользователя в скрипт, который у вас уже есть, чем сидеть там, глядя на таблицы аудита, как это сделать снова.

0

MySQL (или любая другая СУБД, о которой я знаю) не может это сделать сам по себе. Поэтому вы должны реализовать это самостоятельно в своем прикладном уровне.

0

Это (без внешних модулей) невозможно.

Как и в предлагаемых комментариях, исправления были бы хорошим решением. Когда вам нужно только работать с пользовательскими данными, создайте таблицу, которая будет похожа на пользовательскую с дополнительной отметкой времени или аналогичной, и запустите задание cron один раз в неделю/день/.., который копирует пользовательские данные, которые были недавно изменены (дополнительные флаги/даты в фактическая таблица пользователей) в эту таблицу.

 Смежные вопросы

  • Нет связанных вопросов^_^