Разное

Postgresql настройка debian: Установка PostgreSQL в Debian 10

Содержание

Установка PostgreSQL в Debian 10

PostgreSQL (иногда именуемая Postgres) — это самая продвинутая, универсальная, объектно-ориентированная система баз данных с открытым исходным кодом с проверенной архитектурой, которая работает на всех основных операционных системах. Это высокопроизводительная, стабильная, масштабируемая и расширяемая система баз данных, которая обеспечивает хорошую целостность данных и поддерживает мощные дополнения.

Важно то, что PostgreSQL позволяет вам определять свои собственные типы данных, добавлять пользовательские функции, даже писать код на разных языках программирования, таких как C/C++, Java, и т. д., без перекомпиляции вашей базы данных. PostgreSQL используется известными техническими компаниями, такими как Apple, Fujitsu, Red Hat, Cisco, Juniper Network и т. д. В этой статье мы покажем вам, как установить, защитить и настроить сервер баз данных PostgreSQL 11 Debian 10.

Содержание статьи:

Установка PostgreSQL на Debian 10

Чтобы установить PostgreSQL Debian 10, используйте менеджер пакетов APT, который установит и сервер и клиент PostgreSQL 11.

apt install postgresql-11 postgresql-client-11

В Debian, база данных postgres инициализируется сразу после завершения установки пакета, как показано на следующем снимке.

Чтобы проверить, действительно ли база данных Postgres инициализирована, вы можете использовать утилиту pg_isready, которая проверяет статус соединения сервера PostgreSQL 11 следующим образом:

pg_isready

Кроме того, в systemd служба Postgres также запускается автоматически и включается при загрузке системы. Чтобы убедиться, что служба работает нормально, выполните следующую команду.

systemctl status postgresql

Далее следуют другие полезные команды systemctl для управления службой Postgres в systemd.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql

Чтобы перечитать конфигурацию после перезагрузки выполните:

systemctl reload postgresql

Настройка PostgreSQL

По умолчанию Postgres использует концепцию ролей для управления разрешениями доступа к базе данных, а роли базы данных концептуально полностью отделены от пользователей операционной системы. Роль может быть пользователем или группой, а роль с правом входа в сиcтему называется пользователем.

Только что инициализированная система всегда содержит одну предопределенную роль, называемую postgres, и имеет то же имя, что и учетная запись пользователя операционной системы, называемая postgres, которая используется для доступа к psql (оболочка Postgres) и другим программам баз данных.

Учетная запись пользователя системы Postgres не защищена паролем, для ее защиты вы можете создать пароль с помощью утилиты passwd.

passwd postgres

Кроме того, роль Postgres (или, если угодно, суперпользователь базы данных) по умолчанию не защищена. Вам также необходимо защитить ее паролем. Теперь переключитесь на учетную запись пользователя системы postgres и роль postgres (не забудьте установить надежный и безопасный пароль), как показано ниже.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'новый_пароль';"

Далее выйдите из учетной записи postgres, чтобы продолжить настройку. Основной файл конфигурации Postgres находится по пути /etc/postgresql/11/main/postgresql.conf. В дополнение к этому файлу Postgres использует два других файла конфигурации, которые управляют аутентификацией клиента.

Аутентификация клиента контролируется файлом конфигурации /etc/postgresql/11/main/pg_hba.conf. Postgres предоставляет множество различных методов аутентификации клиента, включая аутентификацию на основе пароля. Клиентские соединения аутентифицируются на основе адреса хоста клиента, базы данных и пользователя.

Если вы решите использовать аутентификацию на основе пароля, вы можете воспользоваться одним из этих методов: md5 или пароль, работающий аналогичным образом, за исключением способа передачи пароля по соединению, а именно, хэширования MD5 и открытого текста соответственно.

Использование аутентификации по паролю md5 предотвращает перехват паролей хакерами и позволяет избежать хранения паролей на сервере в виде простого текста. Парольный метод можно использовать только в том случае, если соединение защищено шифрованием SSL.

В этом руководстве мы покажем, как настроить аутентификацию по паролю md5 для аутентификации клиента.

vim /etc/postgresql/11/main/pg_hba.conf

Найдите следующую строку и измените метод аутентификации на md5, как показано на скриншоте.

local all all md5

Сохраните изменения в файле и выйдите из него. Затем примените последние изменения, перезапустив службу Postgres следующим образом.

systemctl restart postgresql

Создание новой базы данных и роли базы данных/пользователя в PostgreSQL
В этом последнем разделе мы покажем, как создать нового пользователя базы данных и роль базы данных для управления им. Сначала переключитесь на учетную запись postgres и откройте оболочку Postgres следующим образом.

su - postgres

psql

Чтобы создать базу данных с именем «test_db», выполните следующую SQL команду:

CREATE DATABASE test_db;

Затем создайте пользователя базы данных (роль с правом входа), который будет управлять новой базой данных:

CREATE USER test_user PASSWORD ‘новый_пароль’;

На этом настройка postgresql Debian 10 практически завершена. Чтобы подключиться к test_db от имени пользователя test_user, выполните:

psql -d test_db -U test_user

Для получения дополнительной информации см. Документацию PostgreSQL 11.

Выводы

На этом, пока что, все! В этой статье мы показали, как делается установка Postgresql Debian 10, а также как защитить и настроить полученный сервер баз данных. Есть ли у вас какие-либо вопросы или мысли, которыми хочется поделиться? Используйте форму комментариев ниже.

Установка и первоначальная настройка PostgreSQL 10 на Debian 9

Буквально несколько дней назад разработчики PostgreSQL выпустили версию 10.0
В новой версии добавлено много новшеств и сделано немало улучшений, более детально о них можно почитать в официальном пресс-релизе.

Я же опишу ниже как установить и быстро настроить PostgreSQL 10 на Debian 9

Исходные данные: Debian 9 Stretch (amd64)
Задача: Установить PostgreSQL 10.x

1. Предварительная настройка сервера:

Добавляем на сервер русскую локаль, для начала проверяем её отсутствие/присутствие командой

locale -a | grep ru

если в ответ ничего нет, то запускаем

dpkg-reconfigure locales

выбираем в списке локаль ru_RU.UTF-8
и жмем Yes
выбираем локаль по умолчанию en_US.UTF-8

2. Начинаем установку PostgreSQL 10:

echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get install postgresql-10 -y

Краткая справка по местоположению основных файлов PostgreSQL 10:
Местоположение баз данных:
/var/lib/postgresql/10
Местоположение логов:
/var/log/postgresql/postgresql-10-main.log
Настройка ротации логов:
/etc/logrotate.d/postgresql-common
Основные файлы конфигурации:
/etc/postgresql/10/main/postgresql.conf
/etc/postgresql/10/main/pg_hba.conf

Первым делом меняем пароль пользователя postgres:

su - postgres
psql
postgres=# \password postgres
postgres=# \q

3. Тюнинг настроек PostgreSQL:

По умолчанию PostgreSQL принимает соединения только с локальных служб, т.к. слушает интерфейс localhost и это абсолютно правильно с точки зрения безопасности, но если Вы планируете подключения к серверу извне или из локальной сети, то Вам потребуется поменять параметр listen_addresses

Для PostgreSQL 10 открываем основной файл настроек

vi /etc/postgresql/10/main/postgresql.conf

и раскомментируем строку

listen_addresses = 'localhost'

исправим её на

listen_addresses = 'localhost,192.168.100.1'

