Postgresql 13 ubuntu настройка
Для систем на базе Linux Postgres Pro Standard поставляется в виде двоичных пакетов. Все двоичные дистрибутивы Postgres Pro состоят из нескольких пакетов. Структура пакетов отличается от структуры ванильного PostgreSQL и поддерживает следующие режимы установки:
Быстрая установка и настройка . Пакет postgrespro-std-13 устанавливает и настраивает все компоненты, необходимые для получения готовой к использованию конфигурации, как клиентских, так и серверных компонентов. Выберите этот вариант, если вы планируете установить только один экземпляр Postgres Pro и вас не беспокоят возможные конфликты с другими продуктами на базе PostgreSQL .
Важно
При установке пакета postgrespro-std-13 могут быть удалены существующие инсталляции продуктов на базе Postgres Pro и PostgreSQL . И напротив, установленный пакет Postgres Pro может быть автоматически удалён, если вы впоследствии развернёте другой продукт на базе PostgreSQL . Данный пакет не нужно устанавливать в процессе обновления или миграции, а также если вы планируете разворачивать в одной системе несколько инсталляций.
Расширенная установка . Вы можете выбрать любые пакеты, требующиеся для ваших целей, включая пакеты для разработчиков. Этот вариант требует ручной настройки, поэтому для него необходимо хорошо разбираться в Linux и понимать архитектуру PostgreSQL . Это единственно возможный вариант, если вы планируете реализовать один из следующих сценариев использования Postgres Pro :
Установка одновременно нескольких версий Postgres Pro либо установка вместе с другими продуктами на базе PostgreSQL.
Обновление с другой версии или миграция с другого продукта на базе PostgreSQL .
Минимальные системные требования для установки Postgres Pro , создания кластера баз данных и запуска сервера:
Процессор с частотой 1 ГГц
Для вспомогательных компонентов или данных потребуется дополнительное дисковое пространство.
16.1.1. Поддерживаемые дистрибутивы Linux
Двоичные пакеты Postgres Pro предоставляются для следующих систем на базе Linux:
Системы Red Hat Enterprise Linux (RHEL) и производные от них: CentOS 7/8, Red Hat Enterprise Linux 7/8, Oracle Linux 7/8, Rosa Enterprise Linux Server 7, РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 7, РЕД ОС 7 МУРОМ, Гослинукс 7, МСВСфера 6.3, AlterOS 7.5
Системы на базе Debian: Debian 8/9/10/11, Ubuntu 18.04/20.04/20.10/21.04, Astra Linux «Смоленск» 1.5/1.6/1.7, Astra Linux «Орёл» 2.12
Альт Линукс 8/9, Альт Линукс СПТ 7.0, Альт 8 СП
SUSE Linux Enterprise Server (SLES) 12/15
Примечание
Двоичные пакеты Postgres Pro используют библиотеку tzdata , предоставляемую операционной системой, поэтому важно, чтобы в системе была установлена последняя её версия. В случае использования устаревшей библиотеки tzdata значения времени в вашей базе данных могут быть некорректными.
16.1.2. Быстрая установка и настройка
Если вам нужно установить только один экземпляр Postgres Pro и вы не собираетесь использовать никакие другие продукты на базе PostgreSQL в вашей системе, вы можете использовать режим быстрой установки. Типичная процедура установки в этом случае выглядит так:
Примечание
По умолчанию конфигурация базы данных настраивается под устанавливаемый продукт Postgres Pro . Если вам нужна другая настройка сервера базы данных, выберите расширенную установку и воспользуйтесь аргументом tune команды pg-setup initdb .
После завершения установки вы можете запустить psql от имени пользователя postgres и подключиться к только что созданной базе данных, находящейся в каталоге данных /var/lib/pgpro/std-13/data .
Так как база данных по умолчанию создаётся скриптом pg-setup , путь к каталогу данных сохраняется в файле /etc/default/postgrespro-std-13 . Все последующие команды pg-setup , а также любые команды, управляющие службой Postgres Pro , будут нацелены именно на эту базу данных.
16.1.3. Расширенная установка
Разделение дистрибутива на несколько пакетов позволяет произвести инсталляцию по-разному для различных применений: для серверов баз данных, клиентских систем или рабочих станций разработчиков. Такие инсталляции необходимо настраивать вручную, но это даёт дополнительную гибкость при использовании продукта. Вы можете установить несколько версий Postgres Pro параллельно, а также вместе с другими продуктами PostgreSQL . В частности, это может потребоваться при осуществлении обновления или при миграции с другого продукта на базе PostgreSQL .
Для осуществления расширенной установки выполните следующие действия:
Выберите пакеты Postgres Pro , требующиеся для ваших целей, и установите их с помощью стандартных для вашего дистрибутива Linux команд. Доступные пакеты перечислены в Таблице 16.1.
В результате все файлы будут установлены в каталог /opt/pgpro/std-13 .
Запустите от имени root утилиту pg-wrapper , чтобы добавить и клиентские, и серверные установленные программы в путь поиска PATH , а также включить страницы man по SQL в файл конфигурации страниц man. Эта утилита входит в состав пакета postgrespro-std-13-client .
Подробнее о разрешении возможных конфликтов рассказывается в pg-wrapper .
Если вы устанавливаете пакет postgrespro-std-13-server , выполните следующую процедуру настройки сервера:
Создайте начальную базу данных, запустив вспомогательный скрипт pg-setup от имени root с ключом initdb :
Аргумент tune выбирает вариант конфигурации базы данных.
Примечание
По умолчанию pg-setup инициализирует кластер баз данных со включёнными контрольными суммами. Если для вас это нежелательно, укажите --no-data-checksums .
Скрипт pg-setup выполняет административные операции с базами данных от имени пользователя postgres . Если вы не укажете никакие параметры initdb , база по умолчанию создаётся в каталоге /var/lib/pgpro/std-13/data с параметрами локализации, определяемыми переменной окружения LANG текущего сеанса. Переменные окружения LC_* при этом игнорируются.
Так как база данных по умолчанию создаётся скриптом pg-setup , путь к каталогу данных сохраняется в файле /etc/default/postgrespro-std-13 . Все последующие команды pg-setup , а также любые команды, управляющие службой Postgres Pro , будут нацелены именно на эту базу данных.
Запустите сервер с помощью pg-setup от имени root следующим образом:
Как и сервер ванильного PostgreSQL , сервер Postgres Pro работает под именем пользователя postgres .
Примечание
По умолчанию автоматический запуск сервера отключён, чтобы вы могли вручную управлять восстановлением базы данных после перезагрузки системы. Однако вы можете настроить и автоматический запуск сервера Postgres Pro . За подробностями обратитесь к Подразделу 16.1.3.2.
16.1.3.1. Выбор устанавливаемых пакетов
В следующей таблице перечислены все имеющиеся пакеты Postgres Pro Standard .
Таблица 16.1. Пакеты Postgres Pro Standard
Пакет верхнего уровня, устанавливающий и настраивающий Postgres Pro для серверных и клиентских систем. Не используйте этот пакет при обновлении или миграции.
Важно
При установке пакета postgrespro-std-13 могут быть удалены существующие инсталляции продуктов на базе Postgres Pro и PostgreSQL . И напротив, установленный пакет Postgres Pro может быть автоматически удалён, если вы впоследствии развернёте другой продукт на базе PostgreSQL .
Заголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений.
Реализация языка Python 3 для программирования на стороне сервера.
Тестовые скрипты для сервера.
Этот пакет обеспечивает поддержку JIT -компиляции.
Этот пакет предоставляется только для систем Debian и Ubuntu, Astra Linux «Смоленск» 1.6/1.7, Astra Linux «Орёл» 2.12, ALT Linux 8/9, CentOS 7/8, SLES 15, ОСнова 2.0 и RHEL 7/8.
Кроме этого, имеются отдельные пакеты с несколькими дополнительными модулями, собранные специально для совместимости с Postgres Pro Standard:
Таблица 16.2. Сторонние пакеты, собранные для Postgres Pro Standard
Кроме того, Postgres Pro предоставляет отдельные пакеты с отладочной информацией для некоторых операционных систем:
В системах на базе Debian это пакет postgrespro-std-13-dbg .
В системах на базе RHEL это пакет postgrespro-std-13-debuginfo .
Для серверных инсталляций требуются как минимум следующие пакеты:
Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro-std-13-contrib . В системах на базе Debian пакет postgrespro-std-13-server зависит от пакета postgrespro-std-13-contrib , поэтому последний должен всегда устанавливаться вместе с сервером.
Для клиентских инсталляций обычно достаточно установить пакеты postgrespro-std-13-client и postgrespro-std-13-libs . Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql , вы можете установить только пакет postgrespro-std-13-libs .
Для рабочих станций разработчиков необходимый минимум составляют следующие пакеты:
Также вы можете установить и настроить сервер с тестовой базой данных. Подробнее о настройке, которая может потребоваться дополнительно, рассказывается в Подразделе 16.1.4.
16.1.3.2. Настройка автоматического запуска сервера
Если вы производите расширенную установку, автоматический запуск сервера по умолчанию отключается. После создания базы данных по умолчанию вы можете настроить автоматический запуск сервера при загрузке системы, используя имеющиеся в вашей операционной системе механизмы управления службами или сторонние средства обеспечения высокой степени доступности. Для облегчения этой задачи в пакете postgrespro-std-13-server поставляется скрипт pg-setup , помещаемый в каталог /opt/pgpro/std-13/bin .
Для настройки автозапуска сервера запустите скрипт pg-setup со следующими параметрами:
Если требуется, вы можете отключить автозапуск сервера, используя тот же скрипт:
Вы также можете использовать системные средства управления службами, непосредственно задействуя скрипты для систем инициализации SysV init.d и systemd , предоставляемые в пакете postgrespro-std-13-server . В зависимости от дистрибутива Linux Postgres Pro поддерживает следующие механизмы управления службами:
Для включения автоматического запуска сервера средствами systemd выполните следующую команду:
Для использования скрипта init.d в стиле SysV:
В системах ALT Linux выполните следующую команду:
16.1.4. Установка на рабочих станциях разработчиков
Хотя может быть достаточно установить пакеты postgrespro-std-13-libs и postgrespro-std-13-devel / postgrespro-std-13-dev , обычно на машинах разработчиков удобно иметь и установленный сервер. Для быстрой установки вы можете воспользоваться пакетом postgrespro-std-13 , который автоматически настроит предоставляемые клиентские и серверные программы, а также создаст начальную базу данных. Однако если вы планируете использовать одновременно несколько продуктов на базе PostgreSQL , следуйте инструкциям по расширенной установке, приведённым в Подразделе 16.1.3.
Чтобы скомпилировать программы с библиотеками Postgres Pro , используя утилиту pg_config , поставляемую с Postgres Pro , необходимо, чтобы её путь был указан в переменной PATH до путей каких-либо других версий pg_config . Заметьте, что в системах на базе RHEL pg_config не добавляется в PATH автоматически. Если в вашей системе нет других версий pg_config , вы можете воспользоваться утилитой pg-wrapper , поставляемой в пакете postgrespro-std-13-client , для создания символической ссылки на pg_config в стандартном каталоге исполняемых файлов.
Для компиляции программ с использованием pkg-config добавьте путь /opt/pgpro/std-13/lib/pkgconfig/ в переменную среды PKG_CONFIG_PATH .
Если вы хотите компилировать расширения Postgres Pro с поддержкой встраивания JIT, выполните дополнительные требования:
Установите пакет LLVM для разработки и компилятор Clang. Вы должны выбрать пакеты той же версии, какая использовалась для сборки пакета postgrespro-std-13-jit , устанавливаемом на сервере. Определить версию, требующуюся для текущего выпуска Postgres Pro , вы можете по значению CLANG в файле /opt/pgpro/std-13/lib/pgxs/src/Makefile.global .
16.1.4.1. Использование сторонних программ с Postgres Pro
Чтобы использовать сервер Postgres Pro с клиентской программой из стороннего продукта, вы можете установить версию библиотек PostgreSQL , с которыми компилировалась эта программа. Например, если программа поставляется в составе ванильного PostgreSQL , вам может потребоваться установить пакеты libpq или postgresql-libs , предоставляемые для вашего дистрибутива Linux. В этом случае программа, возможно, не будет использовать некоторые новые возможности сервера Postgres Pro , но скорее всего она и не поддерживает их.
Если вы предпочитаете использовать библиотеки Postgres Pro со сторонней программой или хотели бы задействовать новую возможность, которая не требует изменения самого клиентского приложения, например, проверку подлинности SCRAM , вы можете перекомпилировать вашу программу с библиотеками Postgres Pro .
Важно
Если программа скомпилирована с одной версией libpq , а используется с другой, её стабильная работа не гарантируется.
Если вы создаёте пакеты .rpm или .deb для вашей программы, рекомендуется сделать следующее:
Добавьте путь /opt/pgpro/std-13/bin в переменную PATH в сборочных скриптах (в файле .spec или debian/rules ).
Тем самым вы обеспечите вызов в процессе создания пакетов нужной версии pg_config при каждой пересборке пакета исходного кода.
16.1.5. Настройка нескольких экземпляров Postgres Pro
Чтобы настроить в Linux несколько экземпляров сервера Postgres Pro с разными каталогами данных, нужно проделать следующее:
Установите и настройте Postgres Pro , следуя указаниям в Подразделе 16.1.2 или Подразделе 16.1.3.
После создания начальной базы данных запустите initdb и укажите путь к другому каталогу данных и любые другие параметры, требующиеся для инициализации другого экземпляра сервера.
Задайте другие порты для экземпляров серверов в соответствующих файлах postgresql.conf , чтобы не допустить конфликтов.
Если требуется, настройте автоматический запуск сервера следующим образом:
Создайте копию файла /etc/init.d/postgrespro-std-13 или /lib/systemd/system/postgrespro-std-13.service с другим именем и поменяйте в ней путь к каталогу данных.
16.1.6. Замечания о совместимости с антивирусами
Настоятельно не рекомендуется использовать антивирусное ПО в системах, где работает Postgres Pro , так как антивирус создаёт дополнительную нагрузку и может оказывать непредсказуемое влияние на работу базы данных, что чревато проблемами с производительностью и надёжностью. Если вам необходимо использовать антивирусное ПО, обязательно добавьте в исключения антивируса следующие каталоги, так как они не содержат исполняемых файлов:
Каталог PGDATA с основными данными кластера (обычно /var/lib/pgpro/std-13/data или другой каталог, заданный в параметрах initdb )
Всем привет! Сегодня мы разберем процесс установки PostgreSQL 13 на операционную систему Linux Ubuntu Server 20.04, а также выполним первоначальную настройку PostgreSQL. В результате у нас получится полноценный сервер баз данных, реализованный на базе Ubuntu Server + PostgreSQL, и данный сервер можно будет использовать в сети предприятия.
Установка PostgreSQL 13 на Ubuntu Server 20.04
Итак, давайте перейдем к установке и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 13 на Ubuntu Server 20.04.
Установку я буду производить удаленно, для подключения к Ubuntu Server буду использовать программу PuTTY.
Заметка! О том, как установить Ubuntu Server, я подробно рассказывал в материале – Установка Linux Ubuntu Server 20.04.
Шаг 1 – Подключение репозитория и обновление списка пакетов в системе
Установку и настройку PostgreSQL необходимо выполнять с правами пользователя root, поэтому давайте сразу переключимся на root.
Для этого пишем команду sudo -i и вводим пароль.
Далее, подключаем репозиторий, который будет содержать актуальную версию PostgreSQL, на текущий момент актуальной версией является PostgreSQL 13, поэтому в данном репозитории хранится именно эта версия, которую мы и будем устанавливать.
Однако, если Вам требуется установить не самую последнюю версию, то на этапе установки пакетов нужно будет указать номер версии в названии пакета, чуть ниже, на соответствующем шаге, я поясню, где именно необходимо указать номер конкретной версии.
Для подключения репозитория вводим следующую команду, которая создает файл в источниках с адресом нужного репозитория.
После этого нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.
Осталось обновить список пакетов в системе, это делаем стандартной командой.
И для проверки того, что теперь нам доступны пакеты PostgreSQL 13, давайте запустим команду поиска пакетов.
Нужные пакеты нам доступны, и мы можем переходить к установке PostgreSQL 13.
Шаг 2 – Установка необходимых пакетов для PostgreSQL
Для установки актуальной версии, т.е. PostgreSQL 13 и базовых стандартных утилит, необходимо установить пакет postgresql, это делается следующей командой.
Чтобы установить какую-то конкретную версию PostgreSQL, необходимо указать номер этой версии в названии пакета, например, для 12 версии необходимо установить пакет postgresql-12.
Шаг 3 – Проверка установки
Чтобы проверить, установился и запущен ли PostgreSQL, давайте выполним следующую команду, которая покажет статус сервиса PostgreSQL.
Как видим, PostgreSQL 13 установился и работает.
Настройка PostgreSQL 13 в Ubuntu Server 20.04
PostgreSQL у нас установлен, однако на текущий момент им пользоваться пока нельзя, поэтому нам необходимо его настроить, в частности создать пользователя, указать, какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключения по сети.
Создание пользователя и базы данных в PostgreSQL
После установки к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля.
Давайте переключимся на пользователя postgres (данная учетная запись была создана автоматически во время установки PostgreSQL).
Затем запускаем утилиту psql – это консоль для PostgreSQL.
Первым делом нам нужно задать пароль для пользователя postgres.
Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.
Далее давайте создадим базу данных.
где test_db – это имя новой базы данных.
Теперь давайте дадим права на управление базой данных нашему новому пользователю.
Все готово, выходим из консоли.
Для проверки давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.
Все работает, я подключился. Для выхода снова набираем \q.
Для переключения обратно на root вводим exit.
Разрешаем подключение к PostgreSQL по сети
По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому, для того чтобы мы могли подключаться по сети, нам нужно указать, какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.
Чтобы это сделать, открываем файл postgresql.conf, например, редактором nano.
Находим следующую строку.
и вносим следующие изменения (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).
Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.
Теперь давайте разрешим подключение из сети, я для примера разрешу подключаться из сети 192.168.0.0/24 с методом аутентификации md5.
Для этого открываем файл pg_hba.conf
Ищем следующие строки.
Далее точно так же сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.
Перезапускаем PostgreSQL, чтобы изменения вступили в силу.
Теперь можно подключаться к нашему серверу PostgreSQL удаленно по сети.
Таким образом, мы установили и настроили систему управления базами данных PostgreSQL 13 на операционной системе Ubuntu Server 20.04.
В следующем материале мы рассмотрим процесс установки на клиентский компьютер инструментов для работы с базами данных PostgreSQL и настроим удаленное подключение к PostgreSQL 13.
Видео-инструкция – Установка и настройка PostgreSQL 13 на Ubuntu Server
PostgreSQL используется тысячами компаний для выполнения платежных транзакций, огромного трафика веб-сайтов, платформ электронной коммерции и т. Д. Он также позволяет добавлять пользовательские функции, разработанные с использованием таких языков программирования, как Java, Python, C / C ++ и многих других.
Шаг 1. Обновите систему Ubuntu
Мы всегда работаем над последним выпуском ОС, чтобы убедиться в отсутствии старых проблем с зависимостями. Войдите на свой сервер Ubuntu и выполните следующие команды, чтобы обновить все установленные пакеты.
После обновления системы я рекомендую вам выполнить перезагрузку, чтобы запустить новое ядро, если оно было обновлено.
Шаг 2. Добавьте репозиторий PostgreSQL 13 в Ubuntu 20.04 | 18.04
Теперь, когда мы обновили и перезагрузили нашу систему, давайте добавим репозиторий APT, необходимый для извлечения пакетов из репозитория PostgreSQL.
После импорта ключа GPG добавьте содержимое репозитория в вашу систему Ubuntu 20.04 | 18.04:
Добавленный репозиторий содержит множество различных пакетов, включая сторонние надстройки. Они включают:
Шаг 3. Установите PostgreSQL 13 в Ubuntu 20.04 / 18.04 Linux
После добавления репозитория мы можем установить пакеты PostgreSQL 13 на наш Linux-сервер Ubuntu 20.04 | 18.04. Но сначала обновите индекс пакета, чтобы версия была доступна на уровне ОС.
Выполните приведенные ниже команды, чтобы установить PostgreSQL 13 в Ubuntu 20.04 | 18.04 Система Linux.
Служба PostgreSQL запускается и запускается после каждой перезагрузки системы.
Шаг 4: Проверьте соединение с PostgreSQL
Во время установки автоматически создается пользователь postgres. Этот пользователь имеет полный доступ суперадминистратора ко всему вашему экземпляру PostgreSQL. Прежде чем переключиться на эту учетную запись, ваш системный пользователь, вошедший в систему, должен иметь права sudo.
Давайте сбросим этот пароль пользователя на надежный пароль, который мы можем запомнить.
Запустите командную строку PostgreSQL с помощью команды:
Получите подробную информацию о подключении, как показано ниже.
Давайте создадим тестовую базу данных и пользователя, чтобы посмотреть, работает ли она.
Перечислить созданные базы данных:
Подключиться к базе данных:
Другие установленные утилиты PostgreSQL, такие как createuser и createdb, можно использовать для создания базы данных и пользователей.
Мы можем создать базу данных и подключиться к ней на сервере PostgreSQL.
Шаг 5. Настройте удаленное подключение (необязательно)
Чтобы включить удаленные подключения, отредактируйте файл конфигурации PostgreSQL:
Раскомментируйте строку 59 и измените адрес прослушивания, чтобы принимать соединения в ваших сетях.
Также настройте PostgreSQL на прием удаленных подключений от разрешенных хостов.
В этой статье я покажу как собрать PostgreSQL 13 версии из исходников, инициализировать кластер и запустить его на сервере Debian 10. А также установим из исходников одно из расширений PostgreSQL.
Источником для этой статьи служит данное видео.
Установка PostgreSQL из исходников
Работаем из под пользователя root, поэтому будьте осторожны!
Прежде всего скачаем и распакуем архив:
Далее, установим необходимые пакеты, соберем из исходников postgresql и установим его:
В результате, PostgreSQL у нас установится в каталог /usr/local/pgsql/, здесь лежат сами бинарники.
Создание переменных окружения
Для удобства работы с сервером нужно создать две переменные:
Чтобы эти переменные появились у всех пользователей отредактируем /etc/profile, добавив строки в конец файла:
Далее применим изменения:
Создание кластера БД
Дальнейшие действия нужно проделывать под пользователем postgres
Инициализируем кластер баз данных:
Опцию -k мы использовали, чтобы включить подсчет контрольной суммы страниц, что позволяет своевременно обнаружить повреждение данных. Остальные опции можете посмотреть тут!
После инициализации кластера у нас заполнился каталог PGDATA:
В этом каталоге лежат конфигурационные файлы кластера, и в подкаталоге base лежат базы данных. Но о содержимом этого каталога мы поговорим позже.
Запуск и останов сервера
Запустим сервер баз данных указав файл логов:
Здесь мы использовали две опции:
Подробнее о работе pg_ctl можете почитать тут.
Теперь проверим что PostgreSQL запустился и работает. Для этого выполним запрос select now() к СУБД:
В примере выше, функция now() показывает текущее время.
Останавливать и запускать сервер в последующем можно следующими командами:
Установка расширений из исходников
Следующим шагом научимся устанавливать расширения. Для этого перейдем в каталог с исходниками и найдём подкаталог contrib. В каталоге contrib лежат исходники расширений. Найдем каталог pgcrypto, перейдём в него и скомпилируем расширение:
В листинге выше с помощью утилиты psql мы подключаемся к СУБД, а с помощью команды \q отключаемся от него.
Создание второго кластера
На одном сервере может работать два кластера, для этого создаём каталог для второго кластера. И инициализируем его:
При инициализация кластера, если путь к каталогу PGDATA отличается от переменной $PGDATA или если такая переменная не задана. То нужно с помощью ключа -D указать путь к этому каталогу.
Теперь можем запустить второй кластер:
Посмотрим на процессы:
Первый кластер запущен без ключа -D и используется переменная PGDATA, а во втором кластере путь к PGDATA прописан в строке запуска.
Можно значительно сократить затраты на программное обеспечение, установив сервер 1С на Linux. В данной инструкции мы рассмотрим процесс настройки сервера 1C 8.3 на Ubuntu 18.04 или 20.04 с сервером баз данных (не файловый вариант). В качестве СУБД мы будем использовать PostgreSQL (на примере версий 9.6, 10, 12 и 13).
Выбор операционной системы должен, в первую очередь, базироваться на основе официальных системных требованиях. Прежде чем сделать окончательный выбор, ознакомьтесь с ними.
Подготовка системы
Задаем имя сервера
Чтобы сервер 1С мог запуститься без ошибки, необходимо ему задать корректное имя:
Настройка брандмауэра
Для корректной работы сервера, необходимо открыть порты:
- 1540 и 1541 для сервера 1С.
- 1560 — запросы к базе данных.
По умолчанию, в Ubuntu действует разрешающая политика и настройка брандмауэра не требуется. В противном случае, вводим команды:
iptables -I INPUT 1 -p tcp --dport 1540:1541 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 1560 -j ACCEPT
И сохраняем правила с помощью iptables-persistent:
apt-get install iptables-persistent
Установка PostgreSQL
Как было сказано выше, мы задействуем СУБД PostgreSQL. Для 1С требуется специальная сборка postgresql, которая может быть установлена из специального дистрибутива или от поставщика 1С. Рассмотрим установку как версии 9.6, так и 10.
Подготовка к установке СУБД
Настраиваем локаль, введя команду:
В открывшемся окне выбираем локаль ru_RU.UTF-8 UTF-8:
Нажимаем OK. В следующем окне также выбираем ru_RU.UTF-8:
. и нажимаем OK.
* Если мы устанавливали русскую версию Linux, возможно, данные настройки уже будут выставлены. Так или иначе, стоит в этом убедиться.
Установка PostgreSQL 9.6 из репозитория
PostgreSQL 9.6 для 1С можно установить из репозитория. Для начала, добавим его:
Установим цифровую подпись для репозитория:
Обновляем списки пакетов:
Устанавливаем библиотеку libpq5 версии 9.6, собранной для postgresql под 1С:
apt-get install libpq5=9.6.*.1C.bionic
Выполняем установку самого PostgreSQL:
apt-get install postgresql-pro-1c-9.6
Установка PostgreSQL 10 от 1С
Сначала устанавливаем компоненты, необходимые для установки СУБД из пакетов.
dpkg -i libicu55_55.1-7_amd64.deb
* libicu55 — Unicode-компоненты для интернационализации.
Теперь устанавливаем postgresql-common:
apt-get install postgresql-common
* postgresql-common позволяет одновременную установку нескольких версий PostgreSQL.
Устанавим пакет libssl:
* если команда вернет ошибку, точное название для новой версии libssl смотрим, перейдя по ссылке.
dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.4_amd64.deb
Переходим к установки самой СУБД. 10-я версия PostgreSQL может быть установлена из дистрибутива, полученного от 1С (в личном кабинете или от поставщика). Архив с дистрибутивом postgresql, в свою очередь, содержит архивы под различные операционные системы — нам нужен файл с окончанием в названии . amd64_deb.tar.bz2
* в данном примере взят файл для 64-х разрядной версии операционной системы. Пакет deb (для систем на базе Debian).
Копируем данный файл на сервер (например, с помощью программы WinSCP) и распаковываем его:
tar jxvf PostgreSQL_10.*.1C_postgresql_10.*.1C_amd64_deb.tar.bz2
Выполним установку пакетов из папки . amd64_deb.
dpkg -i postgresql-10.*.1C_amd64_deb/*.deb
sudo -u postgres /usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --locale=ru_RU.UTF-8
* при инициализации для нас важно задать русскую локаль. В противном случае мы можем получить ошибку «Порядок сортировки не поддерживается базой данных».
Установка PostgreSQL 12 от 1С
Устанавим пакет libssl:
* если команда вернет ошибку, точное название для новой версии libssl смотрим, перейдя по ссылке.
dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.4_amd64.deb
apt-get install libllvm6.0
Распаковываем архив с postgresql:
tar jxvf postgresql_12.*.1C_amd64_deb.tar.bz2
Устанавливаем по очереди
dpkg -i postgresql-12.*.1C_amd64_deb/libpq5_12.*.1C_amd64.deb
dpkg -i postgresql-12.*.1C_amd64_deb/postgresql-client-12_12.*.1C_amd64.deb
dpkg -i postgresql-12.*.1C_amd64_deb/postgresql-12_12.*.1C_amd64.deb
sudo -u postgres /usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --locale=ru_RU.UTF-8
* при инициализации для нас важно задать русскую локаль. В противном случае мы можем получить ошибку «Порядок сортировки не поддерживается базой данных».
PostgreSQL Pro для 1С
Для работы 1С рекомендуется установить специальный выпуск PostgreSQL Pro. Она также может быть загружена и установлена бесплатно.
После заполняем форму для получения инструкции по установке СУБД:
На указанную почту придет инструкция по установке PostgreSQL.
Пример установки PostgreSQL Pro 13. Скачиваем скрипт для установки репозитория:
apt-get install gnupg2
* без данного пакета при попытке установить репозиторий мы получим ошибку:
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
Error adding key.
Запускаем скачанный скрипт:
Запускаем установку СУБД:
apt-get install postgrespro-1c-13
systemctl enable postgrespro-1c-13
systemctl stop postgrespro-1c-13
Удаляем содержимое каталога data:
rm -rf /var/lib/pgpro/1c-13/data/*
* в противном случае, при попытке инициализировать базу мы получим ошибку Data directory /var/lib/pgpro/1c-13/data is not empty!
/opt/pgpro/1c-13/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8
Запускаем сервис postgrespro:
systemctl start postgrespro-1c-13
Действия после установки postgres
Если мы установили PostgreSQL Pro версию, выполним только первую настройку.
Пароль для пользователя postgres
Задаем пароль для пользователя postgres:
* данную команду мы запускаем под пользователем postgres; мы задаем пароль password для postgresql-пользователя postgres. Дополнительная команда history -d $((HISTCMD-1)) удалить из истории строку с паролем.
Остальные настройки выполняем для PostgreSQL не Pro версии.
Автозапуск
Разрешаем автозапуск сервиса баз данных и стартуем его:
systemctl enable postgresql --now
Блокировка обновлений PostgreSQL
Так как для 1С устанавливается специальная сборка СУБД, необходимо запретить ее обновление. В противном случае будет установлен обычныйpostgresql, что приведет к потери работоспособности сервера.
Смотрим версию установленного сервера баз данных:
dpkg -l | grep postgresql
ii postgresql-10 10.10-4.1C .
ii postgresql-client-10 10.10-4.1C .
.
И так, у нас установлена версия 10.10-4.1C. Вводим:
* где 10.10-4.1C — версия установленного PostgreSQL. Команда apt-mark hold блокируем установку обновлений для пакетов версии 10.10-4.1C.
apt-mark hold postgresql-common postgresql-client-common
Установка сервера 1С
Для установки сервера 1С необходимо сначала установить вспомогательные пакеты, затем сам сервис. Дистрибутив необходимо скачать с сайта 1С — личного кабинета, доступного по подписке.
И так, выполним установку следующих пакетов:
apt-get install imagemagick unixodbc ttf-mscorefonts-installer
- imagemagick — набор программ для чтения и редактирования графических файлов.
- unixodbc — диспетчер драйверов для ODBC.
- ttf-mscorefonts-installer — набор шрифтов Microsoft.
В процессе установки система запросит принять лицензионное соглашение — выбираем Yes.
Копируем на сервер архив с дистрибутивом для 1С, который был загружен с сайта 1С или получен от поставщика. Распаковываем архив командой:
tar zxvf 8.3.16.1148_deb64.tar.gz
* где 8.3.16.1148_deb64.tar.gz — имя архива с 1С версии 8.3.16. В архиве пакеты deb (для Linux на основе Debian) для 64-х разрядной системы.
Устанавливаем все пакеты, которые находились в архиве командой:
dpkg -i 1c-enterprise*.deb
Разрешаем автозапуск сервиса 1С и стартуем его:
systemctl enable srv1cv83
systemctl start srv1cv83
Необходимо убедиться, что сервис запустился:
systemctl status srv1cv83
Если мы получим ошибку «srv1cv83.service not found», находим исполняемый файл srv1cv83:
find /opt -name srv1cv83
В моем случае он был по пути:
Делаем симлинк в каталоге /etc/init.d на найденный файл:
ln -s /opt/1cv8/x86_64/8.3.16.1148/srv1cv83 /etc/init.d/srv1cv83
Снова запускаем сервис:
systemctl start srv1cv83
Настройка кластера и клиента
На любой компьютер в сети установим толстый клиент 1С:Предприятие той же версии, что и сервер. Во время установки обязательно выбираем компонент Администрирование сервера 1С:Предприятие:
Теперь запускаем утилиту Администрирование серверов 1С Предприятия:
В открывшемся окне кликаем правой кнопкой мыши по Central 1C:Enterprise 8.3 servers - выбираем Создать - Центральный сервер 1С:Предприятие 8.3:
Пишем имя сервера 1С или его IP-адрес:
. и нажимаем OK. В панели управления появится подключение — переходим в раздел Кластеры - Локальный кластер - кликаем правой кнопкой по Информационные базы - выбираем Создать - Информационная база:
Заполняем параметры для создания новой базы:
* в данном примере нами были заполнены:
- Имя — задаем произвольное имя для подключения к базе.
- Сервер баз данных — имя или IP-адрес базы. Задаем localhost, так как в нашем случае сервер 1С и сервер баз данных находятся на одном сервере.
- Тип СУБД — выбираем PostgreSQL.
- База данных — имя базы данных.
- Пользователь сервера БД — пользователь, под которым будет выполняться подключение к базе. В нашем примере postgres.
- Пароль пользователя БД — пароль для базы, который мы задали после установки СУБД.
- Создать базу данных в случае ее отсутствия — ставим галочку, чтобы база была создана.
Если мы получим ошибку Этот хост неизвестен:
. необходимо убедиться, что имя сервера разрешается в IP-адрес. Для этого необходимо его добавить в локальную DNS или файл hosts.
База должна создастся. Теперь запускаем 1С клиент и добавляем новую базу - при добавлении выбираем Добавление в список существующей информационной базы:
Указываем произвольное имя информационной базы, а также выбираем тип расположения базы На сервере 1С:Предприятия:
Нажимаем Далее и Готово. Запускаем конфигуратор, загружаем базу и пользуемся.
HASP Licence manager
Если в сервер вставлен аппаратный ключ, необходимо установить HASP Licence manager, чтобы лицензии могли получать компьютеры по сети.
Проверяем, что наш сервер видит ключ:
lsusb | grep -i hasp
Мы должны увидеть что-то на подобие:
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Устанавливаем необходимые пакеты:
apt-get install make libc6-i386
- make — утилите, которая в нашем случае используется для компиляция исходного кода.
- libc6-i386 — набор стандартных библиотек для С и математических вычислений.
Создадим каталог для загрузки пакетов и перейдем в него:
mkdir /tmp/hasp ; cd /tmp/hasp
Переходим на страницу загрузки HASP для Ubuntu. Выбираем необходимую версию и копируем ссылки на 2 файла — haspd-modules_. и haspd_.
На момент обновления инструкции на сайте не было пакетов для Ubuntu 20, однако, для данной версии подходят пакеты под Ubuntu 18.
С помощью скопированных ссылок загружаем на сервер два файла:
* в моем примере загрузка выполнялась для Ubuntu 18.04.
Выполним установку скачанных пакетов командой:
dpkg -i haspd*.deb
Разрешим автозапуск сервиса haspd:
systemctl enable haspd
systemctl start haspd
Проверяем, что он корректно стартовал и работает:
systemctl status haspd
Готово — наши компьютеры в локальной сети смогут получить лицензию.
Миграция базы на PostgreSQL
В случае, если это не первая установка и у нас уже есть база, ее нужно перенести на новый сервер. Рассмотрим 2 варианта — база была на другом сервере PostgreSQL и универсальный (файловый вариант или другая СУБД).
С PostgreSQL на PostgreSQL
В данном случае процесс переноса заключается в создании дампа (backup) и его восстановления на новом сервере (restore). Необходимо учесть, что для корректного переноса данных, версии 1С должны совпадать.
Есть несколько инструментов по созданию резервных копий PostgreSQL и их восстановлению. Их описание выходит за рамки данной статьи — подробнее читайте инструкцию Резервное копирование PostgreSQL.
Универсальный способ миграции на PostgreSQL
Данный способ также подойдет и для миграции с PostgreSQL на PostgreSQL. Для начала, открываем нашу базу в конфигураторе на старом 1С - кликаем по Администрирование - Выгрузить информационную базу:
Выбираем путь для сохранения файла. Ждем окончания выгрузки и переносим полученный файл на компьютер с толстым клиентом 1С (если для нового сервера мы используем другой компьютер с 1С).
Открываем конфигуратор для созданной в PostgreSQL базы - кликаем Администрирование - Загрузить информационную базу:
. и выбираем выгруженный ранее файл. Дожидаемся его загрузки - система потребует перезапустить 1С - соглашаемся. Ждем новой загрузки. После можно пользоваться базой 1С на новом сервере.
Веб-публикации
Сервер 1С поддерживает возможность веб-публикаций баз 1С. Это дает возможность открывать программу в браузере или мобильном приложении. В Linux данные публикации осуществляются с помощью Apache.
Установка и запуск Apache
Первым делом, устанавливаем веб-сервер apache:
apt-get install apache2
Разрешаем автозапуск веб-сервера и стартуем сам сервис:
systemctl enable apache2
systemctl start apache2
Публикация 1С на веб-сервере
Публикация базы выполняется с помощью скрипта webinst, который устанавливается с сервером. Для простоты, мы опубликуем базу в корневую директорию /var/www/html, но при желании, можно настроить виртуальные домены.
И так, создадим каталог, в который опубликуем нашу базу:
Переходим в каталог с установленным 1С:
* где 8.3.16.1148 — версия установленной платформы.
Заускаем скрипт для публикации базы:
./webinst -apache24 -wsdir test -dir /var/www/html/test -connstr "Srvr=192.168.1.11;Ref=test;" -confPath /etc/apache2/apache2.conf
* где apache24 — версия установленного apache; test — имя нашей базы, которую мы создали ранее; /var/www/html/test — путь до каталога на сервере, в котором будет опубликована база; 192.168.1.11 — IP-адрес сервера 1С; Ref=test — имя базы в СУБД; /etc/apache2/apache2.conf — путь до конфигурационного файла apache.
Читайте также: