Установка pgAdmin
Установить публичный ключ
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
Создать файл конфигурации репозитория
sudo sh -c ‘echo «deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main» > /etc/apt/sources.list.d/pgadmin4.list && apt update’
Установить и десктопную и веб версии:
sudo apt install pgadmin4
Установить только десктопную версию
sudo apt install pgadmin4-desktop
Установить только веб версию
sudo apt install pgadmin4-web
Настроить веб сервер для веб версию
sudo /usr/pgadmin4/bin/setup-web.sh
Веб версию можно открыть в браузере
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс .
Чтобы включить удаленный доступ к вашему серверу PostgreSQL, откройте файл конфигурации:
Прокрутите вниз до раздела и добавьте / отредактируйте следующую строку:
/var/lib/pgsql/data/postgresql.conf
Сохраните файл и перезапустите службу PostgreSQL с помощью:
Проверьте изменения с помощью утилиты :
Приведенный выше вывод показывает, что сервер PostgreSQL прослушивает порт по умолчанию на всех интерфейсах (0.0.0.0).
Последний шаг — настроить сервер на прием удаленных подключений путем редактирования файла .
Ниже приведены несколько примеров, показывающих различные варианты использования:
/var/lib/pgsql/data/pg_hba.conf
Step 5 — Creating a New Database
Another assumption that the Postgres authentication system makes by default is that for any role used to log in, that role will have a database with the same name which it can access.
This means that, if the user you created in the last section is called sammy, that role will attempt to connect to a database which is also called by default. You can create the appropriate database with the command.
If you are logged in as the postgres account, you would type something like:
If, instead, you prefer to use for each command without switching from your normal account, you would type:
This flexibility provides multiple paths for creating databases as needed.
Now that you’ve created a new database, you will log in to it with your new role.
Шаг 1 — Установка PostgreSQL
PostgreSQL доступна в используемом по умолчанию репозитории программного обеспечения AppStream в CentOS 8 и имеет несколько версий, которые можно установить. Вы можете выбрать между этими версиями, активируя подходящий набор пакетов и зависимостей, которые соответствуют версии, которую вы хотите установить, а каждый набор называется потоком модуля.
В DNF, используемом по умолчанию в CentOS 8 менеджере пакетов, модули представляют собой наборы пакетов RPM, которые вместе составляют крупное приложение. Это необходимо, чтобы сделать установку пакетов и их зависимостей более интуитивно понятной для пользователей.
В первую очередь просмотрите список доступных потоков для модуля с помощью команды :
В этом выводе вы можете видеть все три версии PostgreSQL из репозитория AppStream: , и . Поток, который предоставляет Postgres версии 10, является потоком по умолчанию, о чем сигнализирует в его конце. Если вы хотите установить эту версию, запустите и перейдите к следующему шагу. Однако, хотя версия 10 до сих пор поддерживается, в этом обучающем руководстве мы будем устанавливать версию 12, последний релиз на момент написания.
Для установки PostgreSQL версии 12 необходимо активировать поток модуля этой версии. При активации потока модуля вы переопределяете поток по умолчанию и делаете все пакеты, связанные с активированным потоком, доступными в системе
Обратите внимание, что только один поток заданного модуля можно активировать в системе в один момент времени
Чтобы активировать поток модуля для Postgres версии 12, запустите следующую команду:
При появлении запроса нажмите , а затем , чтобы подтвердить, что вы хотите активировать поток:
Чтобы активировать поток модуля версии 12, вы можете установить пакет для установки PostgreSQL 12 и всех зависимостей:
При появлении запроса подтвердите установку, нажав , а затем :
После установки программного обеспечения мы выполним ряд шагов инициализации для подготовки нового кластера базы данных для PostgreSQL.
Work With Roles
PostgreSQL grants database access via roles, which are used to specify privileges. Roles can be understood as having a similar function to Linux “users.” In addition, roles may also be created as a set of other roles, similar to a Linux “group.” PostgreSQL roles apply globally, so you will not need to create the same role twice if you’d like to grant it access to more than one database on the same server.
Create Roles
New user roles are added with the command. To create a new user called , issue this command as the Linux user:
You will be prompted to create a password for the new user.
Give a Role Access to a Database
In this example, you’ll give the newly created user access to your database.
-
Connect to the database:
You’ll be connected as the database user by default.
-
From the PostgreSQL shell, enter the following to grant all privileges on the table to the user :
-
Exit the database with .
Group Roles
For ease of administration, it’s possible to add multiple user roles to a single group, so that their privileges can be managed as a whole. In this section you’ll create a new group and add the user to it. These commands should be run as the Linux user.
-
Use the command to create a new group role. The option is specified because groups do not need login capability.
-
Log into the Postgres shell and add to the new group:
-
From the Postgres shell, verify your changes with . You’ll see that the user is now listed as a member of the group:
The command has several other options. See the
PostgreSQL documentation for more details. -
When you’ve finished applying your changes, exit the Postgres shell with .
Alter Roles
While specific settings and privileges can be applied to a role when it’s created, you can also modify a role’s properties later on. In this example, we’ll modify the user so that it can create new databases. The commands in this section should be run as the Linux user.
-
Log in as the database user:
-
From the Postgres shell, add the parameter to the user:
A number of permissions can be applied when creating or altering a role. See the
PostgreSQL Documentation for more details. -
Use to confirm your changes. You’ll see that the “Create DB” attribute is listed next to the user:
-
Once you’ve finished, exit the Postgres shell with .
Peer Authentication
PostgreSQL uses peer authentication by default. This means that database connections will be granted to local system users if their Linux username matches the name of their PostgreSQL role. To make use of peer authentication effectively, you would need to create both a Linux user and a corresponding PostgreSQL role. For the role you just created, you can use peer authentication by creating an local system user. This command must be run as a user with access:
Note that you will be prompted to create a password for the new Linux user. Alternatively, you can follow our steps to
.
How Does PostgreSQL work?
PostgreSQL uses SQL for relational queries and JSON for non-relational queries. One advantage of using PostgreSQL is its immense community support! Its open source nature means that a lot of developers contribute to this utility’s growth.
PostgreSQL is scalable, reliable and accompanied by advanced optimization features. In most cases, people assume advanced optimization and data types are supported by only commercial databases like SQL Server and Oracle. Contrary to this belief, PostgreSQL provides all of this and many more advanced features, definitely making it a worthwhile addition to your VPS.
PostgreSQL is extremely simple to start using and master.
Here we will demonstrate how to install PostgreSQL on CentOS 7.
You can install PostgreSQL on CentOS 7 in using one of two methods:
- Install PostgreSQL from existing CentOS repositories
- Install from the PostgreSQL repository
Let us check each of this method in more detail:
Система управления базами данных (СУБД)
Система управления базами данных (сокращенно СУБД) – это программное обеспечение для создания и работы с базами данных.
Главная функция СУБД – это управление данными (которые могут быть как во внешней, так и в оперативной памяти). СУБД обязательно поддерживает языки баз данных, а также отвечает за копирование и восстановление информации после каких-либо сбоев.
Реляционные СУБД и язык SQL
Реляционные и объектно-реляционные СУБД являются одними из самых распространенных систем. Они представляют собой таблицы, в которых каждый столбец (он называется «field» или «поле») упорядочен и имеет определенное уникальное название. Последовательность строк (их называют «records» или «записи») определяется последовательностью ввода информации в таблицу. При этом обрабатывание столбцов и строк может происходить в любом порядке. Таблицы с данными связаны между собой специальными отношениями, благодаря чему с данными из разных таблиц можно работать – к примеру, объединять их при помощи одного запроса.
Для управления реляционными базами данных применяется особый язык программирования – SQL. Сокращение расшифровывается как «Structured query language», в переводе на русский – «язык структурированных запросов».
Команды, которые используются в SQL, делятся на:
- манипулирующие данными,
- определяющие данные,
- управляющие данными.
Схема работы с базой данных выглядит следующим образом:
Установка PostgreSQL на CentOS 8
На момент написания этой статьи для установки из стандартных репозиториев CentOS доступны две версии сервера PostgreSQL: версия 9.6 и 10.0.
Чтобы вывести список доступных потоков модуля PostgreSQL, введите:
Выходные данные показывают, что модуль postgresql доступен с двумя потоками. Каждый поток имеет два профиля: серверный и клиентский. По умолчанию используется поток 10 с сервером профилей:
-
Чтобы установить поток по умолчанию, введите сервер PostgreSQL версии 10.0:
-
Чтобы установить сервер PostgreSQL версии 9.6, введите:
Вы также можете установить пакет contrib, который предоставляет несколько дополнительных функций для системы баз данных PostgreSQL.
После завершения установки инициализируйте базу данных PostgreSQL с помощью следующей команды:
Запустите службу PostgreSQL и включите ее запуск при загрузке:
Используйте инструмент , чтобы проверить установку, подключившись к серверу базы данных PostgreSQL и распечатав его версию :
Преимущества и особенности СУБД PostgreSQL
СУБД PostgreSQL использует для своих баз данных реляционную модель, поддерживая стандартный язык запросов SQL. При этом PostgreSQL предоставляет широкий спектр возможностей. Можно сказать, что Postgres обладает почти всеми возможностями, существующими в других базах данных (как коммерческих, так и Open Source), а также рядом дополнительных.
Сегодня СУБД PostgreSQL работает почти на всех UNIX-платформах, в том числе и на UNIX-подобных системах (FreeBSD и Linux). Вы сможете использовать эту базу данных и на Windows NT Server, и на Windows 2000 Server, и для разработки рабочих станций ME.
Рассмотрим краткий перечень преимуществ и функциональных возможностей СУБД PostgreSQL:
1. Надежность. Надёжность СУБД PostgreSQL проверена и доказана. Она обеспечивается соответствием принципам ACID (атомарность, изолированность, непротиворечивость, сохранность данных), многоверсионностью, наличием Write Ahead Logging (WAL) — общепринятого механизма протоколирования всех существующих транзакций. Сюда же стоит отнести и возможность восстановления базы данных Point in Time Recovery (PITR), репликацию, поддержку целостности данных на уровне схемы.
2. Производительность. В СУБД PostgreSQL она основана на применении индексов, наличии гибкой системы блокировок и интеллектуального планировщика запросов, использовании системы управления буферами памяти и кэширования. Не стоит забывать и про отличную масштабируемость при конкурентной работе.
3. Расширяемость. Для СУБД PostgreSQL это означает, что пользователь может настроить систему посредством определения новых функций, типов, языков, агрегатов, индексов и операторов. А объектная ориентированность СУБД PostgreSQL даёт возможность переносить логику приложения на уровень базы данных, а это, в свою очередь, заметно упрощает разработку клиентов, ведь вся бизнес-логика находится в БД. При этом функции в Postgres однозначно определяются названием, типами и числом аргументов.
4. Поддержка SQL. Её уже упоминали, однако кроме главных возможностей, которые присущи любой SQL-базе, PostgreSQL поддерживает схемы, подзапросы, внешние связки, правила, курсоры, наследование таблиц, триггеры и много чего ещё.
5. Поддержка многочисленных типов данных. СУБД PostgreSQL поддерживает численные (целые, денежные, с фиксированной/плавающей точкой), булевые, символьные, составные, сетевые типы данных, а также перечисление, типы «дата/время», геометрические примитивы, массивы, XML- и JSON-данные. Плюс можно создавать свои типы данных.
Конечно, это далеко не всё, но для общего понимания возможностей СУБД PostgreSQL вполне достаточно. Естественно, база данных заслуживает внимания, особенно если учесть, что она имеет открытый исходный код и распространяется свободно. Освоить эту СУБД вы cможете на курсе в OTUS.
REST он же RESTful веб-API
Вырываемся за границы сервера и уютного терминала. Пробираемся поближе к массовым интерфейсам — браузерам и им подобным приложениям. Туда, где в основе взаимодействия систем используются гипертекстовые протоколы семейства http. В IRIS «из коробки» для этого работает связка из собственно сервера баз данных и http-сервера Apache.
В нашем примере основой идентификатором будет что-то вроде основы из адреса сервера IRIS http://localhost:52773 и приставленного к нему пути до наших данных /world/ или более конкретно по стране /world/France.
Примерно так в докер-контейнере:
http://localhost:52773/world/France
При разработке полноценного приложения в документации IRIS рекомендуется воспользоваться одним из трёх генераторов кода. Например, один из них основан на описании REST API по спецификации OpenAPI 2.0.
Мы пойдём простым путём — реализуем API вручную. В нашем примере сделаем простейшее REST-решение, которое требует всего два шага в IRIS:
-
Создать класс-диспетчер путей в URL, который будет унаследован от системного класса %CSP.REST
-
Добавить обращение к нашему классу-диспетчеру при настройке веб-приложения IRIS
Шаг 1 Класс-диспетчер
Реализация класса должна быть достаточно понятна. Делаем по инструкции в документации для «ручного» REST:
И внутри добавляем метод-обработчик ровно так же, как были устроены вызовы в терминале из предыдущего примера:
Как можете видеть, для передачи из входящего REST-запроса в параметра name вызываемого метода-обработчика в диспетчере указывается параметр с двоеточием в начале «:name».
Шаг 2 Настройка веб-приложения IRIS
В меню System Administration > Security > Applications > Web Applications
добавляем новое веб-приложение с указанием точки входа по URL на /world и обработчик — наш класс-диспетчер worldrest.
Шаг 7 — Создание и удаление таблиц
Теперь, когда вы уже знаете, как подключиться к системе управления базами данных PostgreSQL, можно переходить к знакомству с основными задачами по управлению, которые решает Postgres.
Во-первых, создайте таблицу для хранения данных. Например, вы можете создать таблицу, где описано оборудование для детских площадок.
Базовый синтаксис этой команды выглядит следующим образом:
Эти команды дают таблице имя, а затем определяют столбцы, тип столбцов и максимальную длину поля данных. Кроме того, вы можете добавить ограничения таблицы для каждой колонки.
Чтобы продемонстрировать процесс, создайте простую таблицу:
Эта команда создает таблицу с описью оборудования для установки на игровых площадках. Она начинается с идентификатора оборудования, который имеет тип . Это тип данных представляет собой целое число с автоматическим инкрементированием. Вы также указали для этого столбца ограничение в виде , что означает, что значения должны быть уникальными и не равны null.
Для двух из столбцов ( и ) команда не указывает длину поля. Это объясняется тем, что некоторые типы столбцов не требуют указания длины, поскольку длина подразумевается в зависимости от типа значения.
Следующие две строки создают столбцы и оборудования соответственно, каждый из которых не может быть пустым. Следующая строка создает столбец и ограничение, требующее, чтобы значение было одним из восьми возможных вариантов. Последняя строка создает столбец даты, которая указывает дату установки оборудования.
Вы можете просмотреть вашу новую таблицу, введя следующую команду:
В результате мы получаем следующий вывод:
Ваша таблица игрового оборудования готова, но здесь есть что-то под названием с типом данных . Это представление типа , который присвоен столбцу . Оно отслеживает следующий номер последовательности и создается автоматически для столбцов данного типа.
Если вы хотите только просмотреть таблицу без последовательности, можете ввести следующую команду:
В результате вы получите следующее:
На этом шаге мы создали образец таблицы. На следующем шаге мы попробуем добавить, запросить и удалить элементы в таблице.
Настройка сервера 1С посредством консоли администрирования.
1) Подключение к серверу 1С.
Необходимо указать имя сервера (прописанное в hosts) и порт 1540 (используется по умолчанию):
2) Создание кластера.
Необходимо указать:
— произвольное имя кластера,
— имя центрального сервера, на котором располагается кластер (прописанный в hosts)
— порт 1541 (используется по умолчанию)
3) Создание базы на кластере сервера 1С.
Необходимо указать:
— имя базы на кластере 1С;
— имя сервера баз данных (прописанное в hosts);
— тип СУБД (PostgeSQL);
— имя базы данных на сервере СУБД;
— пользователь сервера СУБД (в нашем случае postgres);
— пароль указанного пользователя сервера СУБД.
При необходимости можно отметить пункт «Создать базу с случае ее отсутствия»
Разработка
PostgreSQL развивается силами международной группы разработчиков (PGDG), в которую входят как непосредственно программисты, так и те, кто отвечают за продвижение PostgreSQL (Public Relation), за поддержание серверов и сервисов, написание и перевод документации, всего на 2005 год насчитывается около 200 человек. Другими словами, PGDG — это сложившийся коллектив, который полностью самодостаточен и устойчив. Проект развивается по общепринятой среди открытых проектов схеме, когда приоритеты определяются реальными нуждами и возможностями. При этом, практикуется публичное обсуждение всех вопросов в списке рассылке, что практически исключает возможность неправильных и несогласованных решений.
Это относится и к тем предложениям, которые уже имеют или рассчитывают на финансовую поддержку коммерческих компаний.
Цикл работой над новой версией обычно длится 10-12 месяцев (сейчас ведется дискуссия о более коротком цикле 2-3 месяца) и состоит из нескольких этапов.
Setup PostgreSQL repository
PostgreSQL publishes rpm packages for all Linux platforms, and their packages are fresher than those available in the OS repositories.
So, you need to add the repository to your machine by installing PostgreSQL repo rpm.
### PostgreSQL 11 ### # RHEL 7 # yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat11-11-2.noarch.rpm # CentOS 7 # yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm ### PostgreSQL 10 ### # RHEL 7 # yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm # CentOS 7 # yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
How Does PostgreSQL work?
PostgreSQL uses SQL for relational queries and JSON for non-relational queries. One advantage of using PostgreSQL is its immense community support! Its open source nature means that a lot of developers contribute to this utility’s growth.
PostgreSQL is scalable, reliable and accompanied by advanced optimization features. In most cases, people assume advanced optimization and data types are supported by only commercial databases like SQL Server and Oracle. Contrary to this belief, PostgreSQL provides all of this and many more advanced features, definitely making it a worthwhile addition to your VPS.
PostgreSQL is extremely simple to start using and master.
Here we will demonstrate how to install PostgreSQL on CentOS 7.
You can install PostgreSQL on CentOS 7 in using one of two methods:
- Install PostgreSQL from existing CentOS repositories
- Install from the PostgreSQL repository
Let us check each of this method in more detail:
Step 1 — Installing PostgreSQL
Postgres can be installed using default CentOS repositories. But as of the writing of this tutorial, the version that is available in the CentOS 7 Base repository is obsolete. Therefore, this tutorial will use the official Postgres repository.
Before you move on to setting up a new repository, exclude the search for packages from the CentOS-Base repository. Otherwise, dependencies might resolve to the supplied by the base repository.
Open the repository configuration file using your preferred text editor. This tutorial will use :
Find the and sections, enter insert mode by pressing , and insert the line in both sections. As a result, your file will look like the following, with new lines highlighted:
/etc/yum.repos.d/CentOS-Base.repo
When you’re finished, press to leave insert mode, then and to save and exit the file. To learn more about the text editor vi and its successor vim, check out our tutorial.
Now, install a repository configuration package using the official PostgreSQL repository for CentOS:
When given the prompt, confirm the installation with .
The PostgreSQL repository includes information for all available PostgreSQL releases. You can see all available packages and versions using the following command:
Choose and install the desired version of PostgreSQL. In this guide, you will use the PostgreSQL 11 release.
To install the PostgreSQL server use the following command:
During the installation process you will be asked about importing a GPG key with a prompt like the following:
Confirm it with so the installation can complete.
Now that the software is installed, you will perform some initialization steps to prepare a new database cluster for PostgreSQL.
В заключение
Вы настроили PostgreSQL на сервере CentOS 7. Однако у Postgres естьполноВещи нужно изучать. Хотя многие из них написаны на Ubuntu, эти руководства должны помочь узнать больше о PostgreSQL:
- Сравнение систем управления реляционными базами данных
- Узнайте, как создавать таблицы и управлять ими с помощью Postgres
- Лучше управлять ролями и разрешениями
- Обработка запроса с помощью Postgres и Select
- Установите phpPgAdmin для управления базой данных из веб-интерфейса в Ubuntu
- Узнайте, как защитить PostgreSQL в Ubuntu
- Настройка репликации master-slave с помощью Postgres в Ubuntu
- Узнайте, как сделать резервную копию базы данных Postgres в Ubuntu
Итоги
Возраст технологии |
Пример запроса |
|
SQL |
50 лет Кодд |
|
ООП |
40 лет Кэй, Ингаллс |
|
REST |
20 лет Филдинг |
|
GraphQL |
5 лет Байрон |
-
Жизненной силы и энергии у технологий SQL, REST и, теперь наверное, GraphQL много и это надолго. Они все прекрасно уживаются внутри платформы IRIS и, при должном внимании разработчика, дарят радость в создании программ работы с данными.
-
Хоть это не упомянуто в статье, другие великолепные API на основе XML (SOAP) и JSON в IRIS также реализованы на должном уровне. Пользуйтесь на здоровье.
-
Помните, что любой обмен данными через API — это всё же неполноценная, а урезанная версия передачи объектов. И задача корректной передачи информации о типа данных в объекте, потерянной в API остаётся, на разработчике, а не в коде.
Вопрос к вам, дорогие читатели
Эта статья готовилась не только для сравнения современных API и, даже, не столько для обзора базовых возможностей IRIS. Больше пользы от примеров выше смогут получить начинающие программисты: увидеть легкость в переключении между API при доступе к базе данных, сделать первые шаги в IRIS, получить быстрый результат для своей задачи.