9.27. ФÑнкÑии Ð´Ð»Ñ ÑиÑÑемного админиÑÑÑиÑованиÑ
ФÑнкÑии, опиÑаннÑе в ÑÑом Ñазделе, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð¸ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑвеÑом Postgres Pro.
9.27.1. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией
РТаблиÑе 9.83 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, позволÑÑÑие полÑÑиÑÑ Ð¸ измениÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии вÑполнениÑ.
ТаблиÑа 9.83. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией
ФÑнкÑÐ¸Ñ ÐпиÑание ÐÑимеÑ(Ñ) |
|---|
current_setting ( setting_name text [, missing_ok boolean] ) â text ÐÑдаÑÑ ÑекÑÑее знаÑение паÑамеÑÑа setting_name. ÐÑли Ñакого паÑамеÑÑа неÑ, current_setting вÑдаÑÑ Ð¾ÑибкÑ, еÑли ÑолÑко дополниÑелÑно не пеÑедан паÑамеÑÑ missing_ok Ñо знаÑением true (в ÑÑом ÑлÑÑае вÑдаÑÑÑÑ NULL). ÐÑа ÑÑнкÑÐ¸Ñ ÑооÑвеÑÑÑвÑÐµÑ SQL-команде SHOW. current_setting('datestyle') â ISO, MDY
|
set_config ( setting_name text, new_value text, is_local boolean ) â text УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа setting_name знаÑение new_value и возвÑаÑÐ°ÐµÑ ÑÑо знаÑение. ÐÑли паÑамеÑÑ is_local Ñавен true, новое знаÑение бÑÐ´ÐµÑ Ð´ÐµÐ¹ÑÑвоваÑÑ ÑолÑко в ÑамкаÑ
ÑекÑÑей ÑÑанзакÑии. ЧÑÐ¾Ð±Ñ ÑÑо знаÑение дейÑÑвовало на пÑоÑÑжении ÑекÑÑего ÑеанÑа, пÑиÑвойÑе ÑÑÐ¾Ð¼Ñ Ð¿Ð°ÑамеÑÑÑ false. ÐÑа ÑÑнкÑÐ¸Ñ ÑооÑвеÑÑÑвÑÐµÑ SQL-команде SET. set_config('log_statement_stats', 'off', false) â off
|
9.27.2. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.84, позволÑÑÑ Ð¿ÐµÑедаваÑÑ ÑпÑавлÑÑÑие ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð´ÑÑгим ÑеÑвеÑнÑм пÑоÑеÑÑам. ÐÑзÑваÑÑ ÑÑи ÑÑнкÑии по ÑмолÑÐ°Ð½Ð¸Ñ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм, но доÑÑÑп к ним можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм командой GRANT, кÑоме Ñвно оÑмеÑеннÑÑ
иÑклÑÑений.
ÐÐ°Ð¶Ð´Ð°Ñ Ð¸Ð· ÑÑиÑ
ÑÑнкÑий возвÑаÑÐ°ÐµÑ true пÑи ÑÑпеÑном завеÑÑении и false в пÑоÑивном ÑлÑÑае.
ТаблиÑа 9.84. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_cancel_backend ( pid integer ) â boolean ÐÑменÑÐµÑ ÑекÑÑий запÑÐ¾Ñ Ð² ÑеанÑе, коÑоÑÑй обÑлÑживаеÑÑÑ Ð¿ÑоÑеÑÑом Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм PID. ÐÑо дейÑÑвие ÑазÑеÑаеÑÑÑ Ð¸ ÑолÑм, ÑвлÑÑÑимÑÑ Ñленами Ñоли, запÑÐ¾Ñ ÐºÐ¾ÑоÑой оÑменÑеÑÑÑ, и ÑолÑм, коÑоÑÑм дано пÑаво pg_signal_backend; однако ÑолÑко ÑÑпеÑполÑзоваÑелÑм ÑазÑеÑено оÑменÑÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð´ÑÑгиÑ
ÑÑпеÑполÑзоваÑелей. |
pg_reload_conf () â boolean ÐаÑÑ Ð²Ñем пÑоÑеÑÑам ÑеÑвеÑа Postgres Pro ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÐµÑегÑÑзиÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии. (ÐÐ»Ñ ÑÑого поÑÑлаеÑÑÑ Ñигнал SIGHUP Ð³Ð»Ð°Ð²Ð½Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ, коÑоÑÑй, в Ñвой оÑеÑедÑ, поÑÑÐ»Ð°ÐµÑ SIGHUP вÑем Ñвоим доÑеÑним пÑоÑеÑÑам.) |
pg_rotate_logfile () â boolean УказÑÐ²Ð°ÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑÑ Ð¶ÑÑнала ÑообÑений немедленно пеÑеклÑÑиÑÑÑÑ Ð½Ð° новÑй Ñайл. ÐÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл, ÑолÑко когда ÑабоÑÐ°ÐµÑ Ð²ÑÑÑоеннÑй ÑбоÑÑик ÑообÑений, Ñак как без него подпÑоÑеÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа жÑÑнала не запÑÑкаеÑÑÑ. |
pg_terminate_backend ( pid integer ) â boolean ÐавеÑÑÐ°ÐµÑ ÑеанÑ, коÑоÑÑй обÑлÑживаеÑÑÑ Ð¿ÑоÑеÑÑом Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм PID. ÐÑо дейÑÑвие ÑазÑеÑаеÑÑÑ Ð¸ ÑолÑм, ÑвлÑÑÑимÑÑ Ñленами Ñоли, пÑоÑеÑÑ ÐºÐ¾ÑоÑой пÑеÑÑваеÑÑÑ, и ÑолÑм, коÑоÑÑм дано пÑаво pg_signal_backend; однако ÑолÑко ÑÑпеÑполÑзоваÑелÑм ÑазÑеÑено пÑеÑÑваÑÑ Ð¾Ð±ÑлÑживаÑÑие пÑоÑеÑÑÑ Ð´ÑÑгиÑ
ÑÑпеÑполÑзоваÑелей. |
pg_cancel_backend и pg_terminate_backend пеÑедаÑÑ ÑÐ¸Ð³Ð½Ð°Ð»Ñ (SIGINT и SIGTERM, ÑооÑвеÑÑÑвенно) ÑеÑвеÑÐ½Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм кодом PID. Ðод акÑивного пÑоÑеÑÑа можно полÑÑиÑÑ Ð¸Ð· ÑÑолбÑа pid пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_activity или пÑоÑмоÑÑев на ÑеÑвеÑе пÑоÑеÑÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ postgres (иÑполÑзÑÑ ps в Unix или ÐиÑпеÑÑÐµÑ Ð·Ð°Ð´Ð°Ñ Ð² Windows). Ð Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð°ÐºÑивного пÑоÑеÑÑа можно ÑзнаÑÑ Ð² ÑÑолбÑе usename пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_activity.
9.27.3. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.85, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° Ñ
одÑ». ÐÑи ÑÑнкÑии нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (за иÑклÑÑением немонополÑнÑÑ
ваÑианÑов pg_start_backup и pg_stop_backup, а Ñакже ÑÑнкÑий pg_is_in_backup, pg_backup_start_time и pg_wal_lsn_diff).
ÐодÑобнее пÑакÑиÑеÑкое пÑименение ÑÑиÑ
ÑÑнкÑий опиÑÑваеÑÑÑ Ð² Разделе 24.3.
ТаблиÑа 9.85. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_create_restore_point ( name text ) â pg_lsn СоздаÑÑ Ð² жÑÑнале пÑедзапиÑи именованнÑй маÑкеÑ, коÑоÑÑй можно иÑполÑзоваÑÑ ÐºÐ°Ðº ÑÐµÐ»Ñ Ð¿Ñи воÑÑÑановлении, и возвÑаÑÐ°ÐµÑ ÑооÑвеÑÑÑвÑÑÑÑÑ ÐµÐ¼Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² жÑÑнале. ÐолÑÑенное Ð¸Ð¼Ñ Ð·Ð°Ñем можно ÑказаÑÑ Ð² паÑамеÑÑе recovery_target_name, опÑеделив Ñем ÑамÑм ÑоÑкÑ, до коÑоÑой бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð²Ð¾ÑÑÑановление. УÑÑиÑе, ÑÑо еÑли бÑÐ´ÐµÑ Ñоздано неÑколÑко ÑоÑек воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾Ð´Ð½Ð¸Ð¼ именем, воÑÑÑановление оÑÑановиÑÑÑ Ð½Ð° пеÑвой ÑоÑке Ñ ÑÑим именем. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_current_wal_flush_lsn () â pg_lsn ÐÑдаÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑбÑоÑа даннÑÑ
в жÑÑнале пÑедзапиÑи (Ñм. пÑимеÑÐ°Ð½Ð¸Ñ Ð½Ð¸Ð¶Ðµ). |
pg_current_wal_insert_lsn () â pg_lsn ÐÑдаÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² жÑÑнале пÑедзапиÑи (Ñм. пÑимеÑÐ°Ð½Ð¸Ñ Ð½Ð¸Ð¶Ðµ). |
pg_current_wal_lsn () â pg_lsn ÐÑдаÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñи в жÑÑнале пÑедзапиÑи (Ñм. пÑимеÑÐ°Ð½Ð¸Ñ Ð½Ð¸Ð¶Ðµ). |
pg_start_backup ( label text [, fast boolean [, exclusive boolean]] ) â pg_lsn ÐодгоÑÐ°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑеÑÐ²ÐµÑ Ðº ÑезеÑÐ²Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° леÑÑ». ÐдинÑÑвеннÑй обÑзаÑелÑнÑй паÑамеÑÑ Ð·Ð°Ð´Ð°ÑÑ Ð¿ÑоизволÑнÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкÑÑ Ð¼ÐµÑÐºÑ ÑезеÑвной копии. (ÐбÑÑно ÑÑо имÑ, коÑоÑое полÑÑÐ¸Ñ Ñайл ÑезеÑвной копии.) ÐÑли необÑзаÑелÑнÑй вÑоÑой паÑамеÑÑ Ð·Ð°Ð´Ð°Ð½ и Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение true, ÑÑнкÑÐ¸Ñ pg_start_backup должна вÑполниÑÑÑÑ Ð¼Ð°ÐºÑималÑно бÑÑÑÑо. ÐÑо ознаÑаеÑ, ÑÑо пÑинÑдиÑелÑно бÑÐ´ÐµÑ Ð²Ñполнена конÑÑолÑÐ½Ð°Ñ ÑоÑка, вÑледÑÑвие Ñего кÑаÑковÑеменно ÑвелиÑиÑÑÑ Ð½Ð°Ð³ÑÑзка на ввод-вÑвод и паÑаллелÑно вÑполнÑемÑе запÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð¼ÐµÐ´Ð»Ð¸ÑÑÑÑ. ÐеобÑзаÑелÑнÑй ÑÑеÑий паÑамеÑÑ ÑказÑваеÑ, бÑÐ´ÐµÑ Ð»Ð¸ ÑезеÑвное копиÑование вÑполнÑÑÑÑÑ Ð² немонополÑном или монополÑном Ñежиме (по ÑмолÑаниÑ). ÐÑи копиÑовании в монополÑном Ñежиме ÑÑа ÑÑнкÑÐ¸Ñ Ð·Ð°Ð¿Ð¸ÑÑÐ²Ð°ÐµÑ Ñайл меÑки (backup_label) и, еÑли еÑÑÑ ÑÑÑлки в каÑалоге pg_tblspc/, Ñайл каÑÑÑ ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв (tablespace_map) в каÑалог даннÑÑ
клаÑÑеÑа ÐÐ, вÑполнÑÐµÑ Ð¿ÑоÑедÑÑÑ ÐºÐ¾Ð½ÑÑолÑной ÑоÑки, а заÑем возвÑаÑÐ°ÐµÑ Ð½Ð°ÑалÑнÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ñоздаваемой копии в жÑÑнале пÑедзапиÑи. (РезÑлÑÑÐ°Ñ ÑÑой ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½, но еÑли он не нÑжен, его можно пÑоÑÑо игноÑиÑоваÑÑ.) ÐÑи копиÑовании в немонополÑном Ñежиме ÑодеÑжимое ÑÑиÑ
Ñайлов вÑдаÑÑÑÑ ÑÑнкÑией pg_stop_backup, и должно бÑÑÑ Ð·Ð°Ð¿Ð¸Ñано в аÑÑ
ивнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð²Ð½ÐµÑними ÑÑедÑÑвами. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_stop_backup ( exclusive boolean [, wait_for_archive boolean] ) â setof record ( lsn pg_lsn, labelfile text, spcmapfile text ) ÐавеÑÑÐ°ÐµÑ Ð¿ÑоÑедÑÑÑ Ð½ÐµÐ¼Ð¾Ð½Ð¾Ð¿Ð¾Ð»Ñного или монополÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° леÑÑ». ÐнаÑение паÑамеÑÑа exclusive должно ÑооÑвеÑÑÑвоваÑÑ ÑомÑ, ÑÑо бÑло пеÑедано в пÑедÑеÑÑвÑÑÑем вÑзове pg_start_backup. ÐÑи монополÑном копиÑовании pg_stop_backup ÑдалÑÐµÑ Ñайл меÑки (и Ñайл tablespace_map, еÑли он ÑÑÑеÑÑвÑеÑ), ÑозданнÑй ÑÑнкÑией pg_start_backup. ÐÑи немонополÑном копиÑовании ожидаемое ÑодеÑжимое ÑÑиÑ
Ñайлов возвÑаÑаеÑÑÑ Ð² ÑезÑлÑÑаÑе ÑÑой ÑÑнкÑии и должно бÑÑÑ Ð·Ð°Ð¿Ð¸Ñано в ÑÐ°Ð¹Ð»Ñ Ð² аÑÑ
иве (не в каÑалоге даннÑÑ
). У ÑÑой ÑÑнкÑии еÑÑÑ Ñакже необÑзаÑелÑнÑй вÑоÑой паÑамеÑÑ Ñипа boolean. ÐÑли он Ñавен false, pg_stop_backup завеÑÑиÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле оконÑÐ°Ð½Ð¸Ñ ÑезеÑвного копиÑованиÑ, не дожидаÑÑÑ Ð°ÑÑ
иваÑии WAL. ÐÑо поведение полезно ÑолÑко Ð´Ð»Ñ Ð¿ÑогÑамм ÑезеÑвного копиÑованиÑ, коÑоÑÑе оÑÑÑеÑÑвлÑÑÑ Ð°ÑÑ
иваÑÐ¸Ñ WAL незавиÑимо. ÐÑли же WAL не бÑÐ´ÐµÑ Ð·Ð°Ð°ÑÑ
ивиÑован вовÑе, ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð½ÐµÐ¿Ð¾Ð»Ð½Ð¾Ð¹, и, как ÑледÑÑвие, непÑигодной Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðогда он Ñавен true (по ÑмолÑаниÑ), pg_stop_backup бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð°ÑÑ
иваÑии WAL, еÑли аÑÑ
ивиÑование вклÑÑено. ÐÐ»Ñ ÑезеÑвного ÑеÑвеÑа ÑÑо ознаÑаеÑ, ÑÑо ожидание возможно ÑолÑко пÑи ÑÑловии archive_mode = always. ÐÑли акÑивноÑÑÑ Ð·Ð°Ð¿Ð¸Ñи на ведÑÑем ÑеÑвеÑе невÑÑока, Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ ÑмÑÑл вÑполниÑÑ Ð½Ð° нÑм pg_switch_wal Ð´Ð»Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ пеÑеклÑÑÐµÐ½Ð¸Ñ ÑегменÑа. ÐÑи вÑполнении на ведÑÑем ÑÑа ÑÑнкÑÐ¸Ñ Ñакже ÑоздаÑÑ Ñайл иÑÑоÑии ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² облаÑÑи аÑÑ
ива жÑÑнала пÑедзапиÑи. Ð ÑÑом Ñайле Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑезеÑвной копии ÑоÑ
ÑанÑеÑÑÑ Ð¼ÐµÑка, Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ñи вÑзове pg_start_backup, наÑалÑÐ½Ð°Ñ Ð¸ конеÑÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² жÑÑнале пÑедзапиÑи, а Ñакже вÑÐµÐ¼Ñ Ð½Ð°Ñала и оконÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ. ÐоÑле запиÑи конеÑной позиÑии ÑекÑÑÐ°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð°Ð²ÑомаÑиÑеÑки пеÑемеÑаеÑÑÑ Ðº ÑледÑÑÑÐµÐ¼Ñ ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑнала пÑедзапиÑи, ÑÑÐ¾Ð±Ñ Ñайл конеÑной позиÑии можно бÑло немедленно аÑÑ
ивиÑоваÑÑ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑезеÑвного копиÑованиÑ. Ð ÑезÑлÑÑаÑе ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ ÐµÐ´Ð¸Ð½ÑÑвеннÑÑ Ð·Ð°Ð¿Ð¸ÑÑ. СÑÐ¾Ð»Ð±ÐµÑ lsn в ней ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² жÑÑнале пÑедзапиÑи (ÐµÑ Ñакже можно игноÑиÑоваÑÑ). ÐÑоÑой и ÑÑеÑий ÑÑолбÑÑ Ð¿Ð¾Ñле оконÑÐ°Ð½Ð¸Ñ Ð¼Ð¾Ð½Ð¾Ð¿Ð¾Ð»Ñного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑодеÑÐ¶Ð°Ñ NULL, а поÑле немонополÑного â ожидаемое ÑодеÑжимое Ñайлов меÑки и каÑÑÑ ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_stop_backup () â pg_lsn
ÐавеÑÑÐ°ÐµÑ Ð¿ÑоÑедÑÑÑ Ð¼Ð¾Ð½Ð¾Ð¿Ð¾Ð»Ñного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° леÑÑ». ÐÑзов ÑÑой ÑпÑоÑÑнной ваÑиаÑии ÑавнознаÑен pg_stop_backup(true, true), за иÑклÑÑением Ñого, ÑÑо в ÑезÑлÑÑаÑе вÑдаÑÑÑÑ ÑолÑко pg_lsn. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_is_in_backup () â boolean ÐозвÑаÑÐ°ÐµÑ true, еÑли в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²ÑполнÑеÑÑÑ Ð¸ÑклÑÑиÑелÑное ÑезеÑвное копиÑование. |
pg_backup_start_time () â timestamp with time zone ÐÑдаÑÑ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ñала иÑклÑÑиÑелÑного ÑезеÑвного копиÑованиÑ, еÑли оно вÑполнÑеÑÑÑ Ð² даннÑй моменÑ, инаÑе â NULL. |
pg_switch_wal () â pg_lsn ÐÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ Ð¿ÑинÑдиÑелÑное пеÑеклÑÑение жÑÑнала пÑедзапиÑи на новÑй Ñайл, ÑÑо позволÑÐµÑ Ð°ÑÑ
ивиÑоваÑÑ ÑекÑÑий (в пÑедположении, ÑÑо вÑполнÑеÑÑÑ Ð½ÐµÐ¿ÑеÑÑÐ²Ð½Ð°Ñ Ð°ÑÑ
иваÑиÑ). РезÑлÑÑÐ°Ñ ÑÑнкÑии â конеÑÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² ÑолÑко ÑÑо законÑенном Ñайле жÑÑнала пÑедзапиÑи + 1. ÐÑли Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа поÑледнего пеÑеклÑÑÐµÐ½Ð¸Ñ Ñайлов не бÑло акÑивноÑÑи, оÑÑажаÑÑейÑÑ Ð² жÑÑнале пÑедзапиÑи, pg_switch_wal не Ð´ÐµÐ»Ð°ÐµÑ Ð½Ð¸Ñего и возвÑаÑÐ°ÐµÑ Ð½Ð°ÑалÑнÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² Ñайле жÑÑнала пÑедзапиÑи, иÑполÑзÑемом в даннÑй моменÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_walfile_name ( lsn pg_lsn ) â text ÐÑдаÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ позиÑии в жÑÑнале пÑедзапиÑи Ð¸Ð¼Ñ ÑооÑвеÑÑÑвÑÑÑего Ñайла WAL. |
pg_walfile_name_offset ( lsn pg_lsn ) â record ( file_name text, file_offset integer ) ÐÑдаÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ позиÑии в жÑÑнале пÑедзапиÑи Ð¸Ð¼Ñ ÑооÑвеÑÑÑвÑÑÑего Ñайла и байÑовое ÑмеÑение в нÑм. |
pg_wal_lsn_diff ( lsn1 pg_lsn, lsn2 pg_lsn ) â numeric ÐÑÑиÑлÑÐµÑ ÑазниÑÑ Ð² байÑаÑ
(lsn1 - lsn2) Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð¿Ð¾Ð·Ð¸ÑиÑми в жÑÑнале пÑедзапиÑи. ÐолÑÑеннÑй ÑезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ñ pg_stat_replication или Ñ Ð½ÐµÐºÐ¾ÑоÑÑми ÑÑнкÑиÑми, пеÑеÑиÑленнÑми в ТаблиÑа 9.85, Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð°Ð´ÐµÑжки ÑепликаÑии. |
pg_current_wal_lsn вÑÐ²Ð¾Ð´Ð¸Ñ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñи в жÑÑнале пÑедзапиÑи в Ñом же ÑоÑмаÑе, ÑÑо и вÑÑеопиÑаннÑе ÑÑнкÑии. pg_current_wal_insert_lsn подобнÑм обÑазом вÑÐ²Ð¾Ð´Ð¸Ñ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ, а pg_current_wal_flush_lsn â позиÑÐ¸Ñ ÑбÑоÑа даннÑÑ
жÑÑнала. ÐозиÑией Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð·ÑваеÑÑÑ Â«Ð»Ð¾Ð³Ð¸ÑеÑкий» ÐºÐ¾Ð½ÐµÑ Ð¶ÑÑнала пÑедзапиÑи в лÑбой Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, Ñогда как позиÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñи ÑказÑÐ²Ð°ÐµÑ Ð½Ð° ÐºÐ¾Ð½ÐµÑ Ð´Ð°Ð½Ð½ÑÑ
, ÑакÑиÑеÑки вÑнеÑÑннÑÑ
из внÑÑÑенниÑ
бÑÑеÑов ÑеÑвеÑа, а позиÑÐ¸Ñ ÑбÑоÑа показÑваеÑ, до какого меÑÑа даннÑе ÑÑиÑаÑÑÑÑ ÑоÑ
ÑанÑннÑми в надÑжном Ñ
ÑанилиÑе. ÐозиÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñи оÑмеÑÐ°ÐµÑ ÐºÐ¾Ð½ÐµÑ Ð´Ð°Ð½Ð½ÑÑ
, коÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¸Ð´ÐµÑÑ ÑнаÑÑжи внеÑний пÑоÑеÑÑ, и именно она пÑедÑÑавлÑÐµÑ Ð¸Ð½ÑеÑÐµÑ Ð¿Ñи копиÑовании ÑаÑÑиÑно заполненнÑÑ
Ñайлов жÑÑнала. ÐозиÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ позиÑÐ¸Ñ ÑбÑоÑа вÑводÑÑÑÑ Ð² оÑновном Ð´Ð»Ñ Ð¾Ñладки ÑеÑвеÑной ÑаÑÑи. ÐÑе ÑÑи ÑÑнкÑии вÑполнÑÑÑÑÑ Ð² Ñежиме «ÑолÑко ÑÑение» и не ÑÑебÑÑÑ Ð¿Ñав ÑÑпеÑполÑзоваÑелÑ.
ÐÑполÑзÑÑ ÑÑнкÑÐ¸Ñ pg_walfile_name_offset, из знаÑÐµÐ½Ð¸Ñ pg_lsn можно полÑÑиÑÑ Ð¸Ð¼Ñ ÑооÑвеÑÑÑвÑÑÑего ÐµÐ¼Ñ Ñайла жÑÑнала пÑедзапиÑи и байÑовое ÑмеÑение в ÑÑом Ñайле. ÐапÑимеÑ:
postgres=# SELECT * FROM pg_walfile_name_offset(pg_stop_backup());
file_name | file_offset
--------------------------+-------------
00000001000000000000000D | 4039624
(1 row) РодÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÐµÐ¹ ÑÑнкÑÐ¸Ñ pg_walfile_name Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ ÑолÑко Ð¸Ð¼Ñ Ñайла жÑÑнала пÑедзапиÑи. Ðогда Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² жÑÑнале пÑедзапиÑи наÑ
одиÑÑÑ Ñовно на гÑаниÑе Ñайлов, обе ÑÑи ÑÑнкÑии возвÑаÑаÑÑ Ð¸Ð¼Ñ Ð¿ÑедÑдÑÑего Ñайла. ÐбÑÑно ÑÑо поведение пÑедпоÑÑиÑелÑно пÑи аÑÑ
ивиÑовании жÑÑнала пÑедзапиÑи, Ñак как именно пÑедÑдÑÑий Ñайл ÑвлÑеÑÑÑ Ð¿Ð¾Ñледним подлежаÑим аÑÑ
иваÑии.
9.27.4. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением
ФÑнкÑии, показаннÑе в ТаблиÑе 9.86, пÑедоÑÑавлÑÑÑ ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ ÑекÑÑем ÑоÑÑоÑнии ведомого ÑеÑвеÑа. ÐÑи ÑÑнкÑии могÑÑ Ð²ÑполнÑÑÑÑÑ ÐºÐ°Ðº во вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ, Ñак и в обÑÑном Ñежиме ÑабоÑÑ.
ТаблиÑа 9.86. ФÑнкÑии Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о воÑÑÑановлении
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_is_in_recovery () â boolean ÐозвÑаÑÐ°ÐµÑ true, еÑли в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²ÑполнÑеÑÑÑ Ð¿ÑоÑедÑÑа воÑÑÑановлениÑ. |
pg_last_wal_receive_lsn () â pg_lsn ÐÑдаÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð¿Ð¾Ñледней запиÑи в жÑÑнале пÑедзапиÑи, коÑоÑÐ°Ñ Ð±Ñла полÑÑена и запиÑана на диÑк в пÑоÑеÑÑе поÑоковой ÑепликаÑии. Ðока вÑполнÑеÑÑÑ Ð¿Ð¾ÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑиÑ, ÑÑа позиÑÐ¸Ñ Ð¿Ð¾ÑÑоÑнно ÑвелиÑиваеÑÑÑ. Ðо оконÑании воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð½Ð° оÑÑаÑÑÑÑ Ð½Ð° запиÑи WAL, полÑÑенной и запиÑанной на диÑк поÑледней. ÐÑли поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑклÑÑена или еÑÑ Ð½Ðµ запÑÑкалаÑÑ, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ NULL. |
pg_last_wal_replay_lsn () â pg_lsn ÐÑдаÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð¿Ð¾Ñледней запиÑи в жÑÑнале пÑедзапиÑи, коÑоÑÐ°Ñ Ð±Ñла воÑпÑоизведÑна пÑи воÑÑÑановлении. РпÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑа позиÑÐ¸Ñ Ð¿Ð¾ÑÑоÑнно ÑвелиÑиваеÑÑÑ. Ðо оконÑании ÑÑого пÑоÑеÑÑа она оÑÑаÑÑÑÑ Ð½Ð° запиÑи WAL, коÑоÑÐ°Ñ Ð±Ñла воÑÑÑановлена поÑледней. ÐÑли ÑеÑÐ²ÐµÑ Ð¿Ñи запÑÑке не вÑполнÑл пÑоÑедÑÑÑ Ð²Ð¾ÑÑÑановлениÑ, ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ NULL. |
pg_last_xact_replay_timestamp () â timestamp with time zone ÐÑдаÑÑ Ð¾ÑмеÑÐºÑ Ð²Ñемени поÑледней ÑÑанзакÑии, воÑпÑоизведÑнной пÑи воÑÑÑановлении. ÐÑо вÑемÑ, когда на главном ÑеÑвеÑе пÑоизоÑла ÑикÑаÑÐ¸Ñ Ð¸Ð»Ð¸ оÑÐºÐ°Ñ Ð·Ð°Ð¿Ð¸Ñи WAL Ð´Ð»Ñ ÑÑой ÑÑанзакÑии. ÐÑли в пÑоÑеÑÑе воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ бÑла воÑпÑоизведена ни одна ÑÑанзакÑиÑ, ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ NULL. РпÑоÑивном ÑлÑÑае возвÑаÑаемое знаÑение поÑÑоÑнно ÑвелиÑиваеÑÑÑ Ð² пÑоÑеÑÑе воÑÑÑановлениÑ. Ðо оконÑании воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² нÑм оÑÑаÑÑÑÑ Ð²ÑÐµÐ¼Ñ ÑÑанзакÑии, коÑоÑÐ°Ñ Ð±Ñла воÑÑÑановлена поÑледней. ÐÑли ÑеÑÐ²ÐµÑ Ð¿Ñи запÑÑке не вÑполнÑл пÑоÑедÑÑÑ Ð²Ð¾ÑÑÑановлениÑ, ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ NULL. |
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.87 ÑпÑавлÑÑÑ Ð¿ÑоÑеÑÑом воÑÑÑановлениÑ. ÐÑзÑваÑÑ Ð¸Ñ
в дÑÑгое вÑÐµÐ¼Ñ Ð½ÐµÐ»ÑзÑ.
ТаблиÑа 9.87. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_is_wal_replay_paused () â boolean ÐозвÑаÑÐ°ÐµÑ true, еÑли воÑÑÑановление пÑиоÑÑановлено. |
pg_promote ( wait boolean DEFAULT true, wait_seconds integer DEFAULT 60 ) â boolean ÐовÑÑÐ°ÐµÑ ÑÑаÑÑÑ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа до ведÑÑего. ÐÑли паÑамеÑÑ wait Ñавен true (по ÑмолÑаниÑ), ÑÑа ÑÑнкÑÐ¸Ñ Ð´Ð¾Ð¶Ð¸Ð´Ð°ÐµÑÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑии повÑÑÐµÐ½Ð¸Ñ Ð² ÑеÑение wait_seconds ÑекÑнд и возвÑаÑÐ°ÐµÑ true в ÑлÑÑае ÑÑпеÑного повÑÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ false в пÑоÑивном ÑлÑÑае. ÐÑли паÑамеÑÑ wait Ñавен false, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле пеÑедаÑи пÑоÑеÑÑÑ postmaster Ñигнала SIGUSR1, иниÑииÑÑÑÑего повÑÑение. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_wal_replay_pause () â void ÐÑиоÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð²Ð¾ÑÑÑановление. Ðогда воÑÑÑановление пÑиоÑÑановлено, запиÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ð±Ð°Ð·Ñ Ð½Ðµ пÑоизводиÑÑÑ. Ð Ñежиме «гоÑÑÑего ÑезеÑва» вÑе поÑледÑÑÑие запÑоÑÑ Ð±ÑдÑÑ Ð²Ð¸Ð´ÐµÑÑ Ð¾Ð´Ð¸Ð½ ÑоглаÑованнÑй Ñнимок Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑо иÑклÑÑÐ°ÐµÑ ÐºÐ¾Ð½ÑликÑÑ Ð·Ð°Ð¿ÑоÑов до пÑÐ¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_wal_replay_resume () â void ÐозобновлÑÐµÑ Ð²Ð¾ÑÑÑановление, еÑли оно бÑло пÑиоÑÑановлено. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
ФÑнкÑии pg_wal_replay_pause и pg_wal_replay_resume нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð² пÑоÑеÑÑе повÑÑениÑ. ÐÑли повÑÑение запÑаÑиваеÑÑÑ, когда воÑÑÑановление пÑиоÑÑановлено, ÑеÑÐ²ÐµÑ Ð²ÑÑ
Ð¾Ð´Ð¸Ñ Ð¸Ð· ÑоÑÑоÑÐ½Ð¸Ñ Ð¿Ð°ÑÐ·Ñ Ð¸ пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¿ÑоÑедÑÑÑ Ð¿Ð¾Ð²ÑÑениÑ.
Ðогда поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑклÑÑена, паÑза пÑи воÑÑÑановлении Ð¼Ð¾Ð¶ÐµÑ Ð´Ð»Ð¸ÑÑÑÑ ÑÐºÐ¾Ð»Ñ Ñгодно долго без какиÑ
-либо пÑоблем. ÐÑли же поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ, новÑе запиÑи WAL пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°Ñ Ð¿Ð¾ÑÑÑпаÑÑ Ð¸ заполнÑÑ Ð²ÐµÑÑ Ð´Ð¸Ñк Ñано или поздно, в завиÑимоÑÑи Ð¾Ñ Ð´Ð»Ð¸ÑелÑноÑÑи паÑзÑ, инÑенÑивноÑÑи запиÑи в WAL и обÑÑма Ñвободного пÑоÑÑÑанÑÑва.
9.27.5. ФÑнкÑии ÑинÑ
ÑонизаÑии Ñнимков
Postgres Pro позволÑÐµÑ ÑинÑ
ÑонизиÑоваÑÑ Ñнимки ÑоÑÑоÑÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÑеанÑами баз даннÑÑ
. Снимок ÑоÑÑоÑÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑ, какие даннÑе Ð²Ð¸Ð´Ð½Ñ ÑÑанзакÑии, ÑабоÑаÑÑей Ñ ÑÑим Ñнимком. СинÑ
ÑонизаÑÐ¸Ñ Ñнимков необÑ
одима, когда в двÑÑ
или более ÑеанÑаÑ
нÑжно видеÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же ÑодеÑжимое Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑли в двÑÑ
ÑеанÑаÑ
ÑÑанзакÑии запÑÑкаÑÑÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо, вÑегда еÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо Ð½ÐµÐºÐ°Ñ ÑÑеÑÑÑ ÑÑанзакÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°ÑикÑиÑована Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ START TRANSACTION Ð´Ð»Ñ Ð¿ÐµÑвÑÑ
двÑÑ
, и в ÑезÑлÑÑаÑе в одном ÑеанÑе бÑÐ´ÐµÑ Ð²Ð¸Ð´ÐµÐ½ ÑезÑлÑÑÐ°Ñ ÑÑеÑÑей, а в дÑÑгом â неÑ.
ÐÐ»Ñ ÑеÑÐµÐ½Ð¸Ñ ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Postgres Pro позволÑÐµÑ ÑÑанзакÑии ÑкÑпоÑÑиÑоваÑÑ Ñнимок ÑоÑÑоÑниÑ, Ñ ÐºÐ¾ÑоÑÑм она ÑабоÑаеÑ. Ðока ÑкÑпоÑÑиÑÑÑÑÐ°Ñ ÑÑÐ¾Ñ Ñнимок ÑÑанзакÑÐ¸Ñ Ð²ÑполнÑеÑÑÑ, дÑÑгие ÑÑанзакÑии могÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑоваÑÑ ÐµÐ³Ð¾ и, Ñаким обÑазом, ÑвидеÑÑ Ð°Ð±ÑолÑÑно Ñо же ÑоÑÑоÑние Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑо Ð²Ð¸Ð´Ð¸Ñ Ð¿ÐµÑÐ²Ð°Ñ ÑÑанзакÑиÑ. Ðо ÑÑÑиÑе, ÑÑо лÑбÑе изменениÑ, пÑоизведÑннÑе ÑÑими ÑÑанзакÑиÑми, бÑдÑÑ Ð½Ðµ Ð²Ð¸Ð´Ð½Ñ Ð´Ð»Ñ Ð´ÑÑгиÑ
, как ÑÑо и должно бÑÑÑ Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми в незаÑикÑиÑованнÑÑ
ÑÑанзакÑиÑÑ
. Таким обÑазом, ÑÑанзакÑии ÑинÑ
ÑонизиÑÑÑÑ ÑолÑко наÑалÑное ÑоÑÑоÑние даннÑÑ
, а поÑледÑÑÑие пÑоизводимÑе в ниÑ
Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¾Ð»Ð¸ÑÑÑÑÑÑ ÐºÐ°Ðº обÑÑно.
Снимки ÑоÑÑоÑÐ½Ð¸Ñ ÑкÑпоÑÑиÑÑÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии pg_export_snapshot, показанной в ТаблиÑе 9.88, и импоÑÑиÑÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ SET TRANSACTION.
ТаблиÑа 9.88. ФÑнкÑии ÑинÑ
ÑонизаÑии Ñнимков
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_export_snapshot () â text СоÑ
ÑанÑÐµÑ ÑекÑÑий Ñнимок ÑоÑÑоÑÐ½Ð¸Ñ ÑÑанзакÑии и возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ñипа text Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом ÑÑого Ñнимка. ÐÑа ÑÑÑока должна пеÑедаваÑÑÑÑ Ð²Ð½ÐµÑними ÑÑедÑÑвами клиенÑам, коÑоÑÑе бÑдÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑоваÑÑ ÑÑÐ¾Ñ Ñнимок. Снимок Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑован ÑолÑко пÑи ÑÑловии, ÑÑо ÑкÑпоÑÑиÑовавÑÐ°Ñ ÐµÐ³Ð¾ ÑÑанзакÑÐ¸Ñ ÐµÑÑ Ð½Ðµ завеÑÑена. ÐÑли необÑ
одимо, ÑÑанзакÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ ÑкÑпоÑÑиÑоваÑÑ Ð½ÐµÑколÑко Ñнимков. ÐамеÑÑÑе, ÑÑо ÑÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ÑолÑко Ð´Ð»Ñ ÑÑанзакÑий ÑÑÐ¾Ð²Ð½Ñ READ COMMITTED, Ñак как ÑÑанзакÑии ÑÑÐ¾Ð²Ð½Ñ Ð¸Ð·Ð¾Ð»ÑÑии REPEATABLE READ и вÑÑе ÑабоÑаÑÑ Ñ Ð¾Ð´Ð½Ð¸Ð¼ Ñнимком ÑоÑÑоÑÐ½Ð¸Ñ Ð½Ð° пÑоÑÑжении вÑего Ñвоего ÑÑÑеÑÑвованиÑ. ÐоÑле Ñого как ÑÑанзакÑÐ¸Ñ ÑкÑпоÑÑиÑовала Ñнимок, ÐµÑ Ð½ÐµÐ»ÑÐ·Ñ ÑделаÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñовленной Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ PREPARE TRANSACTION. |
9.27.6. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией
РТаблиÑе 9.89 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ
анизмом ÑепликаÑии и взаимодейÑÑÐ²Ð¸Ñ Ñ Ð½Ð¸Ð¼. ЧÑÐ¾Ð±Ñ Ð¸Ð·ÑÑиÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑ
анизм деÑалÑнее, обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 25.2.5, ÐодÑазделÑ 25.2.6 и Ðлаве 48. ÐÑполÑзоваÑÑ ÑÑи ÑÑнкÑии Ð´Ð»Ñ Ð¸ÑÑоÑников ÑепликаÑии ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм, а Ð´Ð»Ñ ÑлоÑов ÑепликаÑии â ÑолÑко ÑÑпеÑполÑзоваÑелÑм и полÑзоваÑелÑм, имеÑÑим пÑаво REPLICATION.
Ðногие из ÑÑиÑ
ÑÑнкÑий ÑооÑвеÑÑÑвÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼ в пÑоÑоколе ÑепликаÑии; Ñм. Раздел 51.4.
ФÑнкÑии, опиÑаннÑе в ÐодÑазделе 9.27.3, ÐодÑазделе 9.27.4 и ÐодÑазделе 9.27.5, Ñакже имеÑÑ Ð¾ÑноÑение к ÑепликаÑии.
ТаблиÑа 9.89. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_create_physical_replication_slot ( slot_name name [, immediately_reserve boolean, temporary boolean] ) â record ( slot_name name, lsn pg_lsn ) СоздаÑÑ Ð½Ð¾Ð²Ñй ÑизиÑеÑкий ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ slot_name. ÐеобÑзаÑелÑнÑй вÑоÑой паÑамеÑÑ, когда он Ñавен true, ÑказÑваеÑ, ÑÑо LSN Ð´Ð»Ñ ÑÑого ÑлоÑа ÑепликаÑии должен бÑÑÑ Ð·Ð°ÑезеÑвиÑован немедленно; в пÑоÑивном ÑлÑÑае LSN ÑезеÑвиÑÑеÑÑÑ Ð¿Ñи пеÑвом подклÑÑении клиенÑа поÑоковой ÑепликаÑии. ÐеÑедаÑа изменений из ÑизиÑеÑкого ÑлоÑа возможна ÑолÑко по пÑоÑÐ¾ÐºÐ¾Ð»Ñ Ð¿Ð¾Ñоковой ÑепликаÑии â Ñм. Раздел 51.4. ÐеобÑзаÑелÑнÑй ÑÑеÑий паÑамеÑÑ, temporary, когда он Ñавен true, ÑказÑваеÑ, ÑÑо ÑÑÐ¾Ñ ÑÐ»Ð¾Ñ Ð½Ðµ должен поÑÑоÑнно Ñ
ÑаниÑÑÑÑ Ð½Ð° диÑке, Ñак как он пÑедназнаÑен ÑолÑко Ð´Ð»Ñ ÑекÑÑего ÑеанÑа. ÐÑеменнÑе ÑлоÑÑ Ñакже оÑвобождаÑÑÑÑ Ð¿Ñи лÑбой оÑибке. ÐÑа ÑÑнкÑÐ¸Ñ ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ пÑоÑокола ÑепликаÑии CREATE_REPLICATION_SLOT ... PHYSICAL. |
pg_drop_replication_slot ( slot_name name ) â void УдалÑÐµÑ ÑизиÑеÑкий или логиÑеÑкий ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ slot_name. СооÑвеÑÑÑвÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ пÑоÑокола ÑепликаÑии DROP_REPLICATION_SLOT. |
pg_create_logical_replication_slot ( slot_name name, plugin name [, temporary boolean] ) â record ( slot_name name, lsn pg_lsn ) СоздаÑÑ Ð½Ð¾Ð²Ñй логиÑеÑкий (декодиÑÑÑÑий) ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ slot_name, иÑполÑзÑÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода plugin. ÐеобÑзаÑелÑнÑй ÑÑеÑий паÑамеÑÑ, temporary, когда Ñавен true, ÑказÑваеÑ, ÑÑо ÑÑÐ¾Ñ ÑÐ»Ð¾Ñ Ð½Ðµ должен поÑÑоÑнно Ñ
ÑаниÑÑÑÑ Ð½Ð° диÑке, Ñак как пÑедназнаÑен ÑолÑко Ð´Ð»Ñ ÑекÑÑего ÑеанÑа. ÐÑеменнÑе ÑлоÑÑ Ñакже оÑвобождаÑÑÑÑ Ð¿Ñи лÑбой оÑибке. ÐÑзов ÑÑой ÑÑнкÑии ÑавнознаÑен вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÑоÑокола ÑепликаÑии CREATE_REPLICATION_SLOT ... LOGICAL. |
pg_copy_physical_replication_slot ( src_slot_name name, dst_slot_name name [, temporary boolean] ) â record ( slot_name name, lsn pg_lsn ) ÐопиÑÑÐµÑ ÑÑÑеÑÑвÑÑÑий ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ src_slot_name в ÑÐ»Ð¾Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ dst_slot_name. СкопиÑованнÑй ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии наÑÐ¸Ð½Ð°ÐµÑ ÑезеÑвиÑоваÑÑ WAL Ñ Ñого же поÑледоваÑелÑного номеÑа LSN, ÑÑо и иÑÑ
однÑй ÑлоÑ. ÐаÑамеÑÑ temporary ÑвлÑеÑÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑм и позволÑÐµÑ ÑказаÑÑ, бÑÐ´ÐµÑ Ð»Ð¸ ÑÐ»Ð¾Ñ Ð²ÑеменнÑм. ÐÑли паÑамеÑÑ temporary опÑÑен, ÑоÑ
ÑанÑеÑÑÑ Ñо же ÑвойÑÑво, ÑÑо Ð¸Ð¼ÐµÐµÑ Ð¸ÑÑ
однÑй ÑлоÑ. |
pg_copy_logical_replication_slot ( src_slot_name name, dst_slot_name name [, temporary boolean [, plugin name]] ) â record ( slot_name name, lsn pg_lsn ) ÐопиÑÑÐµÑ ÑÑÑеÑÑвÑÑÑий ÑÐ»Ð¾Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ src_slot_name в ÑÐ»Ð¾Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ dst_slot_name, Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ ÑÐ¼ÐµÐ½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода и ÑвойÑÑва вÑеменноÑÑи. СкопиÑованнÑй логиÑеÑкий ÑÐ»Ð¾Ñ Ð½Ð°ÑÐ¸Ð½Ð°ÐµÑ Ð¿ÐµÑедаÑÑ Ñ Ñого же поÑледоваÑелÑного номеÑа LSN, ÑÑо и иÑÑ
однÑй ÑлоÑ. ÐаÑамеÑÑÑ temporary и plugin ÑвлÑÑÑÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑми; еÑли они опÑÑенÑ, ÑоÑ
ÑанÑÑÑÑÑ ÑвойÑÑва иÑÑ
одного ÑлоÑа. |
pg_logical_slot_get_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) â setof record ( lsn pg_lsn, xid xid, data text ) ÐозвÑаÑÐ°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑлоÑе slot_name Ñ Ð¿Ð¾Ð·Ð¸Ñии, до коÑоÑой Ñанее бÑли полÑÑÐµÐ½Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. ÐÑли паÑамеÑÑÑ upto_lsn и upto_nchanges ÑÐ°Ð²Ð½Ñ NULL, логиÑеÑкое декодиÑование пÑодолжиÑÑÑ Ð´Ð¾ конÑа жÑÑнала ÑÑанзакÑий. ÐÑли upto_lsn не NULL, декодиÑоваÑÑÑÑ Ð±ÑдÑÑ ÑолÑко ÑÑанзакÑии, заÑикÑиÑованнÑе до заданного LSN. ÐÑли upto_nchanges не NULL, декодиÑование оÑÑановиÑÑÑ, когда ÑиÑло ÑÑÑок, полÑÑеннÑÑ
пÑи декодиÑовании, пÑевÑÑÐ¸Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ знаÑение. ÐамеÑÑÑе однако, ÑÑо ÑакÑиÑеÑкое ÑиÑло возвÑаÑÑннÑÑ
ÑÑÑок Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе, Ñак как ÑÑо огÑаниÑение пÑовеÑÑеÑÑÑ ÑолÑко поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑÑок, декодиÑованнÑÑ
Ð´Ð»Ñ Ð¾ÑеÑедной ÑÑанзакÑии. |
pg_logical_slot_peek_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) â setof record ( lsn pg_lsn, xid xid, data text ) РабоÑÐ°ÐµÑ Ñак же, как ÑÑнкÑÐ¸Ñ pg_logical_slot_get_changes(), но не забиÑÐ°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ; Ñо еÑÑÑ, они бÑдÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ñнова пÑи ÑледÑÑÑиÑ
вÑзоваÑ
. |
pg_logical_slot_get_binary_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) â setof record ( lsn pg_lsn, xid xid, data bytea ) РабоÑÐ°ÐµÑ Ñак же, как ÑÑнкÑÐ¸Ñ pg_logical_slot_get_changes(), но вÑдаÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñипе bytea. |
pg_logical_slot_peek_binary_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) â setof record ( lsn pg_lsn, xid xid, data bytea ) РабоÑÐ°ÐµÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñно ÑÑнкÑии pg_logical_slot_peek_changes(), но вÑдаÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² знаÑении bytea. |
pg_replication_slot_advance ( slot_name name, upto_lsn pg_lsn ) â record ( slot_name name, end_lsn pg_lsn ) ÐÑÐ¾Ð´Ð²Ð¸Ð³Ð°ÐµÑ ÑекÑÑÑÑ Ð¿Ð¾Ð´ÑвеÑждÑннÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑлоÑа ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ slot_name. Ð¡Ð»Ð¾Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¿ÐµÑемеÑÑиÑÑ Ð½Ð°Ð·Ð°Ð´, а Ñакже впеÑÑд за ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ. ÐозвÑаÑÐ°ÐµÑ Ð¸Ð¼Ñ ÑлоÑа и позиÑиÑ, до коÑоÑой он ÑакÑиÑеÑки пÑодвинÑлÑÑ. ÐнÑоÑмаÑÐ¸Ñ Ð¾Ð± изменивÑемÑÑ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¸ ÑлоÑа, еÑли он пÑодвинÑлÑÑ, ÑоÑ
ÑанÑеÑÑÑ ÑолÑко пÑи ближайÑей конÑÑолÑной ÑоÑке. ÐоÑÑÐ¾Ð¼Ñ Ð² ÑлÑÑае пÑеÑÑÐ²Ð°Ð½Ð¸Ñ ÑабоÑÑ ÑÐ»Ð¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð² пÑедÑдÑÑем положении. |
pg_replication_origin_create ( node_name text ) â oid СоздаÑÑ Ð¸ÑÑоÑник ÑепликаÑии Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм внеÑним именем и возвÑаÑÐ°ÐµÑ Ð½Ð°Ð·Ð½Ð°ÑеннÑй ÐµÐ¼Ñ Ð²Ð½ÑÑÑенний иденÑиÑикаÑоÑ. |
pg_replication_origin_drop ( node_name text ) â void УдалÑÐµÑ Ñанее ÑозданнÑй иÑÑоÑник ÑепликаÑии, в Ñом ÑиÑле ÑвÑзаннÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ воÑпÑоизведении. |
pg_replication_origin_oid ( node_name text ) â oid ÐÑÐµÑ Ð¸ÑÑоÑник ÑепликаÑии по имени и возвÑаÑÐ°ÐµÑ Ð²Ð½ÑÑÑенний иденÑиÑикаÑоÑ. ÐÑли Ñакой иÑÑоÑник не наÑ
одиÑÑÑ, возвÑаÑÐ°ÐµÑ NULL. |
pg_replication_origin_session_setup ( node_name text ) â void ÐомеÑÐ°ÐµÑ ÑекÑÑий ÑÐµÐ°Ð½Ñ ÐºÐ°Ðº воÑпÑоизводÑÑий Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· Ñказанного иÑÑоÑника, ÑÑо позволÑÐµÑ Ð¾ÑÑлеживаÑÑ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑпÑоизведениÑ. ÐÐ¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ, ÑолÑко еÑли в ÑекÑÑий Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¸ÑÑоÑник еÑÑ Ð½Ðµ вÑбÑан. ÐÐ»Ñ Ð¾ÑÐ¼ÐµÐ½Ñ ÑÑого дейÑÑÐ²Ð¸Ñ Ð²ÑзовиÑе pg_replication_origin_session_reset. |
pg_replication_origin_session_reset () â void ÐÑменÑÐµÑ Ð´ÐµÐ¹ÑÑвие pg_replication_origin_session_setup(). |
pg_replication_origin_session_is_setup () â boolean ÐозвÑаÑÐ°ÐµÑ true, еÑли в ÑекÑÑем ÑеанÑе вÑбÑан иÑÑоÑник ÑепликаÑии. |
pg_replication_origin_session_progress ( flush boolean ) â pg_lsn ÐозвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸ÑÑоÑника ÑепликаÑии, вÑбÑанного в ÑекÑÑем ÑеанÑе. ÐаÑамеÑÑ flush опÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ гаÑанÑиÑоваÑÑÑÑ ÑоÑ
Ñанение локалÑной ÑÑанзакÑии на диÑке. |
pg_replication_origin_xact_setup ( origin_lsn pg_lsn, origin_timestamp timestamp with time zone ) â void ÐомеÑÐ°ÐµÑ ÑекÑÑÑÑ ÑÑанзакÑÐ¸Ñ ÐºÐ°Ðº воÑпÑоизводÑÑÑÑ ÑÑанзакÑиÑ, заÑикÑиÑованнÑÑ Ñ ÑказаннÑм LSN и вÑеменем. ÐÐ¾Ð¶ÐµÑ Ð²ÑзÑваÑÑÑÑ ÑолÑко поÑле Ñого, как иÑÑоÑник ÑепликаÑии бÑл вÑбÑан в ÑезÑлÑÑаÑе вÑзова pg_replication_origin_session_setup(). |
pg_replication_origin_xact_reset () â void ÐÑменÑÐµÑ Ð´ÐµÐ¹ÑÑвие pg_replication_origin_xact_setup(). |
pg_replication_origin_advance ( node_name text, lsn pg_lsn ) â void УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ ÑепликаÑии Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñзла в ÑказаннÑÑ Ð¿Ð¾Ð·Ð¸ÑиÑ. ÐÑо в оÑновном полезно Ð´Ð»Ñ ÑÑÑановки наÑалÑной позиÑии или новой позиÑии поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑии и подобнÑÑ
дейÑÑвий. Ðо ÑÑÑиÑе, ÑÑо неоÑÑоÑожное иÑполÑзование ÑÑой ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к неÑоглаÑованноÑÑи ÑеплиÑиÑованнÑÑ
даннÑÑ
. |
pg_replication_origin_progress ( node_name text, flush boolean ) â pg_lsn ÐÑдаÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ иÑÑоÑника ÑепликаÑии. ÐаÑамеÑÑ flush опÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ гаÑанÑиÑоваÑÑÑÑ ÑоÑ
Ñанение локалÑной ÑÑанзакÑии на диÑке. |
pg_logical_emit_message ( transactional boolean, prefix text, content text ) â pg_lsn pg_logical_emit_message ( transactional boolean, prefix text, content bytea ) â pg_lsn
ÐенеÑиÑÑÐµÑ ÑообÑение логиÑеÑкого декодиÑованиÑ. ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи ÑеÑез WAL пÑоизволÑнÑÑ
ÑообÑений модÑлÑм логиÑеÑкого декодиÑованиÑ. ÐаÑамеÑÑ transactional опÑеделÑеÑ, должно ли ÑообÑение оÑноÑиÑÑÑÑ Ðº ÑекÑÑей ÑÑанзакÑии или оно должно запиÑÑваÑÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ и декодиÑоваÑÑÑÑ ÑÑазÑ, как ÑолÑко ÑÑа запиÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑоÑиÑана пÑи логиÑеÑком декодиÑовании. ÐаÑамеÑÑ prefix задаÑÑ ÑекÑÑовÑй пÑеÑикÑ, по коÑоÑÐ¾Ð¼Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð»ÐµÐ³ÐºÐ¾ ÑаÑпознаÑÑ Ð¸Ð½ÑеÑеÑÑÑÑие именно его ÑообÑениÑ. РпаÑамеÑÑе content пеÑедаÑÑÑÑ ÑодеÑжимое ÑообÑениÑ, в ÑекÑÑовом или двоиÑном виде. |
9.27.7. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑами баз даннÑÑ
ФÑнкÑии, показаннÑе в ТаблиÑе 9.90, вÑÑиÑлÑÑÑ Ð¾Ð±ÑÑм, коÑоÑÑй занимаÑÑ Ð½Ð° диÑке обÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, и помогаÑÑ Ð¿ÑедÑÑавиÑÑ Ð¿Ð¾Ð»ÑÑеннÑе ÑезÑлÑÑаÑÑ. ÐÑе ÑÑи ÑÑнкÑии вÑдаÑÑ ÑазмеÑÑ Ð² байÑаÑ
. ÐÑли им пеÑедаÑÑÑÑ OID, не ÑооÑвеÑÑÑвÑÑÑий ÑÑÑеÑÑвÑÑÑÐµÐ¼Ñ Ð¾Ð±ÑекÑÑ, они возвÑаÑаÑÑ NULL.
ТаблиÑа 9.90. ФÑнкÑии полÑÑÐµÐ½Ð¸Ñ ÑазмеÑа обÑекÑов ÐÐ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_column_size ( "any" ) â integer ÐоказÑваеÑ, ÑколÑко Ð±Ð°Ð¹Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ñи Ñ
Ñанении оÑделÑное знаÑение. ÐÑли ÑÑа ÑÑнкÑÐ¸Ñ Ð¿ÑименÑеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно к знаÑÐµÐ½Ð¸Ñ Ð² ÑÑолбÑе ÑаблиÑÑ, в ÑезÑлÑÑаÑе оÑÑажаеÑÑÑ ÑÑÑÐµÐºÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð³Ð¾ ÑжаÑиÑ. |
pg_database_size ( name ) â bigint pg_database_size ( oid ) â bigint
ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке база даннÑÑ
Ñ ÑказаннÑм именем или OID. ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑой ÑÑнкÑии необÑ
одимо имеÑÑ Ð¿Ñаво CONNECT Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ Ð±Ð°Ð·Ñ (оно даÑÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ) или бÑÑÑ Ñленом Ñоли pg_read_all_stats. |
pg_indexes_size ( regclass ) â bigint ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй занимаÑÑ Ð½Ð° диÑке индекÑÑ, ÑвÑзаннÑе Ñ Ñказанной ÑаблиÑей. |
pg_relation_size ( relation regclass [, fork text] ) â bigint ÐÑÑиÑлÑÐµÑ Ð¾Ð±ÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке один «Ñлой» заданного оÑноÑениÑ. (ÐамеÑÑÑе, ÑÑо в болÑÑинÑÑве ÑлÑÑаев Ñдобнее иÑполÑзоваÑÑ Ð±Ð¾Ð»ÐµÐµ вÑÑокоÑÑовневÑе ÑÑнкÑии pg_total_relation_size и pg_table_size, коÑоÑÑе ÑÑммиÑÑÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð²ÑеÑ
ÑлоÑв.) С одним аÑгÑменÑом она вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ñновного ÑÐ»Ð¾Ñ Ñ Ð´Ð°Ð½Ð½Ñми оÑноÑениÑ. Ðазвание дÑÑгого инÑеÑеÑÑÑÑего ÑÐ»Ð¾Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пеÑедаÑÑ Ð²Ð¾ вÑоÑом аÑгÑменÑе: main вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ñновного ÑÐ»Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ
заданного оÑноÑениÑ.
fsm вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ°ÑÑÑ Ñвободного меÑÑа (Ñм. Раздел 66.3), ÑвÑзанной Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм оÑноÑением.
vm вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи (Ñм. Раздел 66.4), ÑвÑзанной Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм оÑноÑением.
init вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÑÐ»Ð¾Ñ Ð¸Ð½Ð¸ÑиализаÑии Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ оÑноÑениÑ, еÑли он имееÑÑÑ.
|
pg_size_bytes ( text ) â bigint ÐÑеобÑазÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² Ñеловеко-оÑиенÑиÑованном ÑоÑмаÑе (коÑоÑÑй вÑдаÑÑ pg_size_pretty) в ÑиÑло байÑ. |
pg_size_pretty ( bigint ) â text pg_size_pretty ( numeric ) â text
ÐÑеобÑазÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² байÑаÑ
в более понÑÑнÑй ÑÐµÐ»Ð¾Ð²ÐµÐºÑ ÑоÑÐ¼Ð°Ñ Ñ ÐµÐ´Ð¸Ð½Ð¸Ñами измеÑÐµÐ½Ð¸Ñ ÑазмеÑа (bytes, kB, MB, GB или TB, в завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÑениÑ). ÐамеÑÑÑе, ÑÑо ÑÑи единиÑÑ Ð¾Ð¿ÑеделÑÑÑÑÑ ÐºÐ°Ðº ÑÑепени 2, а не 10, Ñак ÑÑо 1kB â ÑÑо 1024 байÑа, 1MB â 10242 = 1048576 Ð±Ð°Ð¹Ñ Ð¸ Ñ. д. |
pg_table_size ( regclass ) â bigint ÐÑÑиÑлÑÐµÑ Ð¾Ð±ÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке Ð´Ð°Ð½Ð½Ð°Ñ ÑаблиÑа, за иÑклÑÑением индекÑов (но вклÑÑÐ°Ñ ÐµÑ TOAST-ÑаблиÑÑ (еÑли она еÑÑÑ), каÑÑÑ Ñвободного меÑÑа и каÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи). |
pg_tablespace_size ( name ) â bigint pg_tablespace_size ( oid ) â bigint
ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке ÑаблиÑное пÑоÑÑÑанÑÑво Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм именем или OID. ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑой ÑÑнкÑии ÑÑебÑеÑÑÑ Ð¸Ð¼ÐµÑÑ Ð¿Ñаво CREATE Ð´Ð»Ñ Ñказанного ÑаблиÑного пÑоÑÑÑанÑÑва или бÑÑÑ Ñленом Ñоли pg_read_all_stats, еÑли ÑолÑко ÑÑо не ÑаблиÑное пÑоÑÑÑанÑÑво по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑекÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. |
pg_total_relation_size ( regclass ) â bigint ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ ÑаблиÑа, вклÑÑÐ°Ñ Ð²Ñе ÐµÑ Ð¸Ð½Ð´ÐµÐºÑÑ Ð¸ даннÑе TOAST. РезÑлÑÑÐ°Ñ ÑÑой ÑÑнкÑии Ñавен знаÑÐµÐ½Ð¸Ñ pg_table_size + pg_indexes_size. |
ÐÑÑеопиÑаннÑе ÑÑнкÑии, ÑабоÑаÑÑие Ñ ÑаблиÑами или индекÑами, пÑинимаÑÑ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ñипа regclass, коÑоÑÑй пÑедÑÑавлÑÐµÑ Ñобой пÑоÑÑо OID ÑаблиÑÑ Ð¸Ð»Ð¸ индекÑа в ÑиÑÑемном каÑалоге pg_class. Ðднако вам не нÑжно вÑÑÑнÑÑ Ð²ÑÑиÑлÑÑÑ OID, Ñак как пÑоÑедÑÑа ввода знаÑÐµÐ½Ð¸Ñ regclass Ð¼Ð¾Ð¶ÐµÑ ÑделаÑÑ ÑÑо за ваÑ. ÐÐ»Ñ ÑÑого доÑÑаÑоÑно запиÑаÑÑ Ð¸Ð¼Ñ ÑаблиÑÑ Ð² апоÑÑÑоÑаÑ
, как обÑÑнÑÑ ÑекÑÑовÑÑ ÐºÐ¾Ð½ÑÑанÑÑ. Ð ÑооÑвеÑÑÑвии Ñ Ð¿Ñавилами обÑабоÑки обÑÑнÑÑ
имÑн SQL, еÑли Ð¸Ð¼Ñ ÑаблиÑÑ Ð½Ðµ заклÑÑено в кавÑÑки, ÑÑа ÑÑÑока бÑÐ´ÐµÑ Ð¿ÐµÑеведена в нижний ÑегиÑÑÑ.
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.91, помогаÑÑ Ð¾Ð¿ÑеделиÑÑ, в какиÑ
ÑайлаÑ
на диÑке Ñ
ÑанÑÑÑÑ Ð¾Ð±ÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
.
ТаблиÑа 9.91. ФÑнкÑии опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_relation_filenode ( relation regclass ) â oid ÐÑдаÑÑ Ð½Ð¾Ð¼ÐµÑ Â«Ñайлового Ñзла», ÑвÑзанного Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм обÑекÑом. ФайловÑм Ñзлом назÑваеÑÑÑ Ð¾Ñновной ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñайла, иÑполÑзÑемого Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
(подÑобнее ÑÑо опиÑано в Разделе 66.1). ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва оÑноÑений ÑÑÐ¾Ñ Ð½Ð¾Ð¼ÐµÑ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñо знаÑением pg_class.relfilenode, но Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ
ÑиÑÑемнÑÑ
каÑалогов relfilenode Ñавен 0, и нÑжно иÑполÑзоваÑÑ ÑÑÑ ÑÑнкÑиÑ, ÑÑÐ¾Ð±Ñ ÑзнаÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑное знаÑение. ÐÑли Ñказанное оÑноÑение не Ñ
ÑаниÑÑÑ Ð½Ð° диÑке, как, напÑÐ¸Ð¼ÐµÑ Ð¿ÑедÑÑавление, Ð´Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ NULL. |
pg_relation_filepath ( relation regclass ) â text ÐÑдаÑÑ Ð¿Ð¾Ð»Ð½Ñй пÑÑÑ Ðº ÑÐ°Ð¹Ð»Ñ Ð¾ÑноÑÐµÐ½Ð¸Ñ (оÑноÑиÑелÑно каÑалога даннÑÑ
PGDATA). |
pg_filenode_relation ( tablespace oid, filenode oid ) â regclass ÐÑдаÑÑ OID оÑноÑениÑ, коÑоÑое Ñ
ÑаниÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве, заданном по OID, в Ñказанном Ñайловом Ñзле. Ðо ÑÑÑи ÑÑа ÑÑнкÑÐ¸Ñ ÑвлÑеÑÑÑ Ð¾Ð±ÑаÑной к pg_relation_filepath. ÐÐ»Ñ ÑаблиÑного пÑоÑÑÑанÑÑва по ÑмолÑÐ°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пеÑедаÑÑ Ð½Ñлевое знаÑение OID. ÐÑли ÑÑа ÑÑнкÑÐ¸Ñ Ð½Ðµ наÑ
Ð¾Ð´Ð¸Ñ Ð² базе даннÑÑ
оÑноÑение по заданнÑм знаÑениÑм или еÑли оÑноÑение ÑвлÑеÑÑÑ Ð²ÑеменнÑм, она вÑдаÑÑ NULL. |
РТаблиÑа 9.92 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñавилами ÑоÑÑиÑовки.
ТаблиÑа 9.92. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñавилами ÑоÑÑиÑовки
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_collation_actual_version ( oid ) â text ÐозвÑаÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвÑÑÑÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¾Ð±ÑекÑа пÑавила ÑоÑÑиÑовки, коÑоÑÐ°Ñ Ð² наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑÑановлена в опеÑаÑионной ÑиÑÑеме. ÐÑли она оÑлиÑаеÑÑÑ Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² pg_collation.collversion, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿ÐµÑеÑÑÑоиÑÑ Ð¾Ð±ÑекÑÑ, завиÑÑÑие Ð¾Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пÑавила ÑоÑÑиÑовки. См. Ñакже ALTER COLLATION. |
pg_import_system_collations ( schema regnamespace ) â integer ÐобавлÑÐµÑ Ð¿Ñавила ÑоÑÑиÑовки в ÑиÑÑемнÑй каÑалог pg_collation, анализиÑÑÑ Ð²Ñе локали, коÑоÑÑе она наÑ
Ð¾Ð´Ð¸Ñ Ð² опеÑаÑионной ÑиÑÑеме. ÐÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¸ÑполÑзÑÐµÑ initdb; за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 22.2.2. ÐÑли позднее в ÑиÑÑÐµÐ¼Ñ ÑÑÑанавливаÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе локали, ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ запÑÑÑиÑÑ Ñнова, ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð»Ð¸ÑÑ Ð¿Ñавила ÑоÑÑиÑовки Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ
локалей. Ðокали, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
обнаÑÑживаÑÑÑÑ ÑÑÑеÑÑвÑÑÑие запиÑи в pg_collation, бÑдÑÑ Ð¿ÑопÑÑенÑ. (ÐбÑекÑÑ Ð¿Ñавил ÑоÑÑиÑовки Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÐµÐ¹, коÑоÑÑе пеÑеÑÑаÑÑ ÑÑÑеÑÑвоваÑÑ Ð² опеÑаÑионной ÑиÑÑеме, никогда не ÑдалÑÑÑÑÑ ÑÑой ÑÑнкÑией.) РпаÑамеÑÑе schema обÑÑно пеÑедаÑÑÑÑ pg_catalog, но ÑÑо не обÑзаÑелÑно; пÑавила ÑоÑÑиÑовки могÑÑ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð¸ в дÑÑгÑÑ ÑÑ
емÑ. ÐÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑиÑло ÑозданнÑÑ
ей обÑекÑов пÑавил ÑоÑÑиÑовки; вÑзÑваÑÑ ÐµÑ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм. |
РТаблиÑе 9.93 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедоÑÑавлÑÑÑие инÑоÑмаÑÐ¸Ñ Ð¾ ÑÑÑÑкÑÑÑе ÑекÑиониÑованнÑÑ
ÑаблиÑ.
ТаблиÑа 9.93. ФÑнкÑии полÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о ÑекÑиониÑовании
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_partition_tree ( regclass ) â setof record ( relid regclass, parentrelid regclass, isleaf boolean, level integer ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑаблиÑаÑ
и индекÑаÑ
в деÑеве ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑекÑиониÑованной ÑаблиÑÑ Ð¸Ð»Ð¸ ÑекÑиониÑованного индекÑа, оÑÑÐ°Ð¶Ð°Ñ ÐºÐ°Ð¶Ð´ÑÑ ÑекÑÐ¸Ñ Ð² оÑделÑной ÑÑÑоке. Ð ÑÑой инÑоÑмаÑии пÑедÑÑавлÑеÑÑÑ OID ÑекÑии, OID ÐµÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенного ÑодиÑелÑ, логиÑеÑкий пÑизнак Ñого, ÑÑо ÑекÑÐ¸Ñ ÑвлÑеÑÑÑ ÐºÐ¾Ð½ÐµÑной, и Ñелое ÑиÑло, показÑваÑÑее ÐµÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð² иеÑаÑÑ
ии. Ðа ÑÑовне 0 бÑÐ´ÐµÑ Ð½Ð°Ñ
одиÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑаблиÑа или индекÑ, на ÑÑовне 1 непоÑÑедÑÑвеннÑе поÑомки-ÑекÑии, на ÑÑовне 2 ÑекÑии поÑледниÑ
и Ñ. д. ÐÑли заданное оÑноÑение не ÑÑÑеÑÑвÑÐµÑ Ð¸Ð»Ð¸ не ÑвлÑеÑÑÑ ÑекÑией или ÑекÑиониÑованнÑм оÑноÑением, ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ Ð¿ÑÑÑой ÑезÑлÑÑаÑ. |
pg_partition_ancestors ( regclass ) â setof regclass ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок вÑÑеÑÑоÑÑиÑ
оÑноÑений Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑекÑии, вклÑÑÐ°Ñ ÐµÑ ÑамÑ. ÐÑли заданное оÑноÑение не ÑÑÑеÑÑвÑÐµÑ Ð¸Ð»Ð¸ не ÑвлÑеÑÑÑ ÑекÑией или ÑекÑиониÑованнÑм оÑноÑением, ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ Ð¿ÑÑÑой ÑезÑлÑÑаÑ. |
pg_partition_root ( regclass ) â regclass ÐÑдаÑÑ Ñамое веÑÑ
нее оÑноÑение в деÑеве ÑекÑиониÑованиÑ, к коÑоÑÐ¾Ð¼Ñ Ð¾ÑноÑиÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ оÑноÑение. ÐÑли заданное оÑноÑение не ÑÑÑеÑÑвÑÐµÑ Ð¸Ð»Ð¸ не ÑвлÑеÑÑÑ ÑекÑией или ÑекÑиониÑованнÑм оÑноÑением, ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ NULL. |
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð¿ÑеделиÑÑ Ð¾Ð±Ñий ÑÐ°Ð·Ð¼ÐµÑ Ð´Ð°Ð½Ð½ÑÑ
, ÑодеÑжаÑиÑ
ÑÑ Ð² ÑекÑиониÑованной ÑаблиÑе measurement, можно иÑполÑзоваÑÑ ÑледÑÑÑий запÑоÑ:
SELECT pg_size_pretty(sum(pg_relation_size(relid))) AS total_size
FROM pg_partition_tree('measurement');9.27.8. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
РТаблиÑе 9.94 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ Ð¾Ð±ÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов. (ÐамеÑÑÑе, ÑÑо задаÑи обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÑно вÑполнÑÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки в Ñ
оде авÑооÑиÑÑки; полÑзоваÑÑÑÑ Ð´Ð°Ð½Ð½Ñми ÑÑнкÑиÑми ÑÑебÑеÑÑÑ ÑолÑко в оÑобÑÑ
ÑлÑÑаÑÑ
.) ÐÑполнÑÑÑ ÑÑи ÑÑнкÑии во вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ»ÑзÑ. ÐÑполÑзоваÑÑ Ð¸Ñ
ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм и владелÑÑÑ Ð¾Ð¿ÑеделÑнного индекÑа.
ТаблиÑа 9.94. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
brin_summarize_new_values ( index regclass ) â integer СканиÑÑÐµÑ ÑказаннÑй BRIN-Ð¸Ð½Ð´ÐµÐºÑ Ð² поиÑкаÑ
зон ÑÑÑÐ°Ð½Ð¸Ñ Ð² базовой ÑаблиÑе, еÑÑ Ð½Ðµ обобÑÑннÑÑ
в индекÑе; Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñакой Ð·Ð¾Ð½Ñ Ð² ÑезÑлÑÑаÑе ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑиÑ
ÑÑÑÐ°Ð½Ð¸Ñ ÑоздаÑÑÑÑ Ð½Ð¾Ð²Ñй обобÑаÑÑий коÑÑеж в индекÑе. ÐозвÑаÑÐ°ÐµÑ ÑÑа ÑÑнкÑÐ¸Ñ ÑиÑло вÑÑавленнÑÑ
в Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð±Ð¾Ð±ÑаÑÑиÑ
запиÑей о зонаÑ
ÑÑÑаниÑ. |
brin_summarize_range ( index regclass, blockNumber bigint ) â integer ÐбобÑÐ°ÐµÑ Ð·Ð¾Ð½Ñ ÑÑÑаниÑ, оÑ
ваÑÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñй блок, еÑли она еÑÑ Ð½Ðµ бÑла обобÑена. ÐÑа ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð° brin_summarize_new_values, но обÑабаÑÑÐ²Ð°ÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ Ð²ÑбÑаннÑÑ Ð·Ð¾Ð½Ñ ÑÑÑаниÑ. |
brin_desummarize_range ( index regclass, blockNumber bigint ) â void УдалÑÐµÑ Ð¸Ð· BRIN-индекÑа коÑÑеж, коÑоÑÑй обобÑÐ°ÐµÑ Ð·Ð¾Ð½Ñ ÑÑÑаниÑ, оÑ
ваÑÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñй блок ÑаблиÑÑ, еÑли Ñакой коÑÑеж имееÑÑÑ. |
gin_clean_pending_list ( index regclass ) â bigint ÐÑиÑÐ°ÐµÑ Ð¾ÑеÑÐµÐ´Ñ Ñказанного GIN-индекÑа, маÑÑово пеÑемеÑÐ°Ñ ÑлеменÑÑ Ð¸Ð· Ð½ÐµÑ Ð² оÑновнÑÑ ÑÑÑÑкÑÑÑÑ Ð´Ð°Ð½Ð½ÑÑ
GIN, и возвÑаÑÐ°ÐµÑ ÑиÑло ÑÑÑаниÑ, ÑбÑаннÑÑ
из оÑеÑеди. ÐÑли Ð´Ð»Ñ Ð¾Ð±ÑабоÑки ей пеÑедаÑÑÑÑ Ð¸Ð½Ð´ÐµÐºÑ GIN, поÑÑÑоеннÑй Ñ Ð¾ÑклÑÑÑннÑм паÑамеÑÑом fastupdate, оÑиÑÑка не пÑоизводиÑÑÑ Ð¸ возвÑаÑаеÑÑÑ 0, Ñак как Ñ Ñакого индекÑа Ð½ÐµÑ Ð¾ÑеÑеди запиÑей. ÐодÑобнее об оÑеÑеди запиÑей и паÑамеÑÑе fastupdate ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе 63.4.1 и Разделе 63.5. |
9.27.9. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.95, пÑедоÑÑавлÑÑÑ Ð¿ÑÑмой доÑÑÑп к Ñайлам, наÑ
одÑÑимÑÑ Ð½Ð° ÑеÑвеÑе. ÐбÑÑнÑм полÑзоваÑелÑм, не вклÑÑÑннÑм в ÑÐ¾Ð»Ñ pg_read_server_files, они позволÑÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ ÑолÑко к Ñайлам в каÑалоге клаÑÑеÑа баз даннÑÑ
и в каÑалоге log_directory. ÐÐ»Ñ Ñайлов в каÑалоге клаÑÑеÑа ÑÑим ÑÑнкÑиÑм пеÑедаÑÑÑÑ Ð¾ÑноÑиÑелÑнÑй пÑÑÑ, а Ð´Ð»Ñ Ñайлов жÑÑнала â пÑÑÑ, ÑооÑвеÑÑÑвÑÑÑий знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа log_directory.
ÐамеÑÑÑе, ÑÑо полÑзоваÑели, обладаÑÑие пÑавом EXECUTE Ð´Ð»Ñ pg_read_file() или ÑвÑзаннÑÑ
ÑÑнкÑий, имеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑиÑаÑÑ Ð»Ñбой Ñайл на ÑеÑвеÑе, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑиÑаÑÑ ÑеÑвеÑнÑй пÑоÑеÑÑ; на ÑÑи ÑÑнкÑии не дейÑÑвÑÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ огÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа внÑÑÑи Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. Ð ÑаÑÑноÑÑи ÑÑо ознаÑаеÑ, ÑÑо полÑзоваÑÐµÐ»Ñ Ñ Ñакими пÑавами Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑиÑаÑÑ ÑодеÑжимое ÑаблиÑÑ pg_authid, в коÑоÑой Ñ
ÑанÑÑÑÑ Ð´Ð°Ð½Ð½Ñе аÑÑенÑиÑикаÑии, Ñавно как и лÑбой дÑÑгой Ñайл в базе даннÑÑ
. Таким обÑазом, ÑазÑеÑаÑÑ Ð´Ð¾ÑÑÑп к ÑÑим ÑÑнкÑиÑм ÑледÑÐµÑ Ñ Ð±Ð¾Ð»ÑÑой оÑÑоÑожноÑÑÑÑ.
ÐекоÑоÑÑе из ÑÑиÑ
ÑÑнкÑий пÑинимаÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑй паÑамеÑÑ missing_ok, коÑоÑÑй опÑеделÑÐµÑ Ð¸Ñ
поведение в ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ñайла или каÑалога. ÐÑли он Ñавен true, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ NULL или пÑÑÑой Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑли же он Ñавен false, в Ñказанном ÑлÑÑае вÑдаÑÑÑÑ Ð¾Ñибка. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â false.
ТаблиÑа 9.95. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_ls_dir ( dirname text [, missing_ok boolean, include_dot_dirs boolean] ) â setof text ÐÑдаÑÑ Ð¸Ð¼ÐµÐ½Ð° вÑеÑ
Ñайлов (а Ñакже каÑалогов и дÑÑгиÑ
ÑпеÑиалÑнÑÑ
Ñайлов) в заданном каÑалоге. ÐаÑамеÑÑ include_dot_dirs опÑеделÑеÑ, бÑдÑÑ Ð»Ð¸ в ÑезÑлÑÑиÑÑÑÑий Ð½Ð°Ð±Ð¾Ñ Ð²ÐºÐ»ÑÑаÑÑÑÑ ÐºÐ°Ñалоги «.» и «..». Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð½Ð¸ не вклÑÑаÑÑÑÑ, но иÑ
можно вклÑÑиÑÑ, ÑÑÐ¾Ð±Ñ Ñ Ð¿Ð°ÑамеÑÑом missing_ok ÑавнÑм true, пÑÑÑой каÑалог можно бÑло оÑлиÑиÑÑ Ð¾Ñ Ð½ÐµÑÑÑеÑÑвÑÑÑего. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_logdir () â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге жÑÑналов ÑеÑвеÑа. Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_waldir () â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге жÑÑнала пÑедзапиÑи (WAL) ÑеÑвеÑа. Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_archive_statusdir () â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге ÑоÑÑоÑÐ½Ð¸Ñ Ð°ÑÑ
ива WAL (pg_wal/archive_status). Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_tmpdir ( [tablespace oid] ) â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов во вÑеменном каÑалоге Ð´Ð»Ñ ÑаблиÑного пÑоÑÑÑанÑÑва tablespace. ÐÑли паÑамеÑÑ tablespace не задан, подÑазÑмеваеÑÑÑ ÑаблиÑное пÑоÑÑÑанÑÑво pg_default. Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_read_file ( filename text [, offset bigint, length bigint [, missing_ok boolean]] ) â text ЧиÑÐ°ÐµÑ Ð¸Ð· ÑекÑÑового Ñайла вÑÑ ÑодеÑжимое или ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑмеÑÐµÐ½Ð¸Ñ (offset), ÑазмеÑом не болÑÑе length Ð±Ð°Ð¹Ñ (ÑÐ°Ð·Ð¼ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ½ÑÑе, еÑли Ñайл конÑиÑÑÑ ÑанÑÑе). ÐÑли ÑмеÑение offset оÑÑиÑаÑелÑно, оно оÑÑÑиÑÑваеÑÑÑ Ð¾Ñ ÐºÐ¾Ð½Ñа Ñайла. ÐÑли паÑамеÑÑÑ offset и length опÑÑенÑ, возвÑаÑаеÑÑÑ Ð²ÑÑ ÑодеÑжимое Ñайла. ÐÑоÑиÑаннÑе из Ñайла байÑÑ Ð¾Ð±ÑабаÑÑваÑÑÑÑ ÐºÐ°Ðº ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð² кодиÑовке Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
; еÑли они оказÑваÑÑÑÑ Ð½ÐµÐ´Ð¾Ð¿ÑÑÑимÑми Ð´Ð»Ñ ÑÑой кодиÑовки, Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ð¾Ñибка. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_read_binary_file ( filename text [, offset bigint, length bigint [, missing_ok boolean]] ) â bytea ЧиÑÐ°ÐµÑ Ð¸Ð· ÑекÑÑового Ñайла вÑÑ ÑодеÑжимое или заданнÑй ÑÑагменÑ. ÐÑа ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð° pg_read_file, но Ð¼Ð¾Ð¶ÐµÑ ÑиÑаÑÑ Ð¿ÑоизволÑнÑе двоиÑнÑе даннÑе и возвÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ Ð² знаÑении Ñипа bytea, а не text; как ÑледÑÑвие, никакие пÑовеÑки кодиÑовок не пÑоизводÑÑÑÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. Ð ÑоÑеÑании Ñ convert_from ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑименÑÑÑ Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ ÑекÑÑа в Ñказанной кодиÑовке и пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² кодиÑÐ¾Ð²ÐºÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
: SELECT convert_from(pg_read_binary_file('file_in_utf8.txt'), 'UTF8'); |
pg_stat_file ( filename text [, missing_ok boolean] ) â record ( size bigint, access timestamp with time zone, modification timestamp with time zone, change timestamp with time zone, creation timestamp with time zone, isdir boolean ) ÐÑдаÑÑ Ð·Ð°Ð¿Ð¸ÑÑ, ÑодеÑжаÑÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ñайла, вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего обÑаÑÐµÐ½Ð¸Ñ Ð¸ поÑледнего изменениÑ, а Ñакже вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑоÑÑоÑÐ½Ð¸Ñ (ÑолÑко в Unix-ÑиÑÑемаÑ
), вÑÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ (ÑолÑко в Windows) и Ñлаг, показÑваÑÑий, ÑÑо ÑÑо каÑалог. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
9.27.10. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.96, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками. ÐодÑобнее об иÑ
иÑполÑзовании можно ÑзнаÑÑ Ð² ÐодÑазделе 13.3.5.
ÐÑе ÑÑи ÑÑнкÑии пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð¿ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовками ÑеÑÑÑÑов, опÑеделÑемÑÑ
пÑиложением и задаваемÑÑ
одним 64-биÑнÑм или двÑÐ¼Ñ 32-биÑнÑми клÑÑами (замеÑÑÑе, ÑÑо пÑоÑÑÑанÑÑва ÑÑиÑ
клÑÑей не пеÑеÑекаÑÑÑÑ). ÐÑли конÑликÑÑÑÑÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ñ Ñем же иденÑиÑикаÑоÑом Ñже ÑдеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´ÑÑгой ÑеанÑ, ÑÑи ÑÑнкÑии либо дожидаÑÑÑÑ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÑеÑÑÑÑа, либо вÑдаÑÑ Ð² ÑезÑлÑÑаÑе false, в завиÑимоÑÑи Ð¾Ñ Ð²Ð¸Ð´Ð° ÑÑнкÑии. ÐлокиÑовки могÑÑ Ð±ÑÑÑ ÐºÐ°Ðº иÑклÑÑиÑелÑнÑми, Ñак и ÑазделÑемÑми â ÑазделÑÐµÐ¼Ð°Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовка не конÑликÑÑÐµÑ Ñ Ð´ÑÑгими ÑазделÑемÑми блокиÑовками Ñого же ÑеÑÑÑÑа, но конÑликÑÑÐµÑ Ñ Ð¸ÑклÑÑиÑелÑнÑми. ÐлокиÑовки могÑÑ ÑÑÑанавливаÑÑÑÑ Ð½Ð° ÑеанÑовом ÑÑовне (Ñогда они ÑдеÑживаÑÑÑÑ Ð´Ð¾ моменÑа оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ до завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа) и на ÑÑанзакÑионном (Ñогда они ÑдеÑживаÑÑÑÑ Ð´Ð¾ конÑа ÑекÑÑей ÑÑанзакÑии, оÑвободиÑÑ Ð¸Ñ
вÑÑÑнÑÑ Ð½ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи). Ðогда поÑÑÑÐ¿Ð°ÐµÑ Ð½ÐµÑколÑко запÑоÑов на блокиÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, они накапливаÑÑÑÑ, Ñак ÑÑо еÑли один иденÑиÑикаÑÐ¾Ñ ÑеÑÑÑÑа бÑл заблокиÑован ÑÑи Ñаза, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿Ð¾ÑÑÑпиÑÑ ÑÑи запÑоÑа на оÑвобождение блокиÑовки, ÑÑÐ¾Ð±Ñ ÑеÑÑÑÑ Ð±Ñл ÑазблокиÑован до завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа.
ТаблиÑа 9.96. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_advisory_lock ( key bigint ) â void pg_advisory_lock ( key1 integer, key2 integer ) â void
ÐолÑÑÐ°ÐµÑ Ð¸ÑклÑÑиÑелÑнÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, Ð¾Ð¶Ð¸Ð´Ð°Ñ ÐµÑ, еÑли ÑÑо необÑ
одимо. |
pg_advisory_lock_shared ( key bigint ) â void pg_advisory_lock_shared ( key1 integer, key2 integer ) â void
ÐолÑÑÐ°ÐµÑ ÑазделÑемÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, Ð¾Ð¶Ð¸Ð´Ð°Ñ ÐµÑ, еÑли ÑÑо необÑ
одимо. |
pg_advisory_unlock ( key bigint ) â boolean pg_advisory_unlock ( key1 integer, key2 integer ) â boolean
ÐÑÐ²Ð¾Ð±Ð¾Ð¶Ð´Ð°ÐµÑ Ñанее полÑÑеннÑÑ Ð¸ÑклÑÑиÑелÑнÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ. ÐÑли блокиÑовка оÑвобождена ÑÑпеÑно, ÑÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true, а еÑли ÑÐµÐ°Ð½Ñ Ð½Ðµ владел ей â false, пÑи ÑÑом ÑеÑÐ²ÐµÑ Ð²ÑдаÑÑ Ð¿ÑедÑпÑеждение SQL. |
pg_advisory_unlock_all () â void ÐÑÐ²Ð¾Ð±Ð¾Ð¶Ð´Ð°ÐµÑ Ð²Ñе закÑеплÑннÑе за ÑекÑÑим ÑеанÑом ÑекомендаÑелÑнÑе блокиÑовки ÑеанÑового ÑÑовнÑ. (ÐÑа ÑÑнкÑÐ¸Ñ Ð½ÐµÑвно вÑзÑваеÑÑÑ Ð² конÑе лÑбого ÑеанÑа, даже пÑи неÑÑаÑном оÑклÑÑении клиенÑа.) |
pg_advisory_unlock_shared ( key bigint ) â boolean pg_advisory_unlock_shared ( key1 integer, key2 integer ) â boolean
ÐÑÐ²Ð¾Ð±Ð¾Ð¶Ð´Ð°ÐµÑ Ñанее полÑÑеннÑÑ ÑазделÑемÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ. ÐÑли она оÑвобождена ÑÑпеÑно, ÑÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true, а еÑли ÑÐµÐ°Ð½Ñ Ð½Ðµ владел ÑÑой блокиÑовкой â false, пÑи ÑÑом ÑеÑÐ²ÐµÑ Ð²ÑдаÑÑ Ð¿ÑедÑпÑеждение SQL. |
pg_advisory_xact_lock ( key bigint ) â void pg_advisory_xact_lock ( key1 integer, key2 integer ) â void
ÐолÑÑÐ°ÐµÑ Ð¸ÑклÑÑиÑелÑнÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑÑанзакÑионного ÑÑовнÑ, Ð¾Ð¶Ð¸Ð´Ð°Ñ ÐµÑ, еÑли ÑÑо необÑ
одимо. |
pg_advisory_xact_lock_shared ( key bigint ) â void pg_advisory_xact_lock_shared ( key1 integer, key2 integer ) â void
ÐолÑÑÐ°ÐµÑ ÑазделÑемÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑÑанзакÑионного ÑÑовнÑ, Ð¾Ð¶Ð¸Ð´Ð°Ñ ÐµÑ, еÑли ÑÑо необÑ
одимо. |
pg_try_advisory_lock ( key bigint ) â boolean pg_try_advisory_lock ( key1 integer, key2 integer ) â boolean
ÐолÑÑÐ°ÐµÑ Ð¸ÑклÑÑиÑелÑнÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, еÑли она доÑÑÑпна. То еÑÑÑ ÑÑа ÑÑнкÑÐ¸Ñ Ð»Ð¸Ð±Ð¾ немедленно полÑÑÐ°ÐµÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð¸ возвÑаÑÐ°ÐµÑ true, либо ÑÑÐ°Ð·Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ false, еÑли полÑÑиÑÑ ÐµÑ Ð½ÐµÐ»ÑзÑ. |
pg_try_advisory_lock_shared ( key bigint ) â boolean pg_try_advisory_lock_shared ( key1 integer, key2 integer ) â boolean
ÐолÑÑÐ°ÐµÑ ÑазделÑемÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, еÑли она доÑÑÑпна. То еÑÑÑ ÑÑа ÑÑнкÑÐ¸Ñ Ð»Ð¸Ð±Ð¾ немедленно полÑÑÐ°ÐµÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð¸ возвÑаÑÐ°ÐµÑ true, либо ÑÑÐ°Ð·Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ false, еÑли полÑÑиÑÑ ÐµÑ Ð½ÐµÐ»ÑзÑ. |
pg_try_advisory_xact_lock ( key bigint ) â boolean pg_try_advisory_xact_lock ( key1 integer, key2 integer ) â boolean
ÐолÑÑÐ°ÐµÑ Ð¸ÑклÑÑиÑелÑнÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑÑанзакÑионного ÑÑовнÑ, еÑли она доÑÑÑпна. То еÑÑÑ ÑÑа ÑÑнкÑÐ¸Ñ Ð»Ð¸Ð±Ð¾ немедленно полÑÑÐ°ÐµÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð¸ возвÑаÑÐ°ÐµÑ true, либо ÑÑÐ°Ð·Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ false, еÑли полÑÑиÑÑ ÐµÑ Ð½ÐµÐ»ÑзÑ. |
pg_try_advisory_xact_lock_shared ( key bigint ) â boolean pg_try_advisory_xact_lock_shared ( key1 integer, key2 integer ) â boolean
ÐолÑÑÐ°ÐµÑ ÑазделÑемÑÑ ÑекомендаÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑÑанзакÑионного ÑÑовнÑ, еÑли она доÑÑÑпна. То еÑÑÑ ÑÑа ÑÑнкÑÐ¸Ñ Ð»Ð¸Ð±Ð¾ немедленно полÑÑÐ°ÐµÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð¸ возвÑаÑÐ°ÐµÑ true, либо ÑÑÐ°Ð·Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ false, еÑли полÑÑиÑÑ ÐµÑ Ð½ÐµÐ»ÑзÑ. |
9.27.11. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий
РжÑÑнале опеÑаÑий Ñ
ÑаниÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ кÑиÑиÑеÑки важнÑÑ
ÑиÑÑемнÑÑ
ÑобÑÑиÑÑ
, ÑакиÑ
как обновление, вÑполнение pg_resetwal и Ñ. п. ÐÑа инÑоÑмаÑÐ¸Ñ Ð½Ðµ пÑедÑÑавлÑÐµÑ Ð¾Ñобого инÑеÑеÑа Ð´Ð»Ñ Ð¾Ð±ÑÑного полÑзоваÑелÑ, но важна Ð´Ð»Ñ Ð¾ÑÑÑеÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑеÑ
ниÑеÑкой поддеÑжки Ñо ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾ÑÑавÑика. ÐапиÑÑ Ð² жÑÑнал опеÑаÑий пÑоизводиÑÑÑ ÑолÑко на ÑиÑÑемном ÑÑовне (без какиÑ
-либо дейÑÑвий Ñо ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ), а Ð´Ð»Ñ ÐµÐ³Ð¾ ÑÑÐµÐ½Ð¸Ñ Ð¸ÑполÑзÑÑÑÑÑ ÑÑнкÑии SQL. ФÑнкÑиÑ, Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² ТаблиÑа 9.97, ÑиÑÐ°ÐµÑ Ð¶ÑÑнал опеÑаÑий.
ТаблиÑа 9.97. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_operation_log () â setof record ( event text, edition text, version text, lsn pg_lsn, last timestamptz, count int4 ) ÐдеÑÑ: event â Ñип ÑобÑÑÐ¸Ñ (опеÑаÑии). ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ bootstrap, startup, pg_resetwal, pg_rewind, pg_upgrade или promoted.
edition â ÑедакÑÐ¸Ñ Postgres Pro. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ vanilla, 1c, std, ent или unknown.
version â веÑÑÐ¸Ñ Postgres Pro.
lsn â положение поÑледней конÑÑолÑной ÑоÑки, возвÑаÑÑнное ÑÑилиÑой pg_controldata на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ ÑобÑÑиÑ.
last â даÑа/вÑÐµÐ¼Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñледнего ÑобÑÑÐ¸Ñ ÑÑого Ñипа, еÑли ÑобÑÑÐ¸Ñ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÑÑÑÑ, или даÑа/вÑÐµÐ¼Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ ÑобÑÑÐ¸Ñ Ð² пÑоÑивном ÑлÑÑае.
count â колиÑеÑÑво ÑобÑÑий ÑÑого Ñипа, еÑли ÑобÑÑÐ¸Ñ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÑÑÑÑ, или 1 в пÑоÑивном ÑлÑÑае.
ÐÑа ÑиÑÑÐµÐ¼Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ ÑоздаÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ
баз даннÑÑ
, а Ð´Ð»Ñ ÑÑÑеÑÑвÑÑÑиÑ
баз даннÑÑ
должна ÑоздаваÑÑÑÑ ÑледÑÑÑим обÑазом: CREATE OR REPLACE FUNCTION
pg_operation_log(
OUT event text,
OUT edition text,
OUT version text,
OUT lsn pg_lsn,
OUT last timestamptz,
OUT count int4)
RETURNS SETOF record
LANGUAGE INTERNAL
STABLE STRICT PARALLEL SAFE
AS 'pg_operation_log'; |
Ðиже пÑедÑÑавлен пÑÐ¸Ð¼ÐµÑ Ð²Ñвода Ð´Ð»Ñ ÑÑнкÑии pg_operation_log:
select * from pg_operation_log();
event | edition | version | lsn | last | count
------------+---------+---------+-----------+------------------------+-------
startup | vanilla | 10.22.0 | 0/8000028 | 2022-10-27 23:06:27+03 | 1
pg_upgrade | 1c | 15.0.0 | 0/8000028 | 2022-10-27 23:06:27+03 | 1
startup | 1c | 15.0.0 | 0/80001F8 | 2022-10-27 23:06:53+03 | 2
(3 rows)
ÐÑимеÑание
ÐÑли жÑÑнал опеÑаÑий пÑÑÑ, Ñо пÑи обновлении пеÑед запиÑÑÑ pg_upgrade ÑнаÑала запиÑÑваеÑÑÑ ÑобÑÑие startup Ñ Ð¿ÑедÑдÑÑим знаÑением version, имеÑÑим ÑледÑÑÑие оÑобенноÑÑи: вмеÑÑо веÑÑии паÑÑа (ÑÑеÑÑÑ ÑиÑÑа в номеÑе веÑÑии) вÑегда ÑÑÑанавливаеÑÑÑ Ð½Ð¾Ð»Ñ, поÑколÑÐºÑ Ð² pg_upgrade Ð½ÐµÑ Ð¸Ð½ÑоÑмаÑии о веÑÑии паÑÑа ни Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑедакÑии (1c, std, ent). ÐÑи обновлении Ñ 1c или vanilla невозможно вÑÑÑниÑÑ, к какой из ÑÑиÑ
ÑедакÑий оÑноÑиÑÑÑ Ð±Ð°Ð·Ð° даннÑÑ
до обновлениÑ, поÑÑÐ¾Ð¼Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи startup иÑполÑзÑеÑÑÑ ÑедакÑÐ¸Ñ vanilla.
9.27.12. ÐÑладоÑнÑе ÑÑнкÑии
ФÑнкÑиÑ, Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² ТаблиÑе 9.98, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° Ð´Ð»Ñ Ð½Ð¸Ð·ÐºÐ¾ÑÑовневÑÑ
опеÑаÑий, напÑÐ¸Ð¼ÐµÑ Ð² ÑелÑÑ
оÑладки или иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑпоÑÑеннÑÑ
баз даннÑÑ
Postgres Pro.
ТаблиÑа 9.98. ФÑнкÑии ÑинÑ
ÑонизаÑии Ñнимков
| ÐÐ¼Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание |
|---|
pg_snapshot_any() | void | ÐÑклÑÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвие пÑавил MVCC в ÑамкаÑ
ÑекÑÑей ÑÑанзакÑии, ÑÑо позволÑÐµÑ Ð²Ð¸Ð´ÐµÑÑ Ð² ней вÑе веÑÑии даннÑÑ
. |
ÐÑименÑйÑе pg_snapshot_any кÑайне оÑÑоÑожно. ÐÑполнÑÑÑ ÐµÑ ÑледÑÐµÑ Ð² ÑÑанзакÑии Ñ ÑÑовнем изолÑÑии REPEATABLE READ или вÑÑе, в пÑоÑивном ÑлÑÑае ÑледÑÑÑий же запÑÐ¾Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ Ð²ÑбÑаннÑй Ñнимок новÑм. ÐÑполнÑÑÑ ÐµÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ÐÑимеÑание
ÐÑли Ð²Ð°Ñ ÐºÐ»Ð°ÑÑÐµÑ ÐÐ ÑоздавалÑÑ ÑеÑвеÑом веÑÑии, в коÑоÑой ÑÑой ÑÑнкÑии еÑÑ Ð½Ðµ бÑло, опÑеделиÑе ÐµÑ ÑледÑÑÑей командой:
CREATE FUNCTION pg_snapshot_any() RETURNS void AS 'pg_snapshot_any' LANGUAGE internal;