WAITLSN
WAITLSN â ожидаÑÑ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñелевого LSN
СинÑакÑиÑ
WAITLSN 'LSN' [ INFINITELY ] WAITLSN 'LSN' TIMEOUTвÑемÑ_ожиданиÑWAITLSN 'LSN' NOWAIT
ÐпиÑание
WAITLSN пÑедоÑÑавлÑÐµÑ Ð¿ÑоÑÑой межпÑоÑеÑÑнÑй меÑ
анизм Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñелевого LSN (поÑледоваÑелÑного номеÑа запиÑи в жÑÑнале) на ведомÑÑ
ÑзлаÑ
в ÑÑ
емаÑ
ÑинÑ
Ñонной ÑепликаÑии ведÑÑий-ведомÑй Postgres Pro. Ðоманда WAITLSN ждÑÑ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ LSN. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÐ¾Ð³ÑаниÑенно. Ðжидание можно пÑеÑваÑÑ, нажав Ctrl+C или оÑÑановив ÑеÑÐ²ÐµÑ postgres. ÐÑ Ñакже можеÑе задаÑÑ Ð²ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ, добавив Ñказание TIMEOUT, или пÑовеÑиÑÑ ÑоÑÑоÑние Ñелевого LSN без ожиданиÑ, воÑполÑзовавÑиÑÑ Ñказанием NOWAIT.
Ðажно
ÐпеÑаÑÐ¾Ñ WAITLSN ÑÑиÑаеÑÑÑ ÑÑÑаÑевÑим.
ÐаÑамеÑÑÑ
LSNУказÑÐ²Ð°ÐµÑ Ð¿Ð¾ÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð·Ð°Ð¿Ð¸Ñи в жÑÑнале, воÑпÑоизведение коÑоÑой ожидаеÑÑÑ.
- INFINITELY
ÐжидаÑÑ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñелевого LSN на ведомом ÑеÑвеÑе неогÑаниÑенное вÑемÑ. ÐÑо необÑзаÑелÑнÑй паÑамеÑÑ, подÑвеÑждаÑÑий поведение по ÑмолÑаниÑ.
- TIMEOUT
вÑемÑ_Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ ÐгÑаниÑÐ¸Ð²Ð°ÐµÑ Ð²ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ LSN. РпаÑамеÑÑе
вÑемÑ_ожиданиÑÑказÑваеÑÑÑ Ñелое ÑиÑло миллиÑекÑнд.- NOWAIT
С ÑÑим Ñказанием команда ÑообÑаеÑ, бÑл ли Ñже воÑпÑоизведÑн заданнÑй LSN, без ожиданиÑ.
ÐÑимеÑÑ
ÐÑполнение WAITLSN в psql Ñ Ð¾Ð³ÑаниÑением вÑемени до 10000 миллиÑекÑнд:
WAITLSN '0/3F07A6B1' TIMEOUT 10000; NOTICE: LSN is not reached. Try to increase wait time. LSN reached ------------- f (1 row)
Ðжидание воÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñказанного LSN:
WAITLSN '0/3F07A611'; LSN reached ------------- t (1 row)
ÐгÑаниÑение вÑемени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ LSN до 500000 миллиÑекÑнд и оÑмена командÑ:
WAITLSN '0/3F0FF791' TIMEOUT 500000; ^CCancel request sent NOTICE: LSN is not reached. Try to increase wait time. ERROR: canceling statement due to user request LSN reached ------------- f (1 row)
СовмеÑÑимоÑÑÑ
ÐпеÑаÑÐ¾Ñ WAITLSN оÑÑÑÑÑÑвÑÐµÑ Ð² ÑÑандаÑÑе SQL.