Postgresql Postgres跨多个磁盘分发数据

Postgresql Postgres跨多个磁盘分发数据,postgresql,Postgresql,我需要你的帮助来解决一个问题,因为我对博士后来说是个新手,阅读这些手册并没有帮助 我们有一台带有4个内部硬盘的服务器。我们已经创建了一个带有几个表的Postgres数据库。我们希望能够将数据分布在这4个磁盘上 我们希望指定加载到一组表中的数据应该分布在4个磁盘上的某个位置(例如表空间创建阶段) 你能告诉我们语法或者给我们指出正确的方向吗 在不同的磁盘上创建四个表空间(请参阅:) 将表的内容移动到表空间,以便使用ALTER TABLE foobar SET tablespace=foospace按

我需要你的帮助来解决一个问题,因为我对博士后来说是个新手,阅读这些手册并没有帮助

我们有一台带有4个内部硬盘的服务器。我们已经创建了一个带有几个表的Postgres数据库。我们希望能够将数据分布在这4个磁盘上

我们希望指定加载到一组表中的数据应该分布在4个磁盘上的某个位置(例如表空间创建阶段)

你能告诉我们语法或者给我们指出正确的方向吗

  • 在不同的磁盘上创建四个表空间(请参阅:)
  • 将表的内容移动到表空间,以便使用
    ALTER TABLE foobar SET tablespace=foospace
    按您的意愿分发数据,请参见此处:
  • 使用
    alter index idx\u foo set tablespace=spacefoo
    将表索引的内容移动到表空间,请参见此处:

  • 最好的方法是创建RAID-0或RAID-10阵列,并让操作系统为您处理。RAID-0没有冗余,因此任何单驱动器故障都是灾难性的。RAID-10允许任何一个磁盘发生故障,并以良好的性能保持正常工作。由于写性能非常差,请避免使用RAID-5或RAID-6。

    真的吗,为什么不直接使用RAID?RAID可能是解决此问题的好方法,但它并不能回答问题。也许他想在一个特定的磁盘上有特定的数据,比如把一个频繁使用的表放在快速磁盘上,其他什么都不放,所以这个磁盘只用于读写这个表。对不起,你错了。OP声明:我们希望指定加载到一组表中的数据应该分布在4个磁盘上的某个地方(例如表空间创建阶段)。注意,括号中的虚拟从句被认为是一种关于如何做的猜测。虽然使用表空间并没有冗余是很有可能做到这一点的,但对于99%的用户来说,更好的方法是将其全部放在一个大的RAID阵列上,因为这样所有的表都可以从综合速度和冗余中受益。吹毛求疵并没有真正的帮助。RAID5写性能差吗?你在做软件RAID吗?硬件RAID与RAID 5完美配合,您可以获得最佳的速度和空间。在4个磁盘上,您可以获得其中3个磁盘的写入速度,而在RAID10中,您最多可以获得2个磁盘的写入速度。新路径显示现在已使用78G,但原始分区上的磁盘使用率保持不变。如何回收原始空间?原来是真空吸尘器做的。然而,仅仅清空一个表本身并没有什么奇怪的地方。提交日志文件也会被移动吗?如果大多数数据都在同一个表中,这就没有帮助了,因为一个表只能使用一个表空间。