PostgreSQL:当磁盘已满时扩展数据库存储

Jac*_*kie 7 postgresql ubuntu

我有一个数据库,磁盘存储空间大约为 60GB。并且不再插入到数据库中。
我已经阅读了有关表空间链接的文档,但这就像为新表创建空间,而我想继续插入到现有表中。有人可以帮我吗?

另外,PostgreSQL数据库最大是64TB,所以我们必须连接很多硬盘才能达到64TB,那么解决方案可以适用于这种情况(很多连接的硬盘或共享存储,我不知道怎么说)

提前致谢!

PS:我正在 ubuntu 12.04 LTS 上使用 postgreSQL 9.2

Cra*_*ger 6

PostgreSQL 不支持直接跨多个表空间跨单个表。

您可以使用表分区来创建一个“主”表,子表位于不同的表空间。这有点棘手,这意味着您不能使用外键或对主键强制执行适当的唯一约束,因此它通常不是首选选项。

更实用的选择通常是使用逻辑卷管理器、RAID 系统或类似的方法将多个物理磁盘跨越到单个卷中,并在其上放置一个文件系统。然后 PostgreSQL 就像其他任何东西一样使用它,不需要关心。在 Linux 上,这可能意味着 LVM、mdraid0 模式下的软件 RAID 驱动程序btrfs,或各种其他选项。大多数(所有)这些都需要您构建一个新的文件系统,然后将 PostgreSQL 数据库移动到它上面,您无法将直接位于分区顶部的常规文件系统转换为 raid 卷/逻辑卷等。

请注意,如果附加存储是可移动的,则这些选项都不安全。如果删除包含表空间的磁盘,或者删除部分逻辑卷或跨域突袭,您的整个数据库将无法访问。如果您丢失了磁盘/卷或其数据,整个数据库将无法恢复。