таким образом мы укажем PostgreSQL слушать сетевые соединения на интерфейсе localhost и на нашем внутреннем интерфейсе локальной сети с IP адресом 192.168.100.1

Далее смотрим на параметр max_connections, который определяет максимальное количество одновременных соединений, которые будет обслуживать сервер PostgreSQL. В принципе, это число должно определяться исходя из требований к системе. Этот параметр в большей степени влияет на использование ресурсов. Если Вы только запустили БД, устанавливайте это значение небольшим (16…32), по умолчанию он установлен 100. Постепенно можно увеличивать max_connections (по мере необходимости — такой мерой будет получение ошибок от postgresql «too many clients»).
Учтите! На поддержку каждого активного клиента, PostgreSQL тратит немалое количество ресурсов, и если Вам необходимо добиться производительности в несколько тысяч активных соединений, то стоит использовать менеджеры соединений, например: Pgpool или PgBouncer.
Важно! Значение параметра max_wal_senders должно быть меньше max_connections, поэтому если Вы установили max_connections = 10, то max_wal_senders нужно поменять к примеру на 5

Смотрим на параметр shared_buffers
Этот параметр определяет, сколько памяти будет выделяться PostgreSQL для кеширования данных.
В стандартной поставке значение этого параметра 128 МБ, то есть по сути мизерное — для обеспечения совместимости. В практических условиях это значение следует установить в 15..25% от всей доступной оперативной памяти сервера. Учтите, слово всей доступной, то есть учитывайте память которую занимают текущие процессы и могут занять в случае роста потребления, к примеру у нас 8 ГБ ОЗУ и стоит MySQL, который в текущем состоянии занять 1 ГБ ОЗУ, а при росте количества соединений исходя из настроек может занять все 6 ГБ ОЗУ, тогда для PostgreSQL остается не так много памяти и shared_buffers никак нельзя поставить 2 ГБ. Если у Вас большие активные порции базы данных, сложные запросы, большое число одновременных соединений, длительные транзакции, Вам доступен большой объем ОЗУ или большее количество процессоров, то можно увеличивать значение shared_buffers и смотреть результат, чтобы не привести к «деградации» (падению) производительности. Выделив слишком много памяти для shared_buffers, мы можем получить ухудшение производительности, поскольку PostgreSQL также использует кэш операционной системы (увеличение данного параметра более 40% оперативной памяти может давать «нулевой» прирост производительности).

Параметр effective_cache_size
Этот параметр помогает планировщику postgresql определить количество доступной памяти для дискового кеширования. На основе того, доступна память или нет, планировщик будет делать выбор между использованием индексов и использованием сканирования таблицы. Это значение следует устанавливать в 50%…75% всей доступной оперативной памяти, в зависимости от того, сколько памяти доступно для системного кеша. Еще раз — этот параметр не влияет на выделяемые ресурсы — это оценочная информация для планировщика.

Параметры min_wal_size, max_wal_size, checkpoint_timeout, checkpoint_completion_target, wal_buffers
Существует несколько параметров конфигурации, связанных с WAL, которые влияют на производительность базы данных. На эти и некоторые другие настройки стоит обратить внимание, если у Вас происходит немалое количество записей в БД (для высоконагруженных систем это нормальная ситуация).
Более подробно следует прочитать официальную документацию или русский перевод на сайте postgrespro.ru.

Параметр work_mem
Важный параметр для запросов, использующих всевозможные сложные выборки и сортировки. Увеличение его
позволяет выполнять эти операции в оперативной памяти, что гораздо более эффективно, чем на диске (еще бы).
Если объём памяти недостаточен для сортировки некоторого результата, то серверный процесс будет использовать временные файлы. Если же объём памяти слишком велик, то это может привести к своппингу.
Будьте внимательны! Это не разделяемая память, work_mem выделяется отдельно на каждую операцию (от одного до нескольких раз за один запрос). Следовательно, если у Вас 10 активных клиентов и каждый выполняет 1 сложный запрос, то значение в 10 МБ для этого параметра скушает 100 МБ оперативной памяти.
Этот параметр стоит увеличивать, если у Вас большое количество памяти в распоряжении. Чем больше max_connections тем меньше должен быть work_mem. В качестве начального значения для параметра можете взять 2–4% доступной памяти. Для веб-приложений обычно устанавливают низкие значения work_mem, так как запросов обычно много, но они простые, обычно хватает от 512 до 2048 КБ. С другой стороны, приложения для поддержки принятия решений с сотнями строк в каждом запросе и десятками миллионов столбцов в таблицах фактов часто требуют work_mem порядка 500 Мб. Для баз данных, которые используются и так, и так, этот параметр можно устанавливать для каждого запроса индивидуально, используя настройки сессии. Например, при памяти 1–4 ГБ рекомендуется устанавливать 32–128 МБ.

Параметр synchronous_commit
Обратите особое внимание на этот параметр! Он включает/выключает синхронную запись в лог файлы после каждой транзакции. Это защищает от возможной потери данных. Но это накладывает ограничение на пропускную способность сервера.
Допустим, в Вашей системе не критична потенциально низкая возможность потери небольшого количества изменений при крахе системы. Но жизненно важно обеспечить в несколько раз большую производительность по количеству транзакций в секунду. В этом случае устанавливайте этот параметр в off (отключение синхронной записи).

Параметр maintenance_work_mem
Задаёт максимальный объём памяти для операций обслуживания БД, в частности VACUUM, CREATE INDEX и ALTER TABLE ADD FOREIGN KEY. По умолчанию его значение — 64 мегабайта (64MB). Так как в один момент времени в сеансе может выполняться только одна такая операция, и обычно они не запускаются параллельно, это значение вполн

Как установить PostgreSQL на Debian 9

Мы покажем вам, как установить PostgreSQL на Debian 9. PostgreSQL – это система управления объектно-реляционными базами данных, написанная на C. Это бесплатная и система с открытым исходным кодом, основные функции которой состоят в том, чтобы безопасно хранить данные и возвращать данные в качестве ответа к другим запросам приложений. Установка PostgreSQL на Debian 9 довольно простая задача, и для завершения установки PostgreSQL на Debian не должно быть больше 10 минут. Давайте начнем.

Прежде чем приступать к этапу установки, убедитесь, что у вас есть полный доступ к вашему Debian 9 VPS, или, по крайней мере, у вас есть системный пользователь с привилегиями sudo. Если вы это сделаете, подключитесь к своему серверу через SSH и убедитесь, что все ваше системное программное обеспечение обновлено. Сначала обновите индекс пакета, используя следующую команду:

apt-get update

 

После обновления индекса пакета вы можете обновить все свое системное программное обеспечение до последней версии, используя следующую команду:

apt-get upgrade

 

Это может занять от нескольких секунд до нескольких минут в зависимости от программного обеспечения, которое необходимо обновить.

Установка PostgreSQL на Debian 9

Следующим шагом будет установка системы баз данных PostgreSQL на ваш Debian 9 VPS. Этот шаг довольно прост, просто запустите следующую команду:

apt-get install postgresql

 

Он установит сервер базы данных PostgreSQL, клиент и другие необходимые инструменты.

Чтобы проверить, установлен ли сервер/клиент PosgreSQL, вы можете использовать следующую команду:

psql --version

Он покажет вам текущую версию PostgreSQL, установленную на вашем сервере:

# psql --version
psql (PostgreSQL) 9.6.7

 

Управление PostgreSQL на Debian 9

