21.1. ÐÐ±Ð·Ð¾Ñ #
ÐекоÑоÑÑе обÑекÑÑ, вклÑÑÐ°Ñ Ñоли, Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
и ÑаблиÑнÑе пÑоÑÑÑанÑÑва, опÑеделÑÑÑÑÑ Ð½Ð° ÑÑовне клаÑÑеÑа и ÑоÑ
ÑанÑÑÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве pg_global. ÐнÑÑÑи клаÑÑеÑа ÑÑÑеÑÑвÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, коÑоÑÑе оÑÐ´ÐµÐ»ÐµÐ½Ñ Ð´ÑÑг Ð¾Ñ Ð´ÑÑга, но могÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº обÑекÑам ÑÑÐ¾Ð²Ð½Ñ ÐºÐ»Ð°ÑÑеÑа. ÐнÑÑÑи каждой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
имеÑÑÑÑ ÑÑ
емÑ, ÑодеÑжаÑие Ñакие обÑекÑÑ, как ÑаблиÑÑ Ð¸ ÑÑнкÑии. Таким обÑазом, Ð¿Ð¾Ð»Ð½Ð°Ñ Ð¸ÐµÑаÑÑ
Ð¸Ñ Ð²ÑглÑÐ´Ð¸Ñ ÑледÑÑÑим обÑазом: клаÑÑеÑ, база даннÑÑ
, ÑÑ
ема, ÑаблиÑа (или иной обÑекÑ, напÑÐ¸Ð¼ÐµÑ ÑÑнкÑиÑ).
ÐÑи подклÑÑении к ÑеÑвеÑÑ Ð±Ð°Ð· даннÑÑ ÐºÐ»Ð¸ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑказаÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð² запÑоÑе подклÑÑениÑ. ÐбÑаÑаÑÑÑÑ Ðº неÑколÑким базам ÑеÑез одно подклÑÑение нелÑзÑ, однако клиенÑÑ Ð¼Ð¾Ð³ÑÑ Ð¾ÑкÑÑÑÑ Ð½ÐµÑколÑко подклÑÑений к одной базе или к ÑазнÑм. ÐезопаÑноÑÑÑ Ð½Ð° ÑÑовне Ð±Ð°Ð·Ñ Ð¾Ð±ÐµÑпеÑиваÑÑ Ð´Ð²Ðµ ÑоÑÑавлÑÑÑие: ÑпÑавление подклÑÑениÑми (Ñм. Раздел 19.1), коÑоÑое оÑÑÑеÑÑвлÑеÑÑÑ Ð½Ð° ÑÑовне ÑоединениÑ, и ÑпÑавление доÑÑÑпом к обÑекÑам (Ñм. Раздел 5.8), Ð´Ð»Ñ ÐºÐ¾ÑоÑого Ñеализована ÑиÑÑема пÑав. ÐбÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (Ñм. postgres_fdw) позволÑÑÑ ÑоздаÑÑ Ð² одной базе даннÑÑ Ð¾Ð±ÑекÑÑ, ÑкÑÑваÑÑие за Ñобой обÑекÑÑ Ð² дÑÑÐ³Ð¸Ñ Ð±Ð°Ð·Ð°Ñ Ð¸Ð»Ð¸ клаÑÑеÑÐ°Ñ . ÐодобнÑÑ Ð¶Ðµ ÑÑнкÑионалÑноÑÑÑ Ð¿ÑедоÑÑавлÑÐµÑ Ð¸ более ÑÑаÑÑй модÑÐ»Ñ dblink (Ñм. dblink). Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ñе полÑзоваÑели могÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ ÐºÐ¾ вÑем базам даннÑÑ , иÑполÑзÑÑ Ð²Ñе меÑÐ¾Ð´Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
Ð ÑлÑÑаÑÑ , когда в клаÑÑеÑе Postgres Pro планиÑÑеÑÑÑ ÑазмеÑаÑÑ Ð´Ð°Ð½Ð½Ñе неÑвÑзаннÑÑ Ð¿ÑоекÑов или Ñ Ð½Ð¸Ð¼ бÑдÑÑ ÑабоÑаÑÑ Ð¿Ð¾Ð»ÑзоваÑели, коÑоÑÑе в пÑинÑипе не Ð´Ð¾Ð»Ð¶Ð½Ñ Ð½Ð¸ÐºÐ°Ðº взаимодейÑÑвоваÑÑ, ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð¾ÑделÑнÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ оÑганизоваÑÑ ÑпÑавление подклÑÑением и доÑÑÑпом к обÑекÑам ÑооÑвеÑÑÑвÑÑÑим обÑазом. ÐÑли же пÑоекÑÑ Ð¸Ð»Ð¸ полÑзоваÑели взаимоÑвÑÐ·Ð°Ð½Ñ Ð¸ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸ÑполÑзоваÑÑ ÑеÑÑÑÑÑ Ð´ÑÑг дÑÑга, они Ð´Ð¾Ð»Ð¶Ð½Ñ ÑазмеÑаÑÑÑÑ Ð² одной базе даннÑÑ , но, возможно, в оÑделÑнÑÑ ÑÑ ÐµÐ¼Ð°Ñ . Таким обÑазом бÑÐ´ÐµÑ Ñоздана модÑлÑÐ½Ð°Ñ ÑÑÑÑкÑÑÑа Ñ Ð¸Ð·Ð¾Ð»Ð¸ÑованнÑми пÑоÑÑÑанÑÑвами имÑн и ÑпÑавлением доÑÑÑпа. ÐодÑобнее об ÑпÑавлении ÑÑ ÐµÐ¼Ð°Ð¼Ð¸ ÑаÑÑказÑваеÑÑÑ Ð² Разделе 5.10.
ХоÑÑ Ð² одном клаÑÑеÑе можно ÑоздаÑÑ Ð½ÐµÑколÑко баз даннÑÑ , пÑежде Ñем ÑÑо делаÑÑ, ÑекомендÑеÑÑÑ ÑÑаÑелÑно взвеÑиÑÑ Ð²Ñе ÑвÑзаннÑе Ñ ÑÑим ÑиÑки и огÑаниÑениÑ. Ð ÑаÑÑноÑÑи, налиÑие обÑего WAL (Ñм. ÐлавÑ 27) Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° возможноÑÑи ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑделÑнÑе Ð±Ð°Ð·Ñ Ð² клаÑÑеÑе изолиÑÐ¾Ð²Ð°Ð½Ñ Ð´ÑÑг Ð¾Ñ Ð´ÑÑга Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, но Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑа баз даннÑÑ Ð¾Ð½Ð¸ ÑеÑно ÑвÑзанÑ.
ÐÐ°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
ÑоздаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ CREATE DATABASE (Ñм. Раздел 21.2), а ÑдалÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ DROP DATABASE (Ñм. Раздел 21.5). СпиÑок ÑÑÑеÑÑвÑÑÑиÑ
баз даннÑÑ
можно поÑмоÑÑеÑÑ Ð² ÑиÑÑемном каÑалоге pg_database, напÑимеÑ,
SELECT datname FROM pg_database;
ÐеÑакоманда \l или клÑÑ -l командной ÑÑÑоки пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ psql Ñакже позволÑÑÑ Ð²ÑвеÑÑи ÑпиÑок ÑÑÑеÑÑвÑÑÑиÑ
баз даннÑÑ
.
ÐÑимеÑание
СÑандаÑÑ SQL назÑÐ²Ð°ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Â«ÐºÐ°Ñалогами», но на пÑакÑике Ñ Ð½Ð¸Ñ Ð½ÐµÑ Ð¾ÑлиÑий.