20.1. Ðзменение паÑамеÑÑов #
- 20.1.1. Ðмена и знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов
- 20.1.2. ÐпÑеделение паÑамеÑÑов в Ñайле конÑигÑÑаÑии
- 20.1.3. УпÑавление паÑамеÑÑами ÑеÑез SQL
- 20.1.4. УпÑавление паÑамеÑÑами в командной ÑÑÑоке
- 20.1.5. УпоÑÑдоÑение ÑодеÑжимого Ñайлов конÑигÑÑаÑии
- 20.1.2. ÐпÑеделение паÑамеÑÑов в Ñайле конÑигÑÑаÑии
20.1.1. Ðмена и знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов #
Ðмена вÑÐµÑ Ð¿Ð°ÑамеÑÑов ÑвлÑÑÑÑÑ ÑегиÑÑÑонезавиÑимÑми. ÐаждÑй паÑамеÑÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°Ñение одного из пÑÑи Ñипов: логиÑеÑкий, ÑÑÑока, Ñелое, ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой или пеÑеÑиÑление. ÐÑ Ñипа знаÑÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ ÑинÑакÑÐ¸Ñ ÑÑÑановки ÑÑого паÑамеÑÑа:
ÐогиÑеÑкий: ÐнаÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑÑÑоками
on,off,true,false,yes,no,1,0(ÑегиÑÑÑ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°ÑениÑ), либо как доÑÑаÑоÑно однознаÑнÑй пÑеÑÐ¸ÐºÑ Ð¾Ð´Ð½Ð¾Ð¹ из ÑÑÐ¸Ñ ÑÑÑок.СÑÑока: ÐбÑÑно ÑÑÑоковое знаÑение заклÑÑаеÑÑÑ Ð² апоÑÑÑоÑÑ (пÑи ÑÑом внÑÑÑенние апоÑÑÑоÑÑ Ð´ÑблиÑÑÑÑÑÑ). Ðднако еÑли знаÑение ÑвлÑеÑÑÑ Ð¿ÑоÑÑÑм ÑиÑлом или иденÑиÑикаÑоÑом, апоÑÑÑоÑÑ Ð¾Ð±ÑÑно можно опÑÑÑиÑÑ. (ÐнаÑениÑ, ÑовпадаÑÑие Ñ ÐºÐ»ÑÑевÑми Ñловами SQL, вÑÑ Ð¶Ðµ ÑÑебÑÑÑ Ð·Ð°ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð² апоÑÑÑоÑÑ Ð² некоÑоÑÑÑ ÐºÐ¾Ð½ÑекÑÑÐ°Ñ .)
ЧиÑло (Ñелое или Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой): ÐнаÑÐµÐ½Ð¸Ñ ÑиÑловÑÑ Ð¿Ð°ÑамеÑÑов могÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ Ð² обÑÑнÑÑ ÑоÑмаÑÐ°Ñ , пÑинÑÑÑÑ Ð´Ð»Ñ ÑелÑÑ ÑиÑел или ÑиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой; еÑли паÑамеÑÑ ÑелоÑиÑленнÑй, дÑобнÑе знаÑÐµÐ½Ð¸Ñ Ð¾ÐºÑÑглÑÑÑÑÑ Ð´Ð¾ ближайÑего Ñелого. ÐÑоме Ñого, ÑелоÑиÑленнÑе паÑамеÑÑÑ Ð¿ÑинимаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² ÑеÑÑнадÑаÑеÑиÑном (Ñ Ð¿ÑеÑикÑом
0x) и воÑÑмеÑиÑном (Ñ Ð¿ÑеÑикÑом0) виде, но дÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ Ð² ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð¸ÑклÑÑена. РазделиÑели ÑазÑÑдов в знаÑениÑÑ Ð¸ÑполÑзоваÑÑ Ð½ÐµÐ»ÑзÑ. ÐаклÑÑаÑÑ Ð² кавÑÑки ÑÑебÑеÑÑÑ ÑолÑко знаÑÐµÐ½Ð¸Ñ Ð² ÑеÑÑнадÑаÑеÑиÑном виде.ЧиÑло Ñ ÐµÐ´Ð¸Ð½Ð¸Ñей измеÑениÑ: ÐекоÑоÑÑе ÑиÑловÑе паÑамеÑÑÑ Ð·Ð°Ð´Ð°ÑÑÑÑ Ñ ÐµÐ´Ð¸Ð½Ð¸Ñами измеÑениÑ, Ñак как они опиÑÑваÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑва инÑоÑмаÑии или вÑемени. ÐдиниÑами могÑÑ Ð±ÑÑÑ Ð±Ð°Ð¹ÑÑ, килобайÑÑ, блоки (обÑÑно воÑÐµÐ¼Ñ ÐºÐ¸Ð»Ð¾Ð±Ð°Ð¹Ñ), миллиÑекÑндÑ, ÑекÑÐ½Ð´Ñ Ð¸Ð»Ð¸ минÑÑÑ. ÐÑи Ñказании ÑолÑко ÑиÑлового знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñакого паÑамеÑÑа единиÑей измеÑÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ ÑÑиÑаÑÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ единиÑа по ÑмолÑаниÑ, коÑоÑÐ°Ñ ÑказÑваеÑÑÑ Ð²
pg_settings.unit. ÐÐ»Ñ ÑдобÑÑва паÑамеÑÑÑ Ñакже можно задаваÑÑ, ÑказÑÐ²Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸ÑÑ Ð¸Ð·Ð¼ÐµÑÐµÐ½Ð¸Ñ Ñвно, напÑимеÑ, задаÑÑ'120 ms'Ð´Ð»Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð²Ñемени. ÐÑи ÑÑом Ñакое знаÑение бÑÐ´ÐµÑ Ð¿ÐµÑеведено в оÑновнÑÑ ÐµÐ´Ð¸Ð½Ð¸ÑÑ Ð¸Ð·Ð¼ÐµÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа. ÐамеÑÑÑе, ÑÑо Ð´Ð»Ñ ÑÑого знаÑение должно запиÑÑваÑÑÑÑ Ð² виде ÑÑÑоки (в апоÑÑÑоÑÐ°Ñ ). ÐÐ¼Ñ ÐµÐ´Ð¸Ð½Ð¸ÑÑ ÑвлÑеÑÑÑ ÑегиÑÑÑозавиÑимÑм, и Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼ и ÑиÑлом допÑÑкаÑÑÑÑ Ð¿ÑобелÑнÑе ÑимволÑ.ÐопÑÑÑимÑе единиÑÑ Ð¸Ð½ÑоÑмаÑии:
B(байÑÑ),kB(килобайÑÑ),MB(мегабайÑÑ),GB(гигабайÑÑ) иTB(ÑеÑабайÑÑ). ÐножиÑелем ÐµÐ´Ð¸Ð½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии ÑÑиÑаеÑÑÑ 1024, не 1000.ÐопÑÑÑимÑе единиÑÑ Ð²Ñемени:
us(микÑоÑекÑндÑ),ms(миллиÑекÑндÑ),s(ÑекÑндÑ),min(минÑÑÑ),h(ÑаÑÑ) иd(дни).
ÐÑли Ñ ÐµÐ´Ð¸Ð½Ð¸Ñей измеÑÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°ÑÑÑÑ Ð´Ñобное знаÑение, оно бÑÐ´ÐµÑ Ð¾ÐºÑÑглено до ÑледÑÑÑей менÑÑей единиÑÑ, еÑли ÑÐ°ÐºÐ°Ñ Ð¸Ð¼ÐµÐµÑÑÑ. ÐапÑимеÑ, знаÑение
30.1 GBбÑÐ´ÐµÑ Ð¿ÑеобÑазовано в30822 MB, а не в32319628902 B. ÐÑли паÑамеÑÑ Ð¸Ð¼ÐµÐµÑ ÑелоÑиÑленнÑй Ñип, поÑле пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐµÐ´Ð¸Ð½Ð¸ÑÑ Ð¸Ð·Ð¼ÐµÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñение оконÑаÑелÑно окÑÑглÑеÑÑÑ Ð´Ð¾ Ñелого.ÐеÑеÑиÑление: ÐаÑамеÑÑÑ, имеÑÑие Ñип пеÑеÑиÑление, запиÑÑваÑÑÑÑ Ñак же, как ÑÑÑоковÑе паÑамеÑÑÑ, но могÑÑ Ð¸Ð¼ÐµÑÑ ÑолÑко огÑаниÑеннÑй Ð½Ð°Ð±Ð¾Ñ Ð·Ð½Ð°Ñений. СпиÑок допÑÑÑимÑÑ Ð·Ð½Ð°Ñений Ñакого паÑамеÑÑа задаÑÑÑÑ Ð²
pg_settings.enumvals. РзнаÑениÑÑ Ð¿ÐµÑеÑиÑлений ÑегиÑÑÑ Ð½Ðµ ÑÑиÑÑваеÑÑÑ.
20.1.2. ÐпÑеделение паÑамеÑÑов в Ñайле конÑигÑÑаÑии #
СамÑй оÑновной ÑпоÑоб ÑÑÑановки ÑÑиÑ
паÑамеÑÑов â опÑеделение иÑ
знаÑений в Ñайле postgresql.conf, коÑоÑÑй обÑÑно наÑ
одиÑÑÑ Ð² каÑалоге даннÑÑ
. ÐÑи иниÑиализаÑии каÑалога клаÑÑеÑа ÐРв ÑÑÐ¾Ñ ÐºÐ°Ñалог помеÑаеÑÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑандаÑÑного Ñайла. ÐапÑимеÑ, он Ð¼Ð¾Ð¶ÐµÑ Ð²ÑглÑдеÑÑ Ñак:
# ÐÑо комменÑаÑий log_connections = yes log_destination = 'syslog' search_path = '"$user", public' shared_buffers = 128MB
ÐаждÑй паÑамеÑÑ Ð¾Ð¿ÑеделÑеÑÑÑ Ð² оÑделÑной ÑÑÑоке. Ðнак ÑавенÑÑва в ней Ð¼ÐµÐ¶Ð´Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ и знаÑением ÑвлÑеÑÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑм. ÐÑобелÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð² ÑÑÑоке не игÑаÑÑ Ñоли (кÑоме знаÑений, заклÑÑÑннÑÑ
в апоÑÑÑоÑÑ), а пÑÑÑÑе ÑÑÑоки игноÑиÑÑÑÑÑÑ. Ðнаки ÑеÑÑÑки (#) обознаÑаÑÑ Ð¿Ñодолжение ÑÑÑоки как комменÑаÑий. ÐнаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов, не ÑвлÑÑÑиеÑÑ Ð¿ÑоÑÑÑми иденÑиÑикаÑоÑами или ÑиÑлами, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°ÐºÐ»ÑÑаÑÑÑÑ Ð² апоÑÑÑоÑÑ. ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð² Ñакое знаÑение ÑобÑÑвенно апоÑÑÑоÑ, его ÑледÑÐµÑ Ð¿ÑодÑблиÑоваÑÑ (пÑедпоÑÑиÑелÑнее) или пÑедваÑиÑÑ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой. ÐÑли один и ÑÐ¾Ñ Ð¶Ðµ паÑамеÑÑ Ð¾Ð¿ÑеделÑеÑÑÑ Ð² Ñайле конÑигÑÑаÑии неоднокÑаÑно, дейÑÑвоваÑÑ Ð±ÑÐ´ÐµÑ ÑолÑко поÑледнее опÑеделение, оÑÑалÑнÑе игноÑиÑÑÑÑÑÑ.
ÐаÑамеÑÑÑ, ÑÑÑановленнÑе Ñаким обÑазом, задаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ клаÑÑеÑа. ÐÑи знаÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð´ÐµÐ¹ÑÑвоваÑÑ Ð² акÑивнÑÑ ÑеанÑÐ°Ñ , еÑли не бÑдÑÑ Ð¿ÐµÑеопÑеделенÑ. Ð ÑледÑÑÑÐ¸Ñ ÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ Ð¾Ð¿Ð¸ÑÑваеÑÑÑ, как Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑеопÑеделиÑÑ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑÐ¾Ñ Ð¸Ð»Ð¸ полÑзоваÑелÑ.
ÐÑновной пÑоÑеÑÑ ÑеÑвеÑа пеÑеÑиÑÑÐ²Ð°ÐµÑ Ñайл конÑигÑÑаÑии заново, полÑÑÐ°Ñ Ñигнал SIGHUP; поÑлаÑÑ ÐµÐ³Ð¾ пÑоÑе вÑего можно, запÑÑÑив pg_ctl reload в командной ÑÑÑоке или вÑзвав SQL-ÑÑнкÑÐ¸Ñ pg_reload_conf(). ÐÑновной пÑоÑеÑÑ ÑеÑвеÑа пеÑедаÑÑ ÑÑÐ¾Ñ Ñигнал вÑем оÑÑалÑнÑм запÑÑеннÑм ÑеÑвеÑнÑм пÑоÑеÑÑам, Ñак ÑÑо ÑÑÑеÑÑвÑÑÑие ÑеанÑÑ Ñоже полÑÑаÑÑ Ð½Ð¾Ð²Ñе знаÑÐµÐ½Ð¸Ñ (поÑле Ñого, как завеÑÑиÑÑÑ Ð²Ñполнение ÑекÑÑей ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñа). Также возможно поÑлаÑÑ ÑÑÐ¾Ñ Ñигнал напÑÑмÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð· ÑеÑвеÑнÑÑ
пÑоÑеÑÑов. УÑÑиÑе, ÑÑо некоÑоÑÑе паÑамеÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑÑÑановиÑÑ ÑолÑко пÑи запÑÑке ÑеÑвеÑа; лÑбÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ
знаÑений в Ñайле конÑигÑÑаÑии не бÑдÑÑ ÑÑиÑÑваÑÑÑÑ Ð´Ð¾ пеÑезапÑÑка ÑеÑвеÑа. Ðолее Ñого, пÑи обÑабоÑке SIGHUP игноÑиÑÑÑÑÑÑ Ð½ÐµÐ²ÐµÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов (но об ÑÑом ÑообÑаеÑÑÑ Ð² жÑÑнале).
Рдополнение к postgresql.conf в каÑалоге даннÑÑ
PostgreSQL ÑодеÑжиÑÑÑ Ñайл postgresql.auto.conf, коÑоÑÑй Ð¸Ð¼ÐµÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑоÑмаÑ, ÑÑо и postgresql.conf, но пÑедназнаÑен Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого изменениÑ, а не Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²ÑÑÑнÑÑ. ÐÑÐ¾Ñ Ñайл ÑодеÑÐ¶Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ, задаваемÑе командой ALTER SYSTEM. Ðн ÑÑиÑÑваеÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно Ñ postgresql.conf и заданнÑе в нÑм паÑамеÑÑÑ Ð´ÐµÐ¹ÑÑвÑÑÑ Ñаким же обÑазом. ÐаÑамеÑÑÑ Ð² postgresql.auto.conf пеÑеопÑеделÑÑÑ Ñе, ÑÑо ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² postgresql.conf.
ÐноÑиÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² postgresql.auto.conf можно и Ñ Ð¸ÑполÑзованием внеÑниÑ
ÑÑедÑÑв. Ðднако ÑÑо не ÑекомендÑеÑÑÑ Ð´ÐµÐ»Ð°ÑÑ Ð² пÑоÑеÑÑе ÑабоÑÑ ÑеÑвеÑа, Ñак ÑÑи Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿Ð¾ÑеÑÑÐ½Ñ Ð¿Ñи паÑаллелÑном вÑполнении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ALTER SYSTEM. ÐнеÑние пÑогÑÐ°Ð¼Ð¼Ñ Ð¼Ð¾Ð³ÑÑ Ð¿ÑоÑÑо добавлÑÑÑ Ð½Ð¾Ð²Ñе опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов в ÐºÐ¾Ð½ÐµÑ Ñайла или ÑдалÑÑÑ Ð¿Ð¾Ð²ÑоÑÑÑÑиеÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸/или комменÑаÑии (как Ð´ÐµÐ»Ð°ÐµÑ ALTER SYSTEM).
СиÑÑемное пÑедÑÑавление pg_file_settings Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñм Ð´Ð»Ñ Ð¿ÑедваÑиÑелÑной пÑовеÑки изменений в ÑайлаÑ
конÑигÑÑаÑии или Ð´Ð»Ñ Ð´Ð¸Ð°Ð³Ð½Ð¾ÑÑики пÑоблем, еÑли Ñигнал SIGHUP не даÑÑ Ð¶ÐµÐ»Ð°ÐµÐ¼Ð¾Ð³Ð¾ ÑÑÑекÑа.
20.1.3. УпÑавление паÑамеÑÑами ÑеÑез SQL #
Ð PostgreSQL еÑÑÑ ÑÑи SQL-командÑ, задаÑÑие Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑов знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. Уже ÑпомÑнÑÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ALTER SYSTEM даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑе знаÑÐµÐ½Ð¸Ñ ÑÑедÑÑвами SQL; она ÑÑнкÑионалÑно ÑавнознаÑна ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ postgresql.conf. ÐÑоме Ñого, еÑÑÑ ÐµÑÑ Ð´Ð²Ðµ командÑ, коÑоÑÑе позволÑÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ð° ÑÑовне баз даннÑÑ
и Ñолей:
Ðоманда
ALTER DATABASEпозволÑÐµÑ Ð¿ÐµÑеопÑеделиÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑе паÑамеÑÑÑ Ð½Ð° ÑÑовне Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .Ðоманда
ALTER ROLEпозволÑÐµÑ Ð¿ÐµÑеопÑеделиÑÑ Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑного полÑзоваÑÐµÐ»Ñ ÐºÐ°Ðº глобалÑнÑе, Ñак и локалÑнÑе Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿Ð°ÑамеÑÑÑ.
ÐнаÑениÑ, ÑÑÑановленнÑе командами ALTER DATABASE и ALTER ROLE, пÑименÑÑÑÑÑ ÑолÑко пÑи новом подклÑÑении к базе даннÑÑ
. Ðни пеÑеопÑеделÑÑÑ Ð·Ð½Ð°ÑениÑ, полÑÑеннÑе из Ñайлов конÑигÑÑаÑии или командной ÑÑÑоки ÑеÑвеÑа, и пÑименÑÑÑÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð² ÑамкаÑ
ÑеанÑа. ÐамеÑÑÑе, ÑÑо некоÑоÑÑе паÑамеÑÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¿Ð¾Ñле запÑÑка ÑеÑвеÑа, поÑÑÐ¾Ð¼Ñ Ð¸Ñ
нелÑÐ·Ñ ÑÑÑановиÑÑ ÑÑими командами (или командами, пеÑеÑиÑленнÑми ниже).
Ðогда ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑн к базе даннÑÑ , он Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑполÑзоваÑÑÑÑ Ð´Ð²ÑÐ¼Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑми командами SQL (и ÑавнознаÑнÑми ÑÑнкÑиÑми), коÑоÑÑе пÑедоÑÑавлÑÐµÑ PostgreSQL Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑами конÑигÑÑаÑии:
Ðоманда
SHOWпозволÑÐµÑ ÑзнаÑÑ ÑекÑÑее знаÑение лÑбого паÑамеÑÑа. Ðй ÑооÑвеÑÑÑвÑÐµÑ SQL-ÑÑнкÑиÑcurrent_setting(setting_name text)(Ñм. ÐодÑаздел 9.27.1).Ðоманда
SETпозволÑÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑекÑÑее знаÑение ÑÐµÑ Ð¿Ð°ÑамеÑÑов, коÑоÑÑе ÑÑÑанавливаÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñно в ÑÐ°Ð¼ÐºÐ°Ñ ÑеанÑа; на дÑÑгие ÑеанÑÑ Ð¾Ð½Ð° не влиÑеÑ. Ðногие паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ñаким обÑазом лÑбÑм полÑзоваÑелем, а некоÑоÑÑе â ÑолÑко ÑÑпеÑполÑзоваÑелÑми и полÑзоваÑелÑми, коÑоÑÑм пÑедоÑÑавлено пÑавоSETÐ´Ð»Ñ ÑÑого паÑамеÑÑа. Ðй ÑооÑвеÑÑÑвÑÐµÑ SQL-ÑÑнкÑиÑset_config(setting_name, new_value, is_local)(Ñм. ÐодÑаздел 9.27.1).
ÐÑоме Ñого, пÑоÑмоÑÑеÑÑ Ð¸ измениÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов Ð´Ð»Ñ ÑекÑÑего ÑеанÑа можно в ÑиÑÑемном пÑедÑÑавлении pg_settings:
ÐапÑÐ¾Ñ Ð½Ð° ÑÑение пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÑдаÑÑ ÑÑ Ð¶Ðµ инÑоÑмаÑиÑ, ÑÑо и
SHOW ALL, но более подÑобно. ÐÑÐ¾Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ и более гибкий, Ñак как в нÑм можно ÑказаÑÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑилÑÑÑа или ÑвÑзаÑÑ ÑезÑлÑÑÐ°Ñ Ñ Ð´ÑÑгими оÑноÑениÑми.ÐÑполнение
UPDATEÐ´Ð»Ñ ÑÑого пÑедÑÑавлениÑ, а именно пÑиÑваивание знаÑÐµÐ½Ð¸Ñ ÑÑолбÑÑsetting, ÑавноÑилÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑSET. ÐапÑимеÑ, командеSET configuration_parameter TO DEFAULT;
ÑавнознаÑен запÑоÑ:
UPDATE pg_settings SET setting = reset_val WHERE name = 'configuration_parameter';
20.1.4. УпÑавление паÑамеÑÑами в командной ÑÑÑоке #
Ðомимо Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑÑ Ð·Ð½Ð°Ñений по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ пеÑеопÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ñ Ð½Ð° ÑÑовне Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸ Ñоли, паÑамеÑÑÑ PostgreSQL можно измениÑÑ, иÑполÑзÑÑ ÑÑедÑÑва командной ÑÑÑоки. УпÑавление ÑеÑез команднÑÑ ÑÑÑÐ¾ÐºÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð¸ ÑеÑвеÑ, и клиенÑÑÐºÐ°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñека libpq.
ÐÑи запÑÑке ÑеÑвеÑа, знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов можно пеÑедаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ
postgresв аÑгÑменÑе командной ÑÑÑоки-c. ÐапÑимеÑ:postgres -c log_connections=yes -c log_destination='syslog'
ÐаÑамеÑÑÑ, заданнÑе Ñаким обÑазом, пеÑеопÑеделÑÑÑ Ñе, ÑÑо бÑли ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð²
postgresql.confили командойALTER SYSTEM, Ñак ÑÑо Ð¸Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»Ñно без пеÑезапÑÑка ÑеÑвеÑа.ÐÑи запÑÑке клиенÑÑкого ÑеанÑа, иÑполÑзÑÑÑего libpq, знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов можно ÑказаÑÑ Ð² пеÑеменной окÑÑжениÑ
PGOPTIONS. ÐаданнÑе Ñаким обÑазом паÑамеÑÑÑ Ð±ÑдÑÑ Ð¾Ð¿ÑеделÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ð° вÑÐµÐ¼Ñ ÑеанÑа, но никак не влиÑÑÑ Ð½Ð° дÑÑгие ÑеанÑÑ. Ðо иÑÑоÑиÑеÑким пÑиÑинам ÑоÑмаÑPGOPTIONSÐ¿Ð¾Ñ Ð¾Ð¶ на ÑоÑ, ÑÑо пÑименÑеÑÑÑ Ð¿Ñи запÑÑке командÑpostgres; в ÑаÑÑноÑÑи, в нÑм должен пÑиÑÑÑÑÑвоваÑÑ Ñлаг-c. ÐапÑимеÑ:env PGOPTIONS="-c geqo=off -c statement_timeout=5min" psql
ÐÑÑгие клиенÑÑ Ð¸ библиоÑеки могÑÑ Ð¸Ð¼ÐµÑÑ ÑобÑÑвеннÑе Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑами, ÑеÑез команднÑÑ ÑÑÑÐ¾ÐºÑ Ð¸Ð»Ð¸ как-Ñо инаÑе, иÑполÑзÑÑ ÐºÐ¾ÑоÑÑе полÑзоваÑÐµÐ»Ñ ÑÐ¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑ Ð¿Ð°ÑамеÑÑÑ ÑеанÑа, не вÑполнÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL.
20.1.5. УпоÑÑдоÑение ÑодеÑжимого Ñайлов конÑигÑÑаÑии #
PostgreSQL пÑедоÑÑавлÑÐµÑ Ð½ÐµÑколÑко возможноÑÑей Ð´Ð»Ñ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ ÑложнÑÑ
Ñайлов postgresql.conf на вложеннÑе ÑайлÑ. ÐÑи возможноÑÑи оÑобенно Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ Ð¿Ñи ÑпÑавлении множеÑÑвом ÑеÑвеÑов Ñ Ð¿Ð¾Ñ
ожими, но не одинаковÑми конÑигÑÑаÑиÑми.
Ðомимо пÑиÑваиваний знаÑений паÑамеÑÑов, postgresql.conf Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð´Ð¸ÑекÑÐ¸Ð²Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ñайлов, коÑоÑÑе бÑдÑÑ Ð¿ÑоÑиÑÐ°Ð½Ñ Ð¸ обÑабоÑанÑ, как еÑли Ð±Ñ Ð¸Ñ
ÑодеÑжимое бÑло вÑÑавлено в данном меÑÑе Ñайла конÑигÑÑаÑии. ÐÑо позволÑÐµÑ ÑазбиваÑÑ Ñайл конÑигÑÑаÑии на ÑизиÑеÑки оÑделÑнÑе ÑаÑÑи. ÐиÑекÑÐ¸Ð²Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ Ð¿ÑоÑÑо:
include 'имÑ_Ñайла'
ÐÑли Ð¸Ð¼Ñ Ñайла задаÑÑÑÑ Ð½Ðµ абÑолÑÑнÑм пÑÑÑм, оно ÑаÑÑмаÑÑиваеÑÑÑ Ð¾ÑноÑиÑелÑно каÑалога, в коÑоÑом Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²ÐºÐ»ÑÑаÑÑий Ñайл конÑигÑÑаÑии. ÐклÑÑÐµÐ½Ð¸Ñ Ñайлов могÑÑ Ð±ÑÑÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñми.
ÐÑоме Ñого, еÑÑÑ Ð´Ð¸ÑекÑива include_if_exists, коÑоÑÐ°Ñ ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ include, за иÑклÑÑением ÑлÑÑаев, когда вклÑÑаемÑй Ñайл не ÑÑÑеÑÑвÑÐµÑ Ð¸Ð»Ð¸ не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑиÑан. ÐбÑÑÐ½Ð°Ñ Ð´Ð¸ÑекÑива include ÑÑиÑÐ°ÐµÑ ÑÑо кÑиÑиÑеÑкой оÑибкой, но include_if_exists пÑоÑÑо вÑÐ²Ð¾Ð´Ð¸Ñ ÑообÑение и пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¾Ð±ÑабаÑÑваÑÑ ÑекÑÑий Ñайл конÑигÑÑаÑии.
Файл postgresql.conf Ð¼Ð¾Ð¶ÐµÑ Ñакже ÑодеÑжаÑÑ Ð´Ð¸ÑекÑÐ¸Ð²Ñ include_dir, позволÑÑÑие подклÑÑаÑÑ ÑелÑе каÑалоги Ñ Ñайлами конÑигÑÑаÑии. Ðни запиÑÑваÑÑÑÑ Ñак:
include_dir 'каÑалог'
Ðмена, заданнÑе не абÑолÑÑнÑм пÑÑÑм, ÑаÑÑмаÑÑиваÑÑÑÑ Ð¾ÑноÑиÑелÑно каÑалога, ÑодеÑжаÑего ÑекÑÑий Ñайл конÑигÑÑаÑии. Рзаданном каÑалоге вклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð»ÐµÐ¶Ð°Ñ ÑолÑко ÑÐ°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, оканÑиваÑÑимиÑÑ Ð½Ð° .conf. ÐÑи ÑÑом ÑÐ°Ð¹Ð»Ñ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, наÑинаÑÑимиÑÑ Ñ Â«.», Ñоже игноÑиÑÑÑÑÑÑ, Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð¾Ñибок, Ñак как они ÑÑиÑаÑÑÑÑ ÑкÑÑÑÑми в ÑÑде ÑиÑÑем. ÐÐ°Ð±Ð¾Ñ Ñайлов во вклÑÑаемом каÑалоге обÑабаÑÑваеÑÑÑ Ð¿Ð¾ поÑÑÐ´ÐºÑ Ð¸Ð¼Ñн (опÑеделÑÐµÐ¼Ð¾Ð¼Ñ Ð¿Ñавилами, пÑинÑÑÑми в C, Ñ. е. ÑиÑÑÑ Ð¸Ð´ÑÑ Ð¿ÐµÑед бÑквами, а бÑÐºÐ²Ñ Ð² веÑÑ
нем ÑегиÑÑÑе â пеÑед бÑквами в нижнем).
ÐклÑÑение Ñайлов или каÑалогов позволÑÐµÑ ÑазделиÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
на логиÑеÑкие ÑаÑÑи, а не веÑÑи один болÑÑой Ñайл postgresql.conf. ÐапÑимеÑ, пÑедÑÑавÑÑе, ÑÑо в некоÑоÑой компании еÑÑÑ Ð´Ð²Ð° ÑеÑвеÑа баз даннÑÑ
, Ñ ÑазнÑм обÑÑмом ÐÐУ. СкоÑее вÑего пÑи ÑÑом иÑ
конÑигÑÑаÑии бÑдÑÑ Ð¸Ð¼ÐµÑÑ Ð¾Ð±Ñие ÑлеменÑÑ, напÑимеÑ, паÑамеÑÑÑ Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¶ÑÑналов. Ðо паÑамеÑÑÑ, ÑвÑзаннÑе Ñ Ð¿Ð°Ð¼ÑÑÑÑ, Ñ Ð½Ð¸Ñ
бÑдÑÑ ÑазлиÑаÑÑÑÑ. ÐÑоме Ñого, дÑÑгие паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑпеÑиÑиÑеÑкими Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑеÑвеÑа. Ðдин из ваÑианÑов ÑÑÑекÑивного ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñакими конÑигÑÑаÑиÑми â ÑазделиÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑандаÑÑной конÑигÑÑаÑии на ÑÑи Ñайла. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑ ÑÑи ÑайлÑ, можно добавиÑÑ Ð² ÐºÐ¾Ð½ÐµÑ Ñайла postgresql.conf ÑледÑÑÑие диÑекÑивÑ:
include 'shared.conf' include 'memory.conf' include 'server.conf'
ÐбÑие Ð´Ð»Ñ Ð²ÑеÑ
ÑеÑвеÑов паÑамеÑÑÑ Ð±ÑдÑÑ Ð¿Ð¾Ð¼ÐµÑаÑÑÑÑ Ð² shared.conf. Файл memory.conf Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð´Ð²Ð° ваÑианÑа â пеÑвÑй Ð´Ð»Ñ ÑеÑвеÑов Ñ 8ÐÐ ÐÐУ, а вÑоÑой Ð´Ð»Ñ ÑеÑвеÑов Ñ 16 ÐÐ. ÐаконеÑ, server.conf Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑно ÑпеÑиÑиÑеÑкие паÑамеÑÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑделÑного ÑеÑвеÑа.
Также возможно ÑоздаÑÑ ÐºÐ°Ñалог Ñ Ñайлами конÑигÑÑаÑии и помеÑÑиÑÑ ÑÑда вÑе ÑÑи ÑайлÑ. ÐапÑимеÑ, Ñак можно подклÑÑиÑÑ ÐºÐ°Ñалог conf.d в конÑе postgresql.conf:
include_dir 'conf.d'
ÐаÑем можно даÑÑ Ñайлам в каÑалоге conf.d ÑледÑÑÑие имена:
00shared.conf 01memory.conf 02server.conf
Такое именование ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑÑкий поÑÑдок подклÑÑÐµÐ½Ð¸Ñ ÑÑиÑ
Ñайлов, ÑÑо важно, Ñак как еÑли паÑамеÑÑ Ð¾Ð¿ÑеделÑеÑÑÑ Ð½ÐµÑколÑко Ñаз в ÑазнÑÑ
ÑайлаÑ
конÑигÑÑаÑии, дейÑÑвоваÑÑ Ð±ÑÐ´ÐµÑ Ð¿Ð¾Ñледнее опÑеделение. Ð ÑамкаÑ
данного пÑимеÑа, ÑÑÑановленное в conf.d/02server.conf знаÑение пеÑеопÑÐµÐ´ÐµÐ»Ð¸Ñ Ð·Ð½Ð°Ñение Ñого же паÑамеÑÑа, заданное в conf.d/01memory.conf.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑимениÑÑ ÑÑÐ¾Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ и Ñ Ð¾Ð¿Ð¸ÑаÑелÑнÑми именами Ñайлов:
00shared.conf 01memory-8GB.conf 02server-foo.conf
ÐÑи Ñаком ÑпоÑÑдоÑивании ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð²Ð°ÑианÑÑ Ñайла конÑигÑÑаÑии даÑÑÑÑ ÑникалÑное имÑ. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¸ÑклÑÑиÑÑ ÐºÐ¾Ð½ÑликÑÑ, еÑли конÑигÑÑаÑии ÑазнÑÑ ÑеÑвеÑов нÑжно Ñ ÑаниÑÑ Ð² одном меÑÑе, напÑимеÑ, в ÑепозиÑоÑии ÑиÑÑÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÐµÑÑиÑми. (ÐÑÑаÑи, Ñ Ñанение Ñайлов конÑигÑÑаÑии в ÑиÑÑеме ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÐµÑÑиÑми â ÑÑо еÑÑ Ð¾Ð´Ð¸Ð½ ÑÑÑекÑивнÑй пÑиÑм, коÑоÑÑй ÑÑÐ¾Ð¸Ñ Ð¿ÑименÑÑÑ.)