|
|
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
...с инета... Что такое ORACLE Database? Это данные которые будут обрабатываться как единое целое. Database состоит из файлов операционной системы. Физически существуют database files и redo log files. Логически database files содержат словари, таблицы пользователей и redo log файлы. Дополнительно database требует одну или более копий control file. Что такое ORACLE Instance? ORACLE Instance обеспечивает программные механизмы доступа и управления database. Instance может быть запущен независимо от любой database (без монтирования или открытия любой database). Один instance может открыть только одну database. В то время как одна database может быть открыта несколькими Instance. Instance состоит из: SGA (System Global Area), которая обеспечивает коммуникацию между процессами; до пяти (в последних версиях больше) бэкграундовых процессов. От себя добавлю - database включает в себя tablespace, tablespace включает в себя segments (в одном файле данных может быть один или несколько сегментов, сегменты не могут быть разделены на несколько файлов). segments включают в себя extents. На работе у меня оракл, но непосредственно администрированием я не занимаюсь. Для чего instance нужен - представление смутное, как говорят, для мало-мальского повышения надежности работы БД. Есть ли что-то подобное в пг? или instance как механизм нафиг не нужен? -- Россия - отличная страна! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 11:00 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
PCContra...с инета... Один instance может открыть только одну database. Начиная с версии Oracle 12с с её контейнерными базами данных данное утверждение перестает быть истинным. И сейчас один инстанс может обслуживать одновременно несколько баз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 11:05 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
PCContra, Экземпляр — это серверные процессы + разделяемая память, которые обслуживают одну директорию с данными (PGDATA в нашем случае). По сути -- это запущенный софт, который предоставляет удалённый SQL-доступ к базе данных. Аналог SGA — есть, фоновые процессы — есть. PGA нет, содержимое SGA таже отличается, но это естественно. В Postgres'е фишек, подобных “запустить независимый экземпляр” или же “не-открывать базу” нету. Хотя выражение “работающий экземпляр ПЖ” часто используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 11:43 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
не понял. Что такое PGA, зачем вообще необходимо такое разделение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 13:32 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
PCContra, Вопрос основывался на архитектуре ORACLE, PGA = Process Global Area, одна из частей экземпляра в этой базе. PCContraзачем вообще необходимо такое разделение? я не понял о чём речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 14:25 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
vyegorovВ Postgres'е фишек, подобных “запустить независимый экземпляр” или же “не-открывать базу” нету. Хотя выражение “работающий экземпляр ПЖ” часто используется. А данные фишки нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 16:03 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
https://www.postgresql.org/docs/current/static/app-postgres.html More than one postgres instance can run on a system at one time, so long as they use different data areas and different communication ports (see below). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 16:12 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
PCContra, Они позволяют разорвать 22 проблему: чтобы создать базу, надо подключиться к базе. ORACLE позволяет поднять инстанцию и сделать `CREATE DATABASE`. Также можно поднять инстанцию, примонтировать базу и двигать файлы данных, потом открыть и работать. В Postgres-е инициализацию делает `initdb`, работать с файлами данных не надо. Так что можно сказать, что фишки эти не нужны -- всё сделано иначе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2016, 16:17 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
vyegorov Так что можно сказать, что фишки эти не нужны -- всё сделано иначе. я это и хотел услышать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 16:56 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Подскажите откуда клиентское ПО, например SQL Manager for PostgreSQL берет данные о базах? В Oracle клиент смотрит в файл tnsnames.ora ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2016, 08:53 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
SAS2014Подскажите откуда клиентское ПО, например SQL Manager for PostgreSQL берет данные о базах? В Oracle клиент смотрит в файл tnsnames.ora ini файлов, коим по сути tnsnames.ora и является, или в случае windows из регистра. SAS2014например SQL Manager for PostgreSQL берёт данные из регистра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2016, 09:07 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
PCContraне понял. Что такое PGA, зачем вообще необходимо такое разделение? в PGA условно говоря, твои пакетные переменные, коллекции и прочий хлам для сортировок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 23:23 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
но это в оракуле, где в постре хрянятся коллекции и прочий хлам я ещё не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 23:25 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Jonhsonно это в оракуле, где в постре хрянятся коллекции и прочий хлам я ещё не понял В памяти конкретного процесса обслуживающего текущее соединение. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 05:21 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Maxim BogukJonhsonно это в оракуле, где в постре хрянятся коллекции и прочий хлам я ещё не понял В памяти конкретного процесса обслуживающего текущее соединение. если это серверный процесс, то по сути это и есть PGA тогда. Значит должен быть аналог в ini файле PGA_AGGREGATE_TARGET/LIMIT я так рассуждаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 10:51 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Jonhson, В ORACLE PGA общий (шареный). В Postgres'е — всё храниться в рамках сессий, аналога PGA_LIMIT нет. Часть информации (планы, кэш системных данных) должны быть там всегда, потому не конфигурируются. В остальном параметр `work_mem`, но это параметр планировщика, он не накладывает ограничений на использование памяти. Также он работает для каждого узла в плане запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 11:46 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
vyegorovJonhson, В ORACLE PGA общий (шареный). В Postgres'е — всё храниться в рамках сессий, аналога PGA_LIMIT нет. Часть информации (планы, кэш системных данных) должны быть там всегда, потому не конфигурируются. В остальном параметр `work_mem`, но это параметр планировщика, он не накладывает ограничений на использование памяти. Также он работает для каждого узла в плане запроса. о оракуле общий SGA, PGA же отдельный для процесса (в режиме выделенного сервера конечно, разделяемый не рассматриваем, там сложнее) и у него свои настройки но это не суть. По поводу ответа, если у вас планы в аналоге ПГА (в памяти серверного процесса), то получается они не шарятся и каждый раз перепарсиваются (hard parse)? Есть ли где-то схема наглядная как это работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 12:39 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
qwwqJonhson, ?ы https://habrahabr.ru/company/postgrespro/blog/275755/ Пробежал бегло, вот что: В Постгресе нет глобального кэша разобранных запросов. Более того, если не предпринять специальных усилий, то запрос не будет сохраняться и локально в памяти процесса. Но это же труба. Без shared pool при увеличении кол-ва запросов производительность снизится нелинейно ,скажем так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 12:50 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
JonhsonНо это же труба. Без shared pool при увеличении кол-ва запросов производительность снизится нелинейно ,скажем так. ? c[ezkb накидайте модель в подтверждение. если сможете. а по теме : https://www.postgresql.org/docs/current/static/sql-prepare.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 13:01 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
JonhsonqwwqJonhson, ?ы https://habrahabr.ru/company/postgrespro/blog/275755/ Пробежал бегло, вот что: В Постгресе нет глобального кэша разобранных запросов. Более того, если не предпринять специальных усилий, то запрос не будет сохраняться и локально в памяти процесса. Но это же труба. Без shared pool при увеличении кол-ва запросов производительность снизится нелинейно ,скажем так. Это почему бы? Планирование конечно не бесплатное но в общем достаточно дешевое для простых запросов. 100.000 readonly простых TPS можно и без использования prepared получить на нормальной железке. Ну и большая часть API к postgres умеет prepared запросы использовать штатно (не без своих издержек конечно). Вообще стандартная практика работы с PG такая: или 1)приложение не использует prepared запросы и работает через внешний connection pooler (pgbouncer) или 2)приложение работает через API на хранимках, а они свои планы кешируют всегда (если им не мешать основательно руками в этом деле). PS: shared pool в oracle тоже кучу своих проблем имеет. В общем на вкус и цвет все фломастеры разные. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 13:04 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
qwwqJonhsonНо это же труба. Без shared pool при увеличении кол-ва запросов производительность снизится нелинейно ,скажем так. ? c[ezkb накидайте модель в подтверждение. если сможете. ну смотрите, допустим приложение, 1000 юзверей, 50 соединений пул. Приложение содержит 400 разных (до биндов естессно) sql запросов. Количество юзеров увеличивается до 2000, пул увеличиваем до 100. В случае когда запросы кешированы в shared pool ничего не меняется, всё наши выделенные сервера (их 100) пользуют те же 400 закешированных и распасенных запросов. База нагружается на soft parsing, что копейки. Это случай оркла с разделяемым пулом. В случае же если все запросы локально в серверных процесса база существенно нагружается хард парсингом плюс храним один и те же разобранные запросы в 100 разных серверный процессах. Мне кажется преимущество 1-й модели очевидны. Да и с точки зрения логики, запрос должен принадлежать базе, а не конкретному подключению(сессии). а по теме : https://www.postgresql.org/docs/current/static/sql-prepare.html ну тык о чём же и речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 15:37 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk PS: shared pool в oracle тоже кучу своих проблем имеет. В общем на вкус и цвет все фломастеры разные. ммм конкретнее? ЧТо не устраивает в разделяемом пуле? Защёлки ? У меня такое чувство, что постре к этому придёт, рано или поздно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 15:39 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Jonhson<> Мне кажется преимущество 1-й модели очевидны. Да и с точки зрения логики, запрос должен принадлежать базе, а не конкретному подключению(сессии). <> вы упускаете одну деталь -- постгрес, в отличие от недосубд "ара-кал" -- имеет транзакционный ддл. т.е. именно в силу этого запрос принадлежит сессии , а не базе. посему ему приходится иметь сессионный кеш, или же придумывать версионный кеш с видимостями (xmin xmax пихать в ключи кешевых таблиц, грубо говоря). с последним у него туго -- судя по всему например таблицы значений иммутабных функий лежат в общем кеше, и при перезагрузке в одном из сеансов мало того, что инвалидизируется кеш, но ранее запущенные запросы, намеревавшиеся взять значение оттуда, а не вычислить -- падают с воплями. и т.п. и т.д. (в общем, тут много не додумано, но уже реализовано. с тем же уровнем изоляции ддл ф--й полная оппа). и нахер нахер не нужен ара--кал вей в пж. пока я могу перегрузить ф--ю в транзе и тут же дернуть [пусть и с 100500 оговорок] -- мне такой свободы ораел не даст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 16:12 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
qwwq, давайте по серьёзней. анализируется возможность перевода с oracle на pg части приложения. Да, в оракле ДДЛ не транзакционен, но 1. ДДЛ изменений из приложения быть не должно. Только из maintance скриптов. 2. Код: sql 1. 2. 3. 4. 5. 6. 7. то есть как видите особой проблемы это не несёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 16:41 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Jonhsonqwwq, давайте по серьёзней. анализируется возможность перевода с oracle на pg части приложения. Да, в оракле ДДЛ не транзакционен, но 1. ДДЛ изменений из приложения быть не должно. Только из maintance скриптов. 2. Код: sql 1. 2. 3. 4. 5. 6. 7. то есть как видите особой проблемы это не несёт Ой как порадуются пользователи сайта что их последние 10 минут переписки взяли и откатили не спросивши. Вы похоже с банковской сферы пришли где на время изменений всю работу стопают. На сайтах как правило DDL вносят БЕЗ остановки проекта и там транзакционные DDL критичны чтобы не получить полупереваренный фарш в случае ошибки DDL. И более того вносят DDL не в релизном цикле а по факту выхода какой то конкретной фичи (т.е. 10-20 раз в неделю - легко). Да и возможность потестировать хранимку на работоспособность локально в транзакции перед тем как ее commit или rollback тоже очень удобна. В общем у Pg есть свои плюсы, у Oracle тоже есть. Нет смысла обсуждать что лучше. 99% прикладных задач решается нормально и там и там. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 17:04 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
JonhsonВ случае когда запросы кешированы в shared pool ничего не меняется, всё наши выделенные сервера (их 100) пользуют те же 400 закешированных и распасенных запросов.Парс в pg дёшев. Эффект от общего кеша для PG незначителен или даже вреден для приложений, которые суют параметры литералами. Опять же, меньше проблем с неэффективными планами, сформированными по необычным параметрам каким-нибудь джобом до начала активности рабочего дня. qwwqпока я могу перегрузить ф--ю в транзе и тут же дернутьЭта особенность удобна для отладки кода на продуктивной базе с конкурентной работой пользователей. Достаточно специфичный сценарий. Зато оракл позволяет использовать несколько версий ддл с одними данными. Тоже с ограничениями, конечно. Версионность ддл оракла может быть использована и для пробной эксплуатации на бою ограниченным кругом пользователей, и для постепенной смены версий серверов приложений без останова доступа к сервису в целом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 17:07 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
смысл обсуждать есть, поскольку иначе трудно оценить последствия возможного перехода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 17:11 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
Maxim BogukJonhson 1. ДДЛ изменений из приложения быть не должно. Только из maintance скриптов. то есть как видите особой проблемы это не несёт Ой как порадуются пользователи сайта что их последние 10 минут переписки взяли и откатили не спросивши. да не, edition же есть, впрочем относительно темы это роли не играет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 17:15 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
JonhsonMaxim Bogukпропущено... Ой как порадуются пользователи сайта что их последние 10 минут переписки взяли и откатили не спросивши. да не, edition же есть, впрочем относительно темы это роли не играет хоть кол на голове теши. сказали же -- транзакционность ддл предполагает разные версии в разных сессиях. т.е. разные результаты вот хотя бы и синтаксического разбора. хотя можно было вместо сессионности исходить из того, что больше 2-х версий любой шняжки одновременно быть не может -- и можно разделять по xmin xmax видимости общего кеша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 17:44 |
|
||
|
Аналог ORACLE Instance
|
|||
|---|---|---|---|
|
#18+
p2. Эта особенность удобна для отладки кода на продуктивной базе с конкурентной работой пользователей. Достаточно специфичный сценарий.вообще--то она много что позволяет. если вы чего--то не умеете ею ещё -- ваша проблема вот кишки у неё насквозь гнилые, с т.з. изоляции хотя бы -- це печаль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 17:50 |
|
||
|
|

start [/forum/topic.php?all=1&fid=53&tid=1997190]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 437ms |

| 0 / 0 |
