Установка и настройка PostgreSQL 10 на Linux
Установка и настройка PostgreSQL 10 на Linux
Так как PostgreSQL 10 – это новая версия данной системы управления базами данных, то начать предлагаю с краткого рассмотрения новых возможностей 10 версии.
Примечание! 10 версия PostgreSQL была актуальна на момент написания статьи, на текущий момент доступны новые версии.
Что нового в PostgreSQL 10?
Начиная с PostgreSQL 10, меняется схема нумерации версий, это вызвано тем, что раньше выходило множество минорных версий (например, 9.x), многие из которых на самом деле вносили значительные изменения не соответствующие минорным, теперь мажорные версии будут нумероваться 10, 11, 12, а минорные 10.1, 10.2, 11.1 и так далее.
Основные нововведения:
· Логическая репликация с использованием публикации и подписки — теперь возможно осуществлять репликацию отдельных таблиц на другие базы, это реализовывается с помощью команд CREATE PUBLICATION и CREATE SUBSCRIPTION;
· Декларативное партиционирование таблиц – в PostgreSQL 10 добавился специальный синтаксис для партиционирования, который позволяет легко создавать и поддерживать таблицы с интервальной или списочной схемой партиционирования;
· Улучшенный параллелизм запросов – другими словами, появилась дополнительная оптимизация запроса, для того чтобы пользователь получал данные быстрей;
· Аутентификация пароля на основе SCRAM-SHA-256 – добавился новый метод аутентификации, который является более безопасным, чем метод с использованием MD5;
· Quorum Commit для синхронной репликации – теперь администратор может указать что, если какое-либо количество реплик подтвердило, что внесено изменение в базу данных, данное изменение можно считать надёжно зафиксированным;
· Значительные общие улучшения производительности;
· Улучшенный мониторинг и контроль.
.
Установка PostgreSQL 10 на Linux Ubuntu Server 16.04
Как Вы уже, наверное, поняли рассматривать процесс установки и соответственно настройки PostgreSQL 10 мы будем на примере версии Ubuntu Server 16.04, так как эта версия имеет долгосрочную поддержку и на текущий момент является актуальной среди LTS версий.
Шаг 1
Установку и настройку PostgreSQL необходимо осуществлять с правами суперпользователя, поэтому давайте сразу переключимся на пользователя root. Для этого вводим sudo -i (или sudo su) и жмем Enter.
Шаг 2
Затем первое, что нам нужно сделать, это проверить есть ли в репозиториях версия PostgreSQL 10. Это можно сделать путем ввода следующей команды.
apt-cache search postgresql-10
Как видим, в Ubuntu Server 16.04 10 версии PostgreSQL нет, поэтому нам нужно подключить необходимый репозиторий, в котором присутствует PostgreSQL 10. Если у Вас более новая версия Ubuntu Server и в стандартных репозиториях есть 10 версия PostgreSQL, то дополнительный репозиторий Вам подключать не нужно, т.е. данный шаг Вы пропускаете.
Для подключения репозитория нам необходимо создать специальный файл с адресом нужного репозитория.
После перехода на страницу выбираете версию Ubuntu, после чего у Вас отобразится адрес нужного репозитория.
Для упрощения процедуры создания файла давайте напишем скрипт с выводом адреса репозитория, а вывод перенаправим в файл. Для Ubuntu Server 16.04 подключение нужного репозитория будет выглядеть следующим образом.
sh -c ‘echo «deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main» >> /etc/apt/sources.list.d/pgdg.list’
Также нам необходимо импортировать ключ подписи репозитория, для этого вводим команду.
wget —quiet -O — https://www.postgresql. org/media/keys/ACCC4CF8.asc | \apt-key add -
Далее обновляем список пакетов.
apt-get update
И еще раз проверяем наличие пакета с PostgreSQL 10.
apt-cache search postgresql-10
Теперь нужный пакет у нас есть, и мы можем переходить к установке PostgreSQL 10.
Шаг 3
Для установки PostgreSQL 10 пишем следующую команду.
apt-get -y install postgresql-10
По окончанию процесса установки проверяем, запущен ли сервер PostgreSQL.
systemctl status postgresql
Как видим, PostgreSQL 10 установился и работает.
Базовая настройка PostgreSQL 10 в Linux Ubuntu Server
После установки нам необходимо выполнить базовую настройку PostgreSQL 10, например: создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключение по сети.
Создание пользователя и базы данных в PostgreSQL
После установки, к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля. Для этого переключаемся на пользователя postgres (учетная запись в Ubuntu создана автоматически во время установки PostgreSQL).
su — postgres
Запускаем psql — это консоль управления PostgreSQL.
psql
Сначала зададим пароль для пользователя postgres.
\password postgres
Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.
create user testuser with password ‘123456’;
где, testuser – это имя пользователя, ‘123456’ – это его пароль.
Далее давайте создадим базу данных.
create database testdb;
где, testdb – это имя новой базы данных.
Теперь давайте дадим права на управление БД нашему новому пользователю.
grant all privileges on database testdb to testuser;
Все готово, выходим из консоли.
\q
Для проверки, давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.
psql -h localhost testdb testuser
Работает. Для выхода снова набираем \q.
\q
Для переключения обратно на root вводим exit.
exit
Разрешаем подключение к PostgreSQL по сети
По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому для того чтобы мы могли подключаться по сети, нам нужно указать какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.
Для этого открываем файл postgresql.conf, например редактором nano.
nano /etc/postgresql/10/main/postgresql.conf
Находим следующую строку.
#listen_addresses = ‘localhost’
и заменяем на (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).
listen_addresses = ‘*’
Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.
Теперь давайте разрешим подключение из сети 10.0.2.0/24 с методом аутентификации md5. Для этого открываем файл pg_hba.conf
nano /etc/postgresql/10/main/pg_hba.
И вносим следующие изменения (если IPv6 Вы не будете использовать, то можете закомментировать соответствующие строки знаком #).
Где, 10.0.2.0/24 адрес сети, из которой будет происходить подключение к текущему серверу PostgreSQL. Сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.
Перезапускаем PostgreSQL
systemctl restart postgresql
Все, установка и настройка PostgreSQL закончена, можете подключаться к серверу из сети клиентским приложением.
установка и настройка, как запустить на Windows Server 2012
PostgreSQL — это бесплатная СУБД c открытым исходным кодом, предназначенная для высоких нагрузок. PostgreSQL используется IT-гигантами, например, Яндексом. В этой статье мы расскажем как легко и быстро можно установить и настроить PostgreSQL на Windows Server 2012.
PostgreSQL можно скачать с официального сайта.
1. После того как установочный файл скачан, необходимо найти его в папке с Вашими загрузками и запустить его на исполнение двойным щелчком мыши.
2. После этого запустится приветственное окно установки, жмем Next
3. На этом этапе можно выбрать каталог для установки PostgreSQL
4. На этом этапе выбираем компоненты для установки — сам сервер PostgreSQL, графическая утилита администрирования pgAdmin, инструменты командной строки и утилита stack builder для установки дополнительных компонентов. Выберем все и нажмем Next
5. Выберем каталог, где будут храниться наши базы
6. Зададим пароль Администратора СУБД (postgres)
7. Можно переопределить порт по которому будет происходить соединение с БД. По умолчанию это порт 5432. Оставим.
8. Выберем локализацию (региональные настройки) для наших баз или оставим по умолчанию
9. На этой странице нам выведут суммарную информацию о нашем выборе
10. А на этой странице сообщают, что система готова к установке
11. Система устанавливается
12. После окончания установки система предложит запустить Stack Builder — откажемся от установки сняв соответствующую галочку, и нажимаем Finish
На этом установка завершена. Проверить корректность установки можно также удостоверившись что запущена соответствующая служба. Для этого надо запустить оснастку “Службы” . Для этого нажмите комбинацию Win+R и в открывшееся окно написать services.msc
Далее необходимо найти там службу с именем начинающимся с postgresql и удостовериться что она запущена (статус службы “выполняется”)
Также вместе с сервером СУБД устанавливается клиент командной строки PostgreSQL и утилита pgAdmin, которые можно также использовать для проверки корректности установки.
Например запустим консольный клиент psql из меню “Пуск” и попробуем соединиться c сервером PostgreSQL
Psql спросит вас к какому серверу, к какой базе и каким пользователей Вы хотите подключиться. Можно просто нажать Enter чтобы принять значения по умолчанию в квадратных скобках и в конце спросит пароль администратора , который Мы задавали на шаге 6.
В случае успешного подключения вы должны попасть в командную строку PostgreSQL которая выглядит как показано на рисунке
На этом установка и настройка PostgreSQL на Windows Server 2012 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Windows, а если вы ищете надежный виртуальный сервер под управлением Windows, обратите внимания на нашу услугу — Аренда виртуального сервера Windows.
Заказать сервер на Windows
Последнее обновление: 14.06.2022
PostgreSQL: Документация: 15: 1.1. Установка
Документация → PostgreSQL 15
Поддерживаемые версии: Текущий (15) / 14 / 13 / 12 / 11
Разрабатываемые версии: devel
Неподдерживаемые версии: 10 / 9,6 / 9,5 / 9. 4 / 9.3 / 9.2 / 9.1 / 9,0 / 8.4 / 8.3 / 8.2
Прежде чем вы сможете использовать PostgreSQL, вам, конечно же, необходимо его установить. Возможно, PostgreSQL уже установлен на вашем сайте, либо потому, что он был включен в дистрибутив вашей операционной системы, либо потому, что его уже установил системный администратор. В этом случае вы должны получить информацию о том, как получить доступ к PostgreSQL, из документации по операционной системе или у своего системного администратора.
Если вы не уверены, доступен ли уже PostgreSQL и можете ли вы использовать его для своих экспериментов, вы можете установить его самостоятельно. Сделать это несложно, и это может стать хорошим упражнением. PostgreSQL может быть установлен любым непривилегированным пользователем; доступ суперпользователя (root) не требуется.
Если вы устанавливаете PostgreSQL самостоятельно, обратитесь к главе 17 за инструкциями по установке и вернитесь к этому руководству после завершения установки. Обязательно внимательно следуйте разделу о настройке соответствующих переменных среды.
Если администратор вашего сайта не настроил все по умолчанию, возможно, у вас есть еще над чем поработать. Например, если компьютер сервера базы данных является удаленным компьютером, вам потребуется установить переменную среды PGHOST
на имя компьютера сервера базы данных. Также может потребоваться установить переменную среды PGPORT
. Суть в следующем: если вы пытаетесь запустить прикладную программу, а она жалуется, что не может подключиться к базе данных, вам следует обратиться к администратору сайта или, если это вы, к документации, чтобы убедиться, что ваша среда настроена правильно. . Если вы не поняли предыдущий абзац, прочтите следующий раздел.
Установить и настроить PostgreSQL | Убунту
PostgreSQL (также известная как Postgres) — это объектно-реляционная система баз данных, обладающая функциями традиционных коммерческих систем баз данных с улучшениями, которые можно найти в системах управления базами данных (СУБД) следующего поколения.
Установка
Чтобы установить PostgreSQL, выполните в командной строке следующую команду:
sudo apt установить postgresql
Служба базы данных автоматически настраивается с допустимыми значениями по умолчанию, но ее можно настроить в соответствии с вашими конкретными потребностями.
Конфигурация
PostgreSQL поддерживает несколько методов аутентификации клиентов. В Ubuntu одноранговый узел
является методом аутентификации по умолчанию, используемым для локальных соединений
, в то время как scram-sha-256
используется по умолчанию для соединений host
(раньше это был md5
до Ubuntu 21. 10). Пожалуйста, обратитесь к Руководству администратора PostgreSQL, если вы хотите настроить альтернативы, такие как Kerberos.
В следующем обсуждении предполагается, что вы хотите включить соединения TCP/IP и использовать метод MD5 для проверки подлинности клиента. Файлы конфигурации PostgreSQL хранятся в папке 9.0017 /etc/postgresql/<версия>/основной каталог . Например, если вы устанавливаете PostgreSQL 14, файлы конфигурации хранятся в каталоге /etc/postgresql/14/main
.
Совет :
Чтобы настроить аутентификацию IDENT , добавьте записи в файл/etc/postgresql/*/main/pg_ident.conf
. В файле есть подробные комментарии, которые помогут вам.
По умолчанию разрешены только подключения из локальной системы, чтобы все остальные компьютеры могли подключаться к вашему серверу PostgreSQL, отредактируйте файл /etc/postgresql/*/main/postgresql.conf
. Найдите строку: #listen_addresses = ‘localhost’ и измените ее на *
:
listen_addresses = '*'
Примечание :
«*» позволит всем доступным IP-интерфейсам (IPv4 и IPv6) прослушивать только IPv4, установленный «0. 0.0.0», а «::» позволяет прослушивать все IPv6-адреса.
Подробную информацию о других параметрах см. в файле конфигурации или в документации PostgreSQL, чтобы узнать, как их можно редактировать.
Теперь, когда мы можем подключиться к нашему серверу PostgreSQL, следующим шагом будет установка пароля для пользователя postgres . Выполните следующую команду в терминале, чтобы подключиться к базе данных шаблонов PostgreSQL по умолчанию:
.sudo -u postgres psql шаблон1
Приведенная выше команда подключается к базе данных PostgreSQL template1 как пользователь postgres . Как только вы подключитесь к серверу PostgreSQL, вы увидите приглашение SQL. Вы можете запустить следующую команду SQL в psql
предложит настроить пароль для пользователя postgres .
ALTER USER postgres с зашифрованным паролем 'your_password';
После настройки пароля отредактируйте файл /etc/postgresql/*/main/pg_hba. conf
, чтобы использовать аутентификацию scram-sha-256 с пользователем postgres , разрешенным для базы данных template1, из любой системы в локальная сеть (в примере это 192.168.122.1/24):
hostssl шаблон1 postgres 192.168.122.1/24 скрам-ша-256
Примечание :
Используемый здесь оператор конфигурации «hostssl» будет отклонять TCP-соединения, которые не используют ssl. Postgresql в Ubuntu имеет встроенную и настроенную по умолчанию функцию ssl, поэтому она работает сразу. На вашем сервере postgresql используется сертификат, созданный пакетом «ssl-cert», что отлично, но для производственного использования вам следует подумать об обновлении его с помощью надлежащего сертификата от признанного центра сертификации.
Наконец, вы должны перезапустить службу PostgreSQL, чтобы инициализировать новую конфигурацию. В командной строке терминала введите следующее, чтобы перезапустить PostgreSQL:
sudo systemctl перезапустить postgresql. service
Предупреждение :
Приведенная выше конфигурация никоим образом не завершена. Пожалуйста, обратитесь к Руководству администратора PostgreSQL, чтобы настроить дополнительные параметры.
Вы можете протестировать подключения к серверу с других компьютеров с помощью клиента PostgreSQL следующим образом, заменив доменное имя на ваше фактическое доменное имя сервера или IP-адрес:
sudo apt установить клиент postgresql psql --host your-servers-dns-or-ip --username postgres --password --dbname template1
Потоковая репликация
PostgreSQL имеет удобную функцию, называемую потоковой репликацией, которая обеспечивает возможность непрерывной отправки и применения записей XLOG журнала упреждающей записи (WAL) к некоторому количеству резервных серверов, чтобы поддерживать их в актуальном состоянии. Здесь представлен очень простой и простой способ репликации сервера PostgreSQL (основного) на резервный сервер.
Сначала создайте пользователя репликации на основном сервере, который будет использоваться с резервного сервера:
sudo -u postgres createuser --replication -P -e репликатор
Настроим основной сервер на включение потоковой репликации. Откройте файл /etc/postgresql/*/main/postgresql.conf
и убедитесь, что у вас есть следующие строки:
listen_addresses = '*' wal_level = реплика
Также отредактируйте файл /etc/postgresql/*/main/pg_hba.conf
, чтобы добавить дополнительную строку, разрешающую подключение резервного сервера для репликации (это специальное ключевое слово) с использованием репликатора
пользователя:
репликатор репликации хостаscram-sha-256
Перезапустите службу, чтобы применить изменения:
sudo systemctl перезапустить postgresql
Теперь на резервном сервере остановим службу PostgreSQL:
sudo systemctl остановить postgresql
Отредактируйте /etc/postgresql/*/main/postgresql. conf
, чтобы настроить горячее резервирование:
hot_standby = вкл.
Резервное копирование текущего состояния основного сервера (эти команды по-прежнему выполняются в резервной системе):
sudo su — постгрес # резервное копирование текущего содержимого резервного сервера (соответственно обновите версию вашего постгреса) cp -R /var/lib/postgresql/14/main /var/lib/postgresql/14/main_bak # удалить все файлы в каталоге данных rm -rf /var/lib/postgresql/14/main/* pg_basebackup -h-D /var/lib/postgresql/14/main -U replicator -P -v -R
После того, как это было сделано выше, будет выполнено полное однократное копирование содержимого основной базы данных в локальную систему, являющуюся резервной. В команде pg_basebackup
флаги представляют собой следующее:
-
-h
: Имя хоста или IP-адрес основного сервера . -
-D
: Каталог данных -
-U
: Пользователь, который будет использоваться в операции -
-P
: Включает отчеты о ходе выполнения -
-v
: включает подробный режим -
-R
: создает файлstandby. signal
и добавляет настройки подключения кpostgresql.auto.conf
.
Наконец, давайте запустим службу PostgreSQL на резервном сервере:
sudo systemctl запустить postgresql
Чтобы убедиться, что он работает, перейдите на главный сервер и выполните следующую команду:
sudo -u postgres psql -c "выбрать * из pg_stat_replication;"
Как уже упоминалось, это очень простое введение, в исходной документации гораздо больше подробностей о конфигурации репликации, а также о высокой доступности, балансировке нагрузки и репликации.
Чтобы протестировать репликацию, теперь вы можете создать тестовую базу данных на основном сервере и проверить, реплицируется ли она на резервном сервере:
sudo -u postgres createdb test # на основном сервере sudo -u postgres psql -c "\l" # на резервном сервере
Вам необходимо иметь возможность видеть базу данных test
, созданную на основном сервере, на резервном сервере.
Резервные копии
Базы данных PostgreSQL следует регулярно создавать резервные копии. Информацию о различных подходах см. в Руководстве администратора PostgreSQL.
Ресурсы
Как упоминалось выше, Руководство администратора PostgreSQL — отличный ресурс. Руководство также доступно в пакете
postgresql-doc
. Выполните в терминале следующее, чтобы установить пакет:sudo apt установить postgresql-doc
Этот пакет содержит дополнительные справочные страницы по postgresql «dblink» и «интерфейс программирования сервера», а также руководство в формате html, которое вы найдете выше. Чтобы просмотреть руководство, введите xdg-open /usr/share/doc/postgresql-doc-*/html/index.html
или укажите его в браузере.
Для получения общей информации об SQL см. книги O’Reilly «Начало работы с SQL: практический подход для начинающих» Томаса Нильда в качестве отправной точки и SQL в двух словах в качестве краткого справочника.