Sysadminium
В этой статье я покажу как собрать PostgreSQL 13 версии из исходников, инициализировать кластер и запустить его на сервере Debian 10. А также установим из исходников одно из расширений PostgreSQL.
Источником для этой статьи служит данное видео.
Установка PostgreSQL из исходников
Работаем из под пользователя root, поэтому будьте осторожны!
Прежде всего скачаем и распакуем архив:
# mkdir pg # cd pg/ # wget https://ftp.postgresql.org/pub/source/v13.3/postgresql-13.3.tar.gz # tar xf postgresql-13.3.tar.gz # cd postgresql-13.3/
Далее, установим необходимые пакеты, соберем из исходников postgresql и установим его:
# apt install gcc make # apt install libreadline-dev # apt install zlibc zlib1g-dev # ./configure # make # make install
В результате, PostgreSQL у нас установится в каталог /usr/local/pgsql/, здесь лежат сами бинарники.
Теперь нам нужно создать каталог для хранения данных. В PostgreSQL он называется PGDATA по имени переменной $PGDATA в которой содержится путь к каталогу кластера PostgreSQL. Создадим такой каталог а также пользователя “postgres“. Дополнительно сделаем этого пользователя владельцем этого каталога и установим права (750):
How to Install and Setup PostgreSQL on Windows 10
# mkdir /usr/local/pgsql/data # adduser postgres # chown postgres /usr/local/pgsql/data/ # chmod 750 /usr/local/pgsql/data/
Создание переменных окружения
Для удобства работы с сервером нужно создать две переменные:
- PGDATA – путь к каталогу кластера (/usr/local/pgsql/data/);
- PATH – нужно добавить к существующей переменной путь /usr/local/pgsql/bin/, чтобы облегчить работу с утилитами postges.
Чтобы эти переменные появились у всех пользователей отредактируем /etc/profile, добавив строки в конец файла:
# nano /etc/profile PATH=/usr/local/pgsql/bin:$PATH export PGDATA=/usr/local/pgsql/data
Далее применим изменения:
# . /etc/profile
Создание кластера БД
Дальнейшие действия нужно проделывать под пользователем postgres
# su — postgres
Инициализируем кластер баз данных:
Опцию -k мы использовали, чтобы включить подсчет контрольной суммы страниц, что позволяет своевременно обнаружить повреждение данных. Остальные опции можете посмотреть тут!
После инициализации кластера у нас заполнился каталог PGDATA:
В этом каталоге лежат конфигурационные файлы кластера, и в подкаталоге base лежат базы данных. Но о содержимом этого каталога мы поговорим позже.
Запуск и останов сервера
Запустим сервер баз данных указав файл логов:
Здесь мы использовали две опции:
- -w заставляет сервер запуститься полностью и только потом отдать управление, то-есть не будет происходить продолжение старта в фоне;
- -l – указывает путь к логам.
Подробнее о работе pg_ctl можете почитать тут.
Теперь проверим что PostgreSQL запустился и работает. Для этого выполним запрос select now() к СУБД:
В примере выше, функция now() показывает текущее время.
004-Configuração do PostgreSQL
Останавливать и запускать сервер в последующем можно следующими командами:
$ pg_ctl stop $ pg_ctl -w -l /home/postgres/logfile start
Установка расширений из исходников
Расширение – это специальная программа, расширяющая функциональность сервера баз данных. Например модуль pgcrypto добавляет криптографические функции.
Следующим шагом научимся устанавливать расширения. Для этого перейдем в каталог с исходниками и найдём подкаталог contrib. В каталоге contrib лежат исходники расширений. Найдем каталог pgcrypto, перейдём в него и скомпилируем расширение:
Проверим что расширение установилось. Все установленные расширения можем посмотреть в представлении “pg_available_extensions“:
В листинге выше с помощью утилиты psql мы подключаемся к СУБД, а с помощью команды q отключаемся от него.
Создание второго кластера
На одном сервере может работать два кластера, для этого создаём каталог для второго кластера. И инициализируем его:
При инициализация кластера, если путь к каталогу PGDATA отличается от переменной $PGDATA или если такая переменная не задана. То нужно с помощью ключа -D указать путь к этому каталогу.
Чтобы запустить второй кластер одновременно с первым, нужно поменять порт, на котором работает PostgreSQL. По умолчанию порт – 5432. Изменим этот порт для второго кластера:
Теперь можем запустить второй кластер:
Посмотрим на процессы:
Первый кластер запущен без ключа -D и используется переменная PGDATA, а во втором кластере путь к PGDATA прописан в строке запуска.
Источник: sysadminium.ru
Топ инструментов разработки для PostgreSQL
Конференция PG Day Russia растет и масштабируется: этим летом мы готовим для вас доклады и тренинги по всем наиболее популярным базам данных, а также по администрированию и хранению данных. в рамках подготовки мы запустили корпоративный блог, где планируем делиться ценной информацией о происходящем в мире баз данных. Первый пост посвящен инструментам разработки для PostgreSQL, его автор varanio будет рад ответить на ваши вопросы и комментарии!
Я поспрашивал различных людей, имеющих отношение к PostgreSQL, что они используют в реальной жизни для разработки приложений, использующих PG.
Это, конечно, не строго математическая выборка, но тем не менее получился некоторый список инструментов на слуху, которые достойны того, чтобы их «пощупать», что я и собираюсь сделать в этой статье.
Если вашего инструмента нет в списке, или у вас просто есть что сказать, добро пожаловать в комментарии.
Итак, вот неформальный топ и субъективное описание.
psql
На первом месте psql, и это неудивительно. Надежный как автомат калашникова, бесплатный, стоит из коробки, что еще надо для счастья? Для редактирования запросов используется редактор, указанный в переменной окружения EDITOR, обычно ставят vim, nano или что-то в этом духе. Ну и вообще, psql — это unix-way, т.е. можно его запускать со своим редактором, своим пейджером для отображения результатов, ему можно на вход подавать sql-запрос через пайп, и вывод направлять куда надо.
Из минусов можно отметить слабенький автокомплит, а также то, что приходится заучивать неинтуитивные команды из серии d dt+ sf и т.д. (впрочем, все описания команд доступны через команду ? )
Ну, и работа в консоли и в виме — это не всех устраивает почему-то 🙂
На самом деле, иногда хочется иметь где-нибудь слева полный список таблиц/вьюх и иметь возможность щелкнуть мышкой по нужной, чтобы посмотреть, что там вообще. Т.е. хоть какой-то GUI. Работа в psql хоть и эффективна, но напоминает работу в темной комнате с маленьким фонариком, освещающим лишь только один объект за раз.
datagrip
IDE для баз. Несмотря на то, что продукт относительно свежий, он уже используется повсеместно. В основном за счет того, что сразу встроен в мегапопулярные продукты от компании JetBrains: IntelliJ IDEA, PyCharm, PhpStorm и т.д.
Собственно, эта его встроенность одновременно является и главной киллер-фичей продукта: вы редактируете, например, php-код, в котором есть строка с sql-запросом, и внезапно понимаете, что IDE вам подсказывает (прямо в вашем коде) синтаксис SQL, названия таблиц и их полей, подчеркивает красненьким, если что-то написано не так, форматирует SQL и многое-многое другое. Конечно, в этом же IDE можно делать и то, что умеют другие GUI для баз: просматривать списки таблиц и других сущностей, отдельно делать запросы, экспорт таблиц в разные форматы и многое другое.
Из особенностей я бы отметил следующие вещи:
- можно выделить несколько insert’ов и нажать «Edit as table» (см. картинку). После чего отредактировать это в удобном табличном виде вместо sql-синтаксиса, причем там же можно добавлять строки, колонки, экспортировать в csv и т.д.
- Можно сравнивать результаты двух запросов. Это полезно, когда пытаешься упростить сложный запрос, и при этом ничего не сломать.
- встроенность в код проработана не до конца. К примеру, при переименовывании в каком-либо интерфейсе колонки таблицы, IDE не находит нужные строки с SQL в коде (при этом автокомплит в этих строках работал), и наоборот, находит какую-то чушь.
- Визуальной разработки не очень много. Т.е. вы можете сделать таблицу, но view уже не можете. Если таблица содержит какие-то id с foreign key (допустим, ссылка на некий словарь), хотелось бы при в вводе данных в таблицу выбирать значения из словаря, а не вбивать айдишки.
- Если посмотреть таблицу в какой-нибудь из схем, то Datagrip посылает запрос set search_path = имясхемы, что приводит к плохим последствиям, если используется pgbouncer (а он используется почти всегда в случае с php или когда много серверов), так что для dev-разработки лучше использовать разные подключения: для работы кода — через pgbouncer, для ide — напрямую к базе.
Datagrip активно развивается, в частности, исправлены некоторые раздражающие баги с подсветкой синтаксиса.
В целом хороший современный инструмент, рекомендую.
pgAdmin
Им многие пользуются, но, скорее по привычке. Или потому что это бесплатно. pgAdmin4 — продукт странноватый, при этом в описании сказано, что это самый лучший опенсорс продукт для разработки и администрирования.
Как его использовать для администрирования — не очень понятно. pgAdmin’ом нельзя «заинитить» новый сервер, нельзя подправить pg_hba.conf или postgresql.conf. Видимо, имеются в виду скудные графики запросов в секунду, вывод подробностей конфигурации сервера и статистика в таблицах. Не уверен, в общем. Как вы испольуете pgAdmin для администрирования?
Как его использовать с точки зрения разработки — еще менее понятно. Субъективно, интерфейс в целом не удобен для разработки. Несмотря на то, что четвертую версию переписали на python + JS с jQuery, по сути, осталось всё то же самое.
Чтобы немного пояснить ситуацию, в голове разработчика такая картина: есть база на каком-то серваке, в ней — схемы, в схемах — таблицы и вьюхи. Т.е. таблица — максимум, 3-й уровень. А если база одна, то вообще второй уровень. Ткнул по таблице — увидел несколько первых строк.
В голове разработчика pgAdmin как-то так: «Смерть Кощеева на конце иглы, та игла в яйце, то яйцо в утке, та утка в зайце, тот заяц в сундуке, а сундук стоит на высоком дубу, и то дерево Кощей как свой глаз бережёт», а именно (см. картинку):
Есть группа серверов, в ней есть сервер, на сервере существуют базы, роли и т.д., из баз можно выбрать конкретную базу, в ней видно схемы, языки, еще бог знает что. В схемах можно выбрать нужную схему, в схеме 100500 всего, и где-то в конце списка «таблицы». В таблицах можно выбрать нужную таблицу, по ней надо кликнуть правой кнопкой мыши, там в большом списке выбираешь «view data», в этой «view data» есть «view first 100 rows» и уже там наконец-то смерть кощеева несколько строк для ознакомления.
Киллер-фичей pgAdmin является возможность дебажить хранимые процедуры pl/pgsql. Других бесплатных программ с этой возможностью я не встречал.
EMS Studio
EMS Studio, похоже, работает только под Windows. Это его главный недостаток, потому что, как известно PostgreSQL очень редко используют под виндой.
Я этот софт посмотрел только один раз под Wine, поэтому могу ошибаться, но вообще мне жутко не понравилось. Бешенное нагромождение непонятных иконок, невнятный интерфейс. Кстати, у меня под Wine заглючили всплывающие подсказки, и я играл в «угадай функциональность по картинке». Очень тяжело.
До кучи там зачем-то сделан визуальный конструктор запросов. Где вместо того, чтобы текстом написать where >, надо нажать мышкой несколько кнопок и понавыбирать из выпадающего списка. Тем, кто знает SQL — это не нужно, тем кто не знает — это не поможет.
Фичи, которые называют как удобные: auto-complete с алиасами, экспорт результата выполнения запроса в SQL формате (insert), удобный GUI для экпорта базы, возможность выполнять только выделенную часть SQL.
Умеет дебаг pl/pgsql. В общем, много чего умеет, но какой-то выдающейся особенности, что отличало бы от других, я не могу назвать.
NAVICAT
Navicat — это, наверное, самая богатая фичами программа. Она умеет всё, что умеют другие GUI для БД: дизайнер объектов, просмотрщик таблиц, автокомплит, инструменты проектирования базы, отладка pl/pgsql, импорт/экспорт и так далее.
Поистине всеобъемлющий софт, который работает практически на любой ОС. Навскидку, намного удобнее EMS Studio.
Киллер-фичей, на мой взгляд, является сравнение баз. Т.е. можно взять две базы, узнать, чем они отличаются по структуре и сформировать запросы для синхронизации.
Ценник, правда, что называется, «конский» — в два раза дороже, чем EMS. Но тут, похоже, это полностью оправдано.
PGCLI
Те, кто пробует работать с psql, сразу начинают мечтать о более богатом функционале, например, автодополнении. Для реализации этих хотелок существует pgcli.
pgcli умеет автодополнять ключевые слова, функции, таблицы, колонки, колонки в алисах. Умеет подсвечивать синтаксис, редактировать SQL в многострочном режиме без отдельного редактора и т.д.
Короче, pgcli — это, по сути, psql на стероидах.
phppgadmin
Многие из тех, кто перешел с MySQL, инстинктивно ищут аналоги phpmyadmin, и натыкаются на phppgadmin. К сожалению, phppgadmin не развивается уже несколько лет, так что о мертвых или хорошо, или ничего. В общем, промолчим, пожалуй.
Итог
Не по всем из этих инструментов у меня есть опыт использования, поэтому прошу высказаться в комментариях. Что используете вы?
Также надо отметить, что на конференцию pgday приедут разработчики популярных инструментов не только для постгреса, но и других бд, можно будет их помучать вопросами и высказать какие-то пожелания по фичам. В любом случае, приглашаем всех посетить это полезнейшее мероприятие, которое пройдет в Санкт-Петербурге 5-7 июля!
- Блог компании PG Day’17 Russia
- Разработка веб-сайтов
- PostgreSQL
- SQL
Источник: habr.com
Дистрибутив PostgreSQL для Windows
Компанией Постгрес Профессиональный подготовлены дистрибутивы PostgreSQL для Windows.
Это сборки PosgreSQL на основе кода из основной ветки без каких-либо дополнений и изменений.
Если Вам нужна версия PosgreSQL для Windows с поддержкой 1С, то Вы можете ее найти на сайте https://1c.postgres.ru
Дополнительные возможности и российскую техническую поддержку Вы можете получить вместе с Postgres Pro Standard и Enterprise.
- PostgreSQL 15.1: 64-разрядная,
- PostgreSQL 14.6: 64-разрядная,
- PostgreSQL 13.9: 64-разрядная,
- PostgreSQL 12.13: 64-разрядная, 32-разрядная,
- PostgreSQL 11.18: 64-разрядная, 32-разрядная,
- PostgreSQL 10.23: 64-разрядная, 32-разрядная,
- PostgreSQL 9.6.24: 64-разрядная, 32-разрядная.
Данное ПО поставляются «как есть», без какой-либо гарантии, явной или подразумеваемой.
Установка PostgreSQL для Windows
Рекомендуем устанавливать нашу сборку PostgreSQL на версиях Windows, для которых продолжается поддержка компании Microsoft. Технически PosgreSQL может работать и на более ранних версиях. Для установки 32 разрядной версии требуется Windows 7 SP1 и выше, для установки 64 разрядной — Windows 7 SP1 64bit и выше.
В процессе установки выбираются компоненты и задаются основные параметры сервера. Далее происходит инициализация нового сервера и создаются ярлыки для его управления.
Возможен «тихий» режим установки без вывода на экран.
Если обнаружено, что PostgreSQL сервер уже установлен, то предлагается остановить сервер и обновить его. При этом все соединения с сервером будут отключены. Для определения существования сервера используются данные о предыдущих установках из реестра, поэтому, если Вы ранее запускали сервер нестандартно, он может остаться не обнаруженным.
Выбор компонентов для установки
Вы можете установить все основные компоненты PostgreSQL или настроить установку, исключив серверную часть или компоненты для разработчика. Клиентская часть устанавливается всегда.
Клиентская часть содержит документацию и утилиты, которые могут потребоваться без установки сервера, например, psql, pg_dump и другие.
Компоненты для разработчика содержат заголовочные файлы, библиотеки и отладочную информацию.
Требуется также установить распространяемый пакет Visual C++, если он еще не установлен. Это небольшой набор системных библиотек от компании Microsoft.
Выбор путей для установки
Задается каталог для установки файлов сервера и каталог для создания базы данных. По умолчанию для установки предлагается каталог C:Program FilesPostgreSQLНомер_версии, а для данных C:Program FilesPostgreSQLНомер_версииdata.
Выбранный каталог данных должен быть пустым. В противном случае PostgreSQL не сможет создать начальную базу данных.
Допускается также указать каталог, содержащий данные. Тогда новая база данных не создается, а используется существующая. Важно, чтобы версия сервера совпадала с существующей базой данных.
Задание параметров сервера
В процессе установки предлагается ввести некоторые параметры сервера.
Номер порта используется при подключению к серверу. Значение по умолчанию — 5432. При установке подбираются свободные номера портов начиная с 5432.
Локаль. По умолчанию для инициализации базы данных используется системна локаль Windows, но, при необходимости, можно выбрать нужную из списка.
Имя супер пользователя и пароль рекомендуем вводить только латинскими буквами. Имя пользователя по умолчанию — postgres. Запомните имя и пароль пользователя, заданные вами при установке, так как они потребуются для подключения к серверу при использовании аутентификации с проверкой пароля.
Если включен параметр «Разрешить подключения с любых IP-адресов», то в файлы сервера с настройками postgresql.conf и pg_hba.conf будут внесены параметры для разрешения внешнего доступа. Также изменяется конфигурация брандмауэра Windows для внешних подключений к серверу.
Параметр «Включить контрольные суммы для страниц» рекомендуем всегда включать, так как это повышает надежность хранения данных без заметного снижения производительности.
При включении параметра «Настроить переменные среды» программа установки создаст переменные среды с параметрами сервера: PGDATA, PGDATABASE, PGUSER, PGPORT, PGLOCALEDIR, а также добавит путь к исполняемым файлам сервера в переменную PATH.
Дополнительные параметры установки
На следующем экране предлагается провести некоторую оптимизацию параметров сервера исходя из установленной оперативной памяти (если ее больше 1Gb). Для этого включите параметр «Провести оптимизацию параметров». Параметры сохраняются в файл postgresql.conf, который находится в папке с данными. Оптимизируются 2 параметра: shared_buffers и work_mem. Потом Вы можете самостоятельно изменять эти и другие параметры в зависимости от условий эксплуатации сервера.
Если включить параметр «Показать дополнительные параметры», то далее появится окно настроек системной службы PostgreSQL:
Для запуска сервера используется специальная встроенная учетная запись Windows: «NT AUTHORITYNetworkService». Запуск службы можно настроить от другого пользователя, для этого введите имя и пароль уже существующего пользователя. Это может быть пользователь домена. Важно, чтобы пользователь уже существовал на момент установки и имел все необходимые права. В противном случае данного документа: http://postgresql.ru.net/docs/win_inst.html
Разрешается свободное использование данного документа в электронном виде, копирование, распространение, размещение на web-сайтах при условии обязательного сохранения данного раздела об авторских правах, а также при условии открытого и бесплатного доступа к этому документу. Любое коммерческое использование материалов данного документа, а также использование в печатных изданиях разрешается только с письменного согласия автора.
pgi1.jpg | 33.95 kb |
pgi2.jpg | 25.09 kb |
pgi3.jpg | 48.86 kb |
pgi4.jpg | 45.78 kb |
pgi5.jpg | 38.4 kb |
pgi6.jpg | 10.79 kb |
pgi7.jpg | 10.31 kb |
pgi8.jpg | 21.72 kb |
pgi9.jpg | 36.88 kb |
pgi10.jpg | 25.14 kb |
pgi11.jpg | 18.76 kb |
pgi12.jpg | 37.86 kb |
pgi13.jpg | 77.5 kb |
pgi14.jpg | 8.08 kb |
pgi15.jpg | 38.88 kb |
pgi16.jpg | 17.97 kb |
pgi17.jpg | 25.64 kb |
pgi18.jpg | 39.27 kb |
pgi19.jpg | 25.12 kb |
pgi20.jpg | 25.17 kb |
pgi21.jpg | 48.74 kb |
- Войдите или зарегистрируйтесь, чтобы добавлять комментарии
Источник: postgresql.men