在EC2实例上移动Postgres表空间和表

时间:2010-08-20 19:55:13

标签: postgresql amazon-ec2 amazon-ebs tablespace

我在Amazon EC2实例上运行了postgres数据库。我创建的表空间很少 一些月度表,这样每个表都在单独的表空间上。为了获得最大性能,我在各个amazon ebs卷上创建了每个表空间。

我想将这些表中的一些移动到不同的实例和数据库。我将用一个例子来解释它。 让我们说。

  1. 我有如上所述的postgres设置的EC2实例A.

  2. 我有另一个亚马逊实例B正在运行,我也在其上安装了postgres。

  3. 我想为B上的A中的某些表创建相同的表结构。我想从实例A中分离卷并将其附加到实例B.

  4. 另外,我想在实例B上创建表空间,它将指向新连接的卷。

  5. 当我启动这个新创建的postgres时,我希望看到表中填充了这些卷(数据库)中的数据。

  6. 最后我将从A

  7. 中删除这些表格

    我知道我的写作生锈了,但找不到更好的方式来提问。

    这些方面的内容是否可行?是否有任何指针可以实现这样的目标?

1 个答案:

答案 0 :(得分:1)

没有

tablespace目录中的数据只是数据。您还需要pg_catalog模式中的表中的元数据,以及来自pg_clog和pg_xlog的信息来访问它。

如果要使用卷移动内容,则必须立即移动整个安装(所有表空间,包括pg_default)。否则,您需要使用pg_dump / pg_restore来传输数据。