Теперь, когда установка PostgreSQL завершена, хорошо знать, как вы можете управлять службой PostgreSQL на вашем PostgreSQL VPS. Чтобы запустить службу PostgreSQL, выполните следующую команду на терминале:

systemctl start postgresql.service

 

Чтобы остановить службу PostgreSQL, вы можете использовать следующую команду:

systemctl stop postgresql.service

 

Чтобы перезапустить службу, вы можете запустить следующую команду:

systemctl restart postgresql.service

 

Чтобы проверить состояние службы PostgreSQL, выполните следующую команду:

systemctl status postgresql.service

 

Если PostgreSQL запущен и работает на вашем Linux VPS на данный момент, вывод будет похож на следующий:

# systemctl status postgresql.service
postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sat 2018-07-21 10:57:16 CDT; 40min ago
 Main PID: 1018 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/postgresql.service

 

Чтобы включить службу PostgreSQL при загрузке системы, выполните следующую команду:

systemctl enable postgresql.service

 

Если вы хотите, чтобы PostgreSQL отключился при загрузке системы, выполните следующую команду:

systemctl disable postgresql.service

 

Если вы хотите управлять местоположениями файлов PostgreSQL, подключениями и аутентификацией, использованием ресурсов, протоколированием и т. д., Вам необходимо отредактировать основной файл конфигурации. Основной файл конфигурации для PostgreSQL находится в каталоге /etc/postgresql/VERSION-NUMBER/main. Поэтому, если ваша версия PostgreSQL равна 9.6, местоположение будет/etc/postgresql/9.6/main/postgresql.conf

Вы можете использовать любой текстовый редактор по вашему выбору, чтобы открыть и отредактировать файл конфигурации для PostgreSQL. Файл состоит из строк формы NAME = VALUEи убедитесь, что сделанные вами изменения действительны. В противном случае PostgreSQL не будет работать. Файл конфигурации считывается при запуске сервера, поэтому при внесении изменений вам необходимо перезапустить службу PostgreSQL, чтобы изменения вступили в силу.

systemctl restart postgresql.service

Основное использование PostgreSQL на Debian 9

Чтобы получить доступ к интерфейсу командной строки PostgreSQL и управлять базами данных, вы должны войти в систему как пользователь postgres системы. Выполните следующую команду:

su - postgres

 

Теперь для входа в интерактивный терминал PostgreSQL выполните следующую команду:

PSQL

 

Ваша оболочка изменится следующим образом:

~$ psql
psql (9.6.7)
Type "help" for help.

postgres=#

 

Теперь вы можете выполнить команду, специфичную для PostgreSQL. Например, чтобы перечислить все текущие базы данных, которые вы можете ввести \lи нажмитеEnter

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)

 

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

Если вы предпочитаете использовать графический пользовательский интерфейс для управления базами данных и сохраненными данными, мы можем порекомендовать вам установить и использовать phpPgAdmin. Это веб-инструмент администрирования PostgreSQL, аналогичный phpMyAdmin для управления системой баз данных MySQL.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка и настройка PostgreSQL 12 на Debian 10 – пошаговая инструкция для начинающих | Info-Comp.ru

Всем привет! Сегодня мы разберем процесс установки PostgreSQL 12 на операционную систему Debian 10, а также выполним первоначальную настройку PostgreSQL. В результате у нас получится полноценный сервер баз данных, реализованный на базе Debian + PostgreSQL, и данный сервер можно использовать в сети предприятия.

Заметка! Установка и настройка PostgreSQL 12 на Windows 10.

Установка PostgreSQL 12 на Debian 10

Итак, давайте перейдем к установке и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 12 на Debian 10.

Установку я буду производить удаленно, используя программу PuTTY.

Шаг 1 – Подключение репозитория и обновление списка пакетов в системе

Установку и настройку PostgreSQL необходимо выполнять с правами пользователя root, поэтому давайте сразу переключимся на root.

Для этого пишем команду su и вводим пароль.

Далее, давайте проверим, нет ли в системе необходимых нам пакетов, так как вдруг нам и не нужно подключать дополнительный репозиторий.

Заметка! Что такое репозитории в Linux.

Для этого вводим следующую команду.

   
   apt-cache search postgresql-12


Как видим, в Debian 10 нужной нам версии PostgreSQL нет, поэтому нам нужно подключить дополнительный репозиторий от разработчиков. Если у Вас более новая версия Debian и в стандартных репозиториях есть 12 версия PostgreSQL, то дополнительный репозиторий Вам подключать не нужно, т.е. данный шаг Вы можете пропустить.

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

   
   sh -c 'echo " deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main " >> /etc/apt/sources.list.d/pgdg.list'


Примечание! Здесь обязательно стоить отметить, что этот репозиторий предназначен для Debian 10, для других версий адрес репозитория будет другим, например, если Вам нужно установить PostgreSQL на Debian 9, то в адресе репозитория вместо buster напишите stretch, т.е. замените кодовое имя версии.

После этого нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.

   
   wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -


Осталось обновить список пакетов в системе, это делаем стандартной командой.

   
   apt-get update


И для проверки того, что теперь нам доступны пакеты PostgreSQL 12, давайте снова запустим команду поиска пакетов.

   
   apt-cache search postgresql-12


Теперь нужные пакеты нам доступны и мы можем переходить к установке PostgreSQL 12.

Заметка! Установка Debian 10 рядом с Windows 10.

Шаг 2 – Установка необходимых пакетов для PostgreSQL

Для установки PostgreSQL 12 и базовых стандартных утилит необходимо установить пакет postgresql-12, это делается следующей командой.

   
   apt-get -y install postgresql-12


Шаг 3 – Проверка установки

Чтобы проверить, установился и запущен ли Postgres, давайте выполним следующую команду, которая покажет статус сервиса PostgreSQL.

   
   systemctl status postgresql


Как видим, PostgreSQL 12 установился и работает.

Заметка! Установка MySQL 8 на Windows 10.

Настройка PostgreSQL 12 в Debian 10

PostgreSQL у нас установлен, однако на текущий момент им пользоваться пока нельзя, поэтому нам необходимо его настроить, в частности создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключения по сети.

Создание пользователя и базы данных в PostgreSQL

После установки к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля.

Давайте переключимся на пользователя postgres (данная учетная запись была создана автоматически во время установки PostgreSQL).

   
   su - postgres


Затем запускаем утилиту psql – это консоль для PostgreSQL.

   
   psql


Первым делом нам нужно задать пароль для пользователя postgres.

   
   \password postgres


Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.

   
   create user info_comp with password '123456';


где info_comp – это имя пользователя, ‘123456’ – это его пароль, Вы, соответственно, придумываете и подставляете свои данные.

Далее давайте создадим базу данных.

   
   create database test_db;


где test_db – это имя новой базы данных.


Теперь давайте дадим права на управление базой данных нашему новому пользователю.

   
   grant all privileges on database test_db to info_comp;


Все готово, выходим из консоли.

   
   \q


Заметка! Как создать составной тип данных в PostgreSQL.

Для проверки давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.

   
   psql -h localhost test_db info_comp


Все работает, я подключился. Для выхода снова набираем \q.

   
   \q


Для переключения обратно на root вводим exit.

   
   exit


Заметка! Установка Microsoft SQL Server 2019 Express на Windows 10.

Разрешаем подключение к PostgreSQL по сети

По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому, для того чтобы мы могли подключаться по сети, нам нужно указать, какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.

