Детальная восстанавливаемость данных базы данных MySQL с точностью до минуты - PullRequest
0 голосов
/ 31 декабря 2010

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

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

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

Ответы [ 3 ]

0 голосов
/ 31 декабря 2010

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

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

0 голосов
/ 31 декабря 2010

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

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

0 голосов
/ 31 декабря 2010

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

...