Установка postgresql в ubuntu 20.04 [краткое руководство]
Содержание:
- Connect to the PostgreSQL database server via psql
- Копирование числовых ячеек из 1С в Excel Промо
- Шаг 10. Отладка серверных модулей.
- postgresql-kit
- Настройка PostgreSQL
- Шаг 7 — Создание и удаление таблиц
- 15.5.1. Разделяемые библиотеки
- Установка и настройка PostgreSQL на Windows
- Установка сервера 1С
- Step 5 — Opening a Postgres Prompt with the New Role
- Connect to Postgres with the New User
- Локаль
- Создание и удаление таблиц
- Настройка Postgresql в Ubuntu
- Step 7 — Adding, Querying, and Deleting Data in a Table
- НАСТОЙКА РЕПЛИКАЦИИ POSTGRESQL
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С в Excel Промо
Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.
Шаг 10. Отладка серверных модулей.
Естественно, после запуска базы, хочется ее отладить, но не все так просто. Для начала нужно запустить сервер с флагом отладки. Для этого открываем файл запуска сервера:
И раскомментируем там параметр SRV1CV8_DEBUG=1.
Перезапустим сервер 1С , для просмотра его статуса выполним команду
Флаг -debug появился, но дальше после него стоит флаг -tcp. При режиме tcp отладки зайти в точку останова в серверных процедурах не получится, и нужно разбираться дальше. Включение отладки по http оказалось непростой задачей, потому что нигде я не смог найти рабочего решения. Как оказалось, нужно добавить флаг -http в скрипт запуска сервера в функции buildCommmandLine:
Вот так это должно выглядеть:
Теперь для просмотра флагов процесса опять вызовем команду
И увидим, что теперь процессы сервера 1С запущены с флагом http и добавился процесс сервера отладка dbgs:
После этого нужно в Конфигураторе в меню Сервис->Параметры->Отладка поставить «Отладка по протоколу HTTP», и отладка заработает:
postgresql-kit
Description | License | Pricing | Publisher | |
---|---|---|---|---|
postgresql-kit is a set of frameworks, tools, applications and examples for deploying the PostgreSQL database on Mac OS X and iOS platforms. On the server-side, it provides an embedded server framework which allows you to put a postgresql database right in your Cocoa application. On the client-side, it helps you interact and use all the features of libpq, including converting data seemlessly between Foundation objects and Postgresql data types. Sample applications for the Macintosh and iOS devices is included in the project, which is licensed with the Apache open-source license. |
Open source | mutablelogic | View |
Настройка PostgreSQL
Для настройки используются несколько конфигурационных файлов, расположенных в каталоге /etc/postgresql/11/main
Указанная ниже настройка двух файлов postgresql.conf и pg_hba.conf необходима только в том случае, если USERSIDE и СУБД PostgreSQL находятся на разных узлах!
Если СУБД и USERSIDE находятся на одном и том же узле, перейдите сразу к следующему разделу создания пользователя и базы данных.
postgresql.conf
Файл содержит настройки сервера PostgreSQL.
- Откройте файл
- Найдите блок настроек CONNECTIONS AND AUTHENTICATION
- Раскомментируйте параметр и установите в качестве значения один или несколько IP адресов, разделенных запятыми, на которых сервер принимает подключения от клиентов. Допускается использование символа звездочки.
После чего перезапустите сервер
pg_hba.conf
- Откройте файл
- Добавьте в самый низ строку, разрешающую доступ (укажите IP-адрес узла, на котором установлен USERSIDE)
host userside all IP-адрес-userside md5
После чего перечитайте конфигурацию командой
Шаг 7 — Создание и удаление таблиц
Теперь, когда вы уже знаете, как подключиться к системе управления базами данных PostgreSQL, можно переходить к знакомству с основными задачами по управлению, которые решает Postgres.
Во-первых, создайте таблицу для хранения данных. Например, вы можете создать таблицу, где описано оборудование для детских площадок.
Базовый синтаксис этой команды выглядит следующим образом:
Эти команды дают таблице имя, а затем определяют столбцы, тип столбцов и максимальную длину поля данных. Кроме того, вы можете добавить ограничения таблицы для каждой колонки.
Чтобы продемонстрировать процесс, создайте простую таблицу:
Эта команда создает таблицу с описью оборудования для установки на игровых площадках. Она начинается с идентификатора оборудования, который имеет тип . Это тип данных представляет собой целое число с автоматическим инкрементированием. Вы также указали для этого столбца ограничение в виде , что означает, что значения должны быть уникальными и не равны null.
Для двух из столбцов ( и ) команда не указывает длину поля. Это объясняется тем, что некоторые типы столбцов не требуют указания длины, поскольку длина подразумевается в зависимости от типа значения.
Следующие две строки создают столбцы и оборудования соответственно, каждый из которых не может быть пустым. Следующая строка создает столбец и ограничение, требующее, чтобы значение было одним из восьми возможных вариантов. Последняя строка создает столбец даты, которая указывает дату установки оборудования.
Вы можете просмотреть вашу новую таблицу, введя следующую команду:
В результате мы получаем следующий вывод:
Ваша таблица игрового оборудования готова, но здесь есть что-то под названием с типом данных . Это представление типа , который присвоен столбцу . Оно отслеживает следующий номер последовательности и создается автоматически для столбцов данного типа.
Если вы хотите только просмотреть таблицу без последовательности, можете ввести следующую команду:
В результате вы получите следующее:
На этом шаге мы создали образец таблицы. На следующем шаге мы попробуем добавить, запросить и удалить элементы в таблице.
15.5.1. Разделяемые библиотеки
В некоторых системах с разделяемыми библиотеками необходимо указать системе, как найти недавно установленные разделяемые библиотеки. К числу систем, где это не требуется, относятся FreeBSD, HP-UX, Linux, NetBSD, OpenBSD, Tru64 UNIX (ранее Digital UNIX) и Solaris.
Путь поиска разделяемых библиотек на разных платформах может устанавливаться по-разному, но наиболее распространённый способ — установить переменную окружения LD_LIBRARY_PATH, например так: в оболочках Bourne (sh, ksh, bash, zsh):
LD_LIBRARY_PATH=/usr/local/pgsql/lib export LD_LIBRARY_PATH
или в csh, tcsh:
setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
Замените /usr/local/pgsql/lib значением, переданным в --libdir. Эти команды следует поместить в стартовый файл оболочки, например, в /etc/profile или ~/.bash_profile. Полезные предостережения об использовании этого метода приведены на странице http://xahlee.org/UnixResource_dir/_/ldpath.html.
В некоторых системах предпочтительнее установить переменную окружения LD_RUN_PATH до сборки.
В Cygwin добавьте каталог с библиотеками в PATH или переместите файлы .dll в каталог bin.
В случае сомнений обратитесь к страницам руководства по вашей системе (возможно, к справке по ld.so или rld). Если вы позже получаете сообщение:
psql: error in loading shared libraries libpq.so.2.1: cannot open shared object file: No such file or directory
(psql: ошибка при загрузке разделяемых библиотек libpq.so.2.1: не удалось открыть разделяемый объектный файл: Нет такого файла или каталога), значит этот шаг был необходим. Тогда вам просто нужно вернуться к нему.
Если вы используете Linux и имеете права root, вы можете запустить:
/sbin/ldconfig /usr/local/pgsql/lib
(возможно, с другим каталогом) после установки, чтобы механизм связывания во время выполнения мог найти разделяемые библиотеки быстрее. За дополнительными сведениями обратитесь к странице руководства по ldconfig. Во FreeBSD, NetBSD и OpenBSD команда будет такой:
/sbin/ldconfig -m /usr/local/pgsql/lib
Установка и настройка PostgreSQL на Windows
Помимо Linux версии ПО, у проекта имеется версия, установка которой рассчитана под системы семейства Windows. Плюсом здешнего инсталлятора можно назвать встроенная возможность установки программы совместно с pgAdmin4 — графической оболочкой для общения с PostgreSQL. Чтобы осуществить установку пакета, необходимо:
Внимание! Если отсутствует пакет, подготовленный для определенной ОС или ее разрядности, необходимо скачать установщик предыдущей версии ПО.
Требуется отыскать скачанный пакет и запустить его. При этом могут начать устанавливаться дополнительные библиотеки, такие как Microsft Visual C++, и после этих процессов появится главное окно PostgreSQL Installer, в котором нужно нажать Next.
Далее, установщик попросит указать директорию для распаковки файлов
Если это неважно, можно оставить все как есть и не вводить команды
Следующее окно служит для выбора необходимых компонентов.
Теперь один из важнейших шагов – установка директории для хранения баз данных.
На данном экране необходимо указать и подтвердить пароль для подключения к базам.
Укажите порт, на котором будет функционировать PostgreSQL. Если это не принципиально, можно оставить по умолчанию.
Установка кодировки данных – рекомендуется оставить стандартную во избежание проблем в будущем.
Последние три окна – всего лишь подтверждение внесенных настроек и установка программы.
На завершающем этапе инсталлятор предложит запустить Stack Builder для доступа к расширениям функционала. Чаще всего этого не требуется, так что галочку следует убрать, после чего задать команду Finish.
Настройка
В отличие от Linux, версия ПО под Windows не требует редактировать файл конфигурации PostgreSQL через командную строку. Все взаимодействие с СУБД происходит через графический интерфейс. Для его запуска и начала настройки необходимо:
Найти и запустить в меню Пуск приложение pgAdmin 4.
С недавних пор pgAdmin работает через веб-интерфейс, и открывается через установленный в системе по умолчанию браузер.
Для того чтобы подключиться к локальному хранилищу, необходимо дважды щелкнуть левой кнопкой мыши по серверу PostgreSQL 11, спрятанному во вкладке Servers и ввести созданный на этапе установки пароль. Дабы система запомнила его, можно поставить галочку рядом с пунктом Save Password.
Для начала было бы хорошо сменить язык интерфейса. Это можно сделать специальной командой, зайдя в меню File – Preferences, отыскать там пункт User Language, сменить язык и нажать Ок. Если перевод не применился полностью, следует обновить страницу.
Нового пользователя можно внести командой при помощи правой кнопки мыши: по названию сервера переходом в пункт Роль входа/группы.
Введите желаемое имя, затем во вкладке справа включите все права.
Нажмите сохранить.
Таблица
Создание таблиц и значений внутри пользовательского интерфейса гораздо проще, нежели чем работа в СУБД из-под Linux, и не вызовет вопросов у новичков, что положительно сказывается на продуктивности. Однако создание самой базы не столь очевидно. Для этого нужно раскрыть корневой каталог сервера, перейти в каталог с базами и создать новую через меню, вызываемое нажатием правой кнопки мыши.
Теперь внесите название базы, укажите владельца и, если нужно, внесите комментарий
В базе данных раскройте подпункт Схемы – Public. Найдите пункт Таблицы, нажмите правой кнопкой мыши и создайте таблицу.
Введите название, выберите владельца и нажмите Сохранить.
На этом настройка завершена.
Установка сервера 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
Step 5 — Opening a Postgres Prompt with the New Role
To log in with based authentication, you’ll need a Linux user with the same name as your Postgres role and database.
If you don’t have a matching Linux user available, you can create one with the command. You will have to do this from your non-root account with privileges (meaning, not logged in as the postgres user):
Once this new account is available, you can either switch over and connect to the database by typing:
Or, you can do this inline:
This command will log you in automatically, assuming that all of the components have been properly configured.
If you want your user to connect to a different database, you can do so by specifying the database like this:
Once logged in, you can get check your current connection information by typing:
This is useful if you are connecting to non-default databases or with non-default users.
Connect to Postgres with the New User
Let’s assume that you have a Linux system account called (you can create one by typing: ), and that you have created a Postgres role and database also called .
You can change to the Linux system account by typing:
<pre>
sudo -i -u <span class=“highlight”>test1</span>
</pre>
You can then connect to the database as the Postgres role by typing:
This will log in automatically assuming that all of the components have been configured.
If you want your user to connect to a different database, you can do so by specifying the database like this:
<pre>
psql -d <span class=“highlight”>postgres</span>
</pre>
You can get information about the Postgres user you’re logged in as and the database you’re currently connected to by typing:
This can help remind you of your current settings if you are connecting to non-default databases or with non-default users.
Локаль
Убедитесь, что в Вашей системе установлена локаль, которая будет использоваться в базе данных. Например, ru_RU.utf8
Выполните команду , чтобы посмотреть, какая локаль установлена в системе по умолчанию.
Если Вы планируете в базе данных использовать локаль отличную от системной, то убедитесь, что она добавлена в систему, выполнив команду
В конечном итоге важно, чтобы в списке локалей, выводимом последней командой, была та локаль, которую необходимо использовать в базе данных.. Если выполнив вы убедились в том, что установлена корректная локаль, которую планируется использовать в базе данных, то переходите к разделу установки.
Если выполнив вы убедились в том, что установлена корректная локаль, которую планируется использовать в базе данных, то переходите к разделу установки.
Если Вы планируете использовать локаль базы данных такую же как установлена в системе по умолчанию, и Вам необходимо изменить для этого системную локаль. Для этого выполните команду и выберите необходимую локаль, после чего убедитесь, что она установилась в системе по умолчанию .
Если Вы планируете использовать локаль базы данных отличную от системной и ее нет в списке установленных локалей, то добавьте название локали в файл (либо просто расскоменитруйте нужную строку).
После чего сохраните файл и выполните команду . Убедитесь, что необходимая локаль была добавлена, выполнив команду .
Создание и удаление таблиц
Теперь, когда вы знаете, как осуществлять доступ к СУБД Postgres, мы можем кратко рассмотреть вопрос выполнения некоторых распространённых задач в Postgres.
Для начала создадим таблицу для хранения данных. Давайте создадим таблицу, которая описывает параметры инвентаря детской площадки.
Базовый синтаксис для этой команды выглядит примерно так:
Как видно из этого примера, вы задаём имя таблицы и затем определяем необходимые столбцы, их тип и максимальную длину хранимых значений. Мы также можем добавлять ограничения на значения в каждом из столбцов.
Для целей нашего примера мы создадим простую таблицу:
Мы создали таблицу для инвентаря детской площадки. Первый столбец содержит идентификатор инвентаря с типом . Это целочисленный тип данных с автоинкрементом. Мы задали этот столбец с параметром первичного ключа (), что означает, что все значения должны быть ненулевыми и уникальными.
Для двух наших столбцов ( и ) мы не задали максимальную длину значений. Некоторые типы столбцов не требует задания максимальной длины значения, потому что длина определяется типом данных в этом столбце.
Кроме того мы создали столбцы и , которые не могут быть пустыми. Мы также создали столбец и настроили его таким образом, что его значение может принимать одно из восьми заданных значений. Последний столбец задаёт дату установки данной единицы инвентаря детской площадки.
Мы можем убедиться, что таблица создана, следующей командой:
Наша таблица на месте, но помимо неё у нас теперь есть и нечто под названием с типом . Это нечто представляет собой реализацию типа , который мы задали для столбца . Таким образом Postgres будет следить за следующим номером в последовательности идентификаторов, эта связь создаётся автоматически для столбцов данного типа.
Если вы хотите увидеть список только таблиц, без объектов-последовательностей, вы можете набрать следующую команду:
Настройка Postgresql в Ubuntu
Вы знаете как установить Postgresql Ubuntu, но этого недостаточно для начала полноценной работы. Первым делом, откройте терминал и переключите его на пользователя postgres с помощью команды:
Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию postgress использует концепцию ролей для аутентификации и авторизации.
Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки Postgresql пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:
И посмотреть информацию о соединении:
Чтобы выйти наберите:
Теперь давайте рассмотрим как создать другие роли и базы данных.
Создание роли Postgresql
Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните:
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Создание базы данных
Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя segiy, то по умолчанию система попытается получить доступ к базе данных segiy. Мы можем ее очень просто создать:
Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
Заходим в консоль и смотрим информацию о подключении:
Все верно сработало. Мы подключились с помощью роли segiy к базе segiy. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:
Все сработало верно, при условии, что все компоненты были настроены как описано выше.
Создание таблиц
Теперь, когда вы знаете как подключится к базе данных Postgresql давайте рассмотрим как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы Postgresql используется такой синтаксис:
CREATE TABLE имя таблицы (имя_колонки1 тип_колонки ( длина ) ограничения ,имя_колонки2 тип_колонки ( длина ),имя_колонки3 тип_колонки ( длина ));
Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:
Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.
Следующие колонки — обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец — дата создания.
Вы можете вывести все таблицы, выполнив команду:
Здесь мы видим что кроме нашей таблицы, существует еще одна переменная — playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:
Вставка и удаление данных
У нас есть таблица, но пока что она пуста. Мы можем добавить в нее некоторые данные. Давайте добавим пункт, описывающий качели. Для этого используются такие команды:
Заметьте, что имена столбцов не обязательно заключать в кавычки, а вот имена значений — обязательно. Теперь смотрим что получилось:
Удалять записи можно по любому критерию, например, удалим записи, поле type которых имеет значение slide:
И снова смотрим что получилось:
Step 7 — Adding, Querying, and Deleting Data in a Table
Now that you have a table, you can insert some data into it.
As an example, add a slide and a swing by calling the table you want to add to, naming the columns and then providing data for each column, like this:
You should take care when entering the data to avoid a few common hangups. For one, do not wrap the column names in quotation marks, but the column values that you enter do need quotes.
Another thing to keep in mind is that you do not enter a value for the column. This is because this is automatically generated whenever a new row in the table is created.
Retrieve the information you’ve added by typing:
Here, you can see that your has been filled in successfully and that all of your other data has been organized correctly.
If the slide on the playground breaks and you have to remove it, you can also remove the row from your table by typing:
Query the table again:
You notice that your slide is no longer a part of the table.
НАСТОЙКА РЕПЛИКАЦИИ POSTGRESQL
Сначала настроем мастер-сервер. Это основной сервер, который будет выполнять основные действия записи и рассылать данные на сервера Salve. Приложения могут не только читать, но и записывать данные взаимодействуя с этим сервером. Для его настройки нам нужно изменить содержимое файла postgresql.conf в папке /etc/postgresql/9.6/main/:
Сначала расскоментируйте строчку listen_address и пропишите в ней ip адрес вашего сервера. Порт должен быть 5433 иначе не заработает:
Расскоментируйте строчку wal_level и установите значение standby, она отвечает за способ репликации:
Мы будем использовать локальную синхронизацию:
Включите режим архивирования и укажите команду для создания архива:
Теперь настроем куда именно будет выполняться синхронизация. В нашей инструкции мы будем использовать только два сервера — Master и Salve. Поэтому в строке max_wal_senders поставьте значение 2:
Установите имя нашего сервера синхронизации:
Теперь конфигурационный файл можно закрыть. Поскольку мы включили режим архивирования, нужно создать папку для архивов и отдать ее пользователю postgres:
Дальше нам нужно отредактировать файл pg_hba.conf, он отвечает за аутентификацию пользователей. Здесь нужно прописать каждый сервер, базу данных, адрес и метод аутентификации. Синтаксис файла такой:
host база_данных пользователь ip_адрес метод опции
После всех настроек нужно перезапустить службу:
Дальше нам нужно создать нового пользователя, у которого будут права на репликацию. Назовите его replica:
После всех этих действий настройка репликации postgresql на сервере Master завершена и он готов к работе. Дальше настроем сервер Salve. Тут все проще. Мы собираемся заменить директорию data этого сервера, на эту же директорию из сервера master и поддерживать их синхронизацию. Сначала остановите службу:
Затем сделайте резервную копию текущей директории, если там есть важные данные и вы боитесь их потерять. Удалите текущую папку с данными:
Затем авторизуйтесь от имени пользователя postgres и скопируйте все данные из сервера Master:
Вам нужно будет ввести пароль и дождаться пока будут загружены данные. Дальше нужно исправить настройки /etc/postgresql/9.6/main/postgresql.conf:
Включите hot_standby:
И укажите ip адрес этого сервера в строке listen_address:
Это все, можете сохранить изменения и закрыть файл. Затем создайте файл /etc/postgresql/9.6/main/recovery.conf:
Эти настройки нужны для восстановления базы данных в случае возникновения проблем. Осталось запустить службу postgresql на другой машине:
Дальше осталось только протестировать как работает потоковая репликация postgresql.