Install postgresql linux
Содержание:
- Введение
- Запуск сервера
- How To Update Data in a Table
- Шаг 2 — Использование ролей и баз данных в PostgreSQL
- Установка PostgreSQL для 1С
- Настройка с доступом по паролю
- Настройка сервера
- 2) Install PostgreSQL on Window step by step
- How To Add and Delete Columns from a Table
- Настройка кластера и клиента
- Регулярное обслуживание баз 1С
- Создание кластера БД
- Шаг 8 — Добавление и удаление столбцов таблицы
- Шаг 8 — Добавление и удаление столбцов таблицы
- Список существующих БД
- Перезапустите службу PostgreSQL
- Шаг 5 — Открытие командной строки Postgres с новой ролью
- Установка расширений из исходников
- Настройка бэкапа баз 1С в Ubuntu
- Установка psycopg2
- Шаг 7: работа со столбцами в таблице
- Connect to the PostgreSQL database server via psql
- Публикация баз 1с в веб на Ubuntu
Введение
Что охватывает эта статья?
Эта статья проведет вас через специфичные для Gentoo шаги по установке СУРБД PostgreSQL.
В этой статье предполагается, что вы будете устанавливать последнюю, стабильную версию PostgreSQL; на время написания, этой версией является 9.3.5. Исправьте команды в этой статье так, как это требуется для вашей определенной версии.
О ebuild-файлах
Файлы ebuild для PostgreSQL в системе Portage отличаются номерами слотов, основанными на главной версии. Это позволяет вам иметь две главных версии PostgreSQL действующих одновременно; библиотеки и сервера версий 9.0-9.4 могут устанавливаться и обслуживаться в одно и то же время. Это полезно в тех обстоятельствах, когда вам нужно перенести данные из старой базы данных в новую, или требуется иметь рабочую и тестовую базу данных на одной и той же машине. Также, это предотвращает перезаписывание баз данных, соответствующих библиотек или исполняемых файлов несовместимым обновлением. Это требует миграции, которая описана в данном руководстве.
Вдобавок, исправления ошибок и уязвимостей безопасности, которые поставляются через обновления младших версий, могут применяться без страха повреждения базы данных или самой сборки PostgreSQL; 9.3.4 может обновляться до 9.3.5, так как гарантируется их совместимость и они не требуют от вас большего, чем установка и перезапуск серверного процесса. Ни миграция, ни повторная конфигурация, ни инициализация не являются необходимыми.
Запуск сервера
Поехали!
Теперь, запустите PostgreSQL и установите пароль для суперпользователя базы данных postgres.
Измените ‘trust’ на ‘password’ для соединений с ‘host’ (не с ‘local’ Unix сокетом).
Теперь запустите базу данных:
postgresql-9.3 | * Starting PostgreSQL ...
Откройте соединение к серверу и установите пароль:
psql (9.3.5) Type "help" for help.
Enter new password: Enter it again:
Измените ‘trust’ на ‘password’ для локальных соединений:
Теперь перезагрузите настройки базы данных:
postgresql-9.3 | * Reloading PostgreSQL configuration ...
* service postgresql-9.3 added to runlevel default
How To Update Data in a Table
We know how to add records to a table and how to delete them, but we haven’t covered how to modify existing entries yet.
You can update the values of an existing entry by querying for the record you want and setting the column to the value you wish to use. We can query for the “swing” record (this will match every swing in our table) and change its color to “red”. This could be useful if we gave it a paint job:
<pre>
UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;
</pre>
We can verify that the operation was successful by querying our data again:
equip_id | type | color | location | install_date |
---|---|---|---|---|
2 | swing | red | northwest | 2010-08-16 |
As you can see, our slide is now registered as being red.
Шаг 2 — Использование ролей и баз данных в PostgreSQL
По умолчанию Postgres использует концепцию “ролей” для выполнения аутентификации и авторизации. В некоторых аспектах они напоминают обычные учетные записи в Unix, однако Postgres не делает различий между пользователями и группами и предпочитает использовать более гибкий термин “роль”.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью Postgres. Чтобы использовать Postgres, вы можете войти в эту учетную запись.
Существует несколько способов использования этой учетной записи для доступа к Postgres.
Переключение на учетную запись postgres
Вы можете переключиться на учетную запись postgres на вашем сервере с помощью следующей команды:
Теперь вы можете немедленно получить доступ к командной строке Postgres с помощью следующей команды:
В результате вы можете получить доступ к командной строке postgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Закройте командную строку PostgreSQL с помощью следующей команды:
В результате вы вернетесь в командную строку в Linux.
Доступ к командной строке Postgres без переключения учетных записей
Также вы можете запустить необходимую вам команду с учетной записью напрямую с помощью sudo.
Например, в последнем примере от вас требовалось перейти в командную строку Postgres с помощью переключения на пользователя postgres и последующего запуска , чтобы открыть командную строку Postgres. Вы можете сделать это в один прием с помощью отдельной команды , используя пользователя postgres с следующим образом:
Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки .
Вы снова сможете выйти из интерактивной сессии Postgres с помощью следующей команды:
Многие варианты использования требуют использования сразу нескольких ролей Postgres. Ниже вы узнаете, как выполнить настройку в таких случаях.
Установка PostgreSQL для 1С
Для работы с 1С лучше всего себя зарекомендовала сборка от компании PostgreSQL Pro, поэтому будем ставить именно её. На момент написания статьи, актуальной была версия PostgreSQL 13. Версия БД для 1С отличается от дефолтного дистрибутива наличием некоторых патчей, специфичных именно для приложения 1С.
Начинаем установку postgresql в ubuntu server. Первым делом подключим репозиторий.
curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-13/keys/apt-repo-add.sh sudo sh apt-repo-add.sh
Устанавливаем PostgreSQL для 1С сервера:
sudo apt-get install postgrespro-1c-13
Запускаем службу БД и убеждаемся, что всё в порядке.
sudo systemctl start postgrespro-1c-13 sudo systemctl enable postgrespro-1c-13 sudo systemctl status postgrespro-1c-13
Базовая установка сервера баз данных для 1С завершена. Переходим к небольшой настройке PostgreSQL. Нам необходимо задать пароль пользователя, под которым будет подключаться сервер 1С к БД.
sudo -u postgres /usr/bin/psql -U postgres -c "alter user postgres with password 'parol';"
postgres | пользователь БД, которого будем использовать в консоли 1С |
parol | пароль пользователя postgres |
Имеет смысл перенести хранение временной статистики базы данных с жесткого диска в оперативную память (tmpfs ). Это снизит расход ресурса ssd и немного увеличит производительность. Данное действие не костыль и не грязный хак. Подобную рекомендацию можно увидеть в документации для postgres от команды postgresql pro.
sudo mkdir /var/lib/pgpro/stats_temp sudo chown postgres:postgres /var/lib/pgpro/stats_temp
Добавляем tmpfs диск в /etc/fstab.
tmpfs /var/lib/pgpro/stats_temp tmpfs size=256M,uid=postgres,gid=postgres 0 0
Пробуем подмонтировать этот диск.
sudo mount /var/lib/pgpro/stats_temp
Проверяем, что получилось:
sudo df -h | grep stats_temp tmpfs 256M 0 256M 0% /var/lib/pgpro/stats_temp
Всё в порядке, tmpfs диск подключен. Теперь надо изменить параметр в конфигурационном файле postgresql, который отвечает за настройку каталога для хранения временной статистики. Открываем файл /var/lib/pgpro/1c-13/data/postgresql.conf и вносим изменение:
stats_temp_directory = '/var/lib/pgpro/stats_temp'
Перезапускаем службу postgrespro-1c-13 для того, чтобы применить изменение.
sudo systemctl restart postgrespro-1c-13
Можно проверить директорию stats_temp, чтобы убедиться в том, что статистика теперь хранится там:
sudo ls -l /var/lib/pgpro/stats_temp total 12 -rw------- 1 postgres postgres 1244 сен 8 12:24 db_0.stat -rw------- 1 postgres postgres 2129 сен 8 12:24 db_13416.stat -rw------- 1 postgres postgres 1151 сен 8 12:24 global.stat
На этом настройка PostgreSQL для работы с 1С завершена. Можно переходить к созданию баз и тестирования всей связки.
Настройка с доступом по паролю
Задайте пароль для пользователя :
su postgres -c «psql -c ‘\password'»
Настройка доступа к базам
Выполните настройки доступа к SQL-серверу, разрешив доступ только локальным запросам и из локальной сети 192.168.0.0/24:
/etc/postgresql-13/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all password # IPv4 local connections: host all all 127.0.0.1/32 password host all all 192.168.0.0/24 password # IPv6 local connections: #host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication all trust #host replication all 127.0.0.1/32 trust #host replication all ::1/128 trust
Через запятую укажите IP-адреса, которые должен слушать сервер PostgreSQL:
/etc/postgresql-13/postgresql.conf
#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '192.168.0.1,127.0.0.1' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart)
Заметка
Если нужно, чтобы сервер был доступен на всех сетевых интерфейсах, вместо IP-адресов укажите .
Перезагрузите сервис баз данных:
/etc/init.d/postgresql-13 restart
postgresql-13 | * Stopping PostgreSQL 13 (this can take up to 92 seconds) ... ok postgresql-13 | * /run/postgresql: correcting mode postgresql-13 | * Starting PostgreSQL 13 ... ok
Проверьте, что PostgreSQL слушает порт :
netstat -an
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN tcp 0 0 192.168.0.1:5432 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN udp 0 0 127.0.0.1:41006 127.0.0.1:41006 ESTABLISHED Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 STREAM LISTENING 281718 /run/postgresql/.s.PGSQL.5432
Создание пользователя и базы данных
Создайте пользователя test и базу данных dbtest, с которой он будет работать:
createuser -U postgres -P test
createdb -U postgres -O test dbtest
Подключение к базе данных
Для подключения к базе данных dbtest пользователем test, выполните:
psql -U test -d dbtest
Пароль пользователя test: psql (13.2) Введите "help", чтобы получить справку. test=> \q
Настройка сервера
Первые 4 шага относятся к настройке сервера Zabbix. Поехали!
Шаг №1. Подготовка к установке
Сразу оговоримся, что мы будем выполнять настройку только того, что явно относится к развертыванию Zabbix. Конфигурирование параметров ОС, сети и др. мы здесь рассматривать не будем. Например, если Вам нужно выполнить настройку SELinux, то лучше обратиться к официальной документации по установке. Также не забываем открыть нужные порты в брандмауэре. Эти две темы мы касались также и в предыдущих статьях, но в контексте CentOS.
И так, консоль открыта и пора ввести первую команду — обновление индекса пакетов, чтобы были доступны все самые последние версии ПО из репозиториев.
После обновления индекса, возможно, Вы захотите применить все обновления.
В некоторых случаях может понадобиться перезагрузка машины.
На этом подготовительные действия закончены.
Шаг №2. Готовим базу данных
Установим PostgreSQL для развертывания базы данных Zabbix. Для установки обратимся к официальной документации. В итоге для установки нам потребуется сделать следующие шаги:
После установки проверим состояние запуска демона PostgreSQL.
Видим, что демон активен, все отлично. Далее настраиваем доступ к базе “zabbix” пользователю “zabbix” по паролю. Да, базы “zabbix” еще нет (и пользователя тоже), так что эта настройка на будущее
Открываем в текстовом редакторе файл “/etc/postgresql/13/main/pg_hba.conf” и добавляем вот эту строку (важно добавить в этом месте, чтобы настройки были применены с соответствующим приоритетом). После внесения изменений перезапускаем PostgreSQL
Идем дальше.
Шаг №3. А вот и Zabbix
Опять же, подробная инструкция есть в официальной документации. Рассмотрим основные шаги.
Теперь идем своим любимым текстовым редакторов в файл “/etc/zabbix/zabbix_server.conf” и устанавливаем пароль для подключения к базе данных.
Все готово для первого запуска Zabbix-сервера и Zabbix-агента (который мониторит машину с Zabbix-сервером. Мониторинг для мониторинга :)).
Все основные компоненты настроены и запущены. Теперь настал момент настроить сам Zabbix
Шаг №4. На старт, настраиваем, запускаем
Прежде чем продолжить нужно еще выполнить одно действие в консоли — добавить необходимые локали для использования русского интерфейса.
Теперь идем по адресу, где расположен Zabbix-сервер. В нашем случае это “http://192.168.1.181/zabbix”. У вас это, скорее всего, другой адрес или даже удобочитаемое имя.
Первым делом нам открывается страница приветствия, где нам нужно выбрать язык по умолчанию.
Далее убеждаемся, что все требования для работы Zabbix удовлетворены.
После этого оказываемся на этапе настройки подключения к БД. Вводим пароль и идем к следующему шагу (пароль ранее уже вводили в файле конфигурации), а также отключаем TLS шифрование, если оно не нужно.
На этапе настройки деталей сервера оставляем как есть узел и порт.
На следующем шаге настройки внешнего вида выбираем часовой пояс (в примере оставил UTC) и тему оформления (предпочитаю темную).
Почти все готово. Смотрим на предварительный обзор настроек. Если все хорошо, но жмем “Далее”.
Предварительная настройка готова! Видим поздравления.
Нас переадресуют на страницу входа, где используем стандартные логин и пароль: Admin и zabbix, соответственно. После входа увидим страницу с общими данными мониторинга.
Теперь общую информацию по настройке агентов Zabbix
2) Install PostgreSQL on Window step by step
To install PostgreSQL on Windows, you need to have administrator privileges.
Step 1. Double click on the installer file, an installation wizard will appear and guide you through multiple steps where you can choose different options that you would like to have in PostgreSQL.
Step 2. Click the Next button
Step 3. Specify installation folder, choose your own or keep the default folder suggested by PostgreSQL installer and click the Next button
Step 4. Select software components to install:
- The PostgreSQL Server to install the PostgreSQL database server
- pgAdmin 4 to install the PostgreSQL database GUI management tool.
- Command Line Tools to install command-line tools such as psql, pg_restore, etc. These tools allow you to interact with the PostgreSQL database server using the command-line interface.
- Stack Builder provides a GUI that allows you to download and install drivers that work with PostgreSQL.
For the tutorial on this website, you don’t need to install Stack Builder so feel free to uncheck it and click the Next button to select the data directory:
Step 5. Select the database directory to store the data or accept the default folder. And click the Next button to go to the next step:
Step 6. Enter the password for the database superuser (postgres)
PostgreSQL runs as a service in the background under a service account named . If you already created a service account with the name , you need to provide the password of that account in the following window.
After entering the password, you need to retype it to confirm and click the Next button:
Step 7. Enter a port number on which the PostgreSQL database server will listen. The default port of PostgreSQL is 5432. You need to make sure that no other applications are using this port.
Step 8. Choose the default locale used by the PostgreSQL database. If you leave it as default locale, PostgreSQL will use the operating system locale. After that click the Next button.
Step 9. The setup wizard will show the summary information of PostgreSQL. You need to review it and click the Next button if everything is correct. Otherwise, you need to click the Back button to change the configuration accordingly.
Now, you’re ready to install PostgreSQL on your computer. Click the Next button to begin installing PostgreSQL.
The installation may take a few minutes to complete.
Step 10. Click the Finish button to complete the PostgreSQL installation.
How To Add and Delete Columns from a Table
If we want to modify a table after it has been created to add an additional column, we can do that easily.
We can add a column to show the last maintenance visit for each piece of equipment by typing:
<pre>
ALTER TABLE playground ADD last_maint date;
</pre>
If you view your table information again, you will see the new column has been added (but no data has been entered):
equip_id | type | color | location | install_date | last_maint |
---|---|---|---|---|---|
2 | swing | yellow | northwest | 2010-08-16 |
We can delete a column just as easily. If we find that our work crew uses a separate tool to keep track of maintenance history, we can get rid of the column here by typing:
Настройка кластера и клиента
На любой компьютер в сети установим толстый клиент 1С:Предприятие той же версии, что и сервер. Во время установки обязательно выбираем компонент Администрирование сервера 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С:Предприятия:
Нажимаем Далее и Готово. Запускаем конфигуратор, загружаем базу и пользуемся.
Регулярное обслуживание баз 1С
Рекомендуется регулярно выполнять как минимум две операции с базами 1С на сервере с PostgreSQL.
- Очистка базы данных с помощью vacuumdb.
- Перестроение индексов с помощью reindexdb.
Ничего сложного в данных операциях нет. Все выполняется штатными средствами postgresql в одну команду. Единственное, что нужно учесть — перестроение индексов ресурсоемкий процесс. Ко всему прочему он еще и длится долго. Так что выполнять операцию нужно только когда нет большой нагрузки на базу.
Чистка базы данных 1С средствами PostgreSQL:
sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname basa1
Перестройка индексов:
sudo -u postgres /usr/bin/reindexdb --username postgres --dbname basa1
Для того, чтобы выполнять эти задания регулярно, добавьте их в crontab:
crontab -e
30 0 * * * sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname basa1 30 1 * * * sudo -u postgres /usr/bin/reindexdb --username postgres --dbname baza1
Если баз несколько, добавьте задания для каждой или объедините все команды в один bash скрипт и добавьте его в cron, вместо кучи отдельных заданий.
Создание кластера БД
Дальнейшие действия нужно проделывать под пользователем postgres
# su - postgres
Инициализируем кластер баз данных:
postgres@s-pg13:~$ initdb -k
Опцию -k мы использовали, чтобы включить подсчет контрольной суммы страниц, что позволяет своевременно обнаружить повреждение данных. Остальные опции можете посмотреть тут!
После инициализации кластера у нас заполнился каталог PGDATA:
postgres@s-pg13:~$ ls /usr/local/pgsql/data/ base pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf global pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf
В этом каталоге лежат конфигурационные файлы кластера, и в подкаталоге base лежат базы данных. Но о содержимом этого каталога мы поговорим позже.
Шаг 8 — Добавление и удаление столбцов таблицы
После создания таблицы ее легко можно изменить, добавляя или удаляя столбцы. Добавьте столбец для отображения даты последнего технического обслуживания для каждого элемента оборудования, введя следующую команду:
Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен (но не было добавлено данных):
Удаление столбца является таким же простым. Если вы обнаружите, что ваша команда использует отдельный инструмент для отслеживания истории обслуживания, то можете удалить столбец, введя следующую команду:
Эта команда удаляет столбец и любые значения внутри него, но оставляет все другие данные нетронутыми.
Шаг 8 — Добавление и удаление столбцов таблицы
После создания таблицы вы можете изменить ее, добавив или удалив столбцы. Добавьте столбец для отображения даты последнего технического обслуживания для каждого элемента оборудования, введя следующую команду:
Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен, но в него не были введены данные:
Если вы обнаружите, что ваша команда использует отдельный инструмент для отслеживания истории обслуживания, то можете удалить столбец, введя следующую команду:
Эта команда удаляет столбец и любые значения внутри него, но оставляет все другие данные нетронутыми.
Список существующих БД
Список уже существующих на сервере баз данных можно получить командой
\l
Name | Owner | Encoding | Collate | Ctype | Access privileges
—————+———-+———-+—————————-+—————————-+————————
urn.su | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
topbicyle.ru | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
postgres | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
template0 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
(6 rows)
Обратите внимание на столбцы Encoding, Collate и Ctype. Знание кодировок может Вам пригодиться в будущем.
Перезапустите службу PostgreSQL
Если при запуске сервера после установки PostgreSQL выводятся сообщения об ошибках, обратитесь к разделу «Сбои при запуске сервера» в документации PostgreSQL по запуску сервера.
Linux:
Если вы являетесь пользователем root или sudo, можно выполнить следующую команду:
service postgresql restart
Mac:
Убедитесь, что вы являетесь пользователем postgres:
sudo su - postgres pg_ctl restart -D /Library/PostgreSQL/9.1/data
Флаг -D указывает местоположение каталога данных PostgreSQL, который также может быть установлен как переменная среды PGDATA. По умолчанию его можно найти по адресу /Library/PostgreSQL/9.1/data.
Если при попытке запустить pg_ctl вы получаете сообщение об ошибке «not found», попробуйте указать полный путь к этому файлу в подкаталоге bin каталога, в котором установлен PostgreSQL. Например: /Library/PostgreSQL/9.1/bin/pg_ctl restart -D /Library/PostgreSQL/9.1/data
Чтобы добавить PGDATA в качестве глобальной переменной среды в / etc / profile, выполните следующие шаги:
sudo vi /etc/profile
Затем добавьте следующую строку:
export PGDATA=»/Library/PostgreSQL/9.1/data»
После этого можно будет выполнить предыдущую команду для перезапуска сервера PostgreSQL без флага -D.
Windows:
При установке PostgreSQL Windows у вас должны быть права администратора. Кликните правой кнопкой мыши по ярлыку «Мой компьютер» и выберите пункт «Управление». В пользовательском интерфейсе «Управление» выберите «Службы и приложения» — «Службы». Найдите службу PostgreSQL («postgresql-9.0 — PostgreSQL Server 9.0»), выберите ее и нажмите на кнопку «Перезапустить службу».
Шаг 5 — Открытие командной строки Postgres с новой ролью
Чтобы выполнить аутентификацию с помощью , вам потребуется пользователь Linux с тем же именем, что и имя роли и базы данных в Postgres.
Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды . Вы должны воспользоваться учетной записи без прав root с привилегиями (т.е. не выполняя вход в качестве пользователя postgres):
Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:
Либо же вы можете сделать следующее:
Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.
Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:
После входа вы можете проверить данные о текущем подключении:
Установка расширений из исходников
Расширение – это специальная программа, расширяющая функциональность сервера баз данных. Например модуль pgcrypto добавляет криптографические функции.
Следующим шагом научимся устанавливать расширения. Для этого перейдем в каталог с исходниками и найдём подкаталог contrib. В каталоге contrib лежат исходники расширений. Найдем каталог pgcrypto, перейдём в него и скомпилируем расширение:
postgres@s-pg13:~$ exit # cd ~/pg/postgresql-13.3/contrib/pgcrypto/ # make # make install
Проверим что расширение установилось. Все установленные расширения можем посмотреть в представлении “pg_available_extensions“:
# su - postgres postgres@s-pg13:~$ psql psql (13.3) Type "help" for help. postgres=# SELECT name, comment FROM pg_available_extensions; name | comment ----------+------------------------------ pgcrypto | cryptographic functions plpgsql | PL/pgSQL procedural language (2 rows) postgres=# \q postgres@s-pg13:~$
В листинге выше с помощью утилиты psql мы подключаемся к СУБД, а с помощью команды \q отключаемся от него.
Настройка бэкапа баз 1С в Ubuntu
Рассмотрим важную часть работы с сервером 1С — бэкап баз. В общем случае его можно делать с помощью обычных sql дампов, которые можно снимать утилитой pg_dump, входящей в состав postgresql.
В предыдущем разделе мы создали тестовую базу данных basa1. Посмотрим, появилась ли она в списке баз postgresql:
sudo -u postgres psql -U postgres -l
Выполним бэкап этой базы 1С с помощью pg_dump. И сразу же сожмём его современным архиватором zstd, предварительно его установив.
sudo apt install zstd sudo mkdir /mnt/backup sudo -u postgres /usr/bin/pg_dump -U postgres basa1 | zstd > /mnt/backup/basa1.sql.zst
Для того, чтобы восстановить базу данных 1С из sql дампа, нужно воспользоваться стандартной процедурой загрузки данных в БД. Перед этим создадим еще одну базу, куда восстановим бэкап 1с.
sudo unzstd /mnt/backup/basa1.sql.zst sudo -u postgres /usr/bin/createdb --username postgres -T template0 basa1-restored sudo -u postgres /usr/bin/psql -U postgres basa1-restored < /mnt/backup/basa1.sql
Восстановление базы 1С из архива прошло успешно. Не забудьте настроить не только локальный бэкап баз 1С, но их их копирование на другое хранилище. Этот вопрос не будем разбирать в рамках данной статьи.
Установка psycopg2
Теперь, когда PostgreSQL установлен и у нас есть учетная запись без суперпользователя, мы можно установить пакет psycopg2 . Давайте выяснить, где находится исполняемый файл , создать виртуальный с помощью активируйте virtualenv, а затем установите пакет psycopg2 с помощью . Найдите исполняемый файл с помощью команды .
which python3
Мы увидим результат, как на этом скриншоте.
Создайте новый virtualenv либо в своем домашнем каталоге, либо где угодно храните свои виртуальные файлы Python. Укажите полный путь к вашему установка.
# specify the system python3 installation virtualenv --python=/usr/bin/python3 venvs/postgrestest
Активируйте virtualenv.
source ~/venvs/postgrestest/bin/activate
Затем мы можем установить пакет Python psycopg2 из PyPI с помощью команды .
pip install psycopg2
Отлично, у нас в virtualenv установлен драйвер PostgreSQL! Мы можем Теперь проверьте установку, написав несколько строк кода Python.
Шаг 7: работа со столбцами в таблице
Как добавить и удалить столбцы в таблице
Если вы хотите изменить таблицу после того, как она была создана (например, добавить еще один столбец last_maint date), то сделать это можно вот таким образом:
ALTER TABLE playground ADD last_maint date;
Вам просто нужно указать название таблицы, действие и название столбца.
Если после этого вы посмотрите таблицу, то увидите, что новый столбец был добавлен, но никакой информации он пока не содержит.
SELECT * FROM playground;
Вывод:
equip_id | type | color | location | install_date | last_maint ----------+-------+--------+-----------+--------------+------------ 2 | swing | yellow | northwest | 2010-08-16 | (1 row)
Так же легко можно и удалять ненужные столбцы:
ALTER TABLE playground DROP last_maint;
Connect to the PostgreSQL database server via psql
In PostgreSQL, a user account is referred to as a role. By default, PostgreSQL uses ident authentication.
It means that PostgreSQL will associate its roles with the system accounts of Linux. If a role exists in PostgreSQL, the same Linux user account with the same name is able to log in as that role.
When you installed PostgreSQL, the installation process created a user account called associated with the default role.
To connect to PostgreSQL using the role, you switch over to the account on your server by typing:
It’ll prompt for the password of the current user. You need to provide the password and hit the keyboard.
Then, you can access the PostgreSQL using the by typing the following command:
You’ll access the postgres prompt like this:
From here, you can interact with the PostgreSQL like issuing a query.
To quit the PostgreSQL prompt, you run the following command:
This above command will bring you back to the postgres Linux command prompt.
To return to your regular system user, you execute the command like this:
Публикация баз 1с в веб на Ubuntu
Завершая свою статью по настройке баз 1С в Ubuntu, покажу, как их опубликовать. Для этого нам надо установить web сервер Apache:
sudo apt install apache2
Создадим директорию веб сервера, где будет храниться конфигурация публикуемой базы:
sudo mkdir -p /var/www/basa1 sudo chown -R www-data:www-data /var/www/basa1
Публикуем базу 1С:
sudo /opt/1cv8/x86_64/8.3.19.1264/webinst -publish -apache24 -wsdir basa1 -dir /var/www/basa1 -connstr "Srvr=ubuntu;Ref=basa1;" -confpath /etc/apache2/apache2.conf
Перезапускаем веб сервер и добавляем в автозагрузку:
sudo systemctl restart apache2 sudo systemctl enable apache2
Открываем в браузере http://10.20.1.16/basa1/ Вы должны попасть в свою опубликованную базу 1С. Подключаться к ней можно как через браузер, так и платформу. В платформе при добавлении базы надо указать, что она на веб севере и ввести путь к нему.
Не забывайте про клиентские лицензии 1С на опубликованные базы. Они должны быть установлены на сервер, где выполнена публикация.