1

我正在开发基于 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,但没有分区经验

4

1 回答 1

0

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

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

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

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

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

于 2013-11-06T14:50:27.423 回答