9.27. ФÑнкÑии Ð´Ð»Ñ ÑиÑÑемного админиÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ #
- 9.27.1. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией
- 9.27.2. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ
- 9.27.3. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием
- 9.27.4. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением
- 9.27.5. ФÑнкÑии ÑÐ¸Ð½Ñ ÑонизаÑии Ñнимков
- 9.27.6. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией
- 9.27.7. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑами баз даннÑÑ
- 9.27.8. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
- 9.27.9. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами
- 9.27.10. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками
- 9.27.11. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий
- 9.27.12. ÐÑладоÑнÑе ÑÑнкÑии
- 9.27.2. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ
ФÑнкÑии, опиÑаннÑе в ÑÑом Ñазделе, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð¸ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑвеÑом Postgres Pro.
9.27.1. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией #
РТаблиÑе 9.90 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, позволÑÑÑие полÑÑиÑÑ Ð¸ измениÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии вÑполнениÑ.
ТаблиÑа 9.90. ФÑнкÑии Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑией
ФÑнкÑÐ¸Ñ ÐпиÑание ÐÑимеÑ(Ñ) |
|---|
ÐÑдаÑÑ ÑекÑÑее знаÑение паÑамеÑÑа
|
УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа
|
9.27.2. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.91, позволÑÑÑ Ð¿ÐµÑедаваÑÑ ÑпÑавлÑÑÑие ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð´ÑÑгим ÑеÑвеÑнÑм пÑоÑеÑÑам. ÐÑзÑваÑÑ ÑÑи ÑÑнкÑии по ÑмолÑÐ°Ð½Ð¸Ñ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм, но доÑÑÑп к ним можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм командой GRANT, кÑоме Ñвно оÑмеÑеннÑÑ
иÑклÑÑений.
ÐÑе ÑÑи ÑÑнкÑии возвÑаÑаÑÑ true, еÑли Ñигнал ÑÑпеÑно оÑпÑавлен, и false, еÑли оÑпÑавиÑÑ Ñигнал не ÑдалоÑÑ.
ТаблиÑа 9.91. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑедаÑи Ñигналов ÑеÑвеÑÑ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐÑменÑÐµÑ ÑекÑÑий запÑÐ¾Ñ Ð² ÑеанÑе, коÑоÑÑй обÑлÑживаеÑÑÑ Ð¿ÑоÑеÑÑом Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм PID. ÐÑо дейÑÑвие ÑазÑеÑаеÑÑÑ Ð¸ ÑолÑм, ÑвлÑÑÑимÑÑ Ñленами Ñоли, запÑÐ¾Ñ ÐºÐ¾ÑоÑой оÑменÑеÑÑÑ, и ÑолÑм Ñ Ð¿Ñавами Ñоли |
ÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð²Ñвод в жÑÑнал инÑоÑмаÑии о конÑекÑÑаÑ
памÑÑи обÑлÑживаÑÑего пÑоÑеÑÑа Ñ ÑказаннÑм PID. ÐÑа ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑпÑавлÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¾Ð±ÑлÑживаÑÑим и вÑпомогаÑелÑнÑм пÑоÑеÑÑам, кÑоме пÑоÑеÑÑа пÑоÑоколиÑованиÑ. ÐапÑоÑÐµÐ½Ð½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ñведена в ÑообÑениÑÑ
ÑÑÐ¾Ð²Ð½Ñ |
ÐаÑÑ Ð²Ñем пÑоÑеÑÑам ÑеÑвеÑа Postgres Pro ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÐµÑезагÑÑзиÑÑ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии. (ÐÐ»Ñ ÑÑого поÑÑлаеÑÑÑ Ñигнал SIGHUP Ð³Ð»Ð°Ð²Ð½Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ, коÑоÑÑй, в Ñвой оÑеÑедÑ, поÑÑÐ»Ð°ÐµÑ SIGHUP вÑем Ñвоим доÑеÑним пÑоÑеÑÑам.) ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑоÑиÑаÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ |
УказÑÐ²Ð°ÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑÑ Ð¶ÑÑнала ÑообÑений немедленно пеÑеклÑÑиÑÑÑÑ Ð½Ð° новÑй Ñайл. ÐÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл, ÑолÑко когда ÑабоÑÐ°ÐµÑ Ð²ÑÑÑоеннÑй ÑбоÑÑик ÑообÑений, Ñак как без него подпÑоÑеÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа жÑÑнала не запÑÑкаеÑÑÑ. |
ÐавеÑÑÐ°ÐµÑ ÑеанÑ, коÑоÑÑй обÑлÑживаеÑÑÑ Ð¿ÑоÑеÑÑом Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм PID. ÐÑо дейÑÑвие ÑазÑеÑаеÑÑÑ Ð¸ ÑолÑм, ÑвлÑÑÑимÑÑ Ñленами Ñоли, пÑоÑеÑÑ ÐºÐ¾ÑоÑой пÑеÑÑваеÑÑÑ, и ÑолÑм Ñ Ð¿Ñавами Ñоли ÐÑли паÑамеÑÑ |
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: 0; TopMemoryContext: 80800 total in 6 blocks; 14432 free (5 chunks); 66368 used LOG: level: 1; pgstat TabStatusArray lookup hash table: 8192 total in 1 blocks; 1408 free (0 chunks); 6784 used LOG: level: 1; TopTransactionContext: 8192 total in 1 blocks; 7720 free (1 chunks); 472 used LOG: level: 1; RowDescriptionContext: 8192 total in 1 blocks; 6880 free (0 chunks); 1312 used LOG: level: 1; MessageContext: 16384 total in 2 blocks; 5152 free (0 chunks); 11232 used LOG: level: 1; Operator class cache: 8192 total in 1 blocks; 512 free (0 chunks); 7680 used LOG: level: 1; smgr relation table: 16384 total in 2 blocks; 4544 free (3 chunks); 11840 used LOG: level: 1; TransactionAbortContext: 32768 total in 1 blocks; 32504 free (0 chunks); 264 used ... LOG: level: 1; 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.27.3. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.92, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° Ñ
одÑ». ÐÑи ÑÑнкÑии нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ (за иÑклÑÑением pg_backup_start, pg_backup_stop и pg_wal_lsn_diff).
ÐодÑобнее пÑакÑиÑеÑкое пÑименение ÑÑÐ¸Ñ ÑÑнкÑий опиÑÑваеÑÑÑ Ð² Разделе 24.3.
ТаблиÑа 9.92. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑм копиÑованием
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
СоздаÑÑ Ð² жÑÑнале пÑедзапиÑи именованнÑй маÑкеÑ, коÑоÑÑй можно иÑполÑзоваÑÑ ÐºÐ°Ðº ÑÐµÐ»Ñ Ð¿Ñи воÑÑÑановлении, и возвÑаÑÐ°ÐµÑ ÑооÑвеÑÑÑвÑÑÑÑÑ ÐµÐ¼Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² жÑÑнале. ÐолÑÑенное Ð¸Ð¼Ñ Ð·Ð°Ñем можно ÑказаÑÑ Ð² паÑамеÑÑе recovery_target_name, опÑеделив Ñем ÑамÑм ÑоÑкÑ, до коÑоÑой бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð²Ð¾ÑÑÑановление. УÑÑиÑе, ÑÑо еÑли бÑÐ´ÐµÑ Ñоздано неÑколÑко ÑоÑек воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾Ð´Ð½Ð¸Ð¼ именем, воÑÑÑановление оÑÑановиÑÑÑ Ð½Ð° пеÑвой ÑоÑке Ñ ÑÑим именем. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
ÐÑдаÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑбÑоÑа даннÑÑ Ð² жÑÑнале пÑедзапиÑи (Ñм. пÑимеÑÐ°Ð½Ð¸Ñ Ð½Ð¸Ð¶Ðµ). |
ÐÑдаÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² жÑÑнале пÑедзапиÑи (Ñм. пÑимеÑÐ°Ð½Ð¸Ñ Ð½Ð¸Ð¶Ðµ). |
ÐÑдаÑÑ ÑекÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñи в жÑÑнале пÑедзапиÑи (Ñм. пÑимеÑÐ°Ð½Ð¸Ñ Ð½Ð¸Ð¶Ðµ). |
ÐодгоÑÐ°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑеÑÐ²ÐµÑ Ðº ÑезеÑÐ²Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Â«Ð½Ð° леÑÑ». ÐдинÑÑвеннÑй обÑзаÑелÑнÑй паÑамеÑÑ Ð·Ð°Ð´Ð°ÑÑ Ð¿ÑоизволÑнÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкÑÑ Ð¼ÐµÑÐºÑ ÑезеÑвной копии. (ÐбÑÑно ÑÑо имÑ, коÑоÑое полÑÑÐ¸Ñ Ñайл ÑезеÑвной копии.) ÐÑли необÑзаÑелÑнÑй вÑоÑой паÑамеÑÑ Ð·Ð°Ð´Ð°Ð½ и Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
ÐавеÑÑÐ°ÐµÑ Ð²Ñполнение ÑезеÑвного копиÑованиÑ. Ð ÑезÑлÑÑаÑе возвÑаÑаеÑÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ðµ ÑодеÑжимое Ñайла меÑки ÑезеÑвной копии и Ñайла каÑÑÑ ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв, коÑоÑое нÑжно ÑÐ¾Ñ ÑаниÑÑ Ð² ÑÐ°Ð¹Ð»Ñ Ð² аÑÑ Ð¸Ð²Ðµ (не в каÑалоге даннÑÑ ). ÐÑи ÑÐ°Ð¹Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð·Ð°Ð¿Ð¸ÑÑваÑÑ Ð² каÑалог ÑабоÑаÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (в пÑоÑивном ÑлÑÑае Postgres Pro не ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑезапÑÑÑиÑÑÑÑ, еÑли пÑоизойдÑÑ Ñбой). У ÑÑой ÑÑнкÑии еÑÑÑ Ñакже необÑзаÑелÑнÑй паÑамеÑÑ Ñипа ÐÑи вÑполнении на ведÑÑем ÑÑа ÑÑнкÑÐ¸Ñ Ñакже ÑоздаÑÑ Ñайл иÑÑоÑии ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² облаÑÑи аÑÑ
ива жÑÑнала пÑедзапиÑи. Ð ÑÑом Ñайле Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑезеÑвной копии ÑоÑ
ÑанÑеÑÑÑ Ð¼ÐµÑка, Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ñи вÑзове Ð ÑезÑлÑÑаÑе ÑÑа ÑÑнкÑÐ¸Ñ Ð²ÑдаÑÑ ÐµÐ´Ð¸Ð½ÑÑвеннÑÑ Ð·Ð°Ð¿Ð¸ÑÑ. СÑÐ¾Ð»Ð±ÐµÑ Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
ÐÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ Ð¿ÑинÑдиÑелÑное пеÑеклÑÑение жÑÑнала пÑедзапиÑи на новÑй Ñайл, ÑÑо позволÑÐµÑ Ð°ÑÑ
ивиÑоваÑÑ ÑекÑÑий (в пÑедположении, ÑÑо вÑполнÑеÑÑÑ Ð½ÐµÐ¿ÑеÑÑÐ²Ð½Ð°Ñ Ð°ÑÑ
иваÑиÑ). РезÑлÑÑÐ°Ñ ÑÑнкÑии â конеÑÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð² ÑолÑко ÑÑо законÑенном Ñайле жÑÑнала пÑедзапиÑи + 1. ÐÑли Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа поÑледнего пеÑеклÑÑÐµÐ½Ð¸Ñ Ñайлов не бÑло акÑивноÑÑи, оÑÑажаÑÑейÑÑ Ð² жÑÑнале пÑедзапиÑи, Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑÑп к ÑÑой ÑÑнкÑии имеÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели, но пÑаво на ÐµÑ Ð²Ñполнение (EXECUTE) можно даÑÑ Ð¸ дÑÑгим полÑзоваÑелÑм. |
ÐÑдаÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ позиÑии в жÑÑнале пÑедзапиÑи Ð¸Ð¼Ñ ÑооÑвеÑÑÑвÑÑÑего Ñайла WAL. |
ÐÑдаÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ позиÑии в жÑÑнале пÑедзапиÑи Ð¸Ð¼Ñ ÑооÑвеÑÑÑвÑÑÑего Ñайла и байÑовое ÑмеÑение в нÑм. |
ÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¿Ð¾ÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð¸ иденÑиÑикаÑÐ¾Ñ Ð»Ð¸Ð½Ð¸Ð¸ вÑемени из имени Ñайла WAL. |
ÐÑÑиÑлÑÐµÑ ÑазниÑÑ Ð² байÑаÑ
( |
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.27.4. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением #
ФÑнкÑии, показаннÑе в ТаблиÑе 9.93, пÑедоÑÑавлÑÑÑ ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ ÑекÑÑем ÑоÑÑоÑнии ведомого ÑеÑвеÑа. ÐÑи ÑÑнкÑии могÑÑ Ð²ÑполнÑÑÑÑÑ ÐºÐ°Ðº во вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑановлениÑ, Ñак и в обÑÑном Ñежиме ÑабоÑÑ.
ТаблиÑа 9.93. ФÑнкÑии Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о воÑÑÑановлении
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.94 ÑпÑавлÑÑÑ Ð¿ÑоÑеÑÑом воÑÑÑановлениÑ. ÐÑзÑваÑÑ Ð¸Ñ Ð² дÑÑгое вÑÐµÐ¼Ñ Ð½ÐµÐ»ÑзÑ.
ТаблиÑа 9.94. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑановлением
ФÑнкÑии pg_wal_replay_pause и pg_wal_replay_resume нелÑÐ·Ñ Ð²ÑполнÑÑÑ Ð² пÑоÑеÑÑе повÑÑениÑ. ÐÑли повÑÑение запÑаÑиваеÑÑÑ, когда воÑÑÑановление пÑиоÑÑановлено, ÑеÑÐ²ÐµÑ Ð²ÑÑ
Ð¾Ð´Ð¸Ñ Ð¸Ð· ÑоÑÑоÑÐ½Ð¸Ñ Ð¿Ð°ÑÐ·Ñ Ð¸ пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¿ÑоÑедÑÑÑ Ð¿Ð¾Ð²ÑÑениÑ.
Ðогда поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑклÑÑена, паÑза пÑи воÑÑÑановлении Ð¼Ð¾Ð¶ÐµÑ Ð´Ð»Ð¸ÑÑÑÑ ÑÐºÐ¾Ð»Ñ Ñгодно долго без ÐºÐ°ÐºÐ¸Ñ -либо пÑоблем. ÐÑли же поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑÐ¸Ñ Ð¾ÑÑÑеÑÑвлÑеÑÑÑ, новÑе запиÑи WAL пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°Ñ Ð¿Ð¾ÑÑÑпаÑÑ Ð¸ заполнÑÑ Ð²ÐµÑÑ Ð´Ð¸Ñк Ñано или поздно, в завиÑимоÑÑи Ð¾Ñ Ð´Ð»Ð¸ÑелÑноÑÑи паÑзÑ, инÑенÑивноÑÑи запиÑи в WAL и обÑÑма Ñвободного пÑоÑÑÑанÑÑва.
9.27.5. ФÑнкÑии ÑÐ¸Ð½Ñ ÑонизаÑии Ñнимков #
Postgres Pro позволÑÐµÑ ÑинÑ
ÑонизиÑоваÑÑ Ñнимки ÑоÑÑоÑÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÑеанÑами баз даннÑÑ
. Снимок ÑоÑÑоÑÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑ, какие даннÑе Ð²Ð¸Ð´Ð½Ñ ÑÑанзакÑии, ÑабоÑаÑÑей Ñ ÑÑим Ñнимком. СинÑ
ÑонизаÑÐ¸Ñ Ñнимков необÑ
одима, когда в двÑÑ
или более ÑеанÑаÑ
нÑжно видеÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же ÑодеÑжимое Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑли в двÑÑ
ÑеанÑаÑ
ÑÑанзакÑии запÑÑкаÑÑÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимо, вÑегда еÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо Ð½ÐµÐºÐ°Ñ ÑÑеÑÑÑ ÑÑанзакÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°ÑикÑиÑована Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ START TRANSACTION Ð´Ð»Ñ Ð¿ÐµÑвÑÑ
двÑÑ
, и в ÑезÑлÑÑаÑе в одном ÑеанÑе бÑÐ´ÐµÑ Ð²Ð¸Ð´ÐµÐ½ ÑезÑлÑÑÐ°Ñ ÑÑеÑÑей, а в дÑÑгом â неÑ.
ÐÐ»Ñ ÑеÑÐµÐ½Ð¸Ñ ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Postgres Pro позволÑÐµÑ ÑÑанзакÑии ÑкÑпоÑÑиÑоваÑÑ Ñнимок ÑоÑÑоÑниÑ, Ñ ÐºÐ¾ÑоÑÑм она ÑабоÑаеÑ. Ðока ÑкÑпоÑÑиÑÑÑÑÐ°Ñ ÑÑÐ¾Ñ Ñнимок ÑÑанзакÑÐ¸Ñ Ð²ÑполнÑеÑÑÑ, дÑÑгие ÑÑанзакÑии могÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑоваÑÑ ÐµÐ³Ð¾ и, Ñаким обÑазом, ÑвидеÑÑ Ð°Ð±ÑолÑÑно Ñо же ÑоÑÑоÑние Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑÑо Ð²Ð¸Ð´Ð¸Ñ Ð¿ÐµÑÐ²Ð°Ñ ÑÑанзакÑиÑ. Ðо ÑÑÑиÑе, ÑÑо лÑбÑе изменениÑ, пÑоизведÑннÑе ÑÑими ÑÑанзакÑиÑми, бÑдÑÑ Ð½Ðµ Ð²Ð¸Ð´Ð½Ñ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ , как ÑÑо и должно бÑÑÑ Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми в незаÑикÑиÑованнÑÑ ÑÑанзакÑиÑÑ . Таким обÑазом, ÑÑанзакÑии ÑÐ¸Ð½Ñ ÑонизиÑÑÑÑ ÑолÑко наÑалÑное ÑоÑÑоÑние даннÑÑ , а поÑледÑÑÑие пÑоизводимÑе в Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¾Ð»Ð¸ÑÑÑÑÑÑ ÐºÐ°Ðº обÑÑно.
Снимки ÑоÑÑоÑÐ½Ð¸Ñ ÑкÑпоÑÑиÑÑÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии pg_export_snapshot, показанной в ТаблиÑе 9.95, и импоÑÑиÑÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ SET TRANSACTION.
ТаблиÑа 9.95. ФÑнкÑии ÑÐ¸Ð½Ñ ÑонизаÑии Ñнимков
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
СоÑ
ÑанÑÐµÑ ÑекÑÑий Ñнимок ÑоÑÑоÑÐ½Ð¸Ñ ÑÑанзакÑии и возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ñипа ÐÑли необÑ
одимо, ÑÑанзакÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ ÑкÑпоÑÑиÑоваÑÑ Ð½ÐµÑколÑко Ñнимков. ÐамеÑÑÑе, ÑÑо ÑÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ÑолÑко Ð´Ð»Ñ ÑÑанзакÑий ÑÑÐ¾Ð²Ð½Ñ |
СделаÑÑ Ñнимок вÑполнÑÑÑÐ¸Ñ ÑÑ ÑÑанзакÑий и запиÑаÑÑ ÐµÐ³Ð¾ в WAL, не дожидаÑÑÑ, пока пÑоÑеÑÑÑ bgwriter или checkpointer запиÑÑÑ ÐµÐ³Ð¾. ÐÑо полезно Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ÑезеÑвном ÑеÑвеÑе, поÑколÑÐºÑ Ñоздание логиÑеÑкого ÑлоÑа должно оÑкладÑваÑÑÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока ÑÐ°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ð¾ÑпÑоизведена на ÑезеÑвном ÑеÑвеÑе. |
9.27.6. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией #
РТаблиÑе 9.96 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ
анизмом ÑепликаÑии и взаимодейÑÑÐ²Ð¸Ñ Ñ Ð½Ð¸Ð¼. ЧÑÐ¾Ð±Ñ Ð¸Ð·ÑÑиÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑ
анизм подÑобнее, обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 25.2.5, ÐодÑазделÑ 25.2.6 и Ðлаве 49. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑолÑко ÑÑпеÑполÑзоваÑели имеÑÑ ÑазÑеÑение вÑполнÑÑÑ ÑÑнкÑии Ñ Ð¸ÑÑоÑниками ÑепликаÑии, но его можно даÑÑ Ð¸ дÑÑгим, воÑполÑзовавÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ GRANT. ÐÑполÑзование даннÑÑ
ÑÑнкÑий Ð´Ð»Ñ ÑлоÑов ÑепликаÑии ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм и полÑзоваÑелÑм, имеÑÑим пÑаво REPLICATION.
Ðногие из ÑÑÐ¸Ñ ÑÑнкÑий ÑооÑвеÑÑÑвÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼ в пÑоÑоколе ÑепликаÑии; Ñм. Раздел 54.4.
ФÑнкÑии, опиÑаннÑе в ÐодÑазделе 9.27.3, ÐодÑазделе 9.27.4 и ÐодÑазделе 9.27.5, Ñакже имеÑÑ Ð¾ÑноÑение к ÑепликаÑии.
ТаблиÑа 9.96. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑепликаÑией
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
СоздаÑÑ Ð½Ð¾Ð²Ñй ÑизиÑеÑкий ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ |
УдалÑÐµÑ ÑизиÑеÑкий или логиÑеÑкий ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ |
СоздаÑÑ Ð½Ð¾Ð²Ñй логиÑеÑкий (декодиÑÑÑÑий) ÑÐ»Ð¾Ñ ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ |
ÐопиÑÑÐµÑ ÑÑÑеÑÑвÑÑÑий ÑÐ»Ð¾Ñ ÑизиÑеÑкой ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ |
ÐопиÑÑÐµÑ ÑÑÑеÑÑвÑÑÑий ÑÐ»Ð¾Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ |
ÐозвÑаÑÐ°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑлоÑе |
РабоÑÐ°ÐµÑ Ñак же, как ÑÑнкÑÐ¸Ñ |
РабоÑÐ°ÐµÑ Ñак же, как ÑÑнкÑÐ¸Ñ |
РабоÑÐ°ÐµÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñно ÑÑнкÑии |
ÐÑÐ¾Ð´Ð²Ð¸Ð³Ð°ÐµÑ ÑекÑÑÑÑ Ð¿Ð¾Ð´ÑвеÑждÑннÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑлоÑа ÑепликаÑии Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ |
СоздаÑÑ Ð¸ÑÑоÑник ÑепликаÑии Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм внеÑним именем и возвÑаÑÐ°ÐµÑ Ð½Ð°Ð·Ð½Ð°ÑеннÑй ÐµÐ¼Ñ Ð²Ð½ÑÑÑенний иденÑиÑикаÑоÑ. |
УдалÑÐµÑ Ñанее ÑозданнÑй иÑÑоÑник ÑепликаÑии, в Ñом ÑиÑле ÑвÑзаннÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ воÑпÑоизведении. |
ÐÑÐµÑ Ð¸ÑÑоÑник ÑепликаÑии по имени и возвÑаÑÐ°ÐµÑ Ð²Ð½ÑÑÑенний иденÑиÑикаÑоÑ. ÐÑли Ñакой иÑÑоÑник не наÑ
одиÑÑÑ, возвÑаÑÐ°ÐµÑ |
ÐомеÑÐ°ÐµÑ ÑекÑÑий ÑÐµÐ°Ð½Ñ ÐºÐ°Ðº воÑпÑоизводÑÑий Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð· Ñказанного иÑÑоÑника, ÑÑо позволÑÐµÑ Ð¾ÑÑлеживаÑÑ Ð¿ÑоÑеÑÑ Ð²Ð¾ÑпÑоизведениÑ. ÐÐ¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ, ÑолÑко еÑли в ÑекÑÑий Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¸ÑÑоÑник еÑÑ Ð½Ðµ вÑбÑан. ÐÐ»Ñ Ð¾ÑÐ¼ÐµÐ½Ñ ÑÑого дейÑÑÐ²Ð¸Ñ Ð²ÑзовиÑе |
ÐÑменÑÐµÑ Ð´ÐµÐ¹ÑÑвие |
ÐозвÑаÑÐ°ÐµÑ true, еÑли в ÑекÑÑем ÑеанÑе вÑбÑан иÑÑоÑник ÑепликаÑии. |
ÐозвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸ÑÑоÑника ÑепликаÑии, вÑбÑанного в ÑекÑÑем ÑеанÑе. ÐаÑамеÑÑ |
ÐомеÑÐ°ÐµÑ ÑекÑÑÑÑ ÑÑанзакÑÐ¸Ñ ÐºÐ°Ðº воÑпÑоизводÑÑÑÑ ÑÑанзакÑиÑ, заÑикÑиÑованнÑÑ Ñ ÑказаннÑм LSN и вÑеменем. ÐÐ¾Ð¶ÐµÑ Ð²ÑзÑваÑÑÑÑ ÑолÑко поÑле Ñого, как иÑÑоÑник ÑепликаÑии бÑл вÑбÑан в ÑезÑлÑÑаÑе вÑзова |
ÐÑменÑÐµÑ Ð´ÐµÐ¹ÑÑвие |
УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ ÑепликаÑии Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñзла в ÑказаннÑÑ Ð¿Ð¾Ð·Ð¸ÑиÑ. ÐÑо в оÑновном полезно Ð´Ð»Ñ ÑÑÑановки наÑалÑной позиÑии или новой позиÑии поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑии и подобнÑÑ Ð´ÐµÐ¹ÑÑвий. Ðо ÑÑÑиÑе, ÑÑо неоÑÑоÑожное иÑполÑзование ÑÑой ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к неÑоглаÑованноÑÑи ÑеплиÑиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ . |
ÐÑдаÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ иÑÑоÑника ÑепликаÑии. ÐаÑамеÑÑ |
ÐенеÑиÑÑÐµÑ ÑообÑение логиÑеÑкого декодиÑованиÑ. ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿ÐµÑедаÑи ÑеÑез WAL пÑоизволÑнÑÑ
ÑообÑений модÑлÑм логиÑеÑкого декодиÑованиÑ. ÐаÑамеÑÑ |
9.27.7. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑами баз даннÑÑ #
ФÑнкÑии, показаннÑе в ТаблиÑе 9.97, вÑÑиÑлÑÑÑ Ð¾Ð±ÑÑм, коÑоÑÑй занимаÑÑ Ð½Ð° диÑке обÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, и помогаÑÑ Ð²Ð¾ÑпÑинÑÑÑ Ð¸ пÑоанализиÑоваÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± иÑполÑзÑемом обÑÑме. РезÑлÑÑаÑÑ Ñипа bignit пÑедÑÑавлÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² байÑаÑ
. ÐÑли им пеÑедаÑÑÑÑ OID, не ÑооÑвеÑÑÑвÑÑÑий ÑÑÑеÑÑвÑÑÑÐµÐ¼Ñ Ð¾Ð±ÑекÑÑ, ÑÑи ÑÑнкÑии возвÑаÑаÑÑ NULL.
ТаблиÑа 9.97. ФÑнкÑии полÑÑÐµÐ½Ð¸Ñ ÑазмеÑа обÑекÑов ÐÐ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐоказÑваеÑ, ÑколÑко Ð±Ð°Ð¹Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ñи Ñ Ñанении оÑделÑное знаÑение. ÐÑли ÑÑа ÑÑнкÑÐ¸Ñ Ð¿ÑименÑеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно к знаÑÐµÐ½Ð¸Ñ Ð² ÑÑолбÑе ÑаблиÑÑ, в ÑезÑлÑÑаÑе оÑÑажаеÑÑÑ ÑÑÑÐµÐºÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð³Ð¾ ÑжаÑиÑ. |
ÐоказÑÐ²Ð°ÐµÑ Ð°Ð»Ð³Ð¾ÑиÑм ÑжаÑиÑ, коÑоÑÑй иÑполÑзовалÑÑ Ð´Ð»Ñ ÑжаÑÐ¸Ñ Ð¾ÑделÑного знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной длинÑ. ÐозвÑаÑÐ°ÐµÑ |
ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке база даннÑÑ
Ñ ÑказаннÑм именем или OID. ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑой ÑÑнкÑии необÑ
одимо имеÑÑ Ð¿Ñаво |
ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй занимаÑÑ Ð½Ð° диÑке индекÑÑ, ÑвÑзаннÑе Ñ Ñказанной ÑаблиÑей. |
ÐÑÑиÑлÑÐµÑ Ð¾Ð±ÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке один «Ñлой» заданного оÑноÑениÑ. (ÐамеÑÑÑе, ÑÑо в болÑÑинÑÑве ÑлÑÑаев Ñдобнее иÑполÑзоваÑÑ Ð±Ð¾Ð»ÐµÐµ вÑÑокоÑÑовневÑе ÑÑнкÑии
|
ÐÑеобÑазÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² понÑÑном ÑÐµÐ»Ð¾Ð²ÐµÐºÑ ÑоÑмаÑе (коÑоÑÑй вÑдаÑÑ |
ÐÑеобÑазÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð² байÑÐ°Ñ Ð² более понÑÑнÑй ÑÐµÐ»Ð¾Ð²ÐµÐºÑ ÑоÑÐ¼Ð°Ñ Ñ ÐµÐ´Ð¸Ð½Ð¸Ñами измеÑÐµÐ½Ð¸Ñ ÑазмеÑа (bytes, kB, MB, GB, TB или PB, в завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÑениÑ). ÐамеÑÑÑе, ÑÑо ÑÑи единиÑÑ Ð¾Ð¿ÑеделÑÑÑÑÑ ÐºÐ°Ðº ÑÑепени 2, а не 10, Ñак ÑÑо 1kB â ÑÑо 1024 байÑа, 1MB â 10242 = 1048576 Ð±Ð°Ð¹Ñ Ð¸ Ñ. д. |
ÐÑÑиÑлÑÐµÑ Ð¾Ð±ÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке Ð´Ð°Ð½Ð½Ð°Ñ ÑаблиÑа, за иÑклÑÑением индекÑов (но вклÑÑÐ°Ñ ÐµÑ TOAST-ÑаблиÑÑ (еÑли она еÑÑÑ), каÑÑÑ Ñвободного меÑÑа и каÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи). |
ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке ÑаблиÑное пÑоÑÑÑанÑÑво Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм именем или OID. ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑой ÑÑнкÑии ÑÑебÑеÑÑÑ Ð¸Ð¼ÐµÑÑ Ð¿Ñаво |
ÐÑÑиÑлÑÐµÑ Ð¾Ð±Ñий обÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ ÑаблиÑа, вклÑÑÐ°Ñ Ð²Ñе ÐµÑ Ð¸Ð½Ð´ÐµÐºÑÑ Ð¸ даннÑе TOAST. РезÑлÑÑÐ°Ñ ÑÑой ÑÑнкÑии Ñавен знаÑÐµÐ½Ð¸Ñ |
ÐÑÑеопиÑаннÑе ÑÑнкÑии, ÑабоÑаÑÑие Ñ ÑаблиÑами или индекÑами, пÑинимаÑÑ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ñипа regclass, коÑоÑÑй пÑедÑÑавлÑÐµÑ Ñобой пÑоÑÑо OID ÑаблиÑÑ Ð¸Ð»Ð¸ индекÑа в ÑиÑÑемном каÑалоге pg_class. Ðднако вам не нÑжно вÑÑÑнÑÑ Ð²ÑÑиÑлÑÑÑ OID, Ñак как пÑоÑедÑÑа ввода знаÑÐµÐ½Ð¸Ñ regclass Ð¼Ð¾Ð¶ÐµÑ ÑделаÑÑ ÑÑо за ваÑ. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 8.19.
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.98, помогаÑÑ Ð¾Ð¿ÑеделиÑÑ, в ÐºÐ°ÐºÐ¸Ñ ÑÐ°Ð¹Ð»Ð°Ñ Ð½Ð° диÑке Ñ ÑанÑÑÑÑ Ð¾Ð±ÑекÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
ТаблиÑа 9.98. ФÑнкÑии опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑов
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐÑдаÑÑ Ð½Ð¾Ð¼ÐµÑ Â«Ñайлового Ñзла», ÑвÑзанного Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм обÑекÑом. ФайловÑм Ñзлом назÑваеÑÑÑ Ð¾Ñновной ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñайла, иÑполÑзÑемого Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
(подÑобнее ÑÑо опиÑано в Разделе 70.1). ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва оÑноÑений ÑÑÐ¾Ñ Ð½Ð¾Ð¼ÐµÑ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñо знаÑением |
ÐÑдаÑÑ Ð¿Ð¾Ð»Ð½Ñй пÑÑÑ Ðº ÑÐ°Ð¹Ð»Ñ Ð¾ÑноÑÐµÐ½Ð¸Ñ (оÑноÑиÑелÑно каÑалога даннÑÑ
|
ÐÑдаÑÑ OID оÑноÑениÑ, коÑоÑое Ñ
ÑаниÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве, заданном по OID, в Ñказанном Ñайловом Ñзле. Ðо ÑÑÑи ÑÑа ÑÑнкÑÐ¸Ñ ÑвлÑеÑÑÑ Ð¾Ð±ÑаÑной к |
РТаблиÑа 9.99 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñавилами ÑоÑÑиÑовки.
ТаблиÑа 9.99. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñавилами ÑоÑÑиÑовки
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐозвÑаÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвÑÑÑÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¾Ð±ÑекÑа пÑавила ÑоÑÑиÑовки, коÑоÑÐ°Ñ Ð² наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑÑановлена в опеÑаÑионной ÑиÑÑеме. ÐÑли она оÑлиÑаеÑÑÑ Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² |
ÐозвÑаÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвÑÑÑÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¿Ñавила ÑоÑÑиÑовки ÐÐ, ÑÑÑановленнÑÑ Ð½Ð° даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð² опеÑаÑионной ÑиÑÑеме. ÐÑли она оÑлиÑаеÑÑÑ Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² |
ÐобавлÑÐµÑ Ð¿Ñавила ÑоÑÑиÑовки в ÑиÑÑемнÑй каÑалог |
РТаблиÑе 9.100 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедоÑÑавлÑÑÑие инÑоÑмаÑÐ¸Ñ Ð¾ ÑÑÑÑкÑÑÑе ÑекÑиониÑованнÑÑ ÑаблиÑ.
ТаблиÑа 9.100. ФÑнкÑии полÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о ÑекÑиониÑовании
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð¿ÑеделиÑÑ Ð¾Ð±Ñий ÑÐ°Ð·Ð¼ÐµÑ Ð´Ð°Ð½Ð½ÑÑ
, ÑодеÑжаÑиÑ
ÑÑ Ð² ÑекÑиониÑованной ÑаблиÑе measurement, можно иÑполÑзоваÑÑ ÑледÑÑÑий запÑоÑ:
SELECT pg_size_pretty(sum(pg_relation_size(relid))) AS total_size
FROM pg_partition_tree('measurement');9.27.8. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов #
РТаблиÑе 9.101 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ Ð¾Ð±ÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов. (ÐамеÑÑÑе, ÑÑо задаÑи обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÑно вÑполнÑÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки в Ñ Ð¾Ð´Ðµ авÑооÑиÑÑки; полÑзоваÑÑÑÑ Ð´Ð°Ð½Ð½Ñми ÑÑнкÑиÑми ÑÑебÑеÑÑÑ ÑолÑко в оÑобÑÑ ÑлÑÑаÑÑ .) ÐÑполнÑÑÑ ÑÑи ÑÑнкÑии во вÑÐµÐ¼Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ»ÑзÑ. ÐÑполÑзоваÑÑ Ð¸Ñ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм и владелÑÑÑ Ð¾Ð¿ÑеделÑнного индекÑа.
ТаблиÑа 9.101. ФÑнкÑии обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
СканиÑÑÐµÑ ÑказаннÑй BRIN-Ð¸Ð½Ð´ÐµÐºÑ Ð² поиÑÐºÐ°Ñ Ð·Ð¾Ð½ ÑÑÑÐ°Ð½Ð¸Ñ Ð² базовой ÑаблиÑе, еÑÑ Ð½Ðµ обобÑÑннÑÑ Ð² индекÑе; Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñакой Ð·Ð¾Ð½Ñ Ð² ÑезÑлÑÑаÑе ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÐ¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ ÑоздаÑÑÑÑ Ð½Ð¾Ð²Ñй обобÑаÑÑий коÑÑеж в индекÑе. ÐозвÑаÑÐ°ÐµÑ ÑÑа ÑÑнкÑÐ¸Ñ ÑиÑло вÑÑавленнÑÑ Ð² Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð±Ð¾Ð±ÑаÑÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñей о Ð·Ð¾Ð½Ð°Ñ ÑÑÑаниÑ. |
ÐбобÑÐ°ÐµÑ Ð·Ð¾Ð½Ñ ÑÑÑаниÑ, оÑ
ваÑÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñй блок, еÑли она еÑÑ Ð½Ðµ бÑла обобÑена. ÐÑа ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð° |
УдалÑÐµÑ Ð¸Ð· BRIN-индекÑа коÑÑеж, коÑоÑÑй обобÑÐ°ÐµÑ Ð·Ð¾Ð½Ñ ÑÑÑаниÑ, Ð¾Ñ Ð²Ð°ÑÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñй блок ÑаблиÑÑ, еÑли Ñакой коÑÑеж имееÑÑÑ. |
ÐÑиÑÐ°ÐµÑ Ð¾ÑеÑÐµÐ´Ñ Ñказанного GIN-индекÑа, маÑÑово пеÑемеÑÐ°Ñ ÑлеменÑÑ Ð¸Ð· Ð½ÐµÑ Ð² оÑновнÑÑ ÑÑÑÑкÑÑÑÑ Ð´Ð°Ð½Ð½ÑÑ
GIN, и возвÑаÑÐ°ÐµÑ ÑиÑло ÑÑÑаниÑ, ÑбÑаннÑÑ
из оÑеÑеди. ÐÑли Ð´Ð»Ñ Ð¾Ð±ÑабоÑки ей пеÑедаÑÑÑÑ Ð¸Ð½Ð´ÐµÐºÑ GIN, поÑÑÑоеннÑй Ñ Ð¾ÑклÑÑÑннÑм паÑамеÑÑом |
9.27.9. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.102, пÑедоÑÑавлÑÑÑ Ð¿ÑÑмой доÑÑÑп к Ñайлам, наÑ
одÑÑимÑÑ Ð½Ð° ÑеÑвеÑе. ÐбÑÑнÑм полÑзоваÑелÑм, не вклÑÑÑннÑм в ÑÐ¾Ð»Ñ 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.102. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¾Ð±ÑÑнÑми Ñайлами
9.27.10. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками #
ФÑнкÑии, пеÑеÑиÑленнÑе в ТаблиÑе 9.103, пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками. ÐодÑобнее об Ð¸Ñ Ð¸ÑполÑзовании можно ÑзнаÑÑ Ð² ÐодÑазделе 13.3.5.
ÐÑе ÑÑи ÑÑнкÑии пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð¿ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовками ÑеÑÑÑÑов, опÑеделÑемÑÑ
пÑиложением и задаваемÑÑ
одним 64-биÑнÑм или двÑÐ¼Ñ 32-биÑнÑми клÑÑами (замеÑÑÑе, ÑÑо пÑоÑÑÑанÑÑва ÑÑиÑ
клÑÑей не пеÑеÑекаÑÑÑÑ). ÐÑли конÑликÑÑÑÑÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ñ Ñем же иденÑиÑикаÑоÑом Ñже ÑдеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´ÑÑгой ÑеанÑ, ÑÑи ÑÑнкÑии либо дожидаÑÑÑÑ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÑеÑÑÑÑа, либо вÑдаÑÑ Ð² ÑезÑлÑÑаÑе false, в завиÑимоÑÑи Ð¾Ñ Ð²Ð¸Ð´Ð° ÑÑнкÑии. ÐлокиÑовки могÑÑ Ð±ÑÑÑ ÐºÐ°Ðº иÑклÑÑиÑелÑнÑми, Ñак и ÑазделÑемÑми â ÑазделÑÐµÐ¼Ð°Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовка не конÑликÑÑÐµÑ Ñ Ð´ÑÑгими ÑазделÑемÑми блокиÑовками Ñого же ÑеÑÑÑÑа, но конÑликÑÑÐµÑ Ñ Ð¸ÑклÑÑиÑелÑнÑми. ÐлокиÑовки могÑÑ ÑÑÑанавливаÑÑÑÑ Ð½Ð° ÑеанÑовом ÑÑовне (Ñогда они ÑдеÑживаÑÑÑÑ Ð´Ð¾ моменÑа оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ до завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа) и на ÑÑанзакÑионном (Ñогда они ÑдеÑживаÑÑÑÑ Ð´Ð¾ конÑа ÑекÑÑей ÑÑанзакÑии, оÑвободиÑÑ Ð¸Ñ
вÑÑÑнÑÑ Ð½ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи). Ðогда поÑÑÑÐ¿Ð°ÐµÑ Ð½ÐµÑколÑко запÑоÑов на блокиÑÐ¾Ð²ÐºÑ ÑеанÑового ÑÑовнÑ, они накапливаÑÑÑÑ, Ñак ÑÑо еÑли один иденÑиÑикаÑÐ¾Ñ ÑеÑÑÑÑа бÑл заблокиÑован ÑÑи Ñаза, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿Ð¾ÑÑÑпиÑÑ ÑÑи запÑоÑа на оÑвобождение блокиÑовки, ÑÑÐ¾Ð±Ñ ÑеÑÑÑÑ Ð±Ñл ÑазблокиÑован до завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа.
ТаблиÑа 9.103. ФÑнкÑии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекомендаÑелÑнÑми блокиÑовками
9.27.11. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий #
РжÑÑнале опеÑаÑий Ñ ÑаниÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ кÑиÑиÑеÑки важнÑÑ ÑиÑÑемнÑÑ ÑобÑÑиÑÑ , ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº обновление, вÑполнение pg_resetwal и Ñ. п. ÐÑа инÑоÑмаÑÐ¸Ñ Ð½Ðµ пÑедÑÑавлÑÐµÑ Ð¾Ñобого инÑеÑеÑа Ð´Ð»Ñ Ð¾Ð±ÑÑного полÑзоваÑелÑ, но важна Ð´Ð»Ñ Ð¾ÑÑÑеÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÐµÑ Ð½Ð¸ÑеÑкой поддеÑжки Ñо ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾ÑÑавÑика. ÐапиÑÑ Ð² жÑÑнал опеÑаÑий пÑоизводиÑÑÑ ÑолÑко на ÑиÑÑемном ÑÑовне (без ÐºÐ°ÐºÐ¸Ñ -либо дейÑÑвий Ñо ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ), а Ð´Ð»Ñ ÐµÐ³Ð¾ ÑÑÐµÐ½Ð¸Ñ Ð¸ÑполÑзÑÑÑÑÑ ÑÑнкÑии SQL. ФÑнкÑиÑ, Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² ТаблиÑа 9.104, ÑиÑÐ°ÐµÑ Ð¶ÑÑнал опеÑаÑий.
ТаблиÑа 9.104. ÐпоÑнÑе ÑÑнкÑии жÑÑнала опеÑаÑий
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐдеÑÑ:
ÐÑа ÑиÑÑÐµÐ¼Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ ÑоздаÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ Ð±Ð°Ð· даннÑÑ , а Ð´Ð»Ñ ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð±Ð°Ð· даннÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° ÑоздаваÑÑÑÑ ÑледÑÑÑим обÑазом: 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.105, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° Ð´Ð»Ñ Ð½Ð¸Ð·ÐºÐ¾ÑÑовневÑÑ Ð¾Ð¿ÐµÑаÑий, напÑÐ¸Ð¼ÐµÑ Ð² ÑелÑÑ Ð¾Ñладки или иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑпоÑÑеннÑÑ Ð±Ð°Ð· даннÑÑ Postgres Pro.
ТаблиÑа 9.105. ФÑнкÑии ÑÐ¸Ð½Ñ ÑонизаÑии Ñнимков
| ÐÐ¼Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание |
|---|---|---|
| void | ÐÑклÑÑÐ°ÐµÑ Ð´ÐµÐ¹ÑÑвие пÑавил MVCC в ÑÐ°Ð¼ÐºÐ°Ñ ÑекÑÑей ÑÑанзакÑии, ÑÑо позволÑÐµÑ Ð²Ð¸Ð´ÐµÑÑ Ð² ней вÑе веÑÑии даннÑÑ . |
ÐÑименÑйÑе pg_snapshot_any кÑайне оÑÑоÑожно. ÐÑполнÑÑÑ ÐµÑ ÑледÑÐµÑ Ð² ÑÑанзакÑии Ñ ÑÑовнем изолÑÑии REPEATABLE READ или вÑÑе, в пÑоÑивном ÑлÑÑае ÑледÑÑÑий же запÑÐ¾Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ Ð²ÑбÑаннÑй Ñнимок новÑм. ÐÑполнÑÑÑ ÐµÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ÐÑимеÑание
ÐÑли Ð²Ð°Ñ ÐºÐ»Ð°ÑÑÐµÑ ÐÐ ÑоздавалÑÑ ÑеÑвеÑом веÑÑии, в коÑоÑой ÑÑой ÑÑнкÑии еÑÑ Ð½Ðµ бÑло, опÑеделиÑе ÐµÑ ÑледÑÑÑей командой:
CREATE FUNCTION pg_snapshot_any() RETURNS void AS 'pg_snapshot_any' LANGUAGE internal;