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 называет базы данных «каталогами», но на практике у них нет отличий.
Учитывая вышеизложенные особенности и ограничения РСУБД, приведём два простых примера перехода от обычной к распределённой схеме базы данных.