我在工作中必须完成的任务面临问题。 我有一个MySQL数据库,其中包含我公司的几个客户端的信息,我必须创建一个备份/恢复过程来为任何单个客户端备份和恢复此类信息。为了澄清,如果我的客户A丢失了他的数据,我必须能够恢复这些数据,确保我没有修改客户端B,C的数据...... 我不是数据库管理员,因此我不知道是否可以使用标准的mysql工具(例如mysqldump)或任何其他备份工具(例如Percona Xtrabackup)来执行此操作。
为了备份,我的研究(以及我的直觉)使我得出了这个可能的解决方案:
然后,在我必须恢复特定客户端的数据的情况下:
这样我相信我可以在不触及客户端B的数据的情况下恢复客户端A的正确数据。我的解决方案是否最终有效?有没有更好的方法来实现相同的结果?或者您是否需要有关我的问题的更多信息?
请原谅我,如果这个问题不是很好,但我是新来的,这是我的第一个问题,所以我可能会不高兴...无论如何都要感谢你的帮助。
注意:我们还将使用mysqldump备份整个数据库。
答案 0 :(得分:0)
您可以使用--where参数,您可以提供类似* client_id = N *的条件。当然,我正在做出一个假设,因为您没有提供有关架构的任何信息。
如果你有一个Star模式,那么你可以编写一个小脚本来备份所有查找表(考虑到它们足够小),使用这个参数--tables并使用 - where 客户数据表的条件。为了获得额外的性能,您可以使用client_id对表进行分区。