我使用mySQL后端运行基于网络的在线游戏。每天都会对数百个持有用户数据的相关表执行许多写操作。
用户的帐户通常会受到损害。我希望能够将用户的数据恢复到攻击前的某个时间点,而不会影响任何其他用户数据。
我知道mySQL中的二进制日志记录,但据我所知,这是整个数据库恢复到某个时间点。我想要一个更细粒度的解决方案,即能够指定哪些表,哪些行等。 我该怎么办?什么是一般的最佳实践?
答案 0 :(得分:0)
MySQL(或我所知道的任何其他RDBMS)本身无法做到这一点。因此,您应该自己在应用程序层中实现它。
答案 1 :(得分:0)
这是(没有外部模块)。
正如评论中提到的那样,修订将是一个很好的解决方案。当您只需要使用userdata时,创建一个类似于具有附加时间戳或类似功能的usertable的表,并每周/每天运行一次cron作业/ ..复制最近修改过的用户数据(其他标记/日期在实际的用户表)到这个表中。
答案 2 :(得分:0)
如果您创建和使用审计表(通过触发器填充),您可以随时返回任何表中某个特定用户的数据。
请确保在需要之前编写常规还原脚本。将用户标识更容易放入已经可用的脚本中,而不是坐在那里查看审计表,我该怎么做呢。