powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Аналог ORACLE Instance
31 сообщений из 31, показаны все 2 страниц
Аналог ORACLE Instance
    #39243763
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...с инета... Что такое 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 как механизм нафиг не нужен?

--
Россия - отличная страна!
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39243773
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra...с инета... Один instance может открыть только одну database.
Начиная с версии Oracle 12с с её контейнерными базами данных данное утверждение перестает быть истинным. И сейчас один инстанс может обслуживать одновременно несколько баз.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39243846
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra,

Экземпляр — это серверные процессы + разделяемая память, которые обслуживают одну директорию с данными (PGDATA в нашем случае). По сути -- это запущенный софт, который предоставляет удалённый SQL-доступ к базе данных.
Аналог SGA — есть, фоновые процессы — есть. PGA нет, содержимое SGA таже отличается, но это естественно.

В Postgres'е фишек, подобных “запустить независимый экземпляр” или же “не-открывать базу” нету.
Хотя выражение “работающий экземпляр ПЖ” часто используется.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39244016
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял. Что такое PGA, зачем вообще необходимо такое разделение?
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39244074
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra,

Вопрос основывался на архитектуре ORACLE, PGA = Process Global Area, одна из частей экземпляра в этой базе.

PCContraзачем вообще необходимо такое разделение? я не понял о чём речь.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39244197
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovВ Postgres'е фишек, подобных “запустить независимый экземпляр” или же “не-открывать базу” нету.
Хотя выражение “работающий экземпляр ПЖ” часто используется.

А данные фишки нужны?
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39244204
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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).
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39244211
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContra,

Они позволяют разорвать 22 проблему: чтобы создать базу, надо подключиться к базе.

ORACLE позволяет поднять инстанцию и сделать `CREATE DATABASE`. Также можно поднять инстанцию, примонтировать базу и двигать файлы данных, потом открыть и работать.

В Postgres-е инициализацию делает `initdb`, работать с файлами данных не надо. Так что можно сказать, что фишки эти не нужны -- всё сделано иначе.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39245677
PCContra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov Так что можно сказать, что фишки эти не нужны -- всё сделано иначе.
я это и хотел услышать
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39246690
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите откуда клиентское ПО, например SQL Manager for PostgreSQL берет данные о базах?
В Oracle клиент смотрит в файл tnsnames.ora
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39246712
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014Подскажите откуда клиентское ПО, например SQL Manager for PostgreSQL берет данные о базах?
В Oracle клиент смотрит в файл tnsnames.ora
ini файлов, коим по сути tnsnames.ora и является, или в случае windows из регистра. SAS2014например SQL Manager for PostgreSQL берёт данные из регистра.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39250942
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PCContraне понял. Что такое PGA, зачем вообще необходимо такое разделение?

в PGA условно говоря, твои пакетные переменные, коллекции и прочий хлам для сортировок
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39250943
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но это в оракуле, где в постре хрянятся коллекции и прочий хлам я ещё не понял
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39250980
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonно это в оракуле, где в постре хрянятся коллекции и прочий хлам я ещё не понял

В памяти конкретного процесса обслуживающего текущее соединение.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251081
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukJonhsonно это в оракуле, где в постре хрянятся коллекции и прочий хлам я ещё не понял

В памяти конкретного процесса обслуживающего текущее соединение.


если это серверный процесс, то по сути это и есть PGA тогда. Значит должен быть аналог в ini файле PGA_AGGREGATE_TARGET/LIMIT

я так рассуждаю.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251122
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson,

В ORACLE PGA общий (шареный). В Postgres'е — всё храниться в рамках сессий, аналога PGA_LIMIT нет.

Часть информации (планы, кэш системных данных) должны быть там всегда, потому не конфигурируются.
В остальном параметр `work_mem`, но это параметр планировщика, он не накладывает ограничений на использование памяти. Также он работает для каждого узла в плане запроса.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251167
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovJonhson,

В ORACLE PGA общий (шареный). В Postgres'е — всё храниться в рамках сессий, аналога PGA_LIMIT нет.

Часть информации (планы, кэш системных данных) должны быть там всегда, потому не конфигурируются.
В остальном параметр `work_mem`, но это параметр планировщика, он не накладывает ограничений на использование памяти. Также он работает для каждого узла в плане запроса.

о оракуле общий SGA, PGA же отдельный для процесса (в режиме выделенного сервера конечно, разделяемый не рассматриваем, там сложнее) и у него свои настройки

но это не суть.

По поводу ответа, если у вас планы в аналоге ПГА (в памяти серверного процесса), то получается они не шарятся и каждый раз перепарсиваются (hard parse)?

Есть ли где-то схема наглядная как это работает.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251169
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251175
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqJonhson,



https://habrahabr.ru/company/postgrespro/blog/275755/


Пробежал бегло, вот что:

В Постгресе нет глобального кэша разобранных запросов. Более того, если не предпринять специальных усилий, то запрос не будет сохраняться и локально в памяти процесса.


Но это же труба. Без shared pool при увеличении кол-ва запросов производительность снизится нелинейно ,скажем так.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251183
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonНо это же труба. Без shared pool при увеличении кол-ва запросов производительность снизится нелинейно ,скажем так.
? c[ezkb

накидайте модель в подтверждение. если сможете.

а по теме :
https://www.postgresql.org/docs/current/static/sql-prepare.html
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251185
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251314
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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


ну тык о чём же и речь.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251316
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk
PS: shared pool в oracle тоже кучу своих проблем имеет. В общем на вкус и цвет все фломастеры разные.


ммм конкретнее? ЧТо не устраивает в разделяемом пуле? Защёлки ?

У меня такое чувство, что постре к этому придёт, рано или поздно
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251351
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson<>
Мне кажется преимущество 1-й модели очевидны. Да и с точки зрения логики, запрос должен принадлежать базе, а не конкретному подключению(сессии).
<>
вы упускаете одну деталь -- постгрес, в отличие от недосубд "ара-кал" -- имеет транзакционный ддл.

т.е. именно в силу этого запрос принадлежит сессии , а не базе.

посему ему приходится иметь сессионный кеш, или же придумывать версионный кеш с видимостями (xmin xmax пихать в ключи кешевых таблиц, грубо говоря).

с последним у него туго -- судя по всему например таблицы значений иммутабных функий лежат в общем кеше, и при перезагрузке в одном из сеансов мало того, что инвалидизируется кеш, но ранее запущенные запросы, намеревавшиеся взять значение оттуда, а не вычислить -- падают с воплями. и т.п. и т.д. (в общем, тут много не додумано, но уже реализовано. с тем же уровнем изоляции ддл ф--й полная оппа).


и нахер нахер не нужен ара--кал вей в пж. пока я могу перегрузить ф--ю в транзе и тут же дернуть [пусть и с 100500 оговорок] -- мне такой свободы ораел не даст.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251378
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

давайте по серьёзней.

анализируется возможность перевода с oracle на pg части приложения.


Да, в оракле ДДЛ не транзакционен, но

1. ДДЛ изменений из приложения быть не должно. Только из maintance скриптов.
2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
  CREATE RESTORE POINT rp1;  
  create table ... 
  alter table ... 
  create or replace package... 
  .... 
  упппс что-то не то 
  FLASHBACK DATABASE TO RESTORE POINT rp1; 




то есть как видите особой проблемы это не несёт
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251400
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonqwwq,

давайте по серьёзней.

анализируется возможность перевода с oracle на pg части приложения.


Да, в оракле ДДЛ не транзакционен, но

1. ДДЛ изменений из приложения быть не должно. Только из maintance скриптов.
2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
  CREATE RESTORE POINT rp1;  
  create table ... 
  alter table ... 
  create or replace package... 
  .... 
  упппс что-то не то 
  FLASHBACK DATABASE TO RESTORE POINT rp1; 




то есть как видите особой проблемы это не несёт

Ой как порадуются пользователи сайта что их последние 10 минут переписки взяли и откатили не спросивши.
Вы похоже с банковской сферы пришли где на время изменений всю работу стопают.
На сайтах как правило DDL вносят БЕЗ остановки проекта и там транзакционные DDL критичны чтобы не получить полупереваренный фарш в случае ошибки DDL.
И более того вносят DDL не в релизном цикле а по факту выхода какой то конкретной фичи (т.е. 10-20 раз в неделю - легко).

Да и возможность потестировать хранимку на работоспособность локально в транзакции перед тем как ее commit или rollback тоже очень удобна.

В общем у Pg есть свои плюсы, у Oracle тоже есть. Нет смысла обсуждать что лучше.
99% прикладных задач решается нормально и там и там.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251403
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonВ случае когда запросы кешированы в shared pool ничего не меняется, всё наши выделенные сервера (их 100) пользуют те же 400 закешированных и распасенных запросов.Парс в pg дёшев. Эффект от общего кеша для PG незначителен или даже вреден для приложений, которые суют параметры литералами. Опять же, меньше проблем с неэффективными планами, сформированными по необычным параметрам каким-нибудь джобом до начала активности рабочего дня.

qwwqпока я могу перегрузить ф--ю в транзе и тут же дернутьЭта особенность удобна для отладки кода на продуктивной базе с конкурентной работой пользователей. Достаточно специфичный сценарий.
Зато оракл позволяет использовать несколько версий ддл с одними данными. Тоже с ограничениями, конечно. Версионность ддл оракла может быть использована и для пробной эксплуатации на бою ограниченным кругом пользователей, и для постепенной смены версий серверов приложений без останова доступа к сервису в целом.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251406
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смысл обсуждать есть, поскольку иначе трудно оценить последствия возможного перехода.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251409
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukJonhson
1. ДДЛ изменений из приложения быть не должно. Только из maintance скриптов.

то есть как видите особой проблемы это не несёт

Ой как порадуются пользователи сайта что их последние 10 минут переписки взяли и откатили не спросивши.


да не, edition же есть, впрочем относительно темы это роли не играет
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251428
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonMaxim Bogukпропущено...


Ой как порадуются пользователи сайта что их последние 10 минут переписки взяли и откатили не спросивши.


да не, edition же есть, впрочем относительно темы это роли не играет

хоть кол на голове теши.

сказали же -- транзакционность ддл предполагает разные версии в разных сессиях. т.е. разные результаты вот хотя бы и синтаксического разбора.

хотя можно было вместо сессионности исходить из того, что больше 2-х версий любой шняжки одновременно быть не может -- и можно разделять по xmin xmax видимости общего кеша.
...
Рейтинг: 0 / 0
Аналог ORACLE Instance
    #39251437
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2. Эта особенность удобна для отладки кода на продуктивной базе с конкурентной работой пользователей. Достаточно специфичный сценарий.вообще--то она много что позволяет.

если вы чего--то не умеете ею ещё -- ваша проблема

вот кишки у неё насквозь гнилые, с т.з. изоляции хотя бы -- це печаль
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Аналог ORACLE Instance
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]