使用stream式复制更改表上的表空间

我一直在寻找答案一段时间知道,但找不到任何可靠的来源。

我们有2个使用stream式复制复制的postgres服务器。 我现在需要将一些表移动到不同的表空间(驻留在不同的卷上),这将是一个不费吹灰之力,但我不知道这将如何传播到奴隶。

我需要在从服务器上做相同的更改,因为它具有相同的磁盘设置,但是我不确定是否需要在从服务器上预先创build表空间(如果直接由复制进行处理),或者如果需要在slave上运行相同的alter语句(但它是只读的,我不知道是否允许)。

或者,我需要做一个新的基础备份,并在这个改变后从零开始设置复制?

至less在版本9.4中,备用服务器上需要存在相同的文件系统path。 从http://www.postgresql.org/docs/9.4/static/warm-standby.html#STANDBY-PLANNING

“特别是,与表空间相关的path名将会在未经修改的情况下传递,因此,如果使用该function,主服务器和备用服务器必须具有相同的表空间安装path。请记住,如果在主服务器上执行CREATE TABLESPACE,在命令执行之前,必须在主服务器和所有备用服务器上创build新的挂载点。“