Чтобы это сделать, открываем файл postgresql.conf, например, редактором nano.

   
   nano /etc/postgresql/12/main/postgresql.conf


Находим следующую строку.

   
   #listen_addresses = 'localhost'


и вносим следующие изменения (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).

   
   listen_addresses = '*'


Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.

Теперь давайте разрешим подключение из сети, я для примера разрешу подключаться из сети 192.168.1.0/24 с методом аутентификации md5.

Для этого открываем файл pg_hba.conf

   
   nano /etc/postgresql/12/main/pg_hba.conf


Ищем следующие строки.

Заметка! Если Вас интересует язык SQL, рекомендую пройти мой онлайн-курс по основам SQL, который ориентирован на изучение SQL как стандарта, таким образом, Вы сможете работать в любой системе управления базами данных. Курс включает много практики: онлайн-тестирование, задания и многое другое.

И указываем нужную нам сеть (если IPv6 Вы не будете использовать, то можете закомментировать соответствующие строки знаком #).

Далее точно так же сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.

Перезапускаем PostgreSQL, чтобы изменения вступили в силу.

   
   systemctl restart postgresql


Заметка! ТОП 5 популярных систем управления базами данных.

Удаленное подключение к PostgreSQL 12 с помощью pgAdmin 4

Сервер PostgreSQL настроен, поэтому, чтобы проверить его работоспособность, давайте подключимся к серверу удаленно с помощью pgAdmin 4.

Для этого запускаем на клиенте pgAdmin 4, в обозревателе кликаем на контейнер «Servers» и выбираем «Создать -> Сервер».

Далее откроется окно создания сервера, в котором нам нужно на вкладке «Общие» ввести название сервера.

А на вкладке «Соединение» указать IP адрес сервера и данные пользователя, под которым мы подключимся к серверу.

Нажимаем «Сохранить».

Заметка! ТОП 5 популярных дистрибутивов Linux для сервера.

В результате мы подключимся к серверу, а в обозревателе отобразятся все объекты на данном сервере.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Нравится4Не нравится

Установка и настройка postgresql на debian 8 для работы с 1С

Сегодня хочу рассказать об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива. Существуют несколько модификаций postgresql для 1С. Я расскажу про установку двух из них — одна от самой компании 1С, вторая от postgrespro.


Если у вас есть желание освоить Linux с нуля, не имея базовых знаний, рекомендую познакомиться с онлайн-курсом Administrator Linux.Basic в OTUS. Курс для новичков, для тех, кто хочет войти в профессию администратора Linux. Подробности по .

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Расскажу немного о возможности работы 1С, при которой можно сэкономить деньги на лицензиях, используя дистрибутив linux и бесплатную бд postgresql. Сервер 1С обычно используют в одной из следующих связок:

  • Сервер 1С на Windows + MSSQL Server. Тут все понятно, самая распространенная и самая дорогая связка. Требуется лицензия для MSSQL сервера.
  • Сервер 1С на Linux + PostgreSQL. Вариант с максимальным использованием бесплатного ПО. Я давно не использовал эту связку. Последний раз тестировал года 4 назад и мне не понравилась работа 1С сервера на linux. Я использовал дистрибутив Debian. Настройка не сильно сложная, но и не сказать, что простая. Надо ставить драйвера для hasp, чтобы сервер увидел ключ. Сервер работал не стабильно, иногда не получалось сделать выгрузку базы, приходилось перезапускать службу сервера. В целом работало, но не очень надежно. Мне тогда довелось пообщаться плотно с компанией, которая на постоянной основе использовала такую связку и админ тоже жаловался, что приходится сервер 1С перезапускать каждую ночь, тогда более ли менее стабильно все работает. С тех пор я не тестировал работу 1С на линуксе, так что про текущее положение дел ничего сказать не могу.
  • Сервер 1С на Windows + PostgreSQL. Более привычный для настройки и управления вариант. Сервер ставится как обычно на windows машину, настраивается традиционным способом, а в качестве бд выступает бесплатная postgresql. О такой связке я и хочу сегодня рассказать.

Стандартная posgresql не будет нормально работать с базами 1С. В чем там проблема, я не знаю, не разбирался. Для работы с 1С используют отдельные сборки, специально под это заточенные. Мне известны 3 сборки posgresql для работы с 1С:

  1. От Etersoft — http://etersoft.ru/products/postgre
  2. От Postgrespro — https://postgrespro.ru/products/1c_build
  3. И от самой 1С. Скачать можно через портал поддержки пользователей.

Я установлю и настрою для сравнения сборку от 1С и от Postgrespro, чтобы попытаться понять, где будет выше производительность. Настраивать все будем на сервере Debian 8. Если у вас еще нет настроенного сервера, то рекомендую мои статьи по установке и настройке debian. Я создал 2 одинаковые виртуальные машины для теста и установил на каждую из них разную версию базы данных.

Подготовка сервера к установке postgresql

Если вы читали мою статью по настройке debian, то наверно уже обновили систему. Если нет, то сделаем это:

# apt-get update && apt-get upgrade

Скофнигурируем локали. Нам необходимо, чтобы в системе были 2 локали: en_US.UTF-8 и ru_RU.UTF-8. При этом русская должна быть установлена по-умолчанию. Выполняем конфигурацию с помощью команды:

# dpkg-reconfigure locales

Отмечаем указанные выше локали и выбираем ru_RU.UTF-8 дефолтной.

Проверить список установленных локалей можно командой:

# locale -a

Устанавливаем необходимые пакеты:

# apt-get install ssl-cert libossp-uuid16 libxslt1.1

Устанавливаем вручную еще один пакет:

# wget http://ftp.ru.debian.org/debian/pool/main/i/icu/libicu48_4.8.1.1-12+deb7u3_amd64.deb
# dpkg -i libicu48*.deb

Редактируем системный параметр kernel.shmmax. Какое точно значение для наилучшей производительности выставлять, я не знаю. Не смог найти однозначного ответа. Видел рекомендацию, что в половину оперативной памяти на сервере. Я сделал у себя именно так. Вычислить размер параметра можно по формуле: Mb*1024*1024. У меня виртуальный сервер с 8Gb памяти, значение параметра получается 4096*1024*1024 = 4294967296. Добавляем это значение в /etc/sysctl.conf.

kernel.shmmax = 4294967296

Применяем внесенное изменение:

# sysctl -p

Проверить текущее значение параметра можно командой:

# cat /proc/sys/kernel/shmmax

У нас все готово для установки непосредственно postgresql.

Установка сборки PostgreSQL для платформы 1С от postgrespro

Будем устанавливать самую свежую сборку на момент написания статьи — PostgreSQL 9.6.1. Подключаем репозиторий:

# sh -c 'echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'

Устанавливаем gpg ключ

# wget --quiet -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | apt-key add -

Обновляем список пакетов:

# apt-get update

Устанавливаем PostgreSQL

# apt-get install postgresql-pro-1c-9.6

Запускаем базу данных и добавляем в автозагрузку:

# systemctl start postgresql
# systemctl enable postgresql

Установка сборки postgresql для работы с 1С от postgrespro закончена. Можно начинать работать с базой данных. Но перед этим необходимо задать пароль суперпользователя базы данных и выполнить небольшой тюнинг для увеличения быстродействия базы данных. С дефолтными настройками 1С будет работать очень медленно. Настройкой мы займемся позже, после того, как поставим вторую сборку от 1С.

Установка сборки PostgreSQL от 1С

Свежую версию postgresql от 1С можно скачать в пользовательском разделе на сайте 1С по адресу https://releases.1c.ru/total

Мы устанавливаем postgres на сервер Debian, поэтому скачиваем deb пакет для нашей системы.

Если у вас нет доступа к порталу 1С, можете забрать актуальный файл на момент написания статьи у меня — https://yadi.sk/d/hWi1PMBd1B7QIA.

Передаем файл на сервер, например через sftp или ssh. Распаковываем содержимое архива в отдельную папку:

# mkdir postgres
# tar -xvf postgresql-9.4.2-1.1C_amd64_deb.tar.bz2 -C postgres

В архиве были следующие файлы:

# cd postgres
# ls -l
итого 5420
-rw-r--r-- 1 120250 июн 2 2015 libpq5_9.4.2-1.1C_amd64.deb
-rw-r--r-- 1 3657036 июн 2 2015 postgresql-9.4_9.4.2-1.1C_amd64.deb
-rw-r--r-- 1 1069692 июн 2 2015 postgresql-client-9.4_9.4.2-1.1C_amd64.deb
-rw-r--r-- 1 72172 авг 11 2015 postgresql-client-common_154.1.1C_all.deb
-rw-r--r-- 1 163684 авг 11 2015 postgresql-common_154.1.1C_all.deb
-rw-r--r-- 1 457782 июн 2 2015 postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

Устанавливаем все пакеты:

# dpkg -i *.deb

Все, установка postgresql от 1С закончена. Запускаем и добавляем в автозагрузку:

# systemctl start postgresql
# systemctl enable postgresql

Теперь приступаем к настройке для увеличения производительности базы 1С.

Настройка postgresql для увеличения производительности 1С

Настройка это, конечно, громко сказано. Я не занимался серьезно тюнингом postgresql и тестированием. Бегло поискал в интернете информацию и использовал наиболее популярные советы. Так что мои рекомендации не претендуют на реально проверенные и надежные решения. Используйте на свое усмотрение. Я просто делюсь тем, что сам нашел.

Перед изменением конфига, зададим пароль административной учетной записи нашего сервера бд. Для этого заходим в систему от пользователя postgres:

# su postgres

Меняем пароль внутреннего пользователя бд postgres:

# /usr/bin/psql -U postgres -c "alter user postgres with password 'postgrespwd';"

postgrespwd — пароль пользователя для административного доступа к базе данных. Эту учетную запись необходимо использовать для добавления новой базы в Сервер 1С.

Возвращаемся к тюнингу postgres. В первую очередь рекомендую сервис pgtune — http://pgtune.leopard.in.ua. В нем можно указать характеристики сервера и получить рекомендации по настройке. Так как у нас 2 сервера разных версий — первый 9.6, второй 9.4, рекомендации будут немного отличаться. Имейте это ввиду. Вот пример рекомендаций для первого сервера от postgrespro:

Укажите эти параметры в файле конфигураций. В моем случае это файл /etc/postgresql/9.6/main/postgresql.conf. Мне знакомый скинул готовый файл настроек с рекомендуемыми параметрами для 1С. Я не знаю происхождение этого файла, но настройками воспользовался. В итоге с учетом этого конфига и сайта pgtune я получил вот такой файл конфигурации postgres:

data_directory = '/var/lib/postgresql/9.6/main'
hba_file = '/etc/postgresql/9.6/main/pg_hba.conf'
ident_file = '/etc/postgresql/9.6/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/9.6-main.pid'
listen_addresses = '*'
port = 5432
max_connections = 10
unix_socket_directories = '/var/run/postgresql'
ssl = true
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'
shared_buffers = 2GB
temp_buffers = 32MB
work_mem = 104857kB
maintenance_work_mem = 512MB
autovacuum_work_mem = 64MB
dynamic_shared_memory_type = posix
shared_preload_libraries = 'online_analyze, plantuner'
bgwriter_delay = 10ms
bgwriter_lru_maxpages = 1000
bgwriter_lru_multiplier = 10
fsync = on
synchronous_commit = off
wal_buffers = 16MB
checkpoint_timeout = 55min
max_wal_size = 2GB
min_wal_size = 1GB
checkpoint_completion_target = 0.9
effective_cache_size = 6GB
geqo = off
default_statistics_target = 100 # range 1-10000
default_statistics_target = 10
cursor_tuple_fraction = 0.0001
from_collapse_limit = 2
join_collapse_limit = 2
log_line_prefix = '%t [%p-%l] %q%u@%d '
log_timezone = 'localtime'
cluster_name = '9.6/main'
stats_temp_directory = '/var/run/postgresql/9.6-main.pg_stat_tmp'
log_autovacuum_min_duration = 0
autovacuum_max_workers = 3
autovacuum_naptime = 15s
autovacuum_vacuum_threshold = 90
autovacuum_analyze_threshold = 9
autovacuum_vacuum_scale_factor = 0.0002
autovacuum_analyze_scale_factor = 0.0001
autovacuum_vacuum_cost_delay = 10ms
autovacuum_vacuum_cost_limit = 10000
datestyle = 'iso, dmy'
timezone = 'localtime'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
default_text_search_config = 'pg_catalog.russian'
max_locks_per_transaction = 150
max_pred_locks_per_transaction = 150
backslash_quote = on
escape_string_warning = off
standard_conforming_strings = off
online_analyze.threshold = 50
online_analyze.scale_factor = 0.1
online_analyze.enable = on
online_analyze.verbose = off
online_analyze.min_interval = 10000
online_analyze.table_type = 'temporary'
plantuner.fix_empty_table = false

Не забудьте перезапустить postgresql после изменения настроек:

# systemctl restart postgresql

Для версии 9.4 настройки будут немного отличаться. Там как минимум не будет параметров min_wal_size и max_wal_size. Но есть и другие отличия. Призываю не копировать мой конфиг и вставлять к себе, а сравнивать мои параметры и ваш дефолтный конфиг и изменять непосредственно значения параметров.

Есть хороший материал на тему оптимизации postgresql для работы с 1С — http://nixway.org/2015/12/06/optimizacija-postgresql-pod-server-1c-predpriyatiya. Я не буду повторяться и копировать информацию. Можете сами ознакомиться.

Заключение

В моем случае база 1С работала примерно одинаково в обоих случаях. В итоге я решил остановиться на сборке от postgrespro, так как там более свежая версия 9.6. У меня была база 10 гб. Работала она приемлемо, кроме некоторых операций — когда идет чтение по всей базе для построения каких-нибудь списков. Тюнинг различных параметров не привел к уменьшению времени выполнения подобных запросов. Так что этот вопрос остается открытый. Простого решения найти не удалось. Что точно нужно изменить для ускорения работы подобных запросов — не знаю. Разбор этой ситуации описал в отдельном материале — Ускорение работы 1С с postgresql и диагностика проблем производительности.

Заметил, что во время выполнения запроса на 100% нагружено одно ядро процессора. Погуглил тему, стало ясно, что это особенность архитектуры. Один запрос обрабатывает одно ядро. Простых способов решения данной проблемы не существует. Более подробно я не стал разбираться. На ум сразу пришло установить какой-то кэш, чтобы сохранять тяжелые запросы. Нашел информацию про pg_bouncer. Установить не получилось, он сходу из пакетов не встал с моей версией от postgrespro, ругнулся на зависимости. Надо разбираться и собирать из исходников. Нет уверенности, что это поможет, не стал заморачиваться, так как нет много времени на решение этой задачи. Буду рад любым подсказкам и комментариям по теме.

Если вы решите использовать описанное решение в продакшене, вам пригодится материал на тему бэкапа и восстановления баз postgresql.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн курс по Linux

Если у вас есть желание освоить операционную систему Linux, не имея подходящего опыта, рекомендую познакомиться с онлайн-курсом Administrator Linux. Basic в OTUS. Курс для новичков, адаптирован для тех, кто только начинает изучение Linux. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Вы получите навыки администрирования Linux (структура Linux, основные команды, работа с файлами и ПО).
  • Вы рассмотрите следующий стек технологий: Zabbix, Prometheus, TCP/IP, nginx, Apache, MySQL, Bash, Docker, Git, nosql, grfana, ELK.
  • Умение настраивать веб-сервера, базы данных (mysql и nosql) и работа с сетью.
  • Мониторинг и логирование на базе Zabbix, Prometheus, Grafana и ELK.
  • Научитесь командной работе с помощью Git и Docker.

Смотрите подробнее программу по .

Дополнительные материалы по Debian








Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron

Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.

Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования.

Подробное описание настройки сети в Debian — задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.

Настройка программных комплексов
 

  • Proxmox
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp

Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.

Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.

Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.

Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.

Разное
  • Бэкап с помощью rsync
  • Тюнинг postgresl для 1C
Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Установка и настройка PostgreSQL 12 на Debian 10

Всем привет! Сегодня мы разберем процесс установки PostgreSQL 12 на операционную систему Debian 10, а также выполним первоначальную настройку PostgreSQL. В результате у нас получится полноценный сервер баз данных, реализованный на базе Debian + PostgreSQL, и данный сервер можно использовать в сети предприятия.

Заметка! Установка и настройка PostgreSQL 12 на Windows 10.

Установка PostgreSQL 12 на Debian 10

Итак, давайте перейдем к установке и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 12 на Debian 10.

Установку я буду производить удаленно, используя программу PuTTY.

Шаг 1 – Подключение репозитория и обновление списка пакетов в системе

Установку и настройку PostgreSQL необходимо выполнять с правами пользователя root, поэтому давайте сразу переключимся на root.

Для этого пишем команду su и вводим пароль.

Далее, давайте проверим, нет ли в системе необходимых нам пакетов, так как вдруг нам и не нужно подключать дополнительный репозиторий.

Заметка! Что такое репозитории в Linux.

Для этого вводим следующую команду.

   
   apt-cache search postgresql-12

Как видим, в Debian 10 нужной нам версии PostgreSQL нет, поэтому нам нужно подключить дополнительный репозиторий от разработчиков. Если у Вас более новая версия Debian и в стандартных репозиториях есть 12 версия PostgreSQL, то дополнительный репозиторий Вам подключать не нужно, т.е. данный шаг Вы можете пропустить.

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

   
   sh -c 'echo " deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main " >> /etc/apt/sources.list.d/pgdg.list'

Примечание! Здесь обязательно стоить отметить, что этот репозиторий предназначен для Debian 10, для других версий адрес репозитория будет другим, например, если Вам нужно установить PostgreSQL на Debian 9, то в адресе репозитория вместо buster напишите stretch, т.е. замените кодовое имя версии.

После этого нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.

   
   wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Осталось обновить список пакетов в системе, это делаем стандартной командой.

   
   apt-get update

И для проверки того, что теперь нам доступны пакеты PostgreSQL 12, давайте снова запустим команду поиска пакетов.

   
   apt-cache search postgresql-12

Теперь нужные пакеты нам доступны и мы можем переходить к установке PostgreSQL 12.

Заметка! Установка Debian 10 рядом с Windows 10.

Шаг 2 – Установка необходимых пакетов для PostgreSQL

Для установки PostgreSQL 12 и базовых стандартных утилит необходимо установить пакет postgresql-12, это делается следующей командой.

   
   apt-get -y install postgresql-12

Шаг 3 – Проверка установки

Чтобы проверить, установился и запущен ли Postgres, давайте выполним следующую команду, которая покажет статус сервиса PostgreSQL.

   
   systemctl status postgresql

Как видим, PostgreSQL 12 установился и работает.

Заметка! Установка MySQL 8 на Windows 10.

Настройка PostgreSQL 12 в Debian 10

PostgreSQL у нас установлен, однако на текущий момент им пользоваться пока нельзя, поэтому нам необходимо его настроить, в частности создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключения по сети.

Создание пользователя и базы данных в PostgreSQL

После установки к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля.

Давайте переключимся на пользователя postgres (данная учетная запись была создана автоматически во время установки PostgreSQL).

   
   su - postgres

Затем запускаем утилиту psql – это консоль для PostgreSQL.

   
   psql

Первым делом нам нужно задать пароль для пользователя postgres.

   
   \password postgres

Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.

   
   create user info_comp with password '123456';

где info_comp – это имя пользователя, ‘123456’ – это его пароль, Вы, соответственно, придумываете и подставляете свои данные.

Далее давайте создадим базу данных.

   
   create database test_db;

где test_db – это имя новой базы данных.

Теперь давайте дадим права на управление базой данных нашему новому пользователю.

   
   grant all privileges on database test_db to info_comp;

Все готово, выходим из консоли.

   
   \q

Для проверки давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.

   
   psql -h localhost test_db info_comp

Все работает, я подключился. Для выхода снова набираем \q.

   
   \q

Для переключения обратно на root вводим exit.

   
   exit

Заметка! Установка Microsoft SQL Server 2019 Express на Windows 10.

Разрешаем подключение к PostgreSQL по сети

По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому, для того чтобы мы могли подключаться по сети, нам нужно указать, какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.

Чтобы это сделать, открываем файл postgresql.conf, например, редактором nano.

   
   nano /etc/postgresql/12/main/postgresql.conf

Находим следующую строку.

   
   #listen_addresses = 'localhost'

и вносим следующие изменения (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).

   
   listen_addresses = '*'

Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.

Теперь давайте разрешим подключение из сети, я для примера разрешу подключаться из сети 192.168.1.0/24 с методом аутентификации md5.

Для этого открываем файл pg_hba.conf

   
   nano /etc/postgresql/12/main/pg_hba.conf

Ищем следующие строки.

И указываем нужную нам сеть (если IPv6 Вы не будете использовать, то можете закомментировать соответствующие строки знаком #).

Далее точно так же сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.

Перезапускаем PostgreSQL, чтобы изменения вступили в силу.

   
   systemctl restart postgresql

Заметка! ТОП 5 популярных систем управления базами данных.

Удаленное подключение к PostgreSQL 12 с помощью pgAdmin 4

Сервер PostgreSQL настроен, поэтому, чтобы проверить его работоспособность, давайте подключимся к серверу удаленно с помощью pgAdmin 4.

Для этого запускаем на клиенте pgAdmin 4, в обозревателе кликаем на контейнер «Servers» и выбираем «Создать -> Сервер».

Далее откроется окно создания сервера, в котором нам нужно на вкладке «Общие» ввести название сервера.

А на вкладке «Соединение» указать IP адрес сервера и данные пользователя, под которым мы подключимся к серверу.

Нажимаем «Сохранить».

Заметка! ТОП 5 популярных дистрибутивов Linux для сервера.

В результате мы подключимся к серверу, а в обозревателе отобразятся все объекты на данном сервере.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Ставим PostgreSQL 9.6 на Debian 9 – gee12

Это продолжение статьи Ставим 1С 8.3 32-bit на Debian 9 64-bit.

Будем устанавливать PostgreSQL 9.6.6 на Debian 9 и настраивать для хранения баз 1С.

Использовались материалы:
Установка и настройка postgresql на debian 8 для работы с 1С
Сборка от PostgresPro для платформы 1С под Linux и Windows (для коммерческих целей платно)
Tuning Your PostgreSQL Server (на офф.сайте без перевода)
Оптимизация работы PostgreSQL (описание параметров)
Лучшие практики по настройке PostgreSQL от gilev.ru (внизу)
О патче от 1С для PostgreSQL
PGTune – автоподбор параметров PostgreSQL по параметрам железа
Решение проблем при использовании “1c предприятие” 8.2 в Linux
Типовые ошибки установки сервера 1С:Предприятие и PostgreSQL на платформе Linux


Перед установкой

Для корректной работы дистрибутивов 1С, кластер PostgreSQL должен быть инициализирован с локалью ru_RU.UTF-8. Если при инициализации кластера локаль явно не задана, то кластер будет инициализирован с локалью, установленной в системе по умолчанию. C помощью утилит locale(Linux) и systeminfo(Windows) можно узнать значение локали, установленное по умолчанию (postgrespro плохого не посоветует).

Необходимо, чтобы в системе были 2 локали: en_US.UTF-8 и ru_RU.UTF-8. Вторую нужно сделать по-умолчанию:

$ dpkg-reconfigure locales



$ dpkg-reconfigure locales

Проверить список установленных локалей:

Устанавливаем необходимые пакеты:

$ apt-get install ssl-cert libossp-uuid16 libxslt1.1



$ apt-get install ssl-cert libossp-uuid16 libxslt1.1

Устанавливаем вручную еще один пакет (полнофункциональная поддержка Unicode и локали):

$ wget http://ftp.ru.debian.org/debian/pool/main/i/icu/libicu48_4.8.1.1-12+deb7u3_amd64.deb
$ dpkg -i libicu48*.deb



$ wget http://ftp.ru.debian.org/debian/pool/main/i/icu/libicu48_4.8.1.1-12+deb7u3_amd64.deb

$ dpkg -i libicu48*.deb

Устанавливаем в ядре параметр kernel.shmmax – это максимальный размер разделяемой памяти (в байтах). Каким он должен быть – нигде толком не написано, и даже на странице документации postgreSQL 9.6 Managing Kernel Resources написано всего-лишь, что он должен быть “не менее 1 кБ (больше, если выполняется много копий сервера)”. Ясно лишь, что в 32-разрядной системе нужно всегда устанавливать 4294967295).

Для наших 64Гб ОЗУ установим 32Гб под shmmax, хз насколько это будет правильно. 32Гб*1024*1024*1024=34359738368 байт.
а) Добавляем в /etc/sysctl.conf:

