51.4. ÐÑоÑокол поÑоковой ÑепликаÑии
ЧÑÐ¾Ð±Ñ Ð¸Ð½Ð¸ÑииÑоваÑÑ Ð¿Ð¾ÑоковÑÑ ÑепликаÑиÑ, ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿ÐµÑедаÑÑ Ð² ÑÑаÑÑовом ÑообÑении паÑамеÑÑ replication. ÐогиÑеÑкое знаÑение true (или on, yes, 1) ÑÑого паÑамеÑÑа ÑказÑÐ²Ð°ÐµÑ Ð¾Ð±ÑлÑживаÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑÑ Ð¿ÐµÑейÑи в Ñежим пеÑедаÑÑика даннÑÑ
ÑизиÑеÑкой ÑепликаÑии. Ð ÑÑом Ñежиме вмеÑÑо SQL-опеÑаÑоÑов ÐºÐ»Ð¸ÐµÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑдаваÑÑ ÑолÑко огÑаниÑеннÑй Ð½Ð°Ð±Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ ÑепликаÑии, показаннÑй ниже.
ÐÑли паÑамеÑÑ replication Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение database, обÑлÑживаÑÑий пÑоÑеÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ пеÑейÑи в Ñежим пеÑедаÑÑика даннÑÑ
логиÑеÑкой ÑепликаÑии. ÐÑи ÑÑом вÑполнÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к базе даннÑÑ
, заданной в паÑамеÑÑе dbname. Ð Ñежиме логиÑеÑкой ÑепликаÑии могÑÑ Ð²ÑполнÑÑÑÑÑ ÐºÐ°Ðº ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑепликаÑии, показаннÑе ниже, Ñак и обÑÑнÑе SQL-командÑ.
Ð Ñежиме пеÑедаÑи даннÑÑ ÑизиÑеÑкой или логиÑеÑкой ÑепликаÑии Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко пÑоÑÑой пÑоÑокол запÑоÑов.
ÐÐ»Ñ ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ ÑепликаÑии Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ Ñоединение Ð´Ð»Ñ ÑепликаÑии, запÑÑÑив psql или дÑÑгÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° базе libpq Ñо ÑÑÑокой подклÑÑениÑ, вклÑÑаÑÑей паÑамеÑÑ replication, напÑÐ¸Ð¼ÐµÑ Ñак:
psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
Ðднако ÑаÑÑо полезнее иÑполÑзоваÑÑ pg_receivewal (Ð´Ð»Ñ ÑизиÑеÑкой ÑепликаÑии) или pg_recvlogical (Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой).
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ ÑепликаÑии запиÑÑваÑÑÑÑ Ð² жÑÑнал ÑабоÑÑ ÑеÑвеÑа, когда вклÑÑÑн паÑамеÑÑ log_replication_commands.
Ð Ñежиме ÑепликаÑии пÑинимаÑÑÑÑ ÑледÑÑÑие командÑ:
IDENTIFY_SYSTEMÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑионнÑе даннÑе ÑеÑвеÑа. СеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð½Ð°Ð±Ð¾Ñ ÑезÑлÑÑаÑов Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑокой, ÑодеÑжаÑей ÑеÑÑÑе полÑ:
systemid(text)УникалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑиÑÑемÑ, иденÑиÑиÑиÑÑÑÑий клаÑÑеÑ. Ðо Ð½ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ опÑеделиÑÑ, ÑÑо Ð±Ð°Ð·Ð¾Ð²Ð°Ñ ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ, из коÑоÑой иниÑиализиÑовалÑÑ ÑезеÑвнÑй ÑеÑвеÑ, полÑÑена из Ñого же клаÑÑеÑа.
timeline(int4)ÐденÑиÑикаÑÐ¾Ñ ÑекÑÑей линии вÑемени. Также полезен Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо ÑезеÑвнÑй ÑеÑÐ²ÐµÑ ÑоглаÑован Ñ Ð³Ð»Ð°Ð²Ð½Ñм.
xlogpos(text)ТекÑÑее положение ÑÐ¾Ñ ÑанÑннÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð² WAL. ÐозволÑÐµÑ ÑзнаÑÑ, Ñ ÐºÐ°ÐºÐ¾Ð¹ позиÑии в жÑÑнале пÑедзапиÑи Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑаÑÑÑÑ Ð¿Ð¾ÑÐ¾ÐºÐ¾Ð²Ð°Ñ Ð¿ÐµÑедаÑа.
dbname(text)ÐодклÑÑÑÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° даннÑÑ Ð¸Ð»Ð¸ NULL.
SHOWимÑÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ñ ÑеÑвеÑа ÑекÑÑее знаÑение паÑамеÑÑа вÑемени вÑполнениÑ. ÐÑа команда подобна SQL-команде SHOW.
имÑÐÐ¼Ñ Ð¿Ð°ÑамеÑÑа вÑемени вÑполнениÑ. ÐоÑÑÑпнÑе паÑамеÑÑÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² Ðлаве 18.
TIMELINE_HISTORYлин_вÑемÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ñ ÑеÑвеÑа Ñайл иÑÑоÑии Ð´Ð»Ñ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени
лин_вÑем. СеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð½Ð°Ð±Ð¾Ñ ÑезÑлÑÑаÑов в одной ÑÑÑоке, ÑодеÑжаÑей два полÑ. ÐÑи Ð¿Ð¾Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑÐµÐ½Ñ ÐºÐ°Ðº имеÑÑие ÑипÑtextиbytea, но ÑакÑиÑеÑки они ÑодеÑÐ¶Ð°Ñ Ð¿ÑоÑÑо байÑÑ, не в ÑекÑÑовой кодиÑовке и без ÑкÑаниÑованиÑ:filename(text)ÐÐ¼Ñ Ñайла Ñ Ð¸ÑÑоÑией линии вÑемени, напÑимеÑ
00000002.history.content(bytea)СодеÑжимое Ñайла Ñ Ð¸ÑÑоÑией линией вÑемени.
CREATE_REPLICATION_SLOTимÑ_ÑлоÑа[TEMPORARY] {PHYSICAL[RESERVE_WAL] |LOGICALмодÑлÑ_вÑвода[EXPORT_SNAPSHOT|NOEXPORT_SNAPSHOT|USE_SNAPSHOT] }СоздаÑÑ ÑÐ»Ð¾Ñ ÑизиÑеÑкой или логиÑеÑкой ÑепликаÑии. СлоÑÑ ÑепликаÑии опиÑÐ°Ð½Ñ Ð¿Ð¾Ð´Ñобно в ÐодÑазделе 25.2.6.
имÑ_ÑлоÑаÐÐ¼Ñ Ñоздаваемого ÑлоÑа. Ðаданное Ð¸Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ Ð´Ð¾Ð¿ÑÑÑимÑм Ð´Ð»Ñ ÑлоÑа ÑепликаÑии (Ñм. ÐодÑаздел 25.2.6.1).
модÑлÑ_вÑводаÐÐ¼Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода, пÑименÑемого Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (Ñм. Раздел 47.6).
TEMPORARYÐÑо Ñказание оÑмеÑаеÑ, ÑÑо даннÑй ÑÐ»Ð¾Ñ ÑепликаÑии ÑвлÑеÑÑÑ Ð²ÑеменнÑм. ÐÑеменнÑе ÑлоÑÑ Ð½Ðµ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð½Ð° диÑке и авÑомаÑиÑеÑки ÑдалÑÑÑÑÑ Ð¿Ñи оÑибке или завеÑÑении ÑеанÑа.
RESERVE_WALУказÑваеÑ, ÑÑо ÑÑÐ¾Ñ ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии ÑезеÑвиÑÑÐµÑ WAL немедленно. Ðез ÑÑого ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ WAL ÑезеÑвиÑÑеÑÑÑ ÑолÑко пÑи подклÑÑении клиенÑа поÑоковой ÑепликаÑии.
EXPORT_SNAPSHOTNOEXPORT_SNAPSHOTUSE_SNAPSHOTÐÑи ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð²ÑбиÑаÑÑ, ÑÑо делаÑÑ Ñо Ñнимком, ÑоздаваемÑм пÑи иниÑиализаÑии логиÑеÑкого ÑлоÑа. С Ñказанием
EXPORT_SNAPSHOT, подÑазÑмеваемÑм по ÑмолÑаниÑ, ÑÑÐ¾Ñ Ñнимок бÑÐ´ÐµÑ ÑкÑпоÑÑиÑоваÑÑÑÑ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² дÑÑÐ³Ð¸Ñ ÑеанÑÐ°Ñ . ÐÑо Ñказание нелÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ð²Ð½ÑÑÑи ÑÑанзакÑии. С ÑказаниемUSE_SNAPSHOTÑнимок бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ ÑекÑÑей ÑÑанзакÑии, в коÑоÑой вÑполнÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°. ÐÑо Ñказание должно иÑполÑзоваÑÑÑÑ Ð² ÑÑанзакÑии, пÑи ÑÑом командаCREATE_REPLICATION_SLOTдолжна бÑÑÑ Ð¿ÐµÑвой в ÑÑой ÑÑанзакÑии. ÐаконеÑ, ÑNOEXPORT_SNAPSHOTÑнимок бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² обÑÑном Ñежиме, но ниÑего болÑÑе Ñ Ð½Ð¸Ð¼ делаÑÑ Ð½ÐµÐ»ÑзÑ.
РоÑÐ²ÐµÑ Ð½Ð° ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ Ð½Ð°Ð±Ð¾Ñ ÑезÑлÑÑаÑов Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑокой, ÑодеÑжаÑей ÑледÑÑÑие полÑ:
slot_name(text)ÐÐ¼Ñ Ñоздаваемого ÑлоÑа ÑепликаÑии.
consistent_point(text)ÐозиÑÐ¸Ñ Ð² WAL, в коÑоÑой ÑÐ»Ð¾Ñ Ð´Ð¾ÑÑиг ÑоглаÑованного ÑоÑÑоÑниÑ. ÐÑо ÑÐ°Ð¼Ð°Ñ ÑаннÑÑ Ð¿Ð¾Ð·Ð¸ÑиÑ, Ñ ÐºÐ¾ÑоÑой Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑаÑÑÑÑ ÑÑанÑлÑÑÐ¸Ñ ÑеÑез ÑÑÐ¾Ñ ÑÐ»Ð¾Ñ ÑепликаÑии.
snapshot_name(text)ÐденÑиÑикаÑÐ¾Ñ Ñнимка, ÑкÑпоÑÑиÑованного командой. ÐÑÐ¾Ñ Ñнимок дейÑÑвиÑелен до ÑÐµÑ Ð¿Ð¾Ñ, пока ÑеÑез ÑÑо Ñоединение не бÑÐ´ÐµÑ Ð²Ñполнена ÑледÑÑÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° или Ñоединение не бÑÐ´ÐµÑ Ð·Ð°ÐºÑÑÑо. Null, еÑли ÑозданнÑй ÑÐ»Ð¾Ñ â ÑизиÑеÑкий.
output_plugin(text)ÐÐ¼Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода, иÑполÑзÑемого ÑозданнÑм ÑлоÑом ÑепликаÑии. Null, еÑли ÑозданнÑй ÑÐ»Ð¾Ñ â ÑизиÑеÑкий.
START_REPLICATION[SLOTимÑ_ÑлоÑа] [PHYSICAL]XXX/XXX[TIMELINEлин_вÑем]УказÑÐ²Ð°ÐµÑ ÑеÑвеÑÑ Ð½Ð°ÑаÑÑ Ð¿Ð¾ÑоковÑÑ Ð¿ÐµÑедаÑÑ WAL, наÑÐ¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ð·Ð¸Ñии
XXX/XXXв WAL. ÐÑли ÑказÑваеÑÑÑ Ð¿Ð°ÑамеÑÑTIMELINE, пеÑедаÑа наÑинаеÑÑÑ Ð½Ð° линии вÑеменилин_вÑем, инаÑе вÑбиÑаеÑÑÑ ÑекÑÑÐ°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени ÑеÑвеÑа. СеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ Ð² оÑÐ²ÐµÑ Ð¾ÑибкÑ, напÑимеÑ, еÑли запÑоÑеннÑй ÑÐµÐ³Ð¼ÐµÐ½Ñ WAL Ñже поÑеÑÑн. ÐÑли пÑоблем не возникаеÑ, ÑеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑообÑение CopyBothResponse, а заÑем наÑÐ¸Ð½Ð°ÐµÑ Ð¿ÐµÑедаваÑÑ Ð¿Ð¾Ñок WAL клиенÑÑ.ÐÑли в паÑамеÑÑÐ°Ñ Ð¿ÐµÑедаÑÑÑÑ
имÑ_ÑлоÑа, ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð¾ÑÑажаÑÑ ÑоÑÑоÑние ÑепликаÑии в ÑÑом ÑлоÑе и оÑÑлеживаÑÑ, какие ÑегменÑÑ, а еÑли вклÑÑÑн Ñежимhot_standby_feedback, Ñо и в ÐºÐ°ÐºÐ¸Ñ ÑÑанзакÑиÑÑ , вÑÑ ÐµÑÑ Ð½ÑÐ¶Ð½Ñ ÑÑÐ¾Ð¼Ñ ÑезеÑÐ²Ð½Ð¾Ð¼Ñ ÑеÑвеÑÑ.ÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð·Ð°Ð¿ÑаÑÐ¸Ð²Ð°ÐµÑ Ð½Ðµ поÑледнÑÑ, но ÑÑÑеÑÑвÑÑÑÑÑ Ð² иÑÑоÑии ÑеÑвеÑа Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени, ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð¿ÐµÑедаваÑÑ Ð²ÐµÑÑ WAL на ÑÑой линии вÑемени, наÑÐ¸Ð½Ð°Ñ Ñ Ð·Ð°Ð¿ÑоÑенной ÑÑаÑÑовой ÑоÑки до моменÑа, когда ÑеÑÐ²ÐµÑ Ð¿ÐµÑеклÑÑилÑÑ Ð½Ð° дÑÑгÑÑ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени. ÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð·Ð°Ð¿ÑаÑÐ¸Ð²Ð°ÐµÑ Ð¿ÐµÑедаÑÑ Ñ Ð½Ð°ÑалÑной позиÑией ÑоÑно в конÑе ÑÑаÑой линии вÑемени, ÑеÑÐ²ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ оÑвеÑÐ°ÐµÑ CommandComplete, не пеÑÐµÑ Ð¾Ð´Ñ Ð² Ñежим COPY.
ÐоÑле пеÑедаÑи вÑÐµÑ Ð·Ð°Ð¿Ð¸Ñей WAL на линии вÑемени, не ÑвлÑÑÑейÑÑ ÑекÑÑей, ÑеÑÐ²ÐµÑ Ð·Ð°Ð²ÐµÑÑÐ°ÐµÑ Ð¿Ð¾ÑоковÑÑ Ð¿ÐµÑедаÑÑ, вÑÑ Ð¾Ð´Ñ Ð¸Ð· Ñежима копиÑованиÑ. Ðогда ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´Ð°ÐµÑ Ð·Ð°Ð²ÐµÑÑение пеÑедаÑи, Ñакже вÑÑ Ð¾Ð´Ñ Ð¸Ð· Ñежима копиÑованиÑ, ÑеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð½Ð°Ð±Ð¾Ñ ÑезÑлÑÑаÑов в одной ÑÑÑоке Ñ Ð´Ð²ÑÐ¼Ñ ÑÑолбÑами, ÑообÑÐ°Ñ Ñаким обÑазом о ÑледÑÑÑей линии вÑемени в иÑÑоÑии ÑеÑвеÑа. РпеÑвом ÑÑолбÑе пеÑедаÑÑÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÑледÑÑÑей линии вÑемени (Ñипа
int8), а во вÑоÑом â позиÑÐ¸Ñ Ð² WAL, в коÑоÑой пÑоизоÑло пеÑеклÑÑение (Ñипаtext). ÐбÑÑно в ÑÑой же позиÑии завеÑÑаеÑÑÑ Ð¿ÐµÑедаÑа поÑока WAL, но Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð¸ÑклÑÑениÑ, когда ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаваÑÑ Ð·Ð°Ð¿Ð¸Ñи WAL из ÑÑаÑой линии вÑемени, коÑоÑÑе он Ñам еÑÑ Ð½Ðµ воÑпÑоизвÑл до пеÑеклÑÑениÑ. ÐÐ°ÐºÐ¾Ð½ÐµÑ ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ Ð´Ð²Ð° ÑообÑÐµÐ½Ð¸Ñ CommandComplete (одно говоÑÐ¸Ñ Ð¾ завеÑÑении CopyData, а вÑоÑое â о завеÑÑении Ñамой командÑSTART_REPLICATION), поÑле Ñего он гоÑов пÑинÑÑÑ ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ.ÐаннÑе WAL пеÑедаÑÑÑÑ Ð² ÑеÑии ÑообÑений CopyData. (ÐÑо позволÑÐµÑ Ð¿ÐµÑемежаÑÑ Ð¸Ñ Ñ Ð´ÑÑгой инÑоÑмаÑией; в ÑаÑÑноÑÑи, ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение ErrorResponse, еÑли он ÑÑолкнÑлÑÑ Ñ Ð¿Ñоблемами, Ñже наÑав пеÑедаÑÑ Ð¿Ð¾Ñока.) ÐÐ¾Ð»ÐµÐ·Ð½Ð°Ñ Ð½Ð°Ð³ÑÑзка каждого ÑообÑÐµÐ½Ð¸Ñ CopyData Ð¾Ñ ÑеÑвеÑа к клиенÑÑ ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½Ñе в одном из ÑледÑÑÑÐ¸Ñ ÑоÑмаÑов:
- XLogData (B) â даннÑе жÑÑнала ÑÑанзакÑий
- Byte1('w')
УказÑваеÑ, ÑÑо в ÑÑом ÑообÑении пеÑедаÑÑÑÑ Ð´Ð°Ð½Ð½Ñе WAL.
- Int64
ÐаÑалÑÐ½Ð°Ñ ÑоÑка даннÑÑ WAL в ÑÑом ÑообÑении.
- Int64
ТекÑÑее положение конÑа WAL на ÑеÑвеÑе.
- Int64
ÐÐ¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑиÑÑемнÑÑ ÑаÑов ÑеÑвеÑа в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿ÐµÑедаÑи, в микÑоÑекÑÐ½Ð´Ð°Ñ Ñ Ð¿Ð¾Ð»ÑноÑи 2000-01-01.
- Byte
n ФÑÐ°Ð³Ð¼ÐµÐ½Ñ Ð¿Ð¾Ñока даннÑÑ WAL.
Ðдна запиÑÑ WAL никогда не ÑазделÑеÑÑÑ Ð½Ð° два ÑообÑÐµÐ½Ð¸Ñ XLogData. Ðогда запиÑÑ WAL пеÑеÑÐµÐºÐ°ÐµÑ Ð³ÑаниÑÑ ÑÑÑаниÑÑ WAL, и Ñаким обÑазом Ð¾Ñ Ð½ÐµÑ Ñже оказÑваеÑÑÑ Ð¾Ñделена пÑодолжаÑÑÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ, ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑазделиÑÑ Ð½Ð° ÑообÑÐµÐ½Ð¸Ñ Ð¿Ð¾ гÑаниÑе ÑÑÑаниÑÑ. ÐÑÑгими Ñловами, пеÑÐ²Ð°Ñ Ð¾ÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ WAL и пÑодолжаÑÑие ÐµÑ Ð·Ð°Ð¿Ð¸Ñи могÑÑ Ð±ÑÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ñ Ð² ÑазлиÑнÑÑ ÑообÑениÑÑ XLogData.
- Primary keepalive message (B) â СообÑение об акÑивноÑÑи ведÑÑего
- Byte1('k')
УказÑваеÑ, ÑÑо ÑÑо ÑообÑение об акÑивноÑÑи оÑпÑавиÑелÑ.
- Int64
ТекÑÑее положение конÑа WAL на ÑеÑвеÑе.
- Int64
ÐÐ¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑиÑÑемнÑÑ ÑаÑов ÑеÑвеÑа в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿ÐµÑедаÑи, в микÑоÑекÑÐ½Ð´Ð°Ñ Ñ Ð¿Ð¾Ð»ÑноÑи 2000-01-01.
- Byte1
ÐнаÑение 1 ознаÑаеÑ, ÑÑо ÐºÐ»Ð¸ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ оÑвеÑиÑÑ Ð½Ð° ÑÑо ÑообÑение как можно ÑкоÑее, во избежание оÑклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñайм-аÑÑÑ. Со знаÑением 0 ÑÑо не ÑÑебÑеÑÑÑ.
ÐÑинимаÑÑий пÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаваÑÑ Ð¾ÑвеÑÑ Ð¾ÑпÑавиÑÐµÐ»Ñ Ð² лÑбое вÑемÑ, иÑполÑзÑÑ Ð¾Ð´Ð¸Ð½ из ÑледÑÑÑÐ¸Ñ ÑоÑмаÑов даннÑÑ (Ñакже в полезной нагÑÑзке ÑообÑÐµÐ½Ð¸Ñ CopyData):
- Standby status update (F) â Ðбновление ÑоÑÑоÑÐ½Ð¸Ñ ÑезеÑвного ÑеÑвеÑа
- Byte1('r')
УказÑваеÑ, ÑÑо ÑÑо ÑообÑение пеÑедаÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»Ñнное ÑоÑÑоÑние полÑÑаÑелÑ.
- Int64
Ðоложение ÑледÑÑÑего за поÑледним байÑом WAL, полÑÑеннÑм и запиÑаннÑм на диÑк на ÑезеÑвном ÑеÑвеÑе.
- Int64
Ðоложение ÑледÑÑÑего за поÑледним байÑом WAL, ÑÐ¾Ñ ÑанÑннÑм на диÑке на ÑезеÑвном ÑеÑвеÑе.
- Int64
Ðоложение ÑледÑÑÑего за поÑледним байÑом WAL, пÑименÑннÑм на ÑезеÑвном ÑеÑвеÑе.
- Int64
ÐÐ¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑиÑÑемнÑÑ ÑаÑов клиенÑа в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿ÐµÑедаÑи, в микÑоÑекÑÐ½Ð´Ð°Ñ Ñ Ð¿Ð¾Ð»ÑноÑи 2000-01-01.
- Byte1
ÐÑли ÑодеÑÐ¶Ð¸Ñ 1, ÐºÐ»Ð¸ÐµÐ½Ñ Ð·Ð°Ð¿ÑаÑÐ¸Ð²Ð°ÐµÑ Ð¾Ñ ÑеÑвеÑа немедленнÑй оÑÐ²ÐµÑ Ð½Ð° ÑÑо ÑообÑение. Так ÐºÐ»Ð¸ÐµÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð¿ÑоÑиÑÑ Ð¾Ñклик ÑеÑвеÑа и пÑовеÑиÑÑ, пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð»Ð¸ ÑÑнкÑиониÑоваÑÑ Ñоединение.
- Hot Standby feedback message (F) â СообÑение обÑаÑной ÑвÑзи гоÑÑÑего ÑезеÑва
- Byte1('h')
УказÑваеÑ, ÑÑо ÑÑо ÑообÑение обÑаÑной ÑвÑзи гоÑÑÑего ÑезеÑва.
- Int64
ÐÐ¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑиÑÑемнÑÑ ÑаÑов клиенÑа в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿ÐµÑедаÑи, в микÑоÑекÑÐ½Ð´Ð°Ñ Ñ Ð¿Ð¾Ð»ÑноÑи 2000-01-01.
- Int32
ТекÑÑее глобалÑное знаÑение xmin данного ÑезеÑвного ÑеÑвеÑа, не ÑÑиÑÑваÑÑее catalog_xmin вÑÐµÑ ÑлоÑов ÑепликаÑии. ÐÑли и ÑÑо знаÑение, и ÑледÑÑÑее catalog_xmin, ÑÐ°Ð²Ð½Ñ 0, ÑÑо воÑпÑинимаеÑÑÑ ÐºÐ°Ðº Ñведомление о Ñом, ÑÑо ÑеÑез данное подклÑÑение болÑÑе не бÑдÑÑ Ð¿ÐµÑедаваÑÑÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑаÑной ÑвÑзи гоÑÑÑего ÑезеÑва. ÐоÑледÑÑÑие ненÑлевÑе ÑообÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð²Ð¾Ð·Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ ÑабоÑÑ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° обÑаÑной ÑвÑзи.
- Int32
ÐÐ¿Ð¾Ñ Ð° глобалÑного иденÑиÑикаÑоÑа ÑÑанзакÑии xmin на ÑезеÑвном ÑеÑвеÑе.
- Int32
ÐаименÑÑее знаÑение catalog_xmin Ð´Ð»Ñ Ð²ÑÐµÑ ÑлоÑов ÑепликаÑии на ÑезеÑвном ÑеÑвеÑе. ÐнаÑение 0 показÑваеÑ, ÑÑо на ÑезеÑвном ÑеÑвеÑе Ð½ÐµÑ catalog_xmin, либо обÑаÑÐ½Ð°Ñ ÑвÑÐ·Ñ Ð³Ð¾ÑÑÑего ÑезеÑва оÑклÑÑена.
- Int32
ÐÐ¿Ð¾Ñ Ð° иденÑиÑикаÑоÑа ÑÑанзакÑии catalog_xmin на ÑезеÑвном ÑеÑвеÑе.
START_REPLICATIONSLOTимÑ_ÑлоÑаLOGICALXXX/XXX[ (имÑ_паÑамеÑÑа[знаÑение_паÑамеÑÑа] [, ...] ) ]УказÑÐ²Ð°ÐµÑ ÑеÑвеÑÑ Ð½Ð°ÑаÑÑ Ð¿Ð¾ÑоковÑÑ Ð¿ÐµÑедаÑÑ WAL Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии, наÑÐ¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ð·Ð¸Ñии
XXX/XXXв WAL. СеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ Ð² оÑÐ²ÐµÑ Ð¾ÑибкÑ, напÑимеÑ, еÑли запÑоÑеннÑй ÑÐµÐ³Ð¼ÐµÐ½Ñ WAL Ñже поÑеÑÑн. ÐÑли пÑоблем не возникаеÑ, ÑеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑообÑение CopyBothResponse, а заÑем наÑÐ¸Ð½Ð°ÐµÑ Ð¿ÐµÑедаваÑÑ Ð¿Ð¾Ñок WAL клиенÑÑ.ÐаннÑе, пеÑедаваемÑе внÑÑÑи ÑообÑений CopyBothResponse, имеÑÑ ÑÐ¾Ñ Ð¶Ðµ ÑоÑмаÑ, ÑÑо опиÑан Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
START_REPLICATION ... PHYSICAL, вклÑÑÐ°Ñ Ð´Ð²Ð° ÑообÑÐµÐ½Ð¸Ñ CommandComplete.ÐбÑабоÑÐºÑ Ð²ÑводимÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи вÑполнÑÐµÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода, ÑвÑзаннÑй Ñ Ð²ÑбÑаннÑм ÑлоÑом.
SLOTимÑ_ÑлоÑаÐÐ¼Ñ ÑлоÑа, из коÑоÑого пеÑедаÑÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. ÐÑо Ð¸Ð¼Ñ ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм, оно должно ÑооÑвеÑÑÑвоваÑÑ ÑÑÑеÑÑвÑÑÑÐµÐ¼Ñ Ð»Ð¾Ð³Ð¸ÑеÑÐºÐ¾Ð¼Ñ ÑлоÑÑ ÑепликаÑии, ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
CREATE_REPLICATION_SLOTв ÑежимеLOGICAL.XXX/XXXÐозиÑÐ¸Ñ Ð² WAL, Ñ ÐºÐ¾ÑоÑой должна наÑаÑÑÑÑ Ð¿ÐµÑедаÑа.
имÑ_паÑамеÑÑаÐÐ¼Ñ Ð¿Ð°ÑамеÑÑа, пеÑедаваемого модÑÐ»Ñ Ð²Ñвода логиÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²ÑбÑанного ÑлоÑа. ÐаÑамеÑÑÑ, пÑинимаемÑе ÑÑандаÑÑнÑм модÑлем (
pgoutput), опиÑÐ°Ð½Ñ Ð² Разделе 51.5.знаÑение_паÑамеÑÑаÐеобÑзаÑелÑное знаÑение, в ÑоÑме ÑÑÑоковой конÑÑанÑÑ, ÑвÑзÑваемое Ñ ÑказаннÑм паÑамеÑÑом.
-
DROP_REPLICATION_SLOTимÑ_ÑлоÑа[WAIT] УдалÑÐµÑ ÑÐ»Ð¾Ñ ÑепликаÑии, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð·Ð°ÑезеÑвиÑованнÑÑ Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ ÑеÑÑÑÑов на ÑÑоÑоне ÑеÑвеÑа.
имÑ_ÑлоÑаÐÐ¼Ñ ÑлоÑа, подлежаÑего ÑдалениÑ.
WAITС ÑÑим Ñказанием команда бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ, пока акÑивнÑй ÑÐ»Ð¾Ñ Ð½Ðµ ÑÑÐ°Ð½ÐµÑ Ð½ÐµÐ°ÐºÑивнÑм (по ÑмолÑÐ°Ð½Ð¸Ñ Ð² ÑÑом ÑлÑÑае вÑдаÑÑÑÑ Ð¾Ñибка).
BASE_BACKUP[LABEL'меÑка'] [PROGRESS] [FAST] [WAL] [NOWAIT] [MAX_RATEÑкоÑоÑÑÑ] [TABLESPACE_MAP] [NOVERIFY_CHECKSUMS] [MANIFESTпаÑамеÑÑ_маниÑеÑÑа] [MANIFEST_CHECKSUMSалгоÑиÑм_конÑÑолÑной_ÑÑммÑ]УказÑÐ²Ð°ÐµÑ ÑеÑвеÑÑ Ð½Ð°ÑаÑÑ Ð¿Ð¾ÑоковÑÑ Ð¿ÐµÑедаÑÑ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ копии. СиÑÑема авÑомаÑиÑеÑки пеÑÐµÑ Ð¾Ð´Ð¸Ñ Ð² Ñежим ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾ наÑала пеÑедаÑи, и вÑÑ Ð¾Ð´Ð¸Ñ Ð¸Ð· него поÑле завеÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ. ÐÑа команда пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие паÑамеÑÑÑ:
LABEL'меÑка'УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¼ÐµÑÐºÑ Ð´Ð»Ñ ÑезеÑвной копии. ÐÑли меÑка не задана, по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑанавливаеÑÑÑ Ð¼ÐµÑка
base backup. ÐÐ»Ñ Ð¼ÐµÑки дейÑÑвÑÑÑ Ñе же пÑавила пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ°Ð²ÑÑек, ÑÑо и Ð´Ð»Ñ ÑÑандаÑÑнÑÑ ÑÑÑок SQL пÑи вклÑÑÑннÑм Ñежиме standard_conforming_strings.PROGRESSÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð¸Ð½ÑоÑмаÑиÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿ÑогÑеÑÑа опеÑаÑии. СеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ Ð² оÑÐ²ÐµÑ Ð¿ÑиблизиÑелÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð² заголовке каждого ÑаблиÑного пÑоÑÑÑанÑÑва, иÑÑ Ð¾Ð´Ñ Ð¸Ð· коÑоÑого можно понÑÑÑ, наÑколÑко пÑодвинÑлаÑÑ Ð¿ÐµÑедаÑа поÑока. ÐÐ»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑÑого ÑазмеÑа анализиÑÑÑÑÑÑ ÑазмеÑÑ Ð²ÑÐµÑ Ñайлов еÑÑ Ð´Ð¾ наÑала пеÑедаÑи, и ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð½ÐµÐ³Ð°Ñивно повлиÑÑÑ Ð½Ð° пÑоизводиÑелÑноÑÑÑ â в ÑаÑÑноÑÑи, Ð¼Ð¾Ð¶ÐµÑ ÑвелиÑиÑÑÑÑ Ð·Ð°Ð´ÐµÑжка пеÑедаÑи пеÑвÑÑ Ð´Ð°Ð½Ð½ÑÑ . Так как ÑÐ°Ð¹Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð³ÑÑ Ð¼ÐµÐ½ÑÑÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÑезеÑвного копиÑованиÑ, оÑенка ÑазмеÑа не бÑÐ´ÐµÑ ÑоÑной; ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð°Ð·Ñ Ð¼Ð¾Ð¶ÐµÑ ÑвелиÑиÑÑÑÑ Ð¸Ð»Ð¸ ÑменÑÑиÑÑÑÑ Ð·Ð° вÑÐµÐ¼Ñ Ð¾Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑÑой оÑенки до пеÑедаÑи акÑÑалÑнÑÑ Ñайлов.
FASTÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð±ÑÑÑÑÑÑ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑоÑкÑ.
WALÐклÑÑÐ°ÐµÑ Ð² ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе ÑегменÑÑ WAL. ÐÑи ÑÑом в подкаÑалог
pg_walаÑÑ Ð¸Ð²Ð° базового каÑалога бÑдÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ñ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ñ Ð½Ð°Ñала до конÑа копиÑованиÑ.NOWAITÐо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ñи копиÑовании ожидаеÑÑÑ Ð·Ð°Ð²ÐµÑÑение аÑÑ Ð¸Ð²Ð°Ñии поÑледнего ÑÑебÑемого ÑегменÑа WAL либо вÑдаÑÑÑÑ Ð¿ÑедÑпÑеждение, еÑли аÑÑ Ð¸Ð²Ð°ÑÐ¸Ñ Ð¶ÑÑнала не вклÑÑена. Указание
NOWAITоÑклÑÑÐ°ÐµÑ Ð¸ ожидание, и пÑедÑпÑеждение, Ñак ÑÑо обеÑпеÑение налиÑÐ¸Ñ ÑÑебÑемого жÑÑнала ÑÑановиÑÑÑ Ð·Ð°Ð´Ð°Ñей клиенÑа.MAX_RATEÑкоÑоÑÑÑÐгÑаниÑÐ¸Ð²Ð°ÐµÑ (ÑдеÑживаеÑ) макÑималÑнÑй обÑÑм даннÑÑ , пеÑедаваемÑй Ð¾Ñ ÑеÑвеÑа клиенÑÑ Ð·Ð° единиÑÑ Ð²Ñемени. ÐдиниÑа измеÑÐµÐ½Ð¸Ñ ÑÑого паÑамеÑÑа â килобайÑÑ Ð² ÑекÑндÑ. ÐÑли задаÑÑÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ, его знаÑение должно бÑÑÑ Ñавно нÑлÑ, либо должно Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² диапазоне Ð¾Ñ 32 (килобайÑ/Ñек) до 1 ÐбайÑа/Ñек (вклÑÑÐ°Ñ Ð³ÑаниÑÑ). ÐÑли пеÑедаÑÑÑÑ Ð½Ð¾Ð»Ñ, либо паÑамеÑÑ Ð½Ðµ задаÑÑÑÑ, ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи не огÑаниÑиваеÑÑÑ.
TABLESPACE_MAPÐклÑÑÐ°ÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑимволиÑеÑÐºÐ¸Ñ ÑÑÑÐ»ÐºÐ°Ñ , пÑедÑÑавленнÑÑ Ð² каÑалоге
pg_tblspc, в Ñайлtablespace_map. Файл каÑÑÑ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв ÑодеÑÐ¶Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° вÑÐµÑ ÑÑÑлок, ÑодеÑжаÑÐ¸Ñ ÑÑ Ð² каÑалогеpg_tblspc/, и полнÑй пÑÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑлки.NOVERIFY_CHECKSUMSÐо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð½ÑÑолÑнÑе ÑÑÐ¼Ð¼Ñ Ð¿ÑовеÑÑÑÑÑÑ Ð² пÑоÑеÑÑе базового ÑезеÑвного копиÑованиÑ, еÑли они вклÑÑенÑ. Указание
NOVERIFY_CHECKSUMSоÑклÑÑÐ°ÐµÑ ÑÑÑ Ð¿ÑовеÑкÑ.MANIFESTпаÑамеÑÑ_маниÑеÑÑаÐогда ÑказÑваеÑÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ, и он Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение
yesилиforce-encode, вмеÑÑе Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ ÑоздаÑÑÑÑ Ð¸ пеÑедаÑÑÑÑ Ð¼Ð°Ð½Ð¸ÑеÑÑ ÐºÐ¾Ð¿Ð¸Ð¸. ÐаниÑеÑÑ ÑодеÑÐ¶Ð¸Ñ ÑпиÑок вÑÐµÑ Ñайлов, ÑодеÑжаÑÐ¸Ñ ÑÑ Ð² копии, за иÑклÑÑением Ñайлов WAL, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно. РнÑм Ñакже ÑÐ¾Ñ ÑанÑеÑÑÑ ÑазмеÑ, даÑа поÑледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸, возможно, конÑÑолÑÐ½Ð°Ñ ÑÑмма каждого Ñайла. ÐнаÑениеforce-encodeÑказÑваеÑ, ÑÑо вÑе имена Ñайлов Ð´Ð¾Ð»Ð¶Ð½Ñ ÐºÐ¾Ð´Ð¸ÑоваÑÑÑÑ Ð² ÑеÑÑнадÑаÑеÑиÑном виде; по ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð¸ÑоваÑÑÑÑ Ð±ÑдÑÑ ÑолÑко Ñе имена, коÑоÑÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð½Ðµ байÑовÑми поÑледоваÑелÑноÑÑÑми UTF-8. ÐÑо знаÑение пÑедназнаÑено в пеÑвÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð´Ð»Ñ ÑеÑÑиÑованиÑ, ÑÑÐ¾Ð±Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑло пÑовеÑиÑÑ, ÑÑо клиенÑÑкие пÑогÑÐ°Ð¼Ð¼Ñ Ð¼Ð¾Ð³ÑÑ ÐºÐ¾ÑÑекÑно пÑоÑиÑаÑÑ Ð·Ð°ÐºÐ¾Ð´Ð¸ÑованнÑе имена. ÐÐ»Ñ ÑовмеÑÑимоÑÑи Ñ Ð¿ÑедÑдÑÑими веÑÑиÑми подÑазÑмеваеÑÑÑ Ð·Ð½Ð°ÑениеMANIFEST 'no'.MANIFEST_CHECKSUMSалгоÑиÑм_конÑÑолÑной_ÑÑммÑÐадаÑÑ Ð°Ð»Ð³Ð¾ÑиÑм конÑÑолÑнÑÑ ÑÑмм, коÑоÑÑе бÑдÑÑ ÑаÑÑÑиÑÑваÑÑÑÑ Ð´Ð»Ñ Ð²ÑÐµÑ Ñайлов, опиÑаннÑÑ Ð² маниÑеÑÑе копии. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмÑ
NONE(оÑÑÑÑÑÑвÑеÑ),CRC32C,SHA224,SHA256,SHA384иSHA512. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑCRC32C.
Ðогда запÑÑкаеÑÑÑ ÐºÐ¾Ð¿Ð¸Ñование, ÑеÑÐ²ÐµÑ ÑнаÑала пеÑедаÑÑ Ð´Ð²Ð° обÑÑнÑÑ Ð½Ð°Ð±Ð¾Ñа ÑезÑлÑÑаÑов, за коÑоÑÑми ÑледÑÑÑ Ð¾Ð´Ð¸Ð½ или более ÑезÑлÑÑаÑов CopyResponse.
РпеÑвом обÑÑном набоÑе ÑезÑлÑÑаÑов пеÑедаÑÑÑÑ Ð½Ð°ÑалÑÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑезеÑвной копии, в одной ÑÑÑоке Ñ Ð´Ð²ÑÐ¼Ñ ÑÑолбÑами. РпеÑвом ÑÑолбÑе ÑодеÑжиÑÑÑ ÑÑаÑÑÐ¾Ð²Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² ÑоÑмаÑе XLogRecPtr, а во вÑоÑом иденÑиÑикаÑÐ¾Ñ ÑооÑвеÑÑÑвÑÑÑей линии вÑемени.
Ðо вÑоÑом обÑÑном набоÑе ÑезÑлÑÑаÑов пеÑедаÑÑÑÑ Ð¿Ð¾ одной ÑÑÑоке Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑаблиÑного пÑоÑÑÑанÑÑва. ÐÑа ÑÑÑока ÑодеÑÐ¶Ð¸Ñ ÑледÑÑÑие полÑ:
spcoid(oid)OID ÑаблиÑного пÑоÑÑÑанÑÑва либо NULL, еÑли ÑÑо базовÑй каÑалог.
spclocation(text)ÐолнÑй пÑÑÑ Ðº каÑÐ°Ð»Ð¾Ð³Ñ ÑаблиÑного пÑоÑÑÑанÑÑва либо NULL, еÑли ÑÑо базовÑй каÑалог.
size(int8)ÐÑиблизиÑелÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÑаблиÑного пÑоÑÑÑанÑÑва (в килобайÑÐ°Ñ , ÑазмеÑом 1024 байÑа), еÑли бÑла запÑоÑена инÑоÑмаÑÐ¸Ñ Ð¾ пÑогÑеÑÑе опеÑаÑии; в пÑоÑивном ÑлÑÑае NULL.
Ðа вÑоÑÑм обÑÑнÑм набоÑом ÑезÑлÑÑаÑов ÑледÑÐµÑ Ð¾Ð´Ð½Ð° или неÑколÑко ÑеÑий ÑезÑлÑÑаÑов CopyResponse, одна Ð´Ð»Ñ Ð¾Ñновного каÑалога даннÑÑ Ð¸ по одной Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑаблиÑного пÑоÑÑÑанÑÑва, оÑлиÑного оÑ
pg_defaultиpg_global. ÐаннÑе в CopyResponse пÑедÑÑавлÑÑÑ Ñобой вÑгÑÑженное в ÑоÑмаÑе tar («ÑоÑмаÑе обмена ustar», опиÑанном в ÑÑандаÑÑе POSIX 1003.1-2008) ÑодеÑжимое ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв, за иÑклÑÑением Ñого, ÑÑо два замÑкаÑÑÐ¸Ñ Ð±Ð»Ð¾ÐºÐ° нÑлей, опиÑаннÑÑ Ð² ÑÑандаÑÑе, не пеÑедаÑÑÑÑ. ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑедаÑи даннÑÑ tar, еÑли бÑло запÑоÑено Ñоздание маниÑеÑÑа, пеÑедаÑÑÑÑ ÐµÑÑ ÑезÑлÑÑÐ°Ñ CopyResponse Ñ ÑодеÑжимÑм маниÑеÑÑа Ð´Ð»Ñ ÑекÑÑей базовой копии. ÐаÑем в лÑбом ÑлÑÑае пеÑедаÑÑÑÑ Ð·Ð°ÐºÐ»ÑÑиÑелÑнÑй обÑÑнÑй Ð½Ð°Ð±Ð¾Ñ ÑезÑлÑÑаÑов, в коÑоÑом ÑообÑаеÑÑÑ ÐºÐ¾Ð½ÐµÑÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ в WAL, в Ñом же ÑоÑмаÑе, ÑÑо и ÑÑаÑÑÐ¾Ð²Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑиÑ.ÐÑÑ Ð¸Ð² tar каÑалога даннÑÑ Ð¸ вÑÐµÑ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð²Ñе ÑÐ°Ð¹Ð»Ñ Ð² ÑÑÐ¸Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ð°Ñ , бÑÐ´Ñ Ñо ÑÐ°Ð¹Ð»Ñ Postgres Pro или поÑÑоÑонние ÑайлÑ, добавленнÑе в ÑÑи каÑалоги. ÐÑклÑÑение ÑоÑÑавлÑÑÑ ÑолÑко ÑледÑÑÑие ÑайлÑ:
postmaster.pidpostmaster.optspg_internal.init(Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² неÑколÑÐºÐ¸Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ð°Ñ )РазлиÑнÑе вÑеменнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ каÑалоги, ÑоздаваемÑе в пÑоÑеÑÑе ÑабоÑÑ ÑеÑвеÑом Postgres Pro, в ÑаÑÑноÑÑи, ÑÐ°Ð¹Ð»Ñ Ð¸ каÑалоги Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ
pgsql_tmp, и вÑеменнÑе оÑноÑениÑ.ÐежÑÑналиÑÑемÑе оÑноÑениÑ, за иÑклÑÑением ÑÐ»Ð¾Ñ Ð¸Ð½Ð¸ÑиализаÑии, коÑоÑÑй Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ пÑи воÑÑÑановлении Ð´Ð»Ñ Ð¿ÐµÑеÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÐ¶ÑÑналиÑÑемого оÑноÑÐµÐ½Ð¸Ñ (пÑÑÑого).
pg_wal, вклÑÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ°Ñалоги. ÐÑли в ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð²ÐºÐ»ÑÑаÑÑÑÑ ÑÐ°Ð¹Ð»Ñ WAL, в аÑÑ Ð¸Ð² Ð²Ñ Ð¾Ð´Ð¸Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑÑиÑpg_wal, в коÑоÑой бÑдÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ ÑолÑко ÑайлÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸, но не вÑÑ Ð¾ÑÑалÑное ÑодеÑжимое ÑÑого каÑалогаpg_dynshmem,pg_notify,pg_replslot,pg_serial,pg_snapshots,pg_stat_tmpиpg_subtransкопиÑÑÑÑÑÑ ÐºÐ°Ðº пÑÑÑÑе каÑалоги (даже еÑли ÑÑо ÑимволиÑеÑкие ÑÑÑлки)ÑайлÑ, кÑоме обÑÑнÑÑ Ñайлов и каÑалогов, напÑимеÑ, ÑимволиÑеÑкие ÑÑÑлки (кÑоме вÑÑеÑпомÑнÑÑÑÑ ÐºÐ°Ñалогов) и ÑÐ°Ð¹Ð»Ñ ÑпеÑиалÑнÑÑ ÑÑÑÑойÑÑв, пÑопÑÑкаÑÑÑÑ (ÑимволиÑеÑкие ÑÑÑлки в
pg_tblspcÑÐ¾Ñ ÑанÑÑÑÑÑ).
ÐÑли ÑÐ°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема ÑеÑвеÑа поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑо, в аÑÑ Ð¸Ð² вклÑÑаеÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ владелÑÑе, гÑÑппе и Ñежиме Ñайла.