CREATE SUBSCRIPTION
CREATE SUBSCRIPTION â ÑоздаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑкÑ
СинÑакÑиÑ
CREATE SUBSCRIPTIONимÑ_подпиÑкиCONNECTION 'ÑÑÑока_подклÑÑениÑ' PUBLICATIONимÑ_пÑбликаÑии[, ...] [ WITH (паÑамеÑÑ_подпиÑки[=знаÑение] [, ... ] ) ]
ÐпиÑание
CREATE SUBSCRIPTION ÑоздаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÐºÑ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии. ÐÐ¼Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки должно оÑлиÑаÑÑÑÑ Ð¾Ñ Ð¸Ð¼Ñн дÑÑгиÑ
ÑÑÑеÑÑвÑÑÑиÑ
подпиÑок в ÑекÑÑей базе.
ÐодпиÑка пÑедÑÑавлÑÐµÑ Ñобой ÑеплиÑиÑÑÑÑее подклÑÑение к пÑбликÑÑÑÐµÐ¼Ñ ÑеÑвеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð´Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° не ÑолÑко добавлÑÐµÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки в локалÑнÑе каÑалоги, но Ñакже ÑоздаÑÑ ÑÐ»Ð¾Ñ ÑепликаÑии на ÑдалÑнном ÑеÑвеÑе.
Ð Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑикÑаÑии ÑÑанзакÑии, в ÑÐ°Ð¼ÐºÐ°Ñ ÐºÐ¾ÑоÑой вÑполнÑеÑÑÑ ÑÑа команда, бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑен ÑабоÑий пÑоÑеÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии, еÑли подпиÑка ÑоздаÑÑÑÑ Ð½Ðµ в оÑклÑÑÑнном ÑоÑÑоÑнии.
ÐополниÑелÑнÑе ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ подпиÑÐºÐ°Ñ Ð¸ логиÑеÑкой ÑепликаÑии в Ñелом можно найÑи в Разделе 29.2 и Ðлаве 29.
ÐаÑамеÑÑÑ
имÑ_подпиÑкиÐÐ¼Ñ Ð½Ð¾Ð²Ð¾Ð¹ подпиÑки.
CONNECTION 'ÑÑÑока_подклÑÑениÑ'СÑÑока подклÑÑÐµÐ½Ð¸Ñ libpq, опÑеделÑÑÑаÑ, как подклÑÑаÑÑÑÑ Ðº базе даннÑÑ Ð¿ÑбликаÑии. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 33.1.1.
PUBLICATIONимÑ_пÑбликаÑии[, ...]Ðмена пÑбликаÑий на пÑбликÑÑÑем ÑеÑвеÑе, на коÑоÑÑе оÑоÑмлÑеÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñка.
WITH (паÑамеÑÑ_подпиÑки[=знаÑение] [, ... ] )Ð ÑÑом пÑедложении задаÑÑÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑе паÑамеÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки.
СледÑÑÑие паÑамеÑÑÑ Ð¾Ð¿ÑеделÑÑÑ, как бÑÐ´ÐµÑ ÑоздаваÑÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñка:
connect(boolean)ÐпÑеделÑеÑ, нÑжно ли пÑи вÑполнении
CREATE SUBSCRIPTIONподклÑÑаÑÑÑÑ Ðº пÑбликÑÑÑÐµÐ¼Ñ ÑеÑвеÑÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âtrue. ÐÑли ÑавнÑеÑÑÑfalse, паÑамеÑÑÑcreate_slot,enabledиcopy_dataÑоже пÑинимаÑÑ Ð·Ð½Ð°Ñениеfalse. (ÐнаÑениеfalseпаÑамеÑÑаconnectнеÑовмеÑÑимо Ñо знаÑениемtrueпаÑамеÑÑовcreate_slot,enabledиcopy_data.)Так как Ñо знаÑением
falseÑоединение не ÑÑÑанавливаеÑÑÑ, подпиÑка на ÑаблиÑÑ Ð½Ðµ оÑоÑмлÑеÑÑÑ, Ñак ÑÑо поÑле вклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки ниÑего не бÑÐ´ÐµÑ ÑеплиÑиÑоваÑÑÑÑ. ЧÑÐ¾Ð±Ñ ÑаблиÑÑ Ð²Ð¾Ñли в подпиÑкÑ, позже вам поÑÑебÑеÑÑÑ Ð²ÑполниÑÑALTER SUBSCRIPTION ... REFRESH PUBLICATION.create_slot(boolean)ÐпÑеделÑеÑ, должна ли команда ÑоздаваÑÑ ÑÐ»Ð¾Ñ ÑепликаÑии на пÑбликÑÑÑем ÑеÑвеÑе. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
true. УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ Ð·Ð½Ð°Ñениеfalse, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑдеÑе Ñами ÑоздаÑÑ ÑÐ»Ð¾Ñ Ð½Ð° пÑбликÑÑÑем ÑеÑвеÑе дÑÑгим ÑпоÑобом.enabled(boolean)ÐпÑеделÑеÑ, акÑивиÑоваÑÑ Ð»Ð¸ ÑепликаÑÐ¸Ñ Ð² подпиÑке, или ÐµÑ Ð½Ñжно ÑолÑко наÑÑÑоиÑÑ, но не запÑÑкаÑÑ ÑÑазÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
true.slot_name(string)ÐÐ¼Ñ ÑлоÑа ÑепликаÑии на пÑбликÑÑÑем ÑеÑвеÑе, коÑоÑое должно иÑполÑзоваÑÑÑÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð² каÑеÑÑве имени ÑлоÑа иÑполÑзÑеÑÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки.
Ðогда в каÑеÑÑве
slot_nameзадаÑÑÑÑNONE, Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñкой не бÑÐ´ÐµÑ ÑвÑзан ÑÐ»Ð¾Ñ ÑепликаÑии. ÐÑполÑзÑйÑе ÑÑо знаÑение, еÑли бÑдеÑе ÑоздаваÑÑ ÑÐ»Ð¾Ñ ÑепликаÑии позднее вÑÑÑнÑÑ. У ÑÐ°ÐºÐ¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñок Ñакже Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑавнÑfalseÑвойÑÑваenabledиcreate_slot.
СледÑÑÑие паÑамеÑÑÑ ÑпÑавлÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ ÑепликаÑии подпиÑки поÑле ÐµÑ ÑозданиÑ:
binary(boolean)ÐпÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ подпиÑки запÑаÑиваÑÑÑÑ Ð¿ÐµÑедаÑа даннÑÑ Ð² двоиÑном (а не в ÑекÑÑовом) виде. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
false. Ðаже еÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²ÐºÐ»ÑÑÑн, в двоиÑном виде бÑдÑÑ Ð¿ÐµÑедаваÑÑÑÑ ÑолÑко Ñе ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ , Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ñ ÑÑнкÑии двоиÑного полÑÑениÑ/оÑпÑавки.ÐÑи ÑепликаÑии Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑами ÑазнÑÑ Ð²ÐµÑÑий возможна ÑиÑÑаÑиÑ, когда Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑого Ñипа на ÑÑоÑоне пÑбликаÑии бÑÐ´ÐµÑ Ð¾Ð¿Ñеделена ÑÑнкÑÐ¸Ñ Ð´Ð²Ð¾Ð¸Ñной оÑпÑавки, а на ÑÑоÑоне подпиÑки не бÑÐ´ÐµÑ ÑооÑвеÑÑÑвÑÑÑей ÑÑнкÑии двоиÑного полÑÑениÑ. Ð Ñакой ÑиÑÑаÑии пеÑедаÑа даннÑÑ Ð±ÑÐ´ÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°, и паÑамеÑÑ
binaryиÑполÑзоваÑÑ Ð½ÐµÐ»ÑзÑ.copy_data(boolean)ÐпÑеделÑеÑ, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð»Ð¸ копиÑоваÑÑÑÑ Ñже ÑÑÑеÑÑвÑÑÑие даннÑе в пÑбликаÑиÑÑ , на коÑоÑÑе оÑоÑмлÑеÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñка, ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле наÑала ÑепликаÑии. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
true.ÐÑедложениÑ
WHERE, ÑодеÑжаÑиеÑÑ Ð² пÑбликаÑиÑÑ , влиÑÑÑ Ð½Ð° Ñо, какие даннÑе бÑдÑÑ ÑкопиÑованÑ. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐамеÑаниÑ.streaming(boolean)ÐпÑеделÑеÑ, вклÑÑаÑÑ Ð»Ð¸ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ подпиÑки пеÑедаÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ еÑÑ Ð²ÑполнÑÑÑÐ¸Ñ ÑÑ ÑÑанзакÑий. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð°Ñ ÑÑанзакÑÐ¸Ñ ÑнаÑала Ñеликом декодиÑÑеÑÑÑ Ð½Ð° ÑÑоÑоне пÑбликаÑии, и ÑолÑко заÑем пеÑедаÑÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑÐ¸ÐºÑ ÐºÐ°Ðº единое Ñелое.
synchronous_commit(enum)ÐнаÑение ÑÑого паÑамеÑÑа пеÑеопÑеделÑÐµÑ ÑвойÑÑво synchronous_commit Ð´Ð»Ñ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, пÑименÑÑÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ подпиÑки. Ðо ÑмолÑÐ°Ð½Ð¸Ñ â
off.ÐнаÑение
offбезопаÑно Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии: еÑли подпиÑÑик поÑеÑÑÐµÑ ÑÑанзакÑии из-за наÑÑÑÐµÐ½Ð¸Ñ ÑÐ¸Ð½Ñ ÑонизаÑии, даннÑе бÑдÑÑ Ð¿Ð¾Ð²ÑоÑно пеÑÐµÐ´Ð°Ð½Ñ Ñ Ð¿ÑбликÑÑÑего ÑеÑвеÑа.ÐÑи вÑполнении ÑÐ¸Ð½Ñ Ñонной логиÑеÑкой ÑепликаÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑмеÑÑно дÑÑгое знаÑение. РабоÑие пÑоÑеÑÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии пеÑедаÑÑ Ð¿Ð¾Ð·Ð¸Ñии запиÑаннÑÑ Ð¸ ÑÐ¾Ñ ÑанÑннÑÑ Ð½Ð° диÑке даннÑÑ Ð¿ÑбликÑÑÑÐµÐ¼Ñ ÑеÑвеÑÑ, Ñак ÑÑо пÑи ÑÐ¸Ð½Ñ Ñонной ÑепликаÑии он бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑÐ¾Ñ ÑанениÑ. ÐÑо знаÑиÑ, ÑÑо знаÑение
offпаÑамеÑÑаsynchronous_commitна подпиÑÑике Ð¼Ð¾Ð¶ÐµÑ ÑвелиÑиÑÑ Ð·Ð°Ð´ÐµÑÐ¶ÐºÑ Ð¿Ñи вÑполненииCOMMITна ÑеÑвеÑе пÑбликаÑии. ÐÑи Ñаком ÑÑенаÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñгоднее задаÑÑ Ð´Ð»Ñsynchronous_commitзнаÑениеlocalили вÑÑе.two_phase(boolean)ÐпÑеделÑеÑ, вклÑÑаеÑÑÑ Ð»Ð¸ двÑÑ ÑÐ°Ð·Ð½Ð°Ñ ÑикÑаÑÐ¸Ñ Ð´Ð»Ñ ÑÑой подпиÑки. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
false.Ðогда двÑÑ ÑÐ°Ð·Ð½Ð°Ñ ÑикÑаÑÐ¸Ñ Ð²ÐºÐ»ÑÑена, подгоÑовленнÑе ÑÑанзакÑии оÑпÑавлÑÑÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑÐ¸ÐºÑ Ð²Ð¾ вÑемÑ
PREPARE TRANSACTIONи Ñакже обÑабаÑÑваÑÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑиком как двÑÑ ÑазнÑе ÑÑанзакÑии. РпÑоÑивном ÑлÑÑае подгоÑовленнÑе ÑÑанзакÑии оÑпÑавлÑÑÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑÐ¸ÐºÑ ÑолÑко поÑле ÑикÑаÑии, а заÑем немедленно обÑабаÑÑваÑÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑиком.РеализаÑÐ¸Ñ Ð´Ð²ÑÑ Ñазной ÑикÑаÑии ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑоÑедÑÑа ÑепликаÑии ÑÑпеÑно завеÑÑила наÑалÑнÑÑ ÑÐ°Ð·Ñ ÑÐ¸Ð½Ñ ÑонизаÑии ÑаблиÑ. Таким обÑазом, даже еÑли Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки вклÑÑÑн паÑамеÑÑ
two_phase, внÑÑÑенним ÑоÑÑоÑнием двÑÑ Ñазной ÑикÑаÑии вÑеменно оÑÑаÑÑÑÑ Â«Ð² ожидании», пока не завеÑÑиÑÑÑ Ñаза иниÑиализаÑии. ФакÑиÑеÑкое ÑоÑÑоÑние двÑÑ Ñазной ÑикÑаÑии можно ÑвидеÑÑ Ð² ÑÑолбÑеsubtwophasestateвpg_subscription.disable_on_error(boolean)ÐпÑеделÑеÑ, ÑледÑÐµÑ Ð»Ð¸ авÑомаÑиÑеÑки оÑклÑÑаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑкÑ, еÑли ÑабоÑие пÑоÑеÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑика обнаÑÑÐ¶Ð°Ñ ÐºÐ°ÐºÐ¸Ðµ-либо оÑибки пÑи ÑепликаÑии даннÑÑ Ð¿ÑбликаÑии. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
false.
ÐамеÑаниÑ
ÐодÑобнее о Ñом, как оÑганизоваÑÑ ÑпÑавление доÑÑÑпом подпиÑÑиков к пÑбликÑÑÑÐµÐ¼Ñ ÑеÑвеÑÑ, ÑаÑÑказÑваеÑÑÑ Ð² Разделе 29.9.
ÐÑи Ñоздании ÑлоÑа ÑепликаÑии (поведение по ÑмолÑаниÑ) CREATE SUBSCRIPTION нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð²Ð½ÑÑÑи блока ÑÑанзакÑии.
Создание подпиÑки Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑением к ÑÐ¾Ð¼Ñ Ð¶Ðµ клаÑÑеÑÑ Ð±Ð°Ð· даннÑÑ
(напÑимеÑ, Ð´Ð»Ñ Ð¾ÑганизаÑии ÑепликаÑии Ð¼ÐµÐ¶Ð´Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ даннÑÑ
в одном клаÑÑеÑе или в одной базе даннÑÑ
) бÑÐ´ÐµÑ ÑÑпеÑнÑм, ÑолÑко еÑли ÑÐ»Ð¾Ñ ÑепликаÑии не ÑоздаÑÑÑÑ Ñой же командой. РпÑоÑивном ÑлÑÑае команда CREATE SUBSCRIPTION завиÑнеÑ. ЧÑÐ¾Ð±Ñ Ð¾ÑоÑмиÑÑ ÑакÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑкÑ, ÑÐ»Ð¾Ñ ÑепликаÑии нÑжно ÑоздаÑÑ Ð¾ÑделÑно (воÑполÑзовавÑиÑÑ ÑÑнкÑией pg_create_logical_replication_slot и пеÑедав ей Ð¸Ð¼Ñ Ð¼Ð¾Ð´ÑÐ»Ñ pgoutput) и ÑоздаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÐºÑ Ñ Ð¿Ð°ÑамеÑÑом create_slot = false. ÐÑо огÑаниÑение ÑеализаÑии, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑÑанено в бÑдÑÑем вÑпÑÑке.
ÐÑли Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð¹-либо ÑаблиÑÑ Ð² пÑбликаÑии Ñказано пÑедложение WHERE, ÑÑÑоки, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
вÑÑажение вÑдаÑÑ Ð·Ð½Ð°Ñение false или null, не бÑдÑÑ Ð¿ÑбликоваÑÑÑÑ. Ðогда в подпиÑке еÑÑÑ Ð½ÐµÑколÑко пÑбликаÑий, в коÑоÑÑÑ
одна и Ñа же ÑаблиÑа опÑбликована Ñ ÑазнÑми пÑедложениÑми WHERE, ÑÑÑока бÑÐ´ÐµÑ Ð¾Ð¿Ñбликована, еÑли вÑполнÑеÑÑÑ Ð»Ñбое из вÑÑажений (оÑноÑÑÑееÑÑ Ðº ÑÑой опеÑаÑии пÑбликаÑии). Ð ÑлÑÑае неодинаковÑÑ
пÑедложений WHERE, еÑли в одной из пÑбликаÑий Ð½ÐµÑ Ð¿ÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ WHERE (оÑноÑÑÑегоÑÑ Ðº ÑÑой опеÑаÑии пÑбликаÑии) или пÑбликаÑÐ¸Ñ Ð¾Ð±ÑÑвлена как FOR ALL TABLES или FOR TABLES IN SCHEMA, ÑÑÑоки вÑегда пÑбликÑÑÑÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо Ð¾Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´ÑÑгиÑ
вÑÑажений. ÐÑли на ÑÑоÑоне подпиÑÑика иÑполÑзÑеÑÑÑ Ð²ÐµÑÑÐ¸Ñ Postgres Pro ниже 15, на ÑÑапе наÑалÑной ÑинÑ
ÑонизаÑии даннÑÑ
вÑе ÑилÑÑÑÑ ÑÑÑок игноÑиÑÑÑÑÑÑ. Ð ÑÑом ÑлÑÑае ÑледÑÐµÑ ÑаÑÑмоÑÑеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑдалиÑÑ Ð²Ñе изнаÑалÑно ÑкопиÑованнÑе даннÑе, коÑоÑÑе бÑдÑÑ Ð½ÐµÑовмеÑÑÐ¸Ð¼Ñ Ñ ÑилÑÑÑами впоÑледÑÑвии. Так как пÑи пеÑвонаÑалÑной ÑинÑ
ÑонизаÑии даннÑÑ
паÑамеÑÑ Ð¿ÑбликаÑии publish не ÑÑиÑÑваеÑÑÑ, пÑи копиÑовании ÑÑÑеÑÑвÑÑÑиÑ
даннÑÑ
могÑÑ Ð±ÑÑÑ ÑкопиÑÐ¾Ð²Ð°Ð½Ñ ÑÑÑоки, коÑоÑÑе не бÑли Ð±Ñ ÑеплиÑиÑÐ¾Ð²Ð°Ð½Ñ Ð¿Ñи вÑполнении опеÑаÑий DML. ÐÑимеÑÑ Ð¿ÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ Ð² ÐодÑазделе 29.2.2.
СоздаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки, ÑвÑзаннÑе Ñ Ð½ÐµÑколÑкими пÑбликаÑиÑми, в коÑоÑÑÑ Ð¾Ð´Ð½Ð° и Ñа же ÑаблиÑа опÑбликована Ñ ÑазнÑми ÑпиÑками ÑÑолбÑов, нелÑзÑ.
ÐÑи Ñоздании подпиÑок допÑÑкаеÑÑÑ Ñказание неÑÑÑеÑÑвÑÑÑиÑ
пÑбликаÑий, ÑÑо позволÑÐµÑ ÑоздаваÑÑ Ð½ÑжнÑе пÑбликаÑии позже. Таким обÑазом, в pg_subscription могÑÑ ÑигÑÑиÑоваÑÑ Ð½ÐµÑÑÑеÑÑвÑÑÑие пÑбликаÑии.
ÐÑимеÑÑ
Создание подпиÑки на ÑепликаÑии mypublication и insert_only на ÑдалÑнном ÑеÑвеÑе Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ñм запÑÑком ÑепликаÑии пÑи ÑикÑиÑовании ÑÑанзакÑии:
CREATE SUBSCRIPTION mysub
CONNECTION 'host=192.168.1.50 port=5432 user=foo dbname=foodb'
PUBLICATION mypublication, insert_only;Создание подпиÑки на пÑбликаÑÐ¸Ñ insert_only на ÑдалÑнном ÑеÑвеÑе Ñ Ð¾ÑклÑÑением ÑепликаÑии Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка в бÑдÑÑем.
CREATE SUBSCRIPTION mysub
CONNECTION 'host=192.168.1.50 port=5432 user=foo dbname=foodb'
PUBLICATION insert_only
WITH (enabled = false);СовмеÑÑимоÑÑÑ
CREATE SUBSCRIPTION ÑвлÑеÑÑÑ ÑаÑÑиÑением Postgres Pro.