$ nano /etc/sysctl.conf
kernel.shmmax=34359738368



$ nano /etc/sysctl.conf

kernel.shmmax=34359738368

Применяем внесенное изменение

ИЛИ б)

$ echo 34359738368 > /proc/sys/kernel/shmmax



$ echo 34359738368 > /proc/sys/kernel/shmmax

Проверяем внесенные изменения:

$ cat /proc/sys/kernel/shmmax



$ cat /proc/sys/kernel/shmmax


Установка

Скачать дистрибутив можно:
1) От Etersoft (на данный момент последняя версия 9.2)
2) От PostgresPRO (на данный момент последняя версия 11.5.4)
3) От самой 1С (на данный момент последняя версия 10.9-5.1C)

На момент написания ставил версию от PostgrePRO 9.6, но на данный момент у них, судя по всему, изменились правила лицензирования, и для свободного использования доступна  лишь версия Postgres Pro Standard “для тестирования, разработки ПО, ознакомления с функциональностью СУБД,  использования в образовательном процессе”.

$ apt-get update -y
$ apt-get install -y wget gnupg2
$ wget -O — http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | apt-key add -
$ echo deb http://1c.postgrespro.ru/archive/2018_03_02/deb stretch main > /etc/apt/sources.list.d/postgrespro-1c.list
$ apt-get update -y
$ apt-get install -y postgresql-pro-1c-9.6
$ apt-get -f install — (возможно) установить неудовлетворенные зависимости



