22

我需要您的帮助来解决问题,因为我对 Postgres 还很陌生,阅读手册并没有帮助。

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

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

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

4

2 回答 2

31
  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
于 2012-06-27T14:29:49.283 回答
9

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

于 2012-06-27T15:25:18.653 回答