22.1. Обзор Postgres Pro Shardman #

Postgres Pro Shardman — это распределённая система, имеющая как преимущества, так и недостатки, присущие таким системам. Кроме того, Postgres Pro Shardman в первую очередь предназначена для OLTP-нагрузки. Простые OLAP-запросы к Postgres Pro Shardman также возможны. Если нужно использовать OLAP-функциональность в OLTP-системе, имейте в виду, что список аналитических и агрегатных SQL-функций для отправки и исполнения в других сегментах сильно ограничен.

У Porstgres Pro Shardman нет единого сервера БД, вместо него существует пул сегментированных равноправных серверов.

Следует внимательно относится к приведению типов данных в запросах, так как наличие функции преобразования типов может привести к тому, что условие будет невозможно протолкнуть на удалённый сервер.

Для более детальной информации о главных терминах обратитесь к Глоссарию.

При подключении к серверу баз данных клиент должен указать имя базы в запросе подключения. Обращаться к нескольким базам через одно подключение нельзя, однако клиенты могут открыть несколько подключений к одной базе или к разным. Безопасность на уровне базы обеспечивают две составляющие: управление подключениями (см. Раздел 20.1), которое осуществляется на уровне соединения, и управление доступом к объектам (см. Раздел 5.8), для которого реализована система прав.

Хотя в Postgres Pro Shardman можно создать несколько баз данных, каждую на своём сегменте, прежде чем это делать, рекомендуется тщательно взвесить все связанные с этим риски и ограничения. В частности, наличие общего WAL (см. Главу 28) может повлиять на возможности резервного копирования и восстановления данных. Отдельные базы в кластере изолированы друг от друга с точки зрения пользователя, но с точки зрения администратора баз данных они тесно связаны.

Базы данных создаются командой CREATE DATABASE (см. Раздел 22.3), а удаляются командой DROP DATABASE (см. Раздел 22.6). Список существующих баз данных можно посмотреть в системном каталоге pg_database, например,

SELECT datname FROM pg_database;

Метакоманда \l или ключ -l командной строки приложения psql также позволяют вывести список существующих баз данных.

Примечание

Стандарт SQL называет базы данных «каталогами», но на практике у них нет отличий.

Учитывая вышеизложенные особенности и ограничения РСУБД, приведём два простых примера перехода от обычной к распределённой схеме базы данных.