$ apt-get update -y

$ apt-get install -y wget gnupg2

$ wget -O — http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | apt-key add —

$ echo deb http://1c.postgrespro.ru/archive/2018_03_02/deb stretch main > /etc/apt/sources.list.d/postgrespro-1c.list

$ apt-get update -y

$ apt-get install -y postgresql-pro-1c-9.6

$ apt-get -f install — (возможно) установить неудовлетворенные зависимости

Возможно, понадобятся отдельно либы (сейчас не припомню точный процесс установки):
– libssl1.0.0 (в репозитории deb http://ftp.de.debian.org/debian jessie main)
– postgresql-client-common, postgresql-common
– libicu55 (38/48/52/55)

Для изменения каталога хранения баз:
а) В postgresql.conf меняем data_directory на свое:

$ nano /etc/postgresql/9.6/main/postgresql.conf
data_directory = ‘new_data_directory’



$ nano /etc/postgresql/9.6/main/postgresql.conf

data_directory = ‘new_data_directory’

ИЛИ
б) Перемещаем папку и создаем симлинк:

$ mv -r /var/lib/postgresql/9.6/main <new_data_directory>
$ ln -s <new_data_directory/main>  /var/lib/postgresql/9.6/



$ mv -r /var/lib/postgresql/9.6/main <new_data_directory>

