Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Схема размещения файлов базы данных
Все данные, необходимые для кластера базы данных хранятся в каталоге, который, как правило, называют PGDATA (как и соответствующую переменную окружения). PGDATA обычно локализован в../var/lib/pgsql/data. Несколько кластеров, управляемых разными экземплярами сервера, могут существовать на одной машине. Каталог PGDATA содержит несколько подкаталогов и файлов управления, таких как: PG_VERSION - файл, содержащий номер версии PostgreSQL, base - подкаталог, содержащий подкаталоги баз данных, и др., а также необходимые файлы конфигурации кластера postgresql.conf, pg_hba.conf и pg_ident.conf (хотя в PostgreSQL 8.0 и выше, можно сохранить их в другом месте). Для каждой базы данных в кластере есть подкаталог PGDATA / base, имя которого совпадает с OID (object identifier - идентификатор объекта) базы данных, хранящимся в системной таблице pg_database. Этот подкаталог используется для хранения файлов базы данных, в частности, его системных каталогов. Каждая таблица и индекс сохраняется в отдельном файле с именем, совпадающим с дескриптором таблицы (filenode). Кроме того каждая таблица или индекс имеет карту свободного пространства (free space map), в которой хранится информация о доступном объеме памяти. Карта свободного пространства хранится в файле с именем, состоящим из десктриптора таблицы или индекса и суффикса_fsm. Каждое отношение имеет также карту видимости (visibility map), чтобы отслеживать, какие страницы содержат кортежи, видимые для всех активных транзакций Эта карта хранится в файле с именем, состоящим из дескриптора отношения и суффика _vm. Например, если дескриптор отношения есть 12345, карта видимости хранится в файле с именем 12345_vm в том же каталоге, что и основной файл отношения. Обратите внимание, что индексы не имеют карт видимости. В карте видимости на каждую страницу отводится 1 бит. Установленный бит означает, что все кортежи на странице видимы для всех транзакций, т.е. страница не содержит кортежей, которые необходимо очищать. Когда таблица или индекс превышают 1 Гб, они делятся на гигабайтные сегменты (1 Гб - это размер по умолчанию, его можно настроить с помощью опции конфигурации -segsize при сборке PostgreSQL). Имя файла первого сегмента совпадает с filenode, последующие сегменты называются filenode.1, filenode.2 и т.д. Такая схема позволяет избежать проблем для платформ, которые имеют ограничения на размер файла.
PostgreSQL поддерживает табличные пространства (tablespaces), которые позволяют задать место хранения объектов БД в файловой системе. Сначала создается табличное пространство с определенным именем. Далее, это имя может быть использовано при создании таблиц, чтобы разместить эти таблицы именно в данном табличном пространстве. Каждое определяемое пользователем табличное пространство имеет ссылку внутри каталога PGDATA/pg_tblspc, которая указывает на физический каталог этого табличного пространства. Эта ссылка имеет такое же имя, как и OID табличного пространства. Внутри физического каталога табличного пространства есть подкаталог с именем, которое зависит от версии PostgreSQL сервера, например, PG_9.0_201008051. В этом подкаталоге содержатся подкаталоги для каждой базы данных ((их имена совпадают с OID базы данных), которая имеет элементы в данном табличном пространстве. Для именования записи таблиц и индексов в этих подкаталогах используется схема, основанная на filenode.. Временные файлы (для таких операций, как сортировка больших объемов данных) создаются в PGDATA/base/pgsql_tmp, или в подкаталоге pgsql_tmp каталога табличного пространства, если для них указано табличное пространство, отличное от табличного пространства по умолчанию. Имя временного файла имеет вид pgsql_tmpPPP.NNN, где PPP - OIDвычислительной машины базы данных (backend), NNN - метки различных временных файлов.
|
|||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 197; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.208.117 (0.004 с.) |