18.6. РепликаÑиÑ
ÐÑи паÑамеÑÑÑ ÑпÑавлÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ вÑÑÑоенного Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° поÑоковой ÑепликаÑии (Ñм. ÐодÑаздел 25.2.5). Ðогда он пÑименÑеÑÑÑ, один ÑеÑÐ²ÐµÑ ÑвлÑеÑÑÑ Ð²ÐµÐ´ÑÑим, а дÑÑгие â ведомÑми. ÐедÑÑий ÑеÑÐ²ÐµÑ Ð²Ñегда пеÑедаÑÑ Ð´Ð°Ð½Ð½Ñе, а ведомÑе вÑегда пÑинимаÑÑ Ð´Ð°Ð½Ð½Ñе ÑепликаÑии, но когда наÑÑÑоена каÑÐºÐ°Ð´Ð½Ð°Ñ ÑепликаÑÐ¸Ñ (Ñм. ÐодÑаздел 25.2.7), ведомÑе ÑеÑвеÑÑ Ñакже могÑÑ Ð±ÑÑÑ Ð¸ пеÑедаÑÑими. ÐолÑÑинÑÑво ÑледÑÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов оÑноÑиÑÑÑ Ðº пеÑедаÑÑим и ведомÑм ÑеÑвеÑам, но еÑÑÑ Ð½ÐµÑколÑко паÑамеÑÑов, коÑоÑÑе имеÑÑ ÑмÑÑл ÑолÑко Ð´Ð»Ñ Ð²ÐµÐ´ÑÑего. ÐÑе ÑÑи паÑамеÑÑÑ Ð²Ð¿Ð¾Ð»Ð½Ðµ могÑÑ Ð±ÑÑÑ ÑазнÑми в ÑÐ°Ð¼ÐºÐ°Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ клаÑÑеÑа, еÑли ÑÑо ÑÑебÑеÑÑÑ.
18.6.1. ÐеÑедаÑÑие ÑеÑвеÑÑ
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð½Ð° лÑбом ÑеÑвеÑе, коÑоÑÑй пеÑедаÑÑ Ð´Ð°Ð½Ð½Ñе ÑепликаÑии Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð»Ð¸ неÑколÑким ведомÑм. ÐедÑÑий ÑеÑÐ²ÐµÑ Ð²Ñегда ÑвлÑеÑÑÑ Ð¿ÐµÑедаÑÑим, Ñак ÑÑо на нÑм они Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ð²Ñегда. Ð Ð¾Ð»Ñ Ð¸ знаÑение ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов не менÑÑÑÑÑ Ð¿Ð¾Ñле Ñого, как ведомÑй ÑеÑÐ²ÐµÑ ÑÑановиÑÑÑ Ð²ÐµÐ´ÑÑим.
max_wal_senders(integer)ÐадаÑÑ Ð¼Ð°ÐºÑималÑно допÑÑÑимое ÑиÑло одновÑеменнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений ведомÑÑ ÑеÑвеÑов или клиенÑов поÑокового копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (Ñ. е. макÑималÑное колиÑеÑÑво одновÑеменно ÑабоÑаÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов пеÑедаÑи WAL). ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 10. ÐÑлевое знаÑение оÑклÑÑÐ°ÐµÑ ÑепликаÑиÑ. ÐÑоÑеÑÑÑ-пеÑедаÑÑики WAL ÑÑиÑÑваÑÑÑÑ Ð² обÑем ÑиÑле Ñоединений, Ñак ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑевÑÑаÑÑ max_connections. Ð ÑлÑÑае неожиданного оÑклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñа поÑоковой пеÑедаÑи ÑÐ»Ð¾Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑаваÑÑÑÑ Ð·Ð°Ð½ÑÑÑм до доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ñайм-аÑÑа, Ñак ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ болÑÑе макÑималÑно допÑÑÑимого ÑиÑла клиенÑов, ÑÑÐ¾Ð±Ñ Ð¾ÑклÑÑивÑиеÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð¼Ð¾Ð³Ð»Ð¸ пеÑеподклÑÑиÑÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко пÑи запÑÑке ÑеÑвеÑа. ЧÑÐ¾Ð±Ñ Ðº Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑеÑвеÑÑ Ð¼Ð¾Ð³Ð»Ð¸ подклÑÑаÑÑÑÑ Ð²ÐµÐ´Ð¾Ð¼Ñе, ÑÑовенÑ
wal_levelдолжен бÑÑÑreplicaили вÑÑе.max_replication_slots(integer)ÐадаÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло ÑлоÑов ÑепликаÑии (Ñм. ÐодÑаздел 25.2.6), коÑоÑое ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ ÑеÑвеÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 10. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко пÑи запÑÑке ÑеÑвеÑа. ЧÑÐ¾Ð±Ñ ÑÑи ÑлоÑÑ ÑепликаÑии можно бÑло иÑполÑзоваÑÑ, ÑÑовенÑ
wal_levelдолжен бÑÑÑreplicaили вÑÑе. ÐÑли заданное знаÑение данного паÑамеÑÑа бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑе, Ñем ÑиÑло Ñже ÑÑÑеÑÑвÑÑÑÐ¸Ñ ÑлоÑов ÑепликаÑии, ÑеÑÐ²ÐµÑ Ð½Ðµ запÑÑÑиÑÑÑ.Ðа ÑÑоÑоне подпиÑÑика ÑказÑваеÑ, ÑколÑко иÑÑоÑников ÑепликаÑии (Ñм. ÐлавÑ 47) можно оÑÑлеживаÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно, по ÑÑÑи огÑаниÑÐ¸Ð²Ð°Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑво подпиÑок на логиÑеÑкÑÑ ÑепликаÑиÑ, коÑоÑÑе могÑÑ Ð±ÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð½Ð° ÑеÑвеÑе. ÐÑли ÑÑÑановленное знаÑение бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑе, Ñем ÑекÑÑее колиÑеÑÑво оÑÑлеживаемÑÑ Ð¸ÑÑоÑников ÑепликаÑии (показÑваемое в pg_replication_origin_status, а не в pg_replication_origin), ÑеÑÐ²ÐµÑ Ð½Ðµ запÑÑÑиÑÑÑ.
wal_keep_segments(integer)ÐадаÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñное ÑиÑло Ñайлов пÑоÑлÑÑ ÑегменÑов жÑÑнала, коÑоÑÑе бÑдÑÑ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² каÑалоге
pg_wal, ÑÑÐ¾Ð±Ñ Ð²ÐµÐ´Ð¾Ð¼Ñй ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð³ вÑбÑаÑÑ Ð¸Ñ Ð¿Ñи поÑоковой ÑепликаÑии. ÐбÑÑно ÑÐµÐ³Ð¼ÐµÐ½Ñ Ð¸Ð¼ÐµÐµÑ ÑÐ°Ð·Ð¼ÐµÑ 16 мегабайÑ. ÐÑли ведомÑй ÑеÑвеÑ, подклÑÑÑннÑй к пеÑедаÑÑемÑ, оÑÑÑаÑÑ Ð±Ð¾Ð»ÑÑе Ñем наwal_keep_segmentsÑегменÑов, пеÑедаÑÑий ÑдалÑÐµÑ ÑегменÑÑ WAL, вÑÑ ÐµÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе ведомомÑ, и в ÑÑом ÑлÑÑае Ñоединение ÑепликаÑии пÑеÑÑваеÑÑÑ. Ð ÑезÑлÑÑаÑе ÑÑого заÑем Ñакже бÑдÑÑ Ð¿ÑеÑÐ²Ð°Ð½Ñ Ð·Ð°Ð²Ð¸ÑимÑе ÑоединениÑ. (Ðднако ведомÑй ÑеÑÐ²ÐµÑ ÑÐ¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑÑÑановиÑÑÑÑ, вÑбÑав ÑÑÐ¾Ñ ÑÐµÐ³Ð¼ÐµÐ½Ñ Ð¸Ð· аÑÑ Ð¸Ð²Ð°, еÑли оÑÑÑеÑÑвлÑеÑÑÑ Ð°ÑÑ Ð¸Ð²Ð°ÑÐ¸Ñ WAL.)ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð·Ð°Ð´Ð°ÑÑ ÑолÑко минималÑное ÑиÑло ÑегменÑов, ÑÐ¾Ñ ÑанÑемое в каÑалоге
pg_wal; ÑиÑÑема Ð¼Ð¾Ð¶ÐµÑ ÑÐ¾Ñ ÑаниÑÑ Ð±Ð¾Ð»ÑÑе ÑегменÑов Ð´Ð»Ñ Ð°ÑÑ Ð¸Ð²Ð°Ñии WAL или Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа конÑÑолÑной ÑоÑки. ÐÑлиwal_keep_segmentsÑавен нÑÐ»Ñ (ÑÑо знаÑение по ÑмолÑаниÑ), ÑиÑÑема не ÑÐ¾Ñ ÑанÑÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ дополниÑелÑнÑе ÑегменÑÑ Ð´Ð»Ñ Ð²ÐµÐ´Ð¾Ð¼ÑÑ ÑеÑвеÑов, поÑÑÐ¾Ð¼Ñ ÑиÑло ÑÑаÑÑÑ ÑегменÑов WAL, доÑÑÑпнÑÑ Ð´Ð»Ñ Ð²ÐµÐ´Ð¾Ð¼ÑÑ , завиÑÐ¸Ñ Ð¾Ñ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑедÑдÑÑей конÑÑолÑной ÑоÑки и ÑоÑÑоÑÐ½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð°Ñии WAL. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.wal_sender_timeout(integer)ÐадаÑÑ Ð¿ÐµÑиод вÑемени (в миллиÑекÑÐ½Ð´Ð°Ñ ), по иÑÑеÑении коÑоÑого пÑеÑÑваÑÑÑÑ Ð½ÐµÐ°ÐºÑивнÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑепликаÑии. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¿ÐµÑедаÑÑÐµÐ¼Ñ ÑеÑвеÑÑ Ð¾Ð±Ð½Ð°ÑÑжиÑÑ Ñбой ведомого или ÑазÑÑÐ²Ñ ÑеÑи. ÐÑи знаÑении, Ñавном нÑлÑ, Ñайм-аÑÑ Ð¾ÑклÑÑаеÑÑÑ. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко в
postgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 60 ÑекÑнд.track_commit_timestamp(boolean)ÐклÑÑÐ°ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð²Ñемени ÑикÑаÑии ÑÑанзакÑий. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко в
postgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеoff.
18.6.2. ÐлавнÑй ÑеÑвеÑ
ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð½Ð° главном/ведÑÑем ÑеÑвеÑе, коÑоÑÑй должен пеÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе ÑепликаÑии Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð»Ð¸ неÑколÑким ведомÑм. ÐамеÑÑÑе, ÑÑо помимо ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов на ведÑÑем ÑеÑвеÑе должен бÑÑÑ Ð¿ÑавилÑно ÑÑÑановлен wal_level, а Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÐºÐ»ÑÑена аÑÑ Ð¸Ð²Ð°ÑÐ¸Ñ WAL (Ñм. ÐодÑаздел 18.5.3). ÐнаÑÐµÐ½Ð¸Ñ ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов на ведомÑÑ ÑеÑвеÑÐ°Ñ Ð½Ðµ важнÑ, Ñ Ð¾ÑÑ Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ подгоÑовиÑÑ Ð·Ð°Ñанее, на ÑлÑÑай, еÑли ведомÑй ÑеÑÐ²ÐµÑ Ð¿ÑидÑÑÑÑ ÑделаÑÑ Ð²ÐµÐ´ÑÑим.
synchronous_standby_names(string)ÐпÑеделÑÐµÑ ÑпиÑок ведомÑÑ ÑеÑвеÑов, коÑоÑÑе могÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ ÑÐ¸Ð½Ñ ÑоннÑÑ ÑепликаÑиÑ, как опиÑано в ÐодÑазделе 25.2.8. ÐкÑивнÑÑ ÑÐ¸Ð½Ñ ÑоннÑÑ Ð²ÐµÐ´Ð¾Ð¼ÑÑ ÑеÑвеÑов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð´Ð¸Ð½ или неÑколÑко; ÑÑанзакÑии, ожидаÑÑие ÑикÑаÑии, бÑдÑÑ Ð·Ð°Ð²ÐµÑÑаÑÑÑÑ ÑолÑко поÑле Ñого, как ÑÑи ведомÑе подÑвеÑдÑÑ Ð¿Ð¾Ð»ÑÑение Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . Ð¡Ð¸Ð½Ñ ÑоннÑми ведомÑми бÑдÑÑ Ñе, имена коÑоÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² ÑÑом ÑпиÑке и коÑоÑÑе подклÑÑÐµÐ½Ñ Ðº ведÑÑÐµÐ¼Ñ Ð¸ пÑинимаÑÑ Ð¿Ð¾Ñок даннÑÑ Ð² ÑеалÑном вÑемени (ÑÑо показÑÐ²Ð°ÐµÑ Ð¿Ñизнак
streamingв пÑедÑÑавленииpg_stat_replication). Указание неÑколÑÐºÐ¸Ñ Ð¸Ð¼Ñн ведомÑÑ ÑеÑвеÑов позволÑÐµÑ Ð¾Ð±ÐµÑпеÑиÑÑ Ð¾ÑÐµÐ½Ñ Ð²ÑÑокÑÑ ÑÑÐµÐ¿ÐµÐ½Ñ Ð´Ð¾ÑÑÑпноÑÑи и заÑиÑÑ Ð¾Ñ Ð¿Ð¾ÑеÑи даннÑÑ .Ðменем ведомого ÑеÑвеÑа в ÑÑом конÑекÑÑе ÑÑиÑаеÑÑÑ Ð·Ð½Ð°Ñение
application_nameÑÑого ÑеÑвеÑа, задаваемое в ÑвойÑÑÐ²Ð°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ÐÑи оÑганизаÑии ÑизиÑеÑкой ÑепликаÑии оно задаÑÑÑÑ Ð² ÑÑÑокеprimary_conninfoвrecovery.conf(по ÑмолÑÐ°Ð½Ð¸Ñ âwalreceiver). ÐÐ»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии его можно задаÑÑ Ð² ÑÑÑоке подклÑÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки (по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо Ð¸Ð¼Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки). Ðак задаÑÑ ÐµÐ³Ð¾ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¿Ð¾ÑÑебиÑелей поÑоков ÑепликаÑии, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑзнаÑÑ Ð² Ð¸Ñ Ð´Ð¾ÐºÑменÑаÑии.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑпиÑок ведомÑÑ ÑеÑвеÑов в одной из ÑледÑÑÑÐ¸Ñ ÑоÑм:
[FIRST]
ÑиÑло_ÑÐ¸Ð½Ñ ÑоннÑÑ(имÑ_ведомого[, ...] ) ANYÑиÑло_ÑÐ¸Ð½Ñ ÑоннÑÑ(имÑ_ведомого[, ...] )имÑ_ведомого[, ...]здеÑÑ
ÑиÑло_ÑÐ¸Ð½Ñ ÑоннÑÑâ ÑиÑло ÑÐ¸Ð½Ñ ÑоннÑÑ Ð²ÐµÐ´Ð¾Ð¼ÑÑ ÑеÑвеÑов, Ð¾Ñ ÐºÐ¾ÑоÑÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ дожидаÑÑÑÑ Ð¾ÑвеÑов Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑÑанзакÑий, аимÑ_ведомогоâ Ð¸Ð¼Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа. СловаFIRSTиANYзадаÑÑ Ð¼ÐµÑод вÑбоÑа ÑÐ¸Ð½Ñ ÑоннÑÑ Ð²ÐµÐ´Ð¾Ð¼ÑÑ Ð¸Ð· пеÑеÑиÑленнÑÑ ÑеÑвеÑов.ÐлÑÑевое Ñлово
FIRST, в ÑоÑеÑании ÑÑиÑлом_ÑÐ¸Ð½Ñ ÑоннÑÑ, вÑбиÑÐ°ÐµÑ ÑÐ¸Ð½Ñ ÑоннÑÑ ÑепликаÑÐ¸Ñ Ð½Ð° оÑнове пÑиоÑиÑеÑов, когда ÑÑанзакÑии ÑикÑиÑÑÑÑÑÑ ÑолÑко поÑле Ñого, как Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи в WAL ÑеплиÑиÑÑÑÑÑÑ Ð½Ð°ÑиÑло_ÑÐ¸Ð½Ñ ÑоннÑÑведомÑÑ ÑеÑвеÑов, вÑбиÑаемÑÑ ÑоглаÑно пÑиоÑиÑеÑам. ÐапÑимеÑ, Ñо знаÑениемFIRST 3 (s1, s2, s3, s4)Ð´Ð»Ñ ÑикÑаÑии ÑÑанзакÑии Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ дождаÑÑÑÑ Ð¾ÑвеÑа Ð¾Ñ ÑÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ пÑиоÑиÑеÑнÑÑ Ð¸Ð· ÑеÑвеÑовs1,s2,s3иs4. ÐедомÑе ÑеÑвеÑÑ, имена коÑоÑÑÑ Ð¸Ð´ÑÑ Ð² ÑÑом ÑпиÑке пеÑвÑми, бÑдÑÑ Ð¸Ð¼ÐµÑÑ Ð±Ð¾Ð»ÑÑий пÑиоÑиÑÐµÑ Ð¸ бÑдÑÑ ÑÑиÑаÑÑÑÑ ÑÐ¸Ð½Ñ ÑоннÑми. СеÑвеÑÑ, ÑледÑÑÑие в ÑпиÑке за ними, бÑдÑÑ ÑÑиÑаÑÑÑÑ Ð¿Ð¾ÑенÑиалÑнÑми ÑÐ¸Ð½Ñ ÑоннÑми. ÐÑли один из ÑекÑÑÐ¸Ñ ÑÐ¸Ð½Ñ ÑоннÑÑ ÑеÑвеÑов по какой-Ñо пÑиÑине оÑклÑÑаеÑÑÑ, он немедленно бÑÐ´ÐµÑ Ð·Ð°Ð¼ÐµÐ½Ñн ÑледÑÑÑим ÑеÑвеÑом Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑим пÑиоÑиÑеÑом. ÐлÑÑевое ÑловоFIRSTÐ¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð¿ÑÑено.ÐлÑÑевое Ñлово
ANY, в ÑоÑеÑании ÑÑиÑлом_ÑÐ¸Ð½Ñ ÑоннÑÑ, вÑбиÑÐ°ÐµÑ ÑÐ¸Ð½Ñ ÑоннÑÑ ÑепликаÑÐ¸Ñ Ð½Ð° оÑнове квоÑÑма, когда ÑÑанзакÑии ÑикÑиÑÑÑÑÑÑ ÑолÑко поÑле Ñого, как Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи в WAL ÑеплиÑиÑÑÑÑÑÑ Ð½Ð° как минимÑмÑиÑло_ÑÐ¸Ð½Ñ ÑоннÑÑпеÑеÑиÑленнÑÑ ÑеÑвеÑов. ÐапÑимеÑ, Ñо знаÑениемANY 3 (s1, s2, s3, s4)Ð´Ð»Ñ ÑикÑаÑии ÑÑанзакÑии Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ дождаÑÑÑÑ Ð¾ÑвеÑа Ð¾Ñ ÐºÐ°Ðº минимÑм ÑÑÑÑ Ð¸Ð· ÑеÑвеÑовs1,s2,s3иs4.ÐлÑÑевÑе Ñлова
FIRSTиANYвоÑпÑинимаÑÑÑÑ Ð±ÐµÐ· ÑÑÑÑа ÑегиÑÑÑа. ÐÑли Ñакое же Ð¸Ð¼Ñ Ð¾ÐºÐ°Ð·ÑваеÑÑÑ Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из ведомÑÑ ÑеÑвеÑов, егоимÑ_ведомогонÑжно заклÑÑиÑÑ Ð² двойнÑе кавÑÑки.ТÑеÑÑÑ ÑоÑма иÑполÑзовалаÑÑ Ð² Postgres Pro до веÑÑии 9.6 и по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ. Ðо ÑÑÑи она ÑавнознаÑна пеÑвой Ñ
FIRSTиÑиÑлом_ÑÐ¸Ð½Ñ ÑоннÑм, ÑавнÑм 1. ÐапÑимеÑ,FIRST 1 (s1, s2)иs1, s2дейÑÑвÑÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾: в каÑеÑÑве ÑÐ¸Ð½Ñ Ñонного ведомого вÑбиÑаеÑÑÑ Ð»Ð¸Ð±Ð¾s1, либоs2.СпеÑиалÑÐ½Ð¾Ð¼Ñ ÑлеменÑÑ
*ÑооÑвеÑÑÑвÑÐµÑ Ð¸Ð¼Ñ Ð»Ñбого ведомого.УникалÑноÑÑÑ Ð¸Ð¼Ñн ведомÑÑ ÑеÑвеÑов не конÑÑолиÑÑеÑÑÑ. Ð ÑлÑÑае дÑблиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñн более пÑиоÑиÑеÑнÑм бÑÐ´ÐµÑ Ð¾Ð´Ð¸Ð½ из ÑеÑвеÑов Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑим именем, Ñ Ð¾ÑÑ ÐºÐ°ÐºÐ¾Ð¹ именно, не опÑеделено.
ÐÑимеÑание
Ðаждое
имÑ_ведомогодолжно задаваÑÑÑÑ Ð² виде допÑÑÑимого иденÑиÑикаÑоÑа SQL, кÑоме*. ÐÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи его можно заклÑÑаÑÑ Ð² кавÑÑки. Ðо замеÑÑÑе, ÑÑо иденÑиÑикаÑоÑÑимÑ_ведомогоÑÑавниваÑÑÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ пÑиложений без ÑÑÑÑа ÑегиÑÑÑа, незавиÑимо Ð¾Ñ Ñого, заклÑÑÐµÐ½Ñ Ð»Ð¸ они в кавÑÑки или неÑ.ÐÑли имена ÑÐ¸Ð½Ñ ÑоннÑÑ Ð²ÐµÐ´Ð¾Ð¼ÑÑ ÑеÑвеÑов не опÑеделенÑ, ÑÐ¸Ð½Ñ ÑÐ¾Ð½Ð½Ð°Ñ ÑепликаÑÐ¸Ñ Ð½Ðµ вклÑÑаеÑÑÑ Ð¸ ÑикÑиÑÑемÑе ÑÑанзакÑии не бÑдÑÑ Ð¶Ð´Ð°ÑÑ ÑепликаÑии. ÐÑо поведение по ÑмолÑаниÑ. Ðаже когда ÑÐ¸Ð½Ñ ÑÐ¾Ð½Ð½Ð°Ñ ÑепликаÑÐ¸Ñ Ð²ÐºÐ»ÑÑена, Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑÑанзакÑий можно оÑклÑÑиÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ðµ ÑепликаÑии, задав Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа synchronous_commit знаÑение
localилиoff.ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко в
postgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.vacuum_defer_cleanup_age(integer)ÐадаÑÑ ÑиÑло ÑÑанзакÑий, на коÑоÑое бÑÐ´ÐµÑ Ð¾Ñложена оÑиÑÑка ÑÑаÑÑÑ Ð²ÐµÑÑий ÑÑÑок пÑи
VACUUMи изменениÑÑ HOT. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо ÑиÑло Ñавно нÑлÑ, Ñо еÑÑÑ ÑÑаÑÑе веÑÑии ÑÑÑок могÑÑ ÑдалÑÑÑÑÑ ÑÑазÑ, как ÑолÑко пеÑеÑÑанÑÑ Ð±ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñми в оÑкÑÑÑÑÑ ÑÑанзакÑиÑÑ . ÐÑо знаÑение можно ÑделаÑÑ Ð½ÐµÐ½ÑлевÑм на ведÑÑем ÑеÑвеÑе, ÑабоÑаÑÑим Ñ ÑеÑвеÑами гоÑÑÑего ÑезеÑва, как опиÑано в Разделе 25.5. Ð ÑезÑлÑÑаÑе ÑвелиÑиÑÑÑ Ð²ÑемÑ, в ÑеÑение коÑоÑого бÑдÑÑ ÑÑпеÑно вÑполнÑÑÑÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð½Ð° ведомом ÑеÑвеÑе без конÑликÑов из-за Ñанней оÑиÑÑки ÑÑÑок. Ðднако Ð²Ð²Ð¸Ð´Ñ Ñого, ÑÑо ÑÑа оÑÑÑоÑка опÑеделÑеÑÑÑ ÑиÑлом запиÑÑваÑÑÐ¸Ñ ÑÑанзакÑий, вÑполнÑÑÑÐ¸Ñ ÑÑ Ð½Ð° ведÑÑем ÑеÑвеÑе, Ñложно пÑедÑказаÑÑ, каким бÑÐ´ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑное вÑÐµÐ¼Ñ Ð¾ÑÑÑоÑки на ведомом ÑеÑвеÑе. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.РкаÑеÑÑве алÑÑеÑнаÑÐ¸Ð²Ñ ÑÑÐ¾Ð¼Ñ Ð¿Ð°ÑамеÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ Ñакже ÑаÑÑмоÑÑеÑÑ
hot_standby_feedbackна ведомом ÑеÑвеÑе.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ пÑедоÑвÑаÑÐ°ÐµÑ Ð¾ÑиÑÑÐºÑ ÑÑаÑÑÑ ÑÑÑок, коÑоÑÑе доÑÑигли возÑаÑÑа, заданного паÑамеÑÑом
old_snapshot_threshold.
18.6.3. ÐедомÑе ÑеÑвеÑÑ
ÐÑи паÑамеÑÑÑ ÑпÑавлÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ ведомого ÑеÑвеÑа, коÑоÑÑй бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð´Ð°Ð½Ð½Ñе ÑепликаÑии. Ðа ведÑÑем ÑеÑвеÑе они не игÑаÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ Ñоли.
hot_standby(boolean)ÐпÑеделÑеÑ, можно ли бÑÐ´ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº ÑеÑвеÑÑ Ð¸ вÑполнÑÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð² пÑоÑеÑÑе воÑÑÑановлениÑ, как опиÑано в Разделе 25.5. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
on(подклÑÑÐµÐ½Ð¸Ñ ÑазÑеÑаÑÑÑÑ). ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко пÑи запÑÑке ÑеÑвеÑа. ÐаннÑй паÑамеÑÑ Ð¸Ð³ÑÐ°ÐµÑ ÑÐ¾Ð»Ñ ÑолÑко в Ñежиме ведомого ÑеÑвеÑа или пÑи воÑÑÑановлении аÑÑ Ð¸Ð²Ð°.max_standby_archive_delay(integer)Ð Ñежиме гоÑÑÑего ÑезеÑва ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑеделÑеÑ, как долго должен ждаÑÑ Ð²ÐµÐ´Ð¾Ð¼Ñй ÑеÑвеÑ, пÑежде Ñем оÑменÑÑÑ Ð·Ð°Ð¿ÑоÑÑ, конÑликÑÑÑÑие Ñ Ð¾ÑеÑеднÑми изменениÑми в WAL, как опиÑано в ÐодÑазделе 25.5.2. ÐадеÑжка
max_standby_archive_delayпÑименÑеÑÑÑ Ð¿Ñи обÑабоÑке даннÑÑ WAL, ÑÑиÑÑваемÑÑ Ð¸Ð· аÑÑ Ð¸Ð²Ð° (не ÑекÑÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ ). ÐнаÑение ÑÑого паÑамеÑÑа задаÑÑÑÑ Ð² миллиÑекÑÐ½Ð´Ð°Ñ (еÑли Ñвно не ÑÐºÐ°Ð·Ð°Ð½Ñ Ð´ÑÑгие единиÑÑ) и по ÑмолÑÐ°Ð½Ð¸Ñ Ñавно 30 ÑекÑндам. ÐÑи знаÑении, Ñавном -1, ведомÑй Ð¼Ð¾Ð¶ÐµÑ Ð¶Ð´Ð°ÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑликÑÑÑÑÐ¸Ñ Ð·Ð°Ð¿ÑоÑов неогÑаниÑенное вÑемÑ. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.ÐамеÑÑÑе, ÑÑо паÑамеÑÑ
max_standby_archive_delayопÑеделÑÐµÑ Ð½Ðµ макÑималÑное вÑемÑ, коÑоÑое оÑводиÑÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ запÑоÑа, а макÑималÑное обÑее вÑемÑ, за коÑоÑое Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· одного ÑегменÑа WAL. Таким обÑазом, еÑли один запÑÐ¾Ñ Ð¿ÑивÑл к знаÑиÑелÑной задеÑжке пÑи обÑабоÑке ÑегменÑа WAL, оÑÑалÑнÑм конÑликÑÑÑÑим запÑоÑам бÑÐ´ÐµÑ Ð¾Ñведено гоÑаздо менÑÑе вÑемени.max_standby_streaming_delay(integer)Ð Ñежиме гоÑÑÑего ÑезеÑва ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑеделÑеÑ, как долго должен ждаÑÑ Ð²ÐµÐ´Ð¾Ð¼Ñй ÑеÑвеÑ, пÑежде Ñем оÑменÑÑÑ Ð·Ð°Ð¿ÑоÑÑ, конÑликÑÑÑÑие Ñ Ð¾ÑеÑеднÑми изменениÑми в WAL, как опиÑано в ÐодÑазделе 25.5.2. ÐадеÑжка
max_standby_streaming_delayпÑименÑеÑÑÑ Ð¿Ñи обÑабоÑке даннÑÑ WAL, поÑÑÑпаÑÑÐ¸Ñ Ð¿Ñи поÑоковой ÑепликаÑии. ÐнаÑение ÑÑого паÑамеÑÑа задаÑÑÑÑ Ð² миллиÑекÑÐ½Ð´Ð°Ñ (еÑли Ñвно не ÑÐºÐ°Ð·Ð°Ð½Ñ Ð´ÑÑгие единиÑÑ) и по ÑмолÑÐ°Ð½Ð¸Ñ Ñавно 30 ÑекÑндам. ÐÑи знаÑении, Ñавном -1, ведомÑй Ð¼Ð¾Ð¶ÐµÑ Ð¶Ð´Ð°ÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑликÑÑÑÑÐ¸Ñ Ð·Ð°Ð¿ÑоÑов неогÑаниÑенное вÑемÑ. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.ÐамеÑÑÑе, ÑÑо паÑамеÑÑ
max_standby_streaming_delayопÑеделÑÐµÑ Ð½Ðµ макÑималÑное вÑемÑ, коÑоÑое оÑводиÑÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ запÑоÑа, а макÑималÑное обÑее вÑемÑ, за коÑоÑое Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· WAL поÑле полÑÑÐµÐ½Ð¸Ñ Ð¾Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ ÑеÑвеÑа. Таким обÑазом, еÑли один запÑÐ¾Ñ Ð¿ÑивÑл к знаÑиÑелÑной задеÑжке, оÑÑалÑнÑм конÑликÑÑÑÑим запÑоÑам бÑÐ´ÐµÑ Ð¾ÑводиÑÑÑÑ Ð³Ð¾Ñаздо менÑÑе вÑемени, пока ÑезеÑвнÑй ÑеÑÐ²ÐµÑ Ð½Ðµ Ð´Ð¾Ð³Ð¾Ð½Ð¸Ñ Ð³Ð»Ð°Ð²Ð½Ñй.wal_receiver_status_interval(integer)ÐпÑеделÑÐµÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑÑ ÑаÑÑоÑÑ, Ñ ÐºÐ¾ÑоÑой пÑоÑеÑÑ, пÑинимаÑÑий WAL на ведомом ÑеÑвеÑе, бÑÐ´ÐµÑ ÑообÑаÑÑ Ð¾ ÑоÑÑоÑнии ÑепликаÑии ведÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ вÑÑеÑÑоÑÑÐµÐ¼Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð¼Ñ, где ÑÑо ÑоÑÑоÑние можно наблÑдаÑÑ Ð² пÑедÑÑавлении
pg_stat_replication. Ð ÑÑом ÑообÑении пеÑедаÑÑÑÑ ÑледÑÑÑие позиÑии в жÑÑнале пÑедзапиÑи: позиÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ запиÑаннÑÑ , изменений, ÑÐ¾Ñ ÑанÑннÑÑ Ð½Ð° диÑке, и изменений пÑименÑннÑÑ . ÐнаÑение паÑамеÑÑа задаÑÑÑÑ Ð² ÑекÑÐ½Ð´Ð°Ñ Ð¸ опÑеделÑÐµÑ Ð¼Ð°ÐºÑималÑнÑй инÑеÑвал Ð¼ÐµÐ¶Ð´Ñ ÑообÑениÑми. СообÑÐµÐ½Ð¸Ñ Ð¾ ÑоÑÑоÑнии пеÑедаÑÑÑÑ Ð¿Ñи каждом пÑодвижении позиÑий запиÑаннÑÑ Ð¸Ð»Ð¸ ÑÐ¾Ñ ÑанÑннÑÑ Ð½Ð° диÑке изменений, но Ñ Ð¿ÑомежÑÑком не болÑÑе, Ñем заданнÑй ÑÑим паÑамеÑÑом. Таким обÑазом, поÑледнÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð¿ÑименÑннÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ð¼Ð¾Ð¶ÐµÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ оÑÑÑаваÑÑ Ð¾Ñ ÑакÑиÑеÑкой в ÑекÑÑий моменÑ. ÐÑи нÑлевом знаÑении ÑÑого паÑамеÑÑа пеÑедаÑа ÑоÑÑоÑÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¾ÑклÑÑаеÑÑÑ. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐµÐ³Ð¾ знаÑение Ñавно 10 ÑекÑндам.hot_standby_feedback(boolean)ÐпÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ ÑеÑÐ²ÐµÑ Ð³Ð¾ÑÑÑего ÑезеÑва ÑообÑаÑÑ Ð²ÐµÐ´ÑÑÐµÐ¼Ñ Ð¸Ð»Ð¸ вÑÑеÑÑоÑÑÐµÐ¼Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð¼Ñ Ð¾ запÑоÑÐ°Ñ , коÑоÑÑе он вÑполнÑÐµÑ Ð² даннÑй моменÑ. ÐÑо позволÑÐµÑ Ð¸ÑклÑÑиÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð¾ÑÐ¼ÐµÐ½Ñ Ð·Ð°Ð¿ÑоÑов, вÑзваннÑÑ Ð¾ÑиÑÑкой запиÑей, но пÑи некоÑоÑÑÑ ÑÐ¸Ð¿Ð°Ñ Ð½Ð°Ð³ÑÑзки ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑиводиÑÑ Ðº ÑаздÑÐ²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ð° ведÑÑем ÑеÑвеÑе. ÐÑи ÑообÑÐµÐ½Ð¸Ñ Ð¾ запÑоÑÐ°Ñ Ð±ÑдÑÑ Ð¾ÑпÑавлÑÑÑÑÑ Ð½Ðµ ÑаÑе, Ñем Ñаз в инÑеÑвал, задаваемÑй паÑамеÑÑом
wal_receiver_status_interval. ÐнаÑение данного паÑамеÑÑа по ÑмолÑÐ°Ð½Ð¸Ñ âoff. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.ÐÑли иÑполÑзÑеÑÑÑ ÐºÐ°ÑÐºÐ°Ð´Ð½Ð°Ñ ÑепликаÑиÑ, ÑообÑÐµÐ½Ð¸Ñ Ð¾ запÑоÑÐ°Ñ Ð¿ÐµÑедаÑÑÑÑ Ð²ÑÑе, пока в иÑоге не доÑÑигнÑÑ Ð²ÐµÐ´ÑÑего ÑеÑвеÑа. Ðа пÑомежÑÑоÑнÑÑ ÑеÑвеÑÐ°Ñ ÑÑа инÑоÑмаÑÐ¸Ñ Ð±Ð¾Ð»ÑÑе никак не задейÑÑвÑеÑÑÑ.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ пеÑеопÑеделÑÐµÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ
old_snapshot_threshold, ÑÑÑановленное на ведÑÑем ÑеÑвеÑе; Ñнимок на ведомом ÑеÑвеÑе, имеÑÑий возÑаÑÑ Ð±Ð¾Ð»ÑÑе заданного ÑказаннÑм паÑамеÑÑом на ведÑÑем, Ð¼Ð¾Ð¶ÐµÑ ÑÑаÑÑ Ð½ÐµÐ´ÐµÐ¹ÑÑвиÑелÑнÑм, ÑÑо пÑиведÑÑ Ðº оÑмене ÑÑанзакÑий на ведомом. ÐÑо обÑÑÑнÑеÑÑÑ Ñем, ÑÑо пÑедназнаÑениеold_snapshot_thresholdзаклÑÑаеÑÑÑ Ð² Ñказании абÑолÑÑного огÑаниÑÐµÐ½Ð¸Ñ Ð²Ñемени, в ÑеÑение коÑоÑого могÑÑ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÑÑÑÑ Ð¼ÑÑÑвÑе ÑÑÑоки, коÑоÑое инаÑе могло Ð±Ñ Ð½Ð°ÑÑÑаÑÑÑÑ Ð¸Ð·-за конÑигÑÑаÑии ведомого.wal_receiver_timeout(integer)ÐадаÑÑ Ð¿ÐµÑиод вÑемени (в миллиÑекÑÐ½Ð´Ð°Ñ ), по иÑÑеÑении коÑоÑого пÑеÑÑваÑÑÑÑ Ð½ÐµÐ°ÐºÑивнÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑепликаÑии. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¿ÑинимаÑÑÐµÐ¼Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð¼Ñ ÑеÑвеÑÑ Ð¾Ð±Ð½Ð°ÑÑжиÑÑ Ñбой ведÑÑего или ÑазÑÑв ÑеÑи. ÐÑи знаÑении, Ñавном нÑлÑ, Ñайм-аÑÑ Ð¾ÑклÑÑаеÑÑÑ. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко в
postgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 60 ÑекÑнд.wal_retrieve_retry_interval(integer)ÐпÑеделÑеÑ, ÑколÑко ведомÑй ÑеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ ждаÑÑ Ð¿Ð¾ÑÑÑÐ¿Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ WAL из лÑбÑÑ Ð¸ÑÑоÑников (поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑиÑ, локалÑнÑй
pg_walили аÑÑ Ð¸Ð² WAL), пÑежде Ñем повÑоÑÑÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ WAL. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке ÑеÑвеÑа. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 5 ÑекÑнд. ÐÑли единиÑÑ Ð½Ðµ задаÑÑÑÑ, подÑазÑмеваÑÑÑÑ Ð¼Ð¸Ð»Ð»Ð¸ÑекÑндÑ.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в конÑигÑÑаÑиÑÑ , когда Ð´Ð»Ñ Ñзла в ÑÑ ÐµÐ¼Ðµ воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ñжно ÑегÑлиÑоваÑÑ Ð²ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ð´Ð°Ð½Ð½ÑÑ WAL. ÐапÑимеÑ, пÑи воÑÑÑановлении аÑÑ Ð¸Ð²Ð° можно ÑÑкоÑиÑÑ ÑеакÑÐ¸Ñ Ð½Ð° поÑвление нового Ñайла WAL, ÑменÑÑив знаÑение ÑÑого паÑамеÑÑа. Ð ÑиÑÑеме Ñ Ð½Ð¸Ð·ÐºÐ¾Ð¹ акÑивноÑÑÑÑ WAL ÑвелиÑение ÑÑого паÑамеÑÑа пÑиведÑÑ Ðº ÑокÑаÑÐµÐ½Ð¸Ñ ÑиÑла запÑоÑов, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð¾Ð² WAL, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ в облаÑнÑÑ Ð¾ÐºÑÑжениÑÑ , где ÑÑиÑÑваеÑÑÑ ÑиÑло обÑаÑений к инÑÑаÑÑÑÑкÑÑÑе.
18.6.4. ÐодпиÑÑики
ÐÑи паÑамеÑÑÑ ÑпÑавлÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ подпиÑÑика логиÑеÑкой ÑепликаÑии. Ðа пÑбликÑÑÑем ÑеÑвеÑе они не игÑаÑÑ Ñоли.
ÐамеÑÑÑе, ÑÑо паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии wal_receiver_timeout, wal_receiver_status_interval и wal_retrieve_retry_interval Ñакже воздейÑÑвÑÑÑ Ð½Ð° ÑабоÑие пÑоÑеÑÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии.
max_logical_replication_workers(int)ÐадаÑÑ Ð¼Ð°ÐºÑималÑно возможное ÑиÑло ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов логиÑеÑкой ÑепликаÑии. Ð ÑÑо ÑиÑло Ð²Ñ Ð¾Ð´ÑÑ Ð¸ ÑабоÑие пÑоÑеÑÑÑ, пÑименÑÑÑие изменениÑ, и пÑоÑеÑÑÑ, ÑÐ¸Ð½Ñ ÑонизиÑÑÑÑие ÑаблиÑÑ.
РабоÑие пÑоÑеÑÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии беÑÑÑÑÑ Ð¸Ð· пÑла, конÑÑолиÑÑемого паÑамеÑÑом
max_worker_processes.ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 4. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко пÑи запÑÑке ÑеÑвеÑа.
max_sync_workers_per_subscription(integer)ÐакÑималÑное ÑиÑло ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, вÑполнÑÑÑÐ¸Ñ ÑÐ¸Ð½Ñ ÑонизаÑиÑ, Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ подпиÑки. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑпÑавлÑÐµÑ ÑÑепенÑÑ ÑаÑпаÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°ÑалÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð² пÑоÑеÑÑе иниÑиализаÑии подпиÑки или пÑи добавлении новÑÑ ÑаблиÑ.
РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¾Ð´Ð½Ñ ÑаблиÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑабаÑÑваÑÑ ÑолÑко один ÑабоÑий пÑоÑеÑÑ ÑÐ¸Ð½Ñ ÑонизаÑии.
РабоÑие пÑоÑеÑÑÑ ÑÐ¸Ð½Ñ ÑонизаÑии беÑÑÑÑÑ Ð¸Ð· пÑла, конÑÑолиÑÑемого паÑамеÑÑом
max_logical_replication_workers.ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 2. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко в
postgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.