9.28. ФÑнкÑии Ð´Ð»Ñ ÑиÑÑемного админиÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ #
ФÑнкÑии, опиÑаннÑе в ÑÑом Ñазделе, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð¸ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑвеÑом Postgres Pro.
9.28.1. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией #
РТаблиÑе 9.95 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, позволÑÑÑие полÑÑиÑÑ Ð¸ измениÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии вÑполнениÑ.
ТаблиÑа 9.95. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией
ФÑнкÑÐ¸Ñ ÐпиÑание ÐÑимеÑ(Ñ) |
|---|
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 пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°Ñение NULL Ð´Ð»Ñ new_value, однако, Ñак как Ñ Ð¿Ð°ÑамеÑÑов не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð½Ð°Ñение NULL, оно воÑпÑинимаеÑÑÑ ÐºÐ°Ðº запÑÐ¾Ñ Ð½Ð° ÑбÑÐ¾Ñ Ð¿Ð°ÑамеÑÑа до знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. set_config('log_statement_stats', 'off', false) â off
|
9.28.2. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.96, позволÑÑÑ Ð¿ÐµÑедаваÑÑ ÑпÑавлÑÑÑие ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð´ÑÑгим ÑеÑвеÑнÑм пÑоÑеÑÑам. ÐÑзÑваÑÑ ÑÑи ÑÑнкÑии по ÑмолÑÐ°Ð½Ð¸Ñ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм, но доÑÑÑп к ним можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм командой GRANT, кÑоме Ñвно оÑмеÑеннÑÑ
иÑклÑÑений.
ÐÑе ÑÑи ÑÑнкÑии возвÑаÑаÑÑ true, еÑли Ñигнал ÑÑпеÑно оÑпÑавлен, и false, еÑли оÑпÑавиÑÑ Ñигнал не ÑдалоÑÑ.
ТаблиÑа 9.96. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_cancel_backend ( pid integer ) â boolean ÐÑменÑÐµÑ ÑекÑÑий запÑÐ¾Ñ Ð² ÑеанÑе, коÑоÑÑй обÑлÑживаеÑÑÑ Ð¿ÑоÑеÑÑом Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм PID. ÐÑо дейÑÑвие ÑазÑеÑаеÑÑÑ Ð¸ ÑолÑм, ÑвлÑÑÑимÑÑ Ñленами Ñоли, запÑÐ¾Ñ ÐºÐ¾ÑоÑой оÑменÑеÑÑÑ, и ÑолÑм Ñ Ð¿Ñавами Ñоли pg_signal_backend; однако ÑолÑко ÑÑпеÑполÑзоваÑелÑм ÑазÑеÑено оÑменÑÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð´ÑÑгиÑ
ÑÑпеÑполÑзоваÑелей. РкаÑеÑÑве иÑклÑÑÐµÐ½Ð¸Ñ ÑолÑм Ñ Ð¿Ñавами pg_signal_autovacuum_worker ÑазÑеÑено оÑменÑÑÑ ÑабоÑие пÑоÑеÑÑÑ Ð°Ð²ÑооÑиÑÑки, коÑоÑÑе в дÑÑгиÑ
ÑлÑÑаÑÑ
ÑÑиÑаÑÑÑÑ Ð¾Ð±ÑлÑживаÑÑими пÑоÑеÑÑами ÑÑпеÑполÑзоваÑелей. |
pg_log_backend_memory_contexts ( pid integer ) â boolean ÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð²Ñвод в жÑÑнал инÑоÑмаÑии о конÑекÑÑаÑ
памÑÑи обÑлÑживаÑÑего пÑоÑеÑÑа Ñ ÑказаннÑм PID. ÐÑа ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑпÑавлÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¾Ð±ÑлÑживаÑÑим и вÑпомогаÑелÑнÑм пÑоÑеÑÑам, кÑоме пÑоÑеÑÑа пÑоÑоколиÑованиÑ. ÐапÑоÑÐµÐ½Ð½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ñведена в ÑообÑениÑÑ
ÑÑÐ¾Ð²Ð½Ñ LOG, коÑоÑÑе поÑвÑÑÑÑ Ð² жÑÑнале ÑеÑвеÑа в завиÑимоÑÑи Ð¾Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ конÑигÑÑаÑии жÑÑнала (за дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº РазделÑ 18.8), но не бÑдÑÑ Ð¿ÐµÑедаваÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо Ð¾Ñ client_min_messages. |
pg_reload_conf () â boolean ÐаÑÑ Ð²Ñем пÑоÑеÑÑам ÑеÑвеÑа Postgres Pro ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÐµÑезагÑÑзиÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии. (ÐÐ»Ñ ÑÑого поÑÑлаеÑÑÑ Ñигнал SIGHUP Ð³Ð»Ð°Ð²Ð½Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ, коÑоÑÑй, в Ñвой оÑеÑедÑ, поÑÑÐ»Ð°ÐµÑ SIGHUP вÑем Ñвоим доÑеÑним пÑоÑеÑÑам.) ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑоÑиÑаÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_file_settings, pg_hba_file_rules и pg_ident_file_mappings, ÑÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии на пÑÐµÐ´Ð¼ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ
оÑибок пеÑед пеÑезагÑÑзкой. |
pg_rotate_logfile () â boolean УказÑÐ²Ð°ÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑÑ Ð¶ÑÑнала ÑообÑений немедленно пеÑеклÑÑиÑÑÑÑ Ð½Ð° новÑй Ñайл. ÐÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл, ÑолÑко когда ÑабоÑÐ°ÐµÑ Ð²ÑÑÑоеннÑй ÑбоÑÑик ÑообÑений, Ñак как без него подпÑоÑеÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа жÑÑнала не запÑÑкаеÑÑÑ. |
pg_terminate_backend ( pid integer, timeout bigint DEFAULT 0 ) â boolean ÐавеÑÑÐ°ÐµÑ ÑеанÑ, коÑоÑÑй обÑлÑживаеÑÑÑ Ð¿ÑоÑеÑÑом Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм PID. ÐÑо дейÑÑвие ÑазÑеÑаеÑÑÑ Ð¸ ÑолÑм, ÑвлÑÑÑимÑÑ Ñленами Ñоли, обÑлÑживаÑÑий пÑоÑеÑÑ ÐºÐ¾ÑоÑой завеÑÑаеÑÑÑ, и ÑолÑм Ñ Ð¿Ñавами Ñоли pg_signal_backend; однако пÑеÑÑваÑÑ Ð¾Ð±ÑлÑживаÑÑие пÑоÑеÑÑÑ Ð´ÑÑгиÑ
ÑÑпеÑполÑзоваÑелей ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм. РкаÑеÑÑве иÑклÑÑÐµÐ½Ð¸Ñ ÑолÑм Ñ Ð¿Ñавами pg_signal_autovacuum_worker ÑазÑеÑено завеÑÑаÑÑ ÑабоÑие пÑоÑеÑÑÑ Ð°Ð²ÑооÑиÑÑки, коÑоÑÑе в дÑÑгиÑ
ÑлÑÑаÑÑ
ÑÑиÑаÑÑÑÑ Ð¾Ð±ÑлÑживаÑÑими пÑоÑеÑÑами ÑÑпеÑполÑзоваÑелей. ÐÑли паÑамеÑÑ timeout не задан или Ñавен нÑлÑ, Ð´Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true незавиÑимо Ð¾Ñ Ñого, дейÑÑвиÑелÑно ли завеÑÑаеÑÑÑ Ð¿ÑоÑеÑÑ; Ñо еÑÑÑ ÑезÑлÑÑÐ°Ñ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ ÑолÑко, ÑÑо Ñигнал бÑл оÑпÑавлен ÑÑпеÑно. ÐÑли паÑамеÑÑ timeout задан (в миллиÑекÑндаÑ
) и болÑÑе нÑлÑ, ÑÑнкÑÐ¸Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ, пока пÑоÑеÑÑ Ð½Ðµ бÑÐ´ÐµÑ ÑакÑиÑеÑки завеÑÑÑн или пока не пÑойдÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ вÑемÑ. ÐÑли пÑоÑеÑÑ Ð·Ð°Ð²ÐµÑÑÑн, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true. Ð ÑлÑÑае Ñайм-аÑÑа вÑдаÑÑÑÑ Ð¿ÑедÑпÑеждение и возвÑаÑаеÑÑÑ false. |
pg_cancel_backend и pg_terminate_backend пеÑедаÑÑ ÑÐ¸Ð³Ð½Ð°Ð»Ñ (SIGINT и SIGTERM, ÑооÑвеÑÑÑвенно) ÑеÑвеÑÐ½Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм кодом PID. Ðод акÑивного пÑоÑеÑÑа можно полÑÑиÑÑ Ð¸Ð· ÑÑолбÑа pid пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_activity или пÑоÑмоÑÑев на ÑеÑвеÑе пÑоÑеÑÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ postgres (иÑполÑзÑÑ ps в Unix или ÐиÑпеÑÑÐµÑ Ð·Ð°Ð´Ð°Ñ Ð² Windows). Ð Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð°ÐºÑивного пÑоÑеÑÑа можно ÑзнаÑÑ Ð² ÑÑолбÑе usename пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_activity.
pg_log_backend_memory_contexts Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð² жÑÑнале ÑеÑвеÑа инÑоÑмаÑии о конÑекÑÑаÑ
памÑÑи. ÐапÑимеÑ:
postgres=# SELECT pg_log_backend_memory_contexts(pg_backend_pid());
pg_log_backend_memory_contexts
--------------------------------
t
(1 row)
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ конÑекÑÑа памÑÑи бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð´Ð½Ð¾ ÑообÑение. ÐапÑимеÑ:
LOG: logging memory contexts of PID 10377
STATEMENT: SELECT pg_log_backend_memory_contexts(pg_backend_pid());
LOG: level: 1; TopMemoryContext: 80800 total in 6 blocks; 14432 free (5 chunks); 66368 used
LOG: level: 2; pgstat TabStatusArray lookup hash table: 8192 total in 1 blocks; 1408 free (0 chunks); 6784 used
LOG: level: 2; TopTransactionContext: 8192 total in 1 blocks; 7720 free (1 chunks); 472 used
LOG: level: 2; RowDescriptionContext: 8192 total in 1 blocks; 6880 free (0 chunks); 1312 used
LOG: level: 2; MessageContext: 16384 total in 2 blocks; 5152 free (0 chunks); 11232 used
LOG: level: 2; Operator class cache: 8192 total in 1 blocks; 512 free (0 chunks); 7680 used
LOG: level: 2; smgr relation table: 16384 total in 2 blocks; 4544 free (3 chunks); 11840 used
LOG: level: 2; TransactionAbortContext: 32768 total in 1 blocks; 32504 free (0 chunks); 264 used
...
LOG: level: 2; ErrorContext: 8192 total in 1 blocks; 7928 free (3 chunks); 264 used
LOG: Grand total: 1651920 bytes in 201 blocks; 622360 free (88 chunks); 1029560 used
ÐÑли Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑодиÑÐµÐ»Ñ Ð±Ð¾Ð»ÐµÐµ 100 доÑеÑниÑ
конÑекÑÑов, в жÑÑнале опиÑÑваÑÑÑÑ Ð¿ÐµÑвÑе 100 доÑеÑниÑ
конÑекÑÑов, а по оÑÑалÑнÑм вÑдаÑÑÑÑ ÐºÑаÑÐºÐ°Ñ Ñводка. ÐбÑаÑиÑе внимание, ÑÑо ÑаÑÑÑе вÑÐ·Ð¾Ð²Ñ ÑÑой ÑÑнкÑии могÑÑ ÑоздаваÑÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð½Ð°Ð³ÑÑзкÑ, Ñак как она Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑ Ð² жÑÑнал маÑÑÑ ÑообÑений.
9.28.3. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.97, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° Ñ
одÑ». ÐÑи ÑÑнкÑии нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (за иÑклÑÑением pg_backup_start, pg_backup_stop и pg_wal_lsn_diff).
ÐодÑобнее пÑакÑиÑеÑкое пÑименение ÑÑиÑ
ÑÑнкÑий опиÑÑваеÑÑÑ Ð² Разделе 24.3.
ТаблиÑа 9.97. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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_backup_start ( label text [, fast boolean] ) â pg_lsn ÐодгоÑÐ°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑеÑÐ²ÐµÑ Ðº ÑезеÑÐ²Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° леÑÑ». ÐдинÑÑвеннÑй обÑзаÑелÑнÑй паÑамеÑÑ Ð·Ð°Ð´Ð°ÑÑ Ð¿ÑоизволÑнÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкÑÑ Ð¼ÐµÑÐºÑ ÑезеÑвной копии. (ÐбÑÑно ÑÑо имÑ, коÑоÑое полÑÑÐ¸Ñ Ñайл ÑезеÑвной копии.) ÐÑли необÑзаÑелÑнÑй вÑоÑой паÑамеÑÑ Ð·Ð°Ð´Ð°Ð½ и Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение true, ÑÑнкÑÐ¸Ñ pg_backup_start должна вÑполниÑÑÑÑ Ð¼Ð°ÐºÑималÑно бÑÑÑÑо. ÐÑо ознаÑаеÑ, ÑÑо пÑинÑдиÑелÑно бÑÐ´ÐµÑ Ð²Ñполнена конÑÑолÑÐ½Ð°Ñ ÑоÑка, вÑледÑÑвие Ñего кÑаÑковÑеменно ÑвелиÑиÑÑÑ Ð½Ð°Ð³ÑÑзка на ввод-вÑвод и паÑаллелÑно вÑполнÑемÑе запÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð¼ÐµÐ´Ð»Ð¸ÑÑÑÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_backup_stop ( [wait_for_archive boolean] ) â record ( lsn pg_lsn, labelfile text, spcmapfile text ) ÐавеÑÑÐ°ÐµÑ Ð²Ñполнение ÑезеÑвного копиÑованиÑ. Ð ÑезÑлÑÑаÑе возвÑаÑаеÑÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ðµ ÑодеÑжимое Ñайла меÑки ÑезеÑвной копии и Ñайла каÑÑÑ ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв, коÑоÑое нÑжно ÑоÑ
ÑаниÑÑ Ð² ÑÐ°Ð¹Ð»Ñ Ð² аÑÑ
иве (не в каÑалоге даннÑÑ
). ÐÑи ÑÐ°Ð¹Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð·Ð°Ð¿Ð¸ÑÑваÑÑ Ð² каÑалог ÑабоÑаÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
(в пÑоÑивном ÑлÑÑае Postgres Pro не ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑезапÑÑÑиÑÑÑÑ, еÑли пÑоизойдÑÑ Ñбой). У ÑÑой ÑÑнкÑии еÑÑÑ Ñакже необÑзаÑелÑнÑй паÑамеÑÑ Ñипа boolean. ÐÑли он Ñавен false, pg_backup_stop завеÑÑиÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле оконÑÐ°Ð½Ð¸Ñ ÑезеÑвного копиÑованиÑ, не дожидаÑÑÑ Ð°ÑÑ
иваÑии WAL. ÐÑо поведение полезно ÑолÑко Ð´Ð»Ñ Ð¿ÑогÑамм ÑезеÑвного копиÑованиÑ, коÑоÑÑе оÑÑÑеÑÑвлÑÑÑ Ð°ÑÑ
иваÑÐ¸Ñ WAL незавиÑимо. ÐÑли же WAL не бÑÐ´ÐµÑ Ð·Ð°Ð°ÑÑ
ивиÑован вовÑе, ÑезеÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð½ÐµÐ¿Ð¾Ð»Ð½Ð¾Ð¹, и, как ÑледÑÑвие, непÑигодной Ð´Ð»Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðогда он Ñавен true (по ÑмолÑаниÑ), pg_backup_stop бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð°ÑÑ
иваÑии WAL, еÑли аÑÑ
ивиÑование вклÑÑено. ÐÐ»Ñ ÑезеÑвного ÑеÑвеÑа ÑÑо ознаÑаеÑ, ÑÑо ожидание возможно ÑолÑко пÑи ÑÑловии archive_mode = always. ÐÑли акÑивноÑÑÑ Ð·Ð°Ð¿Ð¸Ñи на ведÑÑем ÑеÑвеÑе невÑÑока, Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ ÑмÑÑл вÑполниÑÑ Ð½Ð° нÑм pg_switch_wal Ð´Ð»Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ пеÑеклÑÑÐµÐ½Ð¸Ñ ÑегменÑа. ÐÑи вÑполнении на ведÑÑем ÑÑа ÑÑнкÑÐ¸Ñ Ñакже ÑоздаÑÑ Ñайл иÑÑоÑии ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² облаÑÑи аÑÑ
ива жÑÑнала пÑедзапиÑи. Ð ÑÑом Ñайле Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑезеÑвной копии ÑоÑ
ÑанÑеÑÑÑ Ð¼ÐµÑка, Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ñи вÑзове pg_backup_start, наÑалÑÐ½Ð°Ñ Ð¸ конеÑÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² жÑÑнале пÑедзапиÑи, а Ñакже вÑÐµÐ¼Ñ Ð½Ð°Ñала и оконÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ. ÐоÑле запиÑи конеÑной позиÑии ÑекÑÑÐ°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð°Ð²ÑомаÑиÑеÑки пеÑемеÑаеÑÑÑ Ðº ÑледÑÑÑÐµÐ¼Ñ ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑнала пÑедзапиÑи, ÑÑÐ¾Ð±Ñ Ñайл конеÑной позиÑии можно бÑло немедленно аÑÑ
ивиÑоваÑÑ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑезеÑвного копиÑованиÑ. Ð ÑезÑлÑÑаÑе ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ ÐµÐ´Ð¸Ð½ÑÑвеннÑÑ Ð·Ð°Ð¿Ð¸ÑÑ. СÑÐ¾Ð»Ð±ÐµÑ lsn в ней ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² жÑÑнале пÑедзапиÑи (ÐµÑ Ñакже можно игноÑиÑоваÑÑ). Ðо вÑоÑом ÑÑолбÑе пеÑедаÑÑÑÑ ÑодеÑжимое Ñайла меÑки ÑезеÑвной копии, а в ÑÑеÑÑем â ÑодеÑжимое Ñайла каÑÑÑ ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв. ÐÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð½Ñжно ÑоÑ
ÑаниÑÑ Ð² ÑоÑÑаве ÑезеÑвной копии, она поÑÑебÑеÑÑÑ Ð² пÑоÑеÑÑе воÑÑÑановлениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
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_split_walfile_name ( file_name text ) â record ( segment_number numeric, timeline_id bigint ) ÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¿Ð¾ÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð¸ иденÑиÑикаÑÐ¾Ñ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени из имени Ñайла WAL. |
pg_wal_lsn_diff ( lsn1 pg_lsn, lsn2 pg_lsn ) â numeric ÐÑÑиÑлÑÐµÑ ÑазниÑÑ Ð² байÑаÑ
(lsn1 - lsn2) Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð¿Ð¾Ð·Ð¸ÑиÑми в жÑÑнале пÑедзапиÑи. ÐолÑÑеннÑй ÑезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ñ pg_stat_replication или Ñ Ð½ÐµÐºÐ¾ÑоÑÑми ÑÑнкÑиÑми, пеÑеÑиÑленнÑми в ТаблиÑа 9.97, Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð°Ð´ÐµÑжки ÑепликаÑии. |
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_backup_stop()).lsn);
file_name | file_offset
--------------------------+-------------
00000001000000000000000D | 4039624
(1 row) РодÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÐµÐ¹ ÑÑнкÑÐ¸Ñ pg_walfile_name Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ ÑолÑко Ð¸Ð¼Ñ Ñайла жÑÑнала пÑедзапиÑи.
pg_split_walfile_name полезна Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ LSN на оÑнове ÑмеÑÐµÐ½Ð¸Ñ Ñайла и имени Ñайла WAL, напÑимеÑ:
postgres=# \set file_name '000000010000000100C000AB'
postgres=# \set offset 256
postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset AS lsn
FROM pg_split_walfile_name(:'file_name') pd,
pg_show_all_settings() ps
WHERE ps.name = 'wal_segment_size';
lsn
---------------
C001/AB000100
(1 row)9.28.4. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением #
ФÑнкÑии, показаннÑе в ТаблиÑе 9.98, пÑедоÑÑавлÑÑÑ ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ ÑекÑÑем ÑоÑÑоÑнии ведомого ÑеÑвеÑа. ÐÑи ÑÑнкÑии могÑÑ Ð²ÑполнÑÑÑÑÑ ÐºÐ°Ðº во вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ, Ñак и в обÑÑном Ñежиме ÑабоÑÑ.
ТаблиÑа 9.98. ФÑнкÑии Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о воÑÑÑановлении
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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. |
pg_get_wal_resource_managers () â setof record ( rm_id integer, rm_name text, rm_builtin boolean ) ÐÑдаÑÑ Ð·Ð°Ð³ÑÑженнÑе на даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑÑ ÑеÑÑÑÑов WAL в ÑиÑÑеме. СÑÐ¾Ð»Ð±ÐµÑ rm_builtin показÑваеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ даннÑй Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ ÑеÑÑÑÑов вÑÑÑоеннÑм или полÑзоваÑелÑÑким, Ñо еÑÑÑ ÑоздаваемÑм ÑаÑÑиÑением. |
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.99 ÑпÑавлÑÑÑ Ð¿ÑоÑеÑÑом воÑÑÑановлениÑ. ÐÑзÑваÑÑ Ð¸Ñ
в дÑÑгое вÑÐµÐ¼Ñ Ð½ÐµÐ»ÑзÑ.
ТаблиÑа 9.99. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_is_wal_replay_paused () â boolean ÐозвÑаÑÐ°ÐµÑ true, еÑли запÑоÑена пÑиоÑÑановка воÑÑÑановлениÑ. |
pg_get_wal_replay_pause_state () â text ÐозвÑаÑÐ°ÐµÑ ÑоÑÑоÑние пÑиоÑÑановки воÑÑÑановлениÑ. ÐозвÑаÑаемÑе знаÑениÑ: not paused â пÑиоÑÑановка не запÑаÑивалаÑÑ, pause requested â полÑÑен запÑÐ¾Ñ Ð½Ð° пÑиоÑÑановкÑ, но воÑÑÑановление еÑÑ Ð½Ðµ пÑиоÑÑановлено, и paused, еÑли воÑÑÑановление дейÑÑвиÑелÑно пÑиоÑÑановлено. |
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 ÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð¿ÑиоÑÑÐ°Ð½Ð¾Ð²ÐºÑ Ð²Ð¾ÑÑÑановлениÑ. ÐапÑÐ¾Ñ Ð¿ÑиоÑÑановки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñполнен не ÑÑазÑ. ÐÑли Ð²Ñ Ñ
оÑиÑе ÑбедиÑÑÑÑ, ÑÑо воÑÑÑановление дейÑÑвиÑелÑно пÑиоÑÑановлено, пÑовеÑÑÑе ÑоÑÑоÑние пÑиоÑÑановки воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии pg_get_wal_replay_pause_state(). ÐамеÑÑÑе, ÑÑо pg_get_wal_replay_paused показÑÐ²Ð°ÐµÑ ÑолÑко бÑл ли Ñделан запÑоÑ. Ðогда воÑÑÑановление пÑиоÑÑановлено, запиÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ð±Ð°Ð·Ñ Ð½Ðµ пÑоизводиÑÑÑ. Ð Ñежиме «гоÑÑÑего ÑезеÑва» вÑе поÑледÑÑÑие запÑоÑÑ Ð±ÑдÑÑ Ð²Ð¸Ð´ÐµÑÑ Ð¾Ð´Ð¸Ð½ ÑоглаÑованнÑй Ñнимок Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑо иÑклÑÑÐ°ÐµÑ ÐºÐ¾Ð½ÑликÑÑ Ð·Ð°Ð¿ÑоÑов до пÑÐ¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_wal_replay_resume () â void ÐозобновлÑÐµÑ Ð²Ð¾ÑÑÑановление, еÑли оно бÑло пÑиоÑÑановлено. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
ФÑнкÑии pg_wal_replay_pause и pg_wal_replay_resume нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð² пÑоÑеÑÑе повÑÑениÑ. ÐÑли повÑÑение запÑаÑиваеÑÑÑ, когда воÑÑÑановление пÑиоÑÑановлено, ÑеÑÐ²ÐµÑ Ð²ÑÑ
Ð¾Ð´Ð¸Ñ Ð¸Ð· ÑоÑÑоÑÐ½Ð¸Ñ Ð¿Ð°ÑÐ·Ñ Ð¸ пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¿ÑоÑедÑÑÑ Ð¿Ð¾Ð²ÑÑениÑ.
Ðогда поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑклÑÑена, паÑза пÑи воÑÑÑановлении Ð¼Ð¾Ð¶ÐµÑ Ð´Ð»Ð¸ÑÑÑÑ ÑÐºÐ¾Ð»Ñ Ñгодно долго без какиÑ
-либо пÑоблем. ÐÑли же поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ, новÑе запиÑи WAL пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°Ñ Ð¿Ð¾ÑÑÑпаÑÑ Ð¸ заполнÑÑ Ð²ÐµÑÑ Ð´Ð¸Ñк Ñано или поздно, в завиÑимоÑÑи Ð¾Ñ Ð´Ð»Ð¸ÑелÑноÑÑи паÑзÑ, инÑенÑивноÑÑи запиÑи в WAL и обÑÑма Ñвободного пÑоÑÑÑанÑÑва.
9.28.5. ФÑнкÑии ÑинÑ
ÑонизаÑии Ñнимков #
Postgres Pro позволÑÐµÑ ÑинÑ
ÑонизиÑоваÑÑ Ñнимки ÑоÑÑоÑÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÑеанÑами баз даннÑÑ
. Снимок ÑоÑÑоÑÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑ, какие даннÑе Ð²Ð¸Ð´Ð½Ñ ÑÑанзакÑии, ÑабоÑаÑÑей Ñ ÑÑим Ñнимком. СинÑ
ÑонизаÑÐ¸Ñ Ñнимков необÑ
одима, когда в двÑÑ
или более ÑеанÑаÑ
нÑжно видеÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же ÑодеÑжимое Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑли в двÑÑ
ÑеанÑаÑ
ÑÑанзакÑии запÑÑкаÑÑÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо, вÑегда еÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо Ð½ÐµÐºÐ°Ñ ÑÑеÑÑÑ ÑÑанзакÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°ÑикÑиÑована Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ START TRANSACTION Ð´Ð»Ñ Ð¿ÐµÑвÑÑ
двÑÑ
, и в ÑезÑлÑÑаÑе в одном ÑеанÑе бÑÐ´ÐµÑ Ð²Ð¸Ð´ÐµÐ½ ÑезÑлÑÑÐ°Ñ ÑÑеÑÑей, а в дÑÑгом â неÑ.
ÐÐ»Ñ ÑеÑÐµÐ½Ð¸Ñ ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Postgres Pro позволÑÐµÑ ÑÑанзакÑии ÑкÑпоÑÑиÑоваÑÑ Ñнимок ÑоÑÑоÑниÑ, Ñ ÐºÐ¾ÑоÑÑм она ÑабоÑаеÑ. Ðока ÑкÑпоÑÑиÑÑÑÑÐ°Ñ ÑÑÐ¾Ñ Ñнимок ÑÑанзакÑÐ¸Ñ Ð²ÑполнÑеÑÑÑ, дÑÑгие ÑÑанзакÑии могÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑоваÑÑ ÐµÐ³Ð¾ и, Ñаким обÑазом, ÑвидеÑÑ Ð°Ð±ÑолÑÑно Ñо же ÑоÑÑоÑние Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑо Ð²Ð¸Ð´Ð¸Ñ Ð¿ÐµÑÐ²Ð°Ñ ÑÑанзакÑиÑ. Ðо ÑÑÑиÑе, ÑÑо лÑбÑе изменениÑ, пÑоизведÑннÑе ÑÑими ÑÑанзакÑиÑми, бÑдÑÑ Ð½Ðµ Ð²Ð¸Ð´Ð½Ñ Ð´Ð»Ñ Ð´ÑÑгиÑ
, как ÑÑо и должно бÑÑÑ Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми в незаÑикÑиÑованнÑÑ
ÑÑанзакÑиÑÑ
. Таким обÑазом, ÑÑанзакÑии ÑинÑ
ÑонизиÑÑÑÑ ÑолÑко наÑалÑное ÑоÑÑоÑние даннÑÑ
, а поÑледÑÑÑие пÑоизводимÑе в ниÑ
Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¾Ð»Ð¸ÑÑÑÑÑÑ ÐºÐ°Ðº обÑÑно.
Снимки ÑоÑÑоÑÐ½Ð¸Ñ ÑкÑпоÑÑиÑÑÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии pg_export_snapshot, показанной в ТаблиÑе 9.100, и импоÑÑиÑÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ SET TRANSACTION.
ТаблиÑа 9.100. ФÑнкÑии ÑинÑ
ÑонизаÑии Ñнимков
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_export_snapshot () â text СоÑ
ÑанÑÐµÑ ÑекÑÑий Ñнимок ÑоÑÑоÑÐ½Ð¸Ñ ÑÑанзакÑии и возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ñипа text Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом ÑÑого Ñнимка. ÐÑа ÑÑÑока должна пеÑедаваÑÑÑÑ Ð²Ð½ÐµÑними ÑÑедÑÑвами клиенÑам, коÑоÑÑе бÑдÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑоваÑÑ ÑÑÐ¾Ñ Ñнимок. Снимок Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑован ÑолÑко пÑи ÑÑловии, ÑÑо ÑкÑпоÑÑиÑовавÑÐ°Ñ ÐµÐ³Ð¾ ÑÑанзакÑÐ¸Ñ ÐµÑÑ Ð½Ðµ завеÑÑена. ÐÑли необÑ
одимо, ÑÑанзакÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ ÑкÑпоÑÑиÑоваÑÑ Ð½ÐµÑколÑко Ñнимков. ÐамеÑÑÑе, ÑÑо ÑÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ÑолÑко Ð´Ð»Ñ ÑÑанзакÑий ÑÑÐ¾Ð²Ð½Ñ READ COMMITTED, Ñак как ÑÑанзакÑии ÑÑÐ¾Ð²Ð½Ñ Ð¸Ð·Ð¾Ð»ÑÑии REPEATABLE READ и вÑÑе ÑабоÑаÑÑ Ñ Ð¾Ð´Ð½Ð¸Ð¼ Ñнимком ÑоÑÑоÑÐ½Ð¸Ñ Ð½Ð° пÑоÑÑжении вÑего Ñвоего ÑÑÑеÑÑвованиÑ. ÐоÑле Ñого как ÑÑанзакÑÐ¸Ñ ÑкÑпоÑÑиÑовала Ñнимок, ÐµÑ Ð½ÐµÐ»ÑÐ·Ñ ÑделаÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñовленной Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ PREPARE TRANSACTION. |
pg_log_standby_snapshot () â pg_lsn СделаÑÑ Ñнимок вÑполнÑÑÑиÑ
ÑÑ ÑÑанзакÑий и запиÑаÑÑ ÐµÐ³Ð¾ в WAL, не дожидаÑÑÑ, пока пÑоÑеÑÑÑ bgwriter или checkpointer запиÑÑÑ ÐµÐ³Ð¾. ÐÑо полезно Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ÑезеÑвном ÑеÑвеÑе, поÑколÑÐºÑ Ñоздание логиÑеÑкого ÑлоÑа должно оÑкладÑваÑÑÑÑ Ð´Ð¾ ÑеÑ
поÑ, пока ÑÐ°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ð¾ÑпÑоизведена на ÑезеÑвном ÑеÑвеÑе. |
9.28.6. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией #
РТаблиÑе 9.101 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ
анизмом ÑепликаÑии и взаимодейÑÑÐ²Ð¸Ñ Ñ Ð½Ð¸Ð¼. ЧÑÐ¾Ð±Ñ Ð¸Ð·ÑÑиÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑ
анизм подÑобнее, обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 25.2.5, ÐодÑазделÑ 25.2.6 и Ðлаве 48. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑолÑко ÑÑпеÑполÑзоваÑели имеÑÑ ÑазÑеÑение вÑполнÑÑÑ ÑÑнкÑии Ñ Ð¸ÑÑоÑниками ÑепликаÑии, но его можно даÑÑ Ð¸ дÑÑгим, воÑполÑзовавÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ GRANT. ÐÑполÑзование даннÑÑ
ÑÑнкÑий Ð´Ð»Ñ ÑлоÑов ÑепликаÑии ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм и полÑзоваÑелÑм, имеÑÑим пÑаво REPLICATION.
Ðногие из ÑÑиÑ
ÑÑнкÑий ÑооÑвеÑÑÑвÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼ в пÑоÑоколе ÑепликаÑии; Ñм. Раздел 54.4.
ФÑнкÑии, опиÑаннÑе в ÐодÑазделе 9.28.3, ÐодÑазделе 9.28.4 и ÐодÑазделе 9.28.5, Ñакже имеÑÑ Ð¾ÑноÑение к ÑепликаÑии.
ТаблиÑа 9.101. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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 ÑезеÑвиÑÑеÑÑÑ Ð¿Ñи пеÑвом подклÑÑении клиенÑа поÑоковой ÑепликаÑии. ÐеÑедаÑа изменений из ÑизиÑеÑкого ÑлоÑа возможна ÑолÑко по пÑоÑÐ¾ÐºÐ¾Ð»Ñ Ð¿Ð¾Ñоковой ÑепликаÑии â Ñм. Раздел 54.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, twophase boolean, failover boolean] ) â record ( slot_name name, lsn pg_lsn ) СоздаÑÑ Ð½Ð¾Ð²Ñй логиÑеÑкий (декодиÑÑÑÑий) ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ slot_name, иÑполÑзÑÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода plugin. ÐеобÑзаÑелÑнÑй ÑÑеÑий паÑамеÑÑ, temporary, когда Ñавен true, ÑказÑваеÑ, ÑÑо ÑÑÐ¾Ñ ÑÐ»Ð¾Ñ Ð½Ðµ должен поÑÑоÑнно Ñ
ÑаниÑÑÑÑ Ð½Ð° диÑке, Ñак как пÑедназнаÑен ÑолÑко Ð´Ð»Ñ ÑекÑÑего ÑеанÑа. ÐÑеменнÑе ÑлоÑÑ Ñакже оÑвобождаÑÑÑÑ Ð¿Ñи лÑбой оÑибке. ÐеобÑзаÑелÑнÑй ÑеÑвÑÑÑÑй паÑамеÑÑ, twophase, когда Ñавен true, ÑказÑваеÑ, ÑÑо Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑлоÑа вклÑÑаеÑÑÑ Ð´ÐµÐºÐ¾Ð´Ð¸Ñование подгоÑовленнÑÑ
ÑÑанзакÑий. ÐеобÑзаÑелÑнÑй пÑÑÑй паÑамеÑÑ failover, когда Ñавен 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 ÑвлÑÑÑÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑми; еÑли они опÑÑенÑ, ÑоÑ
ÑанÑÑÑÑÑ ÑвойÑÑва иÑÑ
одного ÑлоÑа. ÐаÑамеÑÑ failover логиÑеÑкого ÑлоÑа иÑÑоÑника не копиÑÑеÑÑÑ, и по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ ÑÑÑанавливаеÑÑÑ Ð·Ð½Ð°Ñение false. ÐÑо позволÑÐµÑ ÑÑÑÑаниÑÑ ÑиÑк невозможноÑÑи пÑодолжиÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкÑÑ ÑепликаÑÐ¸Ñ Ð¿Ð¾Ñле аваÑийного пеÑеклÑÑÐµÐ½Ð¸Ñ Ð½Ð° ÑезеÑвнÑй ÑеÑвеÑ, Ñ ÐºÐ¾ÑоÑÑм ÑинÑ
ÑонизиÑÑеÑÑÑ ÑлоÑ. ÐопиÑование аннÑлиÑованного ÑлоÑа не допÑÑкаеÑÑÑ. |
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, декодиÑование оÑÑановиÑÑÑ, когда ÑиÑло ÑÑÑок, полÑÑеннÑÑ
пÑи декодиÑовании, пÑевÑÑÐ¸Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ знаÑение. ÐамеÑÑÑе однако, ÑÑо ÑакÑиÑеÑкое ÑиÑло возвÑаÑÑннÑÑ
ÑÑÑок Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе, Ñак как ÑÑо огÑаниÑение пÑовеÑÑеÑÑÑ ÑолÑко поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑÑок, декодиÑованнÑÑ
Ð´Ð»Ñ Ð¾ÑеÑедной ÑÑанзакÑии. ÐÑли ÑказаннÑй ÑÐ»Ð¾Ñ ÑвлÑеÑÑÑ ÑлоÑом Ð´Ð»Ñ Ð¾ÑÑабоÑки оÑказа логиÑеÑкой ÑепликаÑии, Ñо ÑÑнкÑÐ¸Ñ Ð½Ðµ вÑдаÑÑ ÑезÑлÑÑаÑ, пока вÑе ÑизиÑеÑкие ÑлоÑÑ, ÑказаннÑе в synchronized_standby_slots, не подÑвеÑдÑÑ Ð¿Ð¾Ð»ÑÑение WAL. |
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. Ð¡Ð»Ð¾Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¿ÐµÑемеÑÑиÑÑ Ð½Ð°Ð·Ð°Ð´, а Ñакже впеÑÑд за ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ. ÐозвÑаÑÐ°ÐµÑ Ð¸Ð¼Ñ ÑлоÑа и позиÑиÑ, до коÑоÑой он ÑакÑиÑеÑки пÑодвинÑлÑÑ. ÐнÑоÑмаÑÐ¸Ñ Ð¾Ð± изменивÑемÑÑ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¸ ÑлоÑа, еÑли он пÑодвинÑлÑÑ, ÑоÑ
ÑанÑеÑÑÑ ÑолÑко пÑи ближайÑей конÑÑолÑной ÑоÑке. ÐоÑÑÐ¾Ð¼Ñ Ð² ÑлÑÑае пÑеÑÑÐ²Ð°Ð½Ð¸Ñ ÑабоÑÑ ÑÐ»Ð¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð² пÑедÑдÑÑем положении. ÐÑли ÑказаннÑй ÑÐ»Ð¾Ñ ÑвлÑеÑÑÑ ÑлоÑом Ð´Ð»Ñ Ð¾ÑÑабоÑки оÑказа логиÑеÑкой ÑепликаÑии, Ñо ÑÑнкÑÐ¸Ñ Ð½Ðµ вÑдаÑÑ ÑезÑлÑÑаÑ, пока вÑе ÑизиÑеÑкие ÑлоÑÑ, ÑказаннÑе в synchronized_standby_slots, не подÑвеÑдÑÑ Ð¿Ð¾Ð»ÑÑение WAL. |
pg_replication_origin_create ( node_name text ) â oid СоздаÑÑ Ð¸ÑÑоÑник ÑепликаÑии Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм внеÑним именем и возвÑаÑÐ°ÐµÑ Ð½Ð°Ð·Ð½Ð°ÑеннÑй ÐµÐ¼Ñ Ð²Ð½ÑÑÑенний иденÑиÑикаÑоÑ. Ðлина имени не должна пÑевÑÑаÑÑ 512 байÑ. |
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 [, flush boolean DEFAULT false] ) â pg_lsn pg_logical_emit_message ( transactional boolean, prefix text, content bytea [, flush boolean DEFAULT false] ) â pg_lsn
ÐенеÑиÑÑÐµÑ ÑообÑение логиÑеÑкого декодиÑованиÑ. ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи ÑеÑез WAL пÑоизволÑнÑÑ
ÑообÑений модÑлÑм логиÑеÑкого декодиÑованиÑ. ÐаÑамеÑÑ transactional опÑеделÑеÑ, должно ли ÑообÑение оÑноÑиÑÑÑÑ Ðº ÑекÑÑей ÑÑанзакÑии или оно должно запиÑÑваÑÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ и декодиÑоваÑÑÑÑ ÑÑазÑ, как ÑолÑко ÑÑа запиÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑоÑиÑана пÑи логиÑеÑком декодиÑовании. ÐаÑамеÑÑ prefix задаÑÑ ÑекÑÑовÑй пÑеÑикÑ, по коÑоÑÐ¾Ð¼Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð»ÐµÐ³ÐºÐ¾ ÑаÑпознаÑÑ Ð¸Ð½ÑеÑеÑÑÑÑие именно его ÑообÑениÑ. РпаÑамеÑÑе content пеÑедаÑÑÑÑ ÑодеÑжимое ÑообÑениÑ, в ÑекÑÑовом или двоиÑном виде. ÐаÑамеÑÑ flush (по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение false) опÑеделÑеÑ, бÑдÑÑ Ð»Ð¸ ÑообÑÐµÐ½Ð¸Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ ÑоÑ
ÑанÑÑÑÑÑ Ð² WAL или неÑ. ÐаÑамеÑÑ flush не ÑабоÑÐ°ÐµÑ Ð²Ð¼ÐµÑÑе Ñ Ð¿Ð°ÑамеÑÑом transactional, поÑколÑÐºÑ Ð·Ð°Ð¿Ð¸ÑÑ WAL ÑообÑÐµÐ½Ð¸Ñ ÑоÑ
ÑанÑеÑÑÑ Ð²Ð¼ÐµÑÑе Ñ ÐµÐ³Ð¾ ÑÑанзакÑией. |
pg_sync_replication_slots () â void СинÑ
ÑонизиÑÑÐµÑ ÑлоÑÑ Ð´Ð»Ñ Ð¾ÑÑабоÑки оÑказа логиÑеÑкой ÑепликаÑии Ñ Ð²ÐµÐ´ÑÑего ÑеÑвеÑа на ÑезеÑвнÑй. ÐÑа ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑÑÑ ÑолÑко на ÑезеÑвном ÑеÑвеÑе. ÐÑеменнÑе ÑинÑ
ÑонизиÑованнÑе ÑлоÑÑ, еÑли ÑаковÑе имеÑÑÑÑ, не могÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¿Ð¾Ñле повÑÑениÑ. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 47.2.3. ÐбÑаÑиÑе внимание, ÑÑо ÑÑа ÑÑнкÑÐ¸Ñ Ð² пеÑвÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð¸ÑполÑзÑеÑÑÑ Ð² ÑелÑÑ
ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ оÑладки, а поÑÐ¾Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¸ÑполÑзована Ñ Ð¾ÑÑоÑожноÑÑÑÑ. ÐÑоме Ñого, она не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñполнена, еÑли вклÑÑÑн паÑамеÑÑ sync_replication_slots и ÑабоÑий пÑоÑеÑÑ slotsync Ñже запÑÑен Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑинÑ
ÑонизаÑии ÑлоÑов. ÐниманиеÐÑли поÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑнкÑии оÑклÑÑÑн паÑамеÑÑ hot_standby_feedback на ÑезеÑвном ÑеÑвеÑе или ÑдалÑн ÑизиÑеÑкий ÑлоÑ, наÑÑÑоеннÑй в primary_slot_name, необÑ
одимÑе ÑÑÑоки ÑинÑ
ÑонизиÑованного ÑлоÑа могÑÑ Ð±ÑÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¿ÑоÑеÑÑом VACUUM на ведÑÑем ÑеÑвеÑе, в ÑезÑлÑÑаÑе Ñего ÑинÑ
ÑонизиÑованнÑй ÑÐ»Ð¾Ñ Ð±ÑÐ´ÐµÑ Ð°Ð½Ð½ÑлиÑован. |
9.28.7. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑами баз даннÑÑ
#
ФÑнкÑии, показаннÑе в ТаблиÑе 9.102, вÑÑиÑлÑÑÑ Ð¾Ð±ÑÑм, коÑоÑÑй занимаÑÑ Ð½Ð° диÑке обÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, и помогаÑÑ Ð²Ð¾ÑпÑинÑÑÑ Ð¸ пÑоанализиÑоваÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± иÑполÑзÑемом обÑÑме. РезÑлÑÑаÑÑ Ñипа bignit пÑедÑÑавлÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² байÑаÑ
. ÐÑли им пеÑедаÑÑÑÑ OID, не ÑооÑвеÑÑÑвÑÑÑий ÑÑÑеÑÑвÑÑÑÐµÐ¼Ñ Ð¾Ð±ÑекÑÑ, ÑÑи ÑÑнкÑии возвÑаÑаÑÑ NULL.
ТаблиÑа 9.102. ФÑнкÑии полÑÑÐµÐ½Ð¸Ñ ÑазмеÑа обÑекÑов ÐÐ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_column_size ( "any" ) â integer ÐоказÑваеÑ, ÑколÑко Ð±Ð°Ð¹Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ñи Ñ
Ñанении оÑделÑное знаÑение. ÐÑли ÑÑа ÑÑнкÑÐ¸Ñ Ð¿ÑименÑеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно к знаÑÐµÐ½Ð¸Ñ Ð² ÑÑолбÑе ÑаблиÑÑ, в ÑезÑлÑÑаÑе оÑÑажаеÑÑÑ ÑÑÑÐµÐºÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð³Ð¾ ÑжаÑиÑ. |
pg_column_compression ( "any" ) â text ÐоказÑÐ²Ð°ÐµÑ Ð°Ð»Ð³Ð¾ÑиÑм ÑжаÑиÑ, коÑоÑÑй иÑполÑзовалÑÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¾ÑделÑного знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной длинÑ. ÐозвÑаÑÐ°ÐµÑ NULL, еÑли знаÑение не ÑжаÑо. |
pg_column_toast_chunk_id ( "any" ) â oid ÐоказÑÐ²Ð°ÐµÑ chunk_id знаÑÐµÐ½Ð¸Ñ Ð² ÑоÑмаÑе TOAST на диÑке. ÐозвÑаÑÐ°ÐµÑ NULL, еÑли знаÑение не в ÑоÑмаÑе TOAST или не Ñ
ÑаниÑÑÑ Ð½Ð° диÑке. Ðа более подÑобнÑм опиÑанием TOAST обÑаÑиÑеÑÑ Ðº РазделÑ 64.2. |
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 вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ°ÑÑÑ Ñвободного меÑÑа (Ñм. Раздел 64.3), ÑвÑзанной Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм оÑноÑением.
vm вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ°ÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи (Ñм. Раздел 64.4), ÑвÑзанной Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм оÑноÑением.
init вÑдаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÑÐ»Ð¾Ñ Ð¸Ð½Ð¸ÑиализаÑии Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ оÑноÑениÑ, еÑли он имееÑÑÑ.
|
pg_size_bytes ( text ) â bigint ÐÑеобÑазÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² понÑÑном ÑÐµÐ»Ð¾Ð²ÐµÐºÑ ÑоÑмаÑе (коÑоÑÑй вÑдаÑÑ pg_size_pretty) в ÑиÑло байÑ. ÐозможнÑе единиÑÑ: bytes, B, kB, MB, GB, TB и PB. |
pg_size_pretty ( bigint ) â text pg_size_pretty ( numeric ) â text
ÐÑеобÑазÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² байÑаÑ
в более понÑÑнÑй ÑÐµÐ»Ð¾Ð²ÐµÐºÑ ÑоÑÐ¼Ð°Ñ Ñ ÐµÐ´Ð¸Ð½Ð¸Ñами измеÑÐµÐ½Ð¸Ñ ÑазмеÑа (bytes, kB, MB, GB, TB или PB, в завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÑениÑ). ÐамеÑÑÑе, ÑÑо ÑÑи единиÑÑ Ð¾Ð¿ÑеделÑÑÑÑÑ ÐºÐ°Ðº ÑÑепени 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 Ð¼Ð¾Ð¶ÐµÑ ÑделаÑÑ ÑÑо за ваÑ. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 8.19.
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.103, помогаÑÑ Ð¾Ð¿ÑеделиÑÑ, в какиÑ
ÑайлаÑ
на диÑке Ñ
ÑанÑÑÑÑ Ð¾Ð±ÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
.
ТаблиÑа 9.103. ФÑнкÑии опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_relation_filenode ( relation regclass ) â oid ÐÑдаÑÑ Ð½Ð¾Ð¼ÐµÑ Â«Ñайлового Ñзла», ÑвÑзанного Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм обÑекÑом. ФайловÑм Ñзлом назÑваеÑÑÑ Ð¾Ñновной ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñайла, иÑполÑзÑемого Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
(подÑобнее ÑÑо опиÑано в Разделе 64.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.104 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñавилами ÑоÑÑиÑовки.
ТаблиÑа 9.104. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñавилами ÑоÑÑиÑовки
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_collation_actual_version ( oid ) â text ÐозвÑаÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвÑÑÑÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¾Ð±ÑекÑа пÑавила ÑоÑÑиÑовки, коÑоÑÐ°Ñ Ð² наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑÑановлена в опеÑаÑионной ÑиÑÑеме. ÐÑли она оÑлиÑаеÑÑÑ Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² pg_collation.collversion, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿ÐµÑеÑÑÑоиÑÑ Ð¾Ð±ÑекÑÑ, завиÑÑÑие Ð¾Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пÑавила ÑоÑÑиÑовки. См. Ñакже ALTER COLLATION. |
pg_database_collation_actual_version ( oid ) â text ÐозвÑаÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвÑÑÑÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¿Ñавила ÑоÑÑиÑовки ÐÐ, ÑÑÑановленнÑÑ Ð½Ð° даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð² опеÑаÑионной ÑиÑÑеме. ÐÑли она оÑлиÑаеÑÑÑ Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² pg_database.datcollversion, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿ÐµÑеÑÑÑоиÑÑ Ð¾Ð±ÑекÑÑ, завиÑÑÑие Ð¾Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пÑавила ÑоÑÑиÑовки. См. Ñакже ALTER DATABASE. |
pg_import_system_collations ( schema regnamespace ) â integer ÐобавлÑÐµÑ Ð¿Ñавила ÑоÑÑиÑовки в ÑиÑÑемнÑй каÑалог pg_collation, анализиÑÑÑ Ð²Ñе локали, коÑоÑÑе она наÑ
Ð¾Ð´Ð¸Ñ Ð² опеÑаÑионной ÑиÑÑеме. ÐÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¸ÑполÑзÑÐµÑ initdb; за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 22.2.2. ÐÑли позднее в ÑиÑÑÐµÐ¼Ñ ÑÑÑанавливаÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе локали, ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ запÑÑÑиÑÑ Ñнова, ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð»Ð¸ÑÑ Ð¿Ñавила ÑоÑÑиÑовки Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ
локалей. Ðокали, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
обнаÑÑживаÑÑÑÑ ÑÑÑеÑÑвÑÑÑие запиÑи в pg_collation, бÑдÑÑ Ð¿ÑопÑÑенÑ. (ÐбÑекÑÑ Ð¿Ñавил ÑоÑÑиÑовки Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÐµÐ¹, коÑоÑÑе пеÑеÑÑаÑÑ ÑÑÑеÑÑвоваÑÑ Ð² опеÑаÑионной ÑиÑÑеме, никогда не ÑдалÑÑÑÑÑ ÑÑой ÑÑнкÑией.) РпаÑамеÑÑе schema обÑÑно пеÑедаÑÑÑÑ pg_catalog, но ÑÑо не обÑзаÑелÑно; пÑавила ÑоÑÑиÑовки могÑÑ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð¸ в дÑÑгÑÑ ÑÑ
емÑ. ÐÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑиÑло ÑозданнÑÑ
ей обÑекÑов пÑавил ÑоÑÑиÑовки; вÑзÑваÑÑ ÐµÑ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм. |
РТаблиÑе 9.105 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑаÑиÑÑикой. ÐÑ
нелÑÐ·Ñ Ð²ÑзÑваÑÑ Ð² пÑоÑеÑÑе воÑÑÑановлениÑ.
ÐÑедÑпÑеждение
ÐзменениÑ, внеÑÑннÑе ÑÑими ÑÑнкÑиÑми ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑаÑиÑÑикой, веÑоÑÑно, могÑÑ Ð±ÑÑÑ Ð¿ÐµÑезапиÑÐ°Ð½Ñ Ð¿ÑоÑеÑÑом авÑооÑиÑÑки (или вÑÑÑнÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ VACUUM или ANALYZE) и Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº вÑеменнÑе.
ТаблиÑа 9.105. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑаÑиÑÑикой по обÑекÑам баз даннÑÑ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_restore_relation_stats ( VARIADIC kwargs "any" ) â boolean ÐбновлÑÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð½Ð° ÑÑовне ÑаблиÑ. Ðак пÑавило, ÑÑа ÑÑаÑиÑÑика ÑобиÑаеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки или обновлÑеÑÑÑ Ð² ÑамкаÑ
VACUUM или ANALYZE, поÑÑÐ¾Ð¼Ñ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи вÑзÑваÑÑ ÑÑÑ ÑÑнкÑÐ¸Ñ Ð½ÐµÑ. Ðднако Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ вÑзваÑÑ ÐµÑ Ð¿Ð¾Ñле воÑÑÑановлениÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸ÑÑ Ð¾Ð¿ÑимизаÑоÑÑ Ð²ÑбÑаÑÑ Ð±Ð¾Ð»ÐµÐµ опÑималÑнÑе планÑ, еÑли команда ANALYZE еÑÑ Ð½Ðµ вÑполнÑлаÑÑ. ÐÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ ÑÑаÑиÑÑика Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ð²ÐµÑÑии, поÑÑÐ¾Ð¼Ñ Ð°ÑгÑменÑÑ Ð¿ÐµÑедаÑÑÑÑ ÐºÐ°Ðº комбинаÑÐ¸Ñ argname и argvalue в ÑледÑÑÑем ÑоÑмаÑе: SELECT pg_restore_relation_stats(
'arg1name', 'arg1value'::arg1type,
'arg2name', 'arg2value'::arg2type,
'arg3name', 'arg3value'::arg3type);ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´Ð°ÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ relpages и reltuples Ð´Ð»Ñ ÑаблиÑÑ mytable: SELECT pg_restore_relation_stats(
'schemaname', 'myschema',
'relname', 'mytable',
'relpages', 173::integer,
'reltuples', 10000::real);ÐбÑзаÑелÑнÑе аÑгÑменÑÑ schemaname и relname опÑеделÑÑÑ ÑаблиÑÑ. РдÑÑгиÑ
аÑгÑменÑаÑ
можно ÑказаÑÑ Ð¸Ð¼ÐµÐ½Ð° и знаÑÐµÐ½Ð¸Ñ ÑÑаÑиÑÑик, ÑооÑвеÑÑÑвÑÑÑиÑ
pg_class. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ ÑÑаÑиÑÑики оÑноÑений relpages Ñ Ñипом знаÑений integer, reltuples Ñ Ñипом знаÑений real, relallvisible Ñ Ñипом знаÑений integer, а Ñакже relallfrozen Ñ Ñипом знаÑений integer. ÐÑа ÑÑнкÑÐ¸Ñ Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ version и Ñипом integer, задаÑÑий веÑÑÐ¸Ñ ÑеÑвеÑа, Ñ ÐºÐ¾ÑоÑого ÑобÑана ÑÑаÑиÑÑика. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ пÑи пеÑеноÑе ÑÑаÑиÑÑики Ñ Ð¿ÑедÑдÑÑиÑ
веÑÑий Postgres Pro. ÐезнаÑиÑелÑнÑе оÑибки ÑообÑаÑÑÑÑ ÐºÐ°Ðº WARNING и игноÑиÑÑÑÑÑÑ, а оÑÑавÑаÑÑÑ ÑÑаÑиÑÑика вÑÑ Ñавно воÑÑÑанавливаеÑÑÑ. ÐÑли вÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика воÑÑÑановлена ÑÑпеÑно, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true, в оÑÑалÑнÑÑ
ÑлÑÑаÑÑ
â false. ÐÑзÑваÑÑий ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñаво MAINTAIN Ð´Ð»Ñ ÑаблиÑÑ Ð¸Ð»Ð¸ бÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. |
pg_clear_relation_stats ( schemaname text, relname text ) â void ÐÑиÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð½Ð° ÑÑовне ÑÐ°Ð±Ð»Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ оÑноÑениÑ, как еÑли Ð±Ñ ÑаблиÑа бÑла ÑолÑко ÑÑо Ñоздана. ÐÑзÑваÑÑий ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñаво MAINTAIN Ð´Ð»Ñ ÑаблиÑÑ Ð¸Ð»Ð¸ бÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. |
pg_restore_attribute_stats ( VARIADIC kwargs "any" ) â boolean СоздаÑÑ Ð¸Ð»Ð¸ обновлÑÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð½Ð° ÑÑовне ÑÑолбÑов. Ðак пÑавило, ÑÑа ÑÑаÑиÑÑика ÑобиÑаеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки или обновлÑеÑÑÑ Ð² ÑамкаÑ
VACUUM или ANALYZE, поÑÑÐ¾Ð¼Ñ ÑÑÑ ÑÑнкÑÐ¸Ñ Ð²ÑзÑваÑÑ Ð½Ðµ нÑжно. Ðднако она Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° поÑле воÑÑÑановлениÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸ÑÑ Ð¾Ð¿ÑимизаÑоÑÑ Ð²ÑбÑаÑÑ Ð±Ð¾Ð»ÐµÐµ опÑималÑнÑе планÑ, еÑли ANALYZE еÑÑ Ð½Ðµ бÑла вÑполнена. ÐÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ ÑÑаÑиÑÑика Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ð²ÐµÑÑии, поÑÑÐ¾Ð¼Ñ Ð°ÑгÑменÑÑ Ð¿ÐµÑедаÑÑÑÑ ÐºÐ°Ðº комбинаÑÐ¸Ñ argname и argvalue в ÑледÑÑÑем ÑоÑмаÑе: SELECT pg_restore_attribute_stats(
'arg1name', 'arg1value'::arg1type,
'arg2name', 'arg2value'::arg2type,
'arg3name', 'arg3value'::arg3type);ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´Ð°ÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ avg_width и null_frac Ð´Ð»Ñ Ð°ÑÑибÑÑа col1 ÑаблиÑÑ mytable: SELECT pg_restore_attribute_stats(
'schemaname', 'myschema',
'relname', 'mytable',
'attname', 'col1',
'inherited', false,
'avg_width', 125::integer,
'null_frac', 0.5::real);ÐбÑзаÑелÑнÑе аÑгÑменÑÑ schemaname и relname Ñ Ñипом знаÑений text ÑказÑваÑÑ ÑаблиÑÑ. ÐбÑзаÑелÑно ÑказаÑÑ ÑÑÐ¾Ð»Ð±ÐµÑ Ð»Ð¸Ð±Ð¾ в аÑгÑменÑе attname Ñ Ñипом знаÑений text, либо в attnum Ñ Ñипом знаÑений smallint. ÐбÑзаÑелÑнÑй аÑгÑÐ¼ÐµÐ½Ñ inherited ÑказÑваеÑ, вклÑÑÐ°ÐµÑ Ð»Ð¸ в ÑÐµÐ±Ñ ÑÑаÑиÑÑика знаÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑеÑниÑ
ÑаблиÑ. РдÑÑгиÑ
аÑгÑменÑаÑ
можно ÑказаÑÑ Ð¸Ð¼ÐµÐ½Ð° и знаÑÐµÐ½Ð¸Ñ ÑÑаÑиÑÑик, ÑооÑвеÑÑÑвÑÑÑие ÑÑолбÑам pg_stats. ÐÑа ÑÑнкÑÐ¸Ñ Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ version и Ñипом integer, задаÑÑий веÑÑÐ¸Ñ ÑеÑвеÑа, Ñ ÐºÐ¾ÑоÑого ÑобÑана ÑÑаÑиÑÑика. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ пÑи пеÑеноÑе ÑÑаÑиÑÑики Ñ Ð¿ÑедÑдÑÑиÑ
веÑÑий Postgres Pro. ÐезнаÑиÑелÑнÑе оÑибки ÑообÑаÑÑÑÑ ÐºÐ°Ðº WARNING и игноÑиÑÑÑÑÑÑ, а оÑÑавÑаÑÑÑ ÑÑаÑиÑÑика вÑÑ Ñавно воÑÑÑанавливаеÑÑÑ. ÐÑли вÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика воÑÑÑановлена ÑÑпеÑно, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true, в оÑÑалÑнÑÑ
ÑлÑÑаÑÑ
â false. ÐÑзÑваÑÑий ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñаво MAINTAIN Ð´Ð»Ñ ÑаблиÑÑ Ð¸Ð»Ð¸ бÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. |
pg_clear_attribute_stats ( schemaname text, relname text, attname text, inherited boolean ) â void ÐÑиÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð½Ð° ÑÑовне ÑÑолбÑов Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ оÑноÑÐµÐ½Ð¸Ñ Ð¸ аÑÑибÑÑа, как еÑли Ð±Ñ ÑаблиÑа бÑла ÑолÑко ÑÑо Ñоздана. ÐÑзÑваÑÑий ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñаво MAINTAIN Ð´Ð»Ñ ÑаблиÑÑ Ð¸Ð»Ð¸ бÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. |
РТаблиÑе 9.106 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедоÑÑавлÑÑÑие инÑоÑмаÑÐ¸Ñ Ð¾ ÑÑÑÑкÑÑÑе ÑекÑиониÑованнÑÑ
ÑаблиÑ.
ТаблиÑа 9.106. ФÑнкÑии полÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о ÑекÑиониÑовании
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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.28.8. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов #
РТаблиÑе 9.107 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ Ð¾Ð±ÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов. (ÐамеÑÑÑе, ÑÑо задаÑи обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÑно вÑполнÑÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки в Ñ
оде авÑооÑиÑÑки; полÑзоваÑÑÑÑ Ð´Ð°Ð½Ð½Ñми ÑÑнкÑиÑми ÑÑебÑеÑÑÑ ÑолÑко в оÑобÑÑ
ÑлÑÑаÑÑ
.) ÐÑполнÑÑÑ ÑÑи ÑÑнкÑии во вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ»ÑзÑ. ÐÑполÑзоваÑÑ Ð¸Ñ
ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм и владелÑÑÑ Ð¾Ð¿ÑеделÑнного индекÑа.
ТаблиÑа 9.107. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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.4.1 и ÐодÑазделе 63.4.5. |
9.28.9. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.108, пÑедоÑÑавлÑÑÑ Ð¿ÑÑмой доÑÑÑп к Ñайлам, наÑ
одÑÑимÑÑ Ð½Ð° ÑеÑвеÑе. ÐбÑÑнÑм полÑзоваÑелÑм, не вклÑÑÑннÑм в ÑÐ¾Ð»Ñ pg_read_server_files, они позволÑÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ ÑолÑко к Ñайлам в каÑалоге клаÑÑеÑа баз даннÑÑ
и в каÑалоге log_directory. ÐÐ»Ñ Ñайлов в каÑалоге клаÑÑеÑа ÑÑим ÑÑнкÑиÑм пеÑедаÑÑÑÑ Ð¾ÑноÑиÑелÑнÑй пÑÑÑ, а Ð´Ð»Ñ Ñайлов жÑÑнала â пÑÑÑ, ÑооÑвеÑÑÑвÑÑÑий знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа log_directory.
ÐамеÑÑÑе, ÑÑо полÑзоваÑели, обладаÑÑие пÑавом EXECUTE Ð´Ð»Ñ pg_read_file() или ÑвÑзаннÑÑ
ÑÑнкÑий, имеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑиÑаÑÑ Ð»Ñбой Ñайл на ÑеÑвеÑе, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑиÑаÑÑ ÑеÑвеÑнÑй пÑоÑеÑÑ; на ÑÑи ÑÑнкÑии не дейÑÑвÑÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ огÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа внÑÑÑи Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. Ð ÑаÑÑноÑÑи ÑÑо ознаÑаеÑ, ÑÑо полÑзоваÑÐµÐ»Ñ Ñ Ñакими пÑавами Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑиÑаÑÑ ÑодеÑжимое ÑаблиÑÑ pg_authid, в коÑоÑой Ñ
ÑанÑÑÑÑ Ð´Ð°Ð½Ð½Ñе аÑÑенÑиÑикаÑии, Ñавно как и лÑбой дÑÑгой Ñайл в базе даннÑÑ
. Таким обÑазом, ÑазÑеÑаÑÑ Ð´Ð¾ÑÑÑп к ÑÑим ÑÑнкÑиÑм ÑледÑÐµÑ Ñ Ð±Ð¾Ð»ÑÑой оÑÑоÑожноÑÑÑÑ.
ÐÑи пÑедоÑÑавлении пÑав Ð´Ð»Ñ ÑÑиÑ
ÑÑнкÑий обÑаÑиÑе внимание, ÑÑо запиÑи ÑаблиÑÑ, показÑваÑÑие необÑзаÑелÑнÑе паÑамеÑÑÑ, в болÑÑинÑÑве ÑлÑÑаев ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ ÐºÐ°Ðº неÑколÑко ÑизиÑеÑкиÑ
ÑÑнкÑий Ñ ÑазнÑми ÑпиÑками паÑамеÑÑов. ÐÑава Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð¾ÑделÑно Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñакой ÑÑнкÑии, еÑли она бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ. Ðоманда psql \df Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° Ð´Ð»Ñ Ð¿ÑовеÑки ÑакÑиÑеÑкиÑ
ÑигнаÑÑÑ ÑÑнкÑий.
ÐекоÑоÑÑе из ÑÑиÑ
ÑÑнкÑий пÑинимаÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑй паÑамеÑÑ missing_ok, коÑоÑÑй опÑеделÑÐµÑ Ð¸Ñ
поведение в ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ñайла или каÑалога. ÐÑли он Ñавен true, ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ NULL или пÑÑÑой Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑли же он Ñавен false, в Ñказанном ÑлÑÑае вÑдаÑÑÑÑ Ð¾Ñибка. (УÑÐ»Ð¾Ð²Ð¸Ñ ÑбоÑ, кÑоме «file not found» (Ñайл не найден), в лÑбом ÑлÑÑае ÑÑиÑаÑÑÑÑ Ð¾Ñибками.) ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â false.
ТаблиÑа 9.108. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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_logicalmapdir () â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге ÑеÑвеÑа pg_logical/mappings. Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_logicalsnapdir () â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге ÑеÑвеÑа pg_logical/snapshots. Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_replslotdir ( slot_name text ) â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге ÑеÑвеÑа pg_replslot/slot_name, где slot_name â Ð¸Ð¼Ñ ÑлоÑа ÑепликаÑии, пеÑеданное ÑÑнкÑии. Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ pg_monitor, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
pg_ls_summariesdir () â setof record ( name text, size bigint, modification timestamp with time zone ) ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼Ñ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (mtime) вÑеÑ
обÑÑнÑÑ
Ñайлов в каÑалоге Ñводок WAL ÑеÑвеÑа (pg_wal/summaries). Ð¤Ð°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ ÑоÑки, каÑалоги и дÑÑгие ÑпеÑиалÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸ÑклÑÑаÑÑÑÑ Ð¸Ð· ÑаÑÑмоÑÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели и ÑÐ»ÐµÐ½Ñ Ð³ÑÑÐ¿Ð¿Ñ 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.28.10. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.109, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками. ÐодÑобнее об иÑ
иÑполÑзовании можно ÑзнаÑÑ Ð² ÐодÑазделе 13.3.5.
ÐÑе ÑÑи ÑÑнкÑии пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð¿ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовками ÑеÑÑÑÑов, опÑеделÑемÑÑ
пÑиложением и задаваемÑÑ
одним 64-биÑнÑм или двÑÐ¼Ñ 32-биÑнÑми клÑÑами (замеÑÑÑе, ÑÑо пÑоÑÑÑанÑÑва ÑÑиÑ
клÑÑей не пеÑеÑекаÑÑÑÑ). ÐÑли конÑликÑÑÑÑÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ñ Ñем же иденÑиÑикаÑоÑом Ñже ÑдеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´ÑÑгой ÑеанÑ, ÑÑи ÑÑнкÑии либо дожидаÑÑÑÑ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÑеÑÑÑÑа, либо вÑдаÑÑ Ð² ÑезÑлÑÑаÑе false, в завиÑимоÑÑи Ð¾Ñ Ð²Ð¸Ð´Ð° ÑÑнкÑии. ÐлокиÑовки могÑÑ Ð±ÑÑÑ ÐºÐ°Ðº иÑклÑÑиÑелÑнÑми, Ñак и ÑазделÑемÑми â ÑазделÑÐµÐ¼Ð°Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовка не конÑликÑÑÐµÑ Ñ Ð´ÑÑгими ÑазделÑемÑми блокиÑовками Ñого же ÑеÑÑÑÑа, но конÑликÑÑÐµÑ Ñ Ð¸ÑклÑÑиÑелÑнÑми. ÐлокиÑовки могÑÑ ÑÑÑанавливаÑÑÑÑ Ð½Ð° ÑеанÑовом ÑÑовне (Ñогда они ÑдеÑживаÑÑÑÑ Ð´Ð¾ моменÑа оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ до завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа) и на ÑÑанзакÑионном (Ñогда они ÑдеÑживаÑÑÑÑ Ð´Ð¾ конÑа ÑекÑÑей ÑÑанзакÑии, оÑвободиÑÑ Ð¸Ñ
вÑÑÑнÑÑ Ð½ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи). Ðогда поÑÑÑÐ¿Ð°ÐµÑ Ð½ÐµÑколÑко запÑоÑов на блокиÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, они накапливаÑÑÑÑ, Ñак ÑÑо еÑли один иденÑиÑикаÑÐ¾Ñ ÑеÑÑÑÑа бÑл заблокиÑован ÑÑи Ñаза, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿Ð¾ÑÑÑпиÑÑ ÑÑи запÑоÑа на оÑвобождение блокиÑовки, ÑÑÐ¾Ð±Ñ ÑеÑÑÑÑ Ð±Ñл ÑазблокиÑован до завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа.
ТаблиÑа 9.109. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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.28.11. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий #
РжÑÑнале опеÑаÑий Ñ
ÑаниÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ кÑиÑиÑеÑки важнÑÑ
ÑиÑÑемнÑÑ
ÑобÑÑиÑÑ
, ÑакиÑ
как обновление, вÑполнение pg_resetwal и Ñ. п. ÐÑа инÑоÑмаÑÐ¸Ñ Ð½Ðµ пÑедÑÑавлÑÐµÑ Ð¾Ñобого инÑеÑеÑа Ð´Ð»Ñ Ð¾Ð±ÑÑного полÑзоваÑелÑ, но важна Ð´Ð»Ñ Ð¾ÑÑÑеÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑеÑ
ниÑеÑкой поддеÑжки Ñо ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾ÑÑавÑика. ÐапиÑÑ Ð² жÑÑнал опеÑаÑий пÑоизводиÑÑÑ ÑолÑко на ÑиÑÑемном ÑÑовне (без какиÑ
-либо дейÑÑвий Ñо ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ), а Ð´Ð»Ñ ÐµÐ³Ð¾ ÑÑÐµÐ½Ð¸Ñ Ð¸ÑполÑзÑÑÑÑÑ ÑÑнкÑии SQL. ФÑнкÑиÑ, Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² ТаблиÑа 9.110, ÑиÑÐ°ÐµÑ Ð¶ÑÑнал опеÑаÑий.
ТаблиÑа 9.110. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
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.28.12. ÐÑладоÑнÑе ÑÑнкÑии #
ФÑнкÑиÑ, Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² ТаблиÑе 9.111, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° Ð´Ð»Ñ Ð½Ð¸Ð·ÐºÐ¾ÑÑовневÑÑ
опеÑаÑий, напÑÐ¸Ð¼ÐµÑ Ð² ÑелÑÑ
оÑладки или иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑпоÑÑеннÑÑ
баз даннÑÑ
Postgres Pro.
ТаблиÑа 9.111. ФÑнкÑии ÑинÑ
ÑонизаÑии Ñнимков
| ÐÐ¼Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание |
|---|
pg_snapshot_any() | void | ÐÑклÑÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвие пÑавил MVCC в ÑамкаÑ
ÑекÑÑей ÑÑанзакÑии, ÑÑо позволÑÐµÑ Ð²Ð¸Ð´ÐµÑÑ Ð² ней вÑе веÑÑии даннÑÑ
. |
ÐÑименÑйÑе pg_snapshot_any кÑайне оÑÑоÑожно. ÐÑполнÑÑÑ ÐµÑ ÑледÑÐµÑ Ð² ÑÑанзакÑии Ñ ÑÑовнем изолÑÑии REPEATABLE READ или вÑÑе, в пÑоÑивном ÑлÑÑае ÑледÑÑÑий же запÑÐ¾Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ Ð²ÑбÑаннÑй Ñнимок новÑм. ÐÑполнÑÑÑ ÐµÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ÐÑимеÑание
ÐÑли Ð²Ð°Ñ ÐºÐ»Ð°ÑÑÐµÑ ÐÐ ÑоздавалÑÑ ÑеÑвеÑом веÑÑии, в коÑоÑой ÑÑой ÑÑнкÑии еÑÑ Ð½Ðµ бÑло, опÑеделиÑе ÐµÑ ÑледÑÑÑей командой:
CREATE FUNCTION pg_snapshot_any() RETURNS void AS 'pg_snapshot_any' LANGUAGE internal;
9.28.13. ФÑнкÑии Ð´Ð»Ñ ÑÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð»Ð°Ð´Ð¾Ðº #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.112, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¸ диагноÑÑики пÑоблем. ÐодÑобнее об иÑ
иÑполÑзовании можно ÑзнаÑÑ Ð² Ðлаве 31.
ТаблиÑа 9.112. ФÑнкÑии Ð´Ð»Ñ ÑÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð»Ð°Ð´Ð¾Ðº
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
pg_diagdump ( pid integer ) â integer ÐÑгÑÑÐ¶Ð°ÐµÑ ÑоÑÑоÑние ÑеÑвеÑного пÑоÑеÑÑа Ñ ÑказаннÑм иденÑиÑикаÑоÑом. ÐÑа ÑÑнкÑÐ¸Ñ Ð¾Ð±ÑÑно иÑполÑзÑеÑÑÑ Ð¿Ñи ÑÑÑÑанении неполадок, когда пÑоÑеÑÑ Ð½Ðµ оÑвеÑÐ°ÐµÑ Ð¸Ð»Ð¸ наÑ
одиÑÑÑ Ð² беÑконеÑном Ñикле. ÐÑзÑваÑÑ ÑÑÑ ÑÑнкÑÐ¸Ñ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм. |