Postgres跨多个磁盘分发数据

时间:2012-06-27 14:18:26

标签: postgresql

我需要你的帮助才能解决问题,因为我对Postgres还不熟悉并且阅读手册并没有帮助。

我们有一台带有4个内部硬盘的服务器。我们创建了一个包含几个表的Postgres数据库。我们希望能够在这4个磁盘上传播我们的数据。

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

您能否给我们语法或指出正确的方向?

2 个答案:

答案 0 :(得分:26)

  1. 在不同磁盘上创建四个表空间(请参阅:http://www.postgresql.org/docs/current/static/sql-createtablespace.html
  2. 将表的内容移动到表空间,以便在您打算使用ALTER TABLE foobar SET tablespace = foospace时分发数据,请参阅此处:http://www.postgresql.org/docs/current/static/sql-altertable.html
  3. 使用alter index idx_foo set tablespace = spacefoo将表格索引的内容移至表格空间,请参阅此处:http://www.postgresql.org/docs/current/static/sql-alterindex.html

答案 1 :(得分:7)

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