$ ln -s <new_data_directory/main>  /var/lib/postgresql/9.6/

Новой папке указываем права:

$ chown -R postgres:postgres <new_data_directory>
$ chmod 700 <new_data_directory>



$ chown -R postgres:postgres <new_data_directory>

$ chmod 700 <new_data_directory>

Добавляем в автозагрузку и запускаем:

$ systemctl enable postgresql
$ systemctl start postgresql



$ systemctl enable postgresql

$ systemctl start postgresql

Ограничим доступ к СУБД только внутри машины и, если нужно, с определенного сетевого интерфейса (для удаленного pgAdmin):

$ nano /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = ‘localhost,network_interface_ip’



$ nano /etc/postgresql/9.6/main/postgresql.conf

listen_addresses = ‘localhost,network_interface_ip’

Меняем пароль внутреннего пользователя БД postgres:

$ su postgres
$ psql -U postgres -c «ALTER USER postgres WITH PASSWORD ‘PASSWORD’;»
$ su — (или CTRL+D)



$ su postgres

$ psql -U postgres -c «ALTER USER postgres WITH PASSWORD ‘PASSWORD’;»

$ su — (или CTRL+D)

Откроем локальный доступ с учетки postgres в файле pg_hba.conf:

$ nano /etc/postgresql/9.6/main/pg_hba.conf
# столбцы host,database,user,auth-method
local all postgres trust



$ nano /etc/postgresql/9.6/main/pg_hba.conf

# столбцы host,database,user,auth-method

local all postgres trust

Перезагрузим это все безобразие:

Как установить PostgreSQL в Debian — Linux Подсказка

Debian — один из самых успешных и независимых дистрибутивов операционной системы Linux, а PostgreSQL — то же самое для систем управления реляционными базами данных (RDBMS). Оба они не зависят от крупного корпоративного контроля и позволят вам получить бесплатный и мощный пользовательский интерфейс для безопасного размещения сервера и реляционной базы данных, работающих на нем.

