|
|
|
Аналог 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 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39243773&tid=1997190]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
218ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 516ms |

| 0 / 0 |
