gpt4 book ai didi

mysql - 在 MySQL 或 PostgreSQL 中维护每个项目的大型备份目录表的策略

转载 作者:行者123 更新时间:2023-11-29 14:00:58 24 4
gpt4 key购买 nike

我正在开发基于 gnu tar 的 LTO 备份/恢复解决方案。我们要么将磁带保留在内部,要么客户可能会从我们这里购买这些备份。因此,选择广泛可用的免费解决方案而不是特定的备份解决方案。因为我们不知道客户可能有什么类型的备份解决方案。

要备份的数据很容易超过几百万个文件,我需要为这些文件创建目录以进行文件级恢复。此外,对于同一个项目,我们可以有多个备份集,跨越多年的工作(客户可能今年开始一个项目,需要一个备份,2 年后,回来做更多的工作。所以需要一个新的备份)

由于目录表将在短短几个月内增长非常大,我需要考虑如何管理这个表。我认为分区可以帮助我解决这个问题。但是分区(或任何其他解决方案)不应基于日期,而应基于项目。恐怕随着时间的推移,分区的数量可能会成为一个问题。

数据库表结构是这样的:

  • 项目(id、名称等...)
  • 工作(id、jobname、project_id 等...)
  • 磁带(id,条形码,...)
  • job_tape_lnk(job_id,tape_id)
  • 卷(id、卷名、tape_id)
  • 目录(id、volume_id、文件名、....)

我想按项目对表目录进行分区。这可行吗?还是我需要考虑另一种构建数据的方法?我可以使用 MySQL 或 PostgreSQL,但没有分区方面的实际经验

最佳答案

一般来说,在 PostgreSQL 中,表分区有助于某些类型的批量操作。我认为这些不适用于您,所以我会提及一些其他事情。

  1. 部分索引。例如,您可以通过为它们提供自己的索引来提升特别大的项目。在大多数工作负载中,这可能至少与表分区一样好。

  2. 仔细检查您的硬件。我不能在这里提供细节,因为你没有提到足够的细节来帮助那里。

  3. 如果您需要,愿意研究更复杂的解决方案,例如如果您的写入负载增长太大,则使用 Postgres-XC。

  4. 如果遇到困难,愿意寻求外部帮助。

关于mysql - 在 MySQL 或 PostgreSQL 中维护每个项目的大型备份目录表的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18012469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com