繁体   English   中英

MySQL从服务器备份数据库片段

[英]MySQL backup pieces of the database from a server

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

我能弄清楚如何做到这一点的唯一方法是为每个备份创建每个表的单独副本,并保留另一个表来跟踪表的所有名称。 这感觉非常繁琐且劳动强度大。

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

有什么好方法可以满足我的需求吗?

为什么要为每个备份使用单独的表? 您可以有一个与主表相同的表,但有一些其他字段来记录有关更改的一些元数据,例如进行更改的人员,时间戳和更改类型,即更新还是删除。 每次进行更改时,只需将旧值复制到该表中,随时间推移,您将拥有记录状态的完整历史记录。 您仍然可以通过保留该列来实施基于组的访问。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM