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


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