MySQL从服务器备份数据库

时间:2018-04-14 16:53:47

标签: mysql spring

我在Spring编写了一个Web应用程序的后端,它使用AWS RDS实例上的MySQL数据库来跟踪用户数据。现在,SQL表由用户组分隔(只是列中的值),因此不同的组具有不同的数据访问权限。每当使用该应用程序的人执行某项操作时,我们都希望备份他们可以在以后查看的数据库部分,或者如果需要,可以替换当前分支中的数据。

我能弄清楚如何执行此操作的唯一方法是为每个备份创建每个表的单独副本,并保留另一个表以跟踪表的所有名称。这感觉非常不优雅和劳动密集。

到目前为止,我在数据库上执行的所有操作都是来自服务器的SQL查询,我希望与此保持一致。

有什么好方法可以做我需要的吗?

1 个答案:

答案 0 :(得分:0)

为什么要为每个备份分别使用一个表?您可以拥有一个镜像主表的表,但有一些其他字段可以记录有关更改的一些元数据,例如创建它的人,时间戳以及更新或删除的更改类型。无论何时进行更改,只需将旧值复制到此表,然后您就可以获得记录状态随时间的完整历史记录。您仍然可以通过保留该列来强制执行基于组的访问。

至于使用查询完成所有这些操作,您需要一些查看或恢复这些存档的更改,但维护存档记录的最简单方法肯定是在主表上创建TRIGGERS。如果您添加BEFORE UPDATE和BEFORE DELETE TRIGGERS,则每次更新或删除记录时,这些都可以将每个记录的旧版本复制到存档(并同时添加元数据)。

相关问题