Назад | Перейти на главную страницу

Изменение табличного пространства на таблице с потоковой репликацией

Я искал ответы некоторое время, но не могу найти надежного источника.

У нас есть 2 сервера postgres, которые реплицируются с использованием потоковой репликации. Теперь мне нужно переместить некоторые таблицы в другое табличное пространство (находящееся на другом томе), что было бы несложно, но я понятия не имею, как это будет распространяться на ведомое устройство.

Мне нужно сделать то же изменение на ведомом устройстве, потому что он имеет идентичную настройку диска, но я не уверен, нужно ли мне заранее создать табличное пространство на ведомом устройстве (и если оно обрабатывается непосредственно репликацией) или мне нужно чтобы запустить тот же оператор alter на ведомом устройстве (но он доступен только для чтения, и я не знаю, разрешено ли это).

ИЛИ, мне нужно сделать новую базовую резервную копию и настроить репликацию с нуля после этого изменения?

По крайней мере, для версии 9.4 идентичный путь файловой системы должен существовать на резервном сервере (ах). Из http://www.postgresql.org/docs/9.4/static/warm-standby.html#STANDBY-PLANNING:

"В частности, имена путей, связанных с табличными пространствами, будут передаваться через немодифицированные, поэтому как основной, так и резервный серверы должны иметь одинаковые пути монтирования для табличных пространств, если эта функция используется. Имейте в виду, что если CREATE TABLESPACE выполняется на основном сервере, любой перед выполнением команды необходимо создать новую точку монтирования на основном и всех резервных серверах ».