В этой статье я продемонстрирую, как установить PostgreSQL на Debian. На момент написания этой статьи мы будем использовать последние стабильные версии как Postgres, так и Debian, и я ожидаю, что в течение нескольких лет этот процесс не будет сильно отличаться, что сделает это руководство по-прежнему точным.Мы будем использовать собственное репозиторий Debian, а не какой-либо настраиваемый процесс, чтобы полностью использовать Debian. Текущая версия Debian — 9.6, а текущая версия PostgreSQL — 9.6, выпущенная в 2016 году. Да, это старая версия, но мы будем использовать стабильные версии, изначально предоставляемые Debian. Также это просто полное совпадение, что и Debian, и PostgreSQL в настоящее время имеют одинаковый номер версии, пожалуйста, не придавайте этому никакого значения, кроме чистого совпадения. Это обеспечит максимальную стабильность, рекомендованную для критически важного использования.Я начну с новой установки Debian в Digital Ocean, чтобы убедиться в чистоте системы и воспроизводимости процесса.

Подготовьте систему

Во-первых, давайте сделаем быстрое обновление apt-get update и apt-get upgrade , чтобы убедиться, что в системе уже установлены все пакеты в актуальном состоянии.

$ apt-get update
$ apt-get upgrade

Установить PostgreSQL

Существует множество пакетов PostgreSQL, которые вы можете увидеть, запустив apt-cache search .Пакет, который мы хотим установить, называется просто postgresql . Мы установим его с помощью apt-get install .

$ apt-cache search postgres
$ apt-get install postgresql

Запустите dkpg, чтобы убедиться, что установка завершена и установлены пакеты, связанные с PostgreSQL:

$ dpkg -l | grep postgre

На платформе Debian есть удобный сервис для управления PostgreSQL. Таким образом, мы не будем запускать initdb или запускать и останавливать базу данных с помощью собственных команд, таких как pg_ctl .Проверьте справочное сообщение для службы PostgreSQL, выполнив команду:

Запуск и остановка PostgreSQL

$ сервис postgresql

Прежде чем мы начнем пытаться запустить и остановить процессы, давайте проверим файлы конфигурации. В Debian файлы конфигурации устанавливаются с помощью пакета postgresql-common в папку / etc / postgresql .

Файлы конфигурации PostgreSQL

Файл postgresql.conf — это основной файл конфигурации базы данных, в котором вы можете установить собственные настройки для вашей установки. Pg_hba.conf — это файл конфигурации доступа. Они запускаются с разумными и безопасными настройками по умолчанию для сервера Debian. Обратите внимание, что pg_hba.conf настроен только для локального доступа, поэтому вам нужно будет обновить этот файл в соответствии с документацией, если вы хотите предоставить доступ пользователям или приложениям для удаленного подключения к базе данных.

Хорошо, давайте попрактикуемся в остановке и запуске базы данных с помощью предоставленной службы.С помощью команды service postgresql вы можете предоставить аргументы stop , start и status для управления сервером.

служба postgresql start
служба postgresql stop
служба postgresql status

Подключение к базе данных

По умолчанию PostgreSQL устанавливается в достаточно безопасном режиме. Пользователь linux с именем postgres создается по умолчанию, и этот пользователь имеет локальный доступ для подключения к базе данных без каких-либо дополнительных действий по настройке.По умолчанию даже root не может войти в базу данных. Давайте попробуем подключиться к базе данных как пользователь root.

Отказано в корневом доступе

Итак, давайте сменим пользователя linux на идентификатор пользователя postgres , и тогда мы сможем получить доступ к системе.

$ su — postgresq
$ psql -l
$ psql postgres

Войти как пользователь linux: postgres

Чтобы убедиться, что система работает, давайте создадим базу данных из командной строки с помощью утилиты createdb .Затем мы обновим pg_hba.conf, перезапустим базу данных и подключимся к этой базе данных.

Как пользователь postgres создайте новую базу данных:

Как пользователь root , измените pg_hba.conf, чтобы добавить аутентификацию для новой базы данных.

Обновлен pg_hba.conf как root

Затем также как пользователь root перезагрузите файлы конфигурации.

$ сервис postgresql reload

Наконец, вернитесь к пользовательскому postgres и протестируйте новую базу данных.Мы будем протестировать, войдя в базу данных linuxhint , создав таблицу, добавив 2 строки и затем запросив таблицу. Как показано ниже.

создать тестовую таблицу

Заключение

В конечном итоге вы захотите спроектировать схему своей базы данных и настроить файл pg_hba.conf таким образом, чтобы разрешить внешний доступ к вашей базе данных, а затем вы отправляетесь в гонку.

.

PostgreSQL: Linux загрузок (Debian)

PostgreSQL по умолчанию доступен во всех версиях Debian. Тем не менее
стабильные версии Debians «снимок» конкретной версии PostgreSQL
который затем поддерживается на протяжении всего жизненного цикла этой версии Debian.
Проект PostgreSQL также поддерживает подходящий репозиторий со всеми поддерживаемыми
PostgreSQL в наличии.

Репозиторий PostgreSQL Apt

Если версия, включенная в вашу версию Debian, не та, которую вы хотите,
вы можете использовать репозиторий PostgreSQL Apt.Этот репозиторий будет интегрировать
с вашими обычными системами и управлением исправлениями, и обеспечить автоматическое
обновления для всех поддерживаемых версий PostgreSQL на протяжении всей поддержки
время жизни PostgreSQL.

Репозиторий PostgreSQL apt поддерживает поддерживаемую в настоящее время стабильную
версии Debian:

  • Бастер (10.x)
  • Стретч (9.x)
  • Джесси (8.x)
  • Bullseye (11.x, тестирование)
  • Сид (нестабильный)

на следующих архитектурах:

  • драм 64
  • arm64 (Buster и новее)
  • i386 (Buster и старше)
  • ppc64el

Чтобы использовать репозиторий apt, выполните следующие действия:

 # Создаем конфигурацию репозитория файлов:
sudo sh -c 'echo "deb http: // apt.postgresql.org/pub/repos/apt $ (lsb_release -cs) -pgdg main "> /etc/apt/sources.list.d/pgdg.list '

# Импортируем ключ подписи репозитория:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key добавить -

# Обновить списки пакетов:
sudo apt-get update

# Установить последнюю версию PostgreSQL.
# Если вам нужна конкретная версия, используйте postgresql-12 или аналогичный вместо postgresql:
sudo apt-get -y установить postgresql 

Копировать скрипт

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

Включено в раздачу

Debian по умолчанию включает PostgreSQL. Чтобы установить PostgreSQL на
Debian, используйте команду apt-get (или другую команду apt-driving):

  apt-get установить postgresql-12
 

Репозиторий содержит множество разных пакетов, включая сторонние
аддоны. Наиболее распространенными и важными пакетами являются (замените
номер версии по мере необходимости):

postgresql-client-12 клиентские библиотеки и клиентские двоичные файлы
postgresql-12 главный сервер базы данных
postgresql-contrib-9.х дополнительных поставляемых модулей (часть пакета postgresql-xx в версии 10 и новее)
libpq-dev библиотеки и заголовки для разработки внешнего интерфейса на языке C
postgresql-server-dev-12 библиотек и заголовков для внутренней разработки на языке C
pgadmin4 Графическая утилита администрирования pgAdmin 4

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *