
PostgreSQL хранит данные в виде отдельных баз, каждая из которых может иметь собственные таблицы, схемы и пользователей. Для управления несколькими базами важно уметь быстро получать их список и понимать структуру существующих ресурсов.
Существуют различные подходы к просмотру баз данных: через командную строку psql, с помощью SQL-запросов или через графические интерфейсы. Каждый метод позволяет получать разный уровень информации: от простого списка названий до размеров, владельцев и состояния баз.
Для системных администраторов и разработчиков полезно знать ключевые команды, такие как \l или \list в psql, а также SQL-запросы к таблице pg_database. Это позволяет не только увидеть перечень баз, но и фильтровать их по шаблону или владельцу.
Непосредственный доступ к информации о базах ускоряет диагностику, планирование резервного копирования и анализ нагрузки. Постоянный мониторинг структуры баз помогает поддерживать упорядоченность и безопасность данных.
Просмотр баз данных через psql командную строку

Командная строка psql позволяет получить список всех баз данных на сервере PostgreSQL без запуска дополнительных инструментов. Для подключения используйте команду:
psql -U <имя_пользователя> -h <хост> -p <порт> -d postgres
После подключения можно использовать встроенные команды для отображения баз:
- \list – идентичная команда, показывает тот же набор данных.
- \du – позволяет одновременно проверить пользователей и их права на базы.
Рекомендации по работе через psql:
- Используйте команду \c <имя_базы>, чтобы переключиться на конкретную базу для дальнейших запросов.
- Для фильтрации баз по шаблону применяйте \l <шаблон>*, например, \l test* покажет базы, начинающиеся с «test».
- Регулярно проверяйте размеры баз с помощью SQL-запроса к pg_database для мониторинга использования диска.
Использование psql обеспечивает быстрый и прямой доступ к информации о базах без установки графических инструментов, что особенно удобно при удаленном управлении сервером.
Использование SQL-запроса для списка баз

Для получения информации о базах данных PostgreSQL можно использовать системную таблицу pg_database. Стандартный запрос:
SELECT datname, pg_catalog.pg_get_userbyid(datdba) AS owner, encoding, datistemplate, datallowconn
FROM pg_database;
Поля запроса:
- datname – название базы данных.
- owner – имя владельца.
- encoding – кодировка базы.
- datistemplate – флаг, указывающий, является ли база шаблонной.
- datallowconn – разрешено ли подключение к базе.
Рекомендации по использованию:
- Фильтруйте базы по имени:
WHERE datname LIKE 'test%'для поиска баз, начинающихся с «test». - Сортируйте по размеру или имени для удобного просмотра:
ORDER BY datnameилиORDER BY pg_database_size(datname) DESC. - Используйте дополнительные функции, такие как pg_database_size(datname), чтобы сразу получить размер каждой базы.
SQL-запросы позволяют гибко управлять списком баз и получать детальные данные без использования внешних утилит, что удобно для автоматизации отчетов и скриптов администрирования.
Отображение баз с помощью \l и \list в psql

\l
\list
- Название базы – отображает идентификатор базы.
- Владелец – имя пользователя, создавшего базу.
- Кодировка – текущая кодировка символов.
- Collate и Ctype – настройки сортировки и локали.
- Доступ – список ролей и разрешений на подключение.
Практические рекомендации:
- Для быстрого поиска базы используйте \l <шаблон>*, например \l test*, чтобы вывести только базы с указанным префиксом.
- Если нужно увидеть дополнительную информацию, включая размер базы, используйте SQL-запрос SELECT pg_database_size(datname) FROM pg_database; совместно с \l.
Команды \l и \list удобны для быстрого анализа структуры баз и контроля доступа без написания SQL-запросов.
Фильтрация баз данных по владельцу или шаблону

PostgreSQL позволяет выбирать базы по конкретным критериям с помощью SQL-запросов к системной таблице pg_database или встроенных команд psql.
Примеры фильтрации через SQL:
- По имени базы:
SELECT datname FROM pg_database WHERE datname LIKE 'prod%';– покажет все базы, начинающиеся с «prod». - По владельцу:
SELECT datname, pg_get_userbyid(datdba) AS owner FROM pg_database WHERE pg_get_userbyid(datdba) = 'admin';– отобразит базы, принадлежащие пользователю «admin». - Комбинированный фильтр:
WHERE datname LIKE 'test%' AND pg_get_userbyid(datdba) = 'dev'– базы с префиксом «test», созданные пользователем «dev».
Фильтрация через psql:
- Используйте шаблоны с \l:
\l test*– покажет базы, названия которых начинаются с «test». - Для фильтрации по владельцу можно использовать SQL в psql:
SELECT datname FROM pg_database WHERE pg_get_userbyid(datdba) = 'user';
Фильтрация помогает быстро определить нужные базы на сервере с большим количеством объектов, облегчает управление доступом и планирование обслуживания.
Получение информации о размерах и состоянии баз
Для анализа использования ресурсов PostgreSQL предоставляет функции для оценки размера и состояния баз данных. Основная функция – pg_database_size(datname), возвращающая размер базы в байтах.
Пример запроса для получения списка баз с размером:
SELECT datname AS "База данных",
pg_size_pretty(pg_database_size(datname)) AS "Размер",
pg_database.datallowconn AS "Разрешено подключение",
pg_database.datistemplate AS "Шаблон"
FROM pg_database
ORDER BY pg_database_size(datname) DESC;
Результат удобно представить в виде таблицы:
| База данных | Размер | Разрешено подключение | Шаблон |
|---|---|---|---|
| postgres | 12 MB | true | false |
| test_db | 250 MB | true | false |
| template1 | 15 MB | false | true |
Рекомендации по анализу:
- Используйте pg_size_pretty для удобного отображения размеров.
- Сортировка по размеру помогает выявить наиболее ресурсоемкие базы.
- Проверяйте поле datallowconn перед резервным копированием и подключениями для предотвращения ошибок.
Просмотр баз данных через графические интерфейсы
Графические интерфейсы, такие как pgAdmin, DBeaver и DataGrip, предоставляют удобный способ просмотра баз данных PostgreSQL без командной строки. Они отображают структуру серверов, список баз и пользователей в виде дерева объектов.
Функции, доступные через графические интерфейсы:
- Список баз с указанием владельца, кодировки и размера.
- Фильтрация и поиск баз по имени или владельцу.
- Просмотр таблиц, схем и ролей внутри каждой базы.
- Встроенные средства мониторинга использования диска и активности подключений.
Рекомендации по использованию:
- Для быстрого доступа подключите сервер через интерфейс и сохраните настройки подключения для повторного использования.
- Используйте функцию экспорта списка баз или отчетов о размере для анализа и резервного копирования.
- При работе с большим количеством баз применяйте фильтры и группы серверов, чтобы не перегружать интерфейс.
- Регулярно обновляйте интерфейс до последних версий для корректного отображения новых функций PostgreSQL.
Вопрос-ответ:
Как через psql получить список всех баз данных на сервере?
Для просмотра всех баз данных подключитесь к серверу PostgreSQL через psql, используя команду psql -U <имя_пользователя> -d postgres. После подключения введите команду \l или \list. Это выведет таблицу с названиями баз, их владельцами, кодировкой, локалью и разрешениями на подключение.
Можно ли фильтровать базы данных по владельцу или имени?
Да, фильтрацию можно выполнить как через SQL, так и через psql. Через SQL используется таблица pg_database, например: SELECT datname FROM pg_database WHERE pg_get_userbyid(datdba) = 'admin'; — покажет базы пользователя «admin». Для поиска по имени применяется оператор LIKE: WHERE datname LIKE 'test%'. В psql можно использовать шаблон с командой \l test*.
Как узнать размер каждой базы данных на сервере?
Для оценки размера используется функция pg_database_size(datname). Запрос, который возвращает названия баз и их размеры в удобочитаемом виде: SELECT datname, pg_size_pretty(pg_database_size(datname)) AS size FROM pg_database;. Сортировка по размеру позволяет выявить наиболее ресурсоемкие базы и спланировать резервное копирование.
Можно ли просматривать базы через графические интерфейсы и какие возможности это дает?
Да, инструменты вроде pgAdmin, DBeaver и DataGrip позволяют видеть все базы на сервере, владельцев, кодировки и размеры. Они отображают объекты в виде дерева, позволяют фильтровать базы, просматривать таблицы и схемы, а также контролировать активные подключения. Через интерфейс можно экспортировать список баз или отчеты о размере для анализа.
Какая разница между командами \l и \list в psql?
Команды \l и \list идентичны и выводят полный список баз данных с основными параметрами: имя, владелец, кодировка, локаль и права доступа. Разница только в синтаксическом стиле — обе выполняют одну функцию. Для фильтрации выводимых баз можно добавлять шаблоны, например \l test*.
Как быстро получить список всех баз данных в PostgreSQL через psql?
Для просмотра всех баз данных подключитесь к серверу PostgreSQL через команду psql -U <имя_пользователя> -d postgres. После подключения введите \l или \list. Эти команды выводят таблицу с названиями баз, их владельцами, кодировкой, локалью и правами подключения, что позволяет оценить структуру серверного окружения без дополнительных инструментов.
Как определить размер баз и понять, какие занимают больше всего места?
Размер каждой базы можно узнать через функцию pg_database_size(datname). Например, запрос SELECT datname, pg_size_pretty(pg_database_size(datname)) AS size FROM pg_database ORDER BY pg_database_size(datname) DESC; возвращает список баз с читаемым размером в порядке убывания. Это помогает выявить наиболее крупные базы и планировать хранение данных или резервное копирование.
