<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Postgres on fruworg</title><link>https://fruw.supa.dog/tags/postgres/</link><description>Recent content in Postgres on fruworg</description><generator>Hugo -- gohugo.io</generator><language>ru-RU</language><lastBuildDate>Wed, 11 Sep 2024 17:24:00 +0200</lastBuildDate><atom:link href="https://fruw.supa.dog/tags/postgres/index.xml" rel="self" type="application/rss+xml"/><item><title>Конвертация PostgreSQL в CSV</title><link>https://fruw.supa.dog/posts/psql-to-csv/</link><pubDate>Wed, 11 Sep 2024 17:24:00 +0200</pubDate><guid>https://fruw.supa.dog/posts/psql-to-csv/</guid><description>Конвертация psql -d &amp;lt;database&amp;gt; DO $$ DECLARE r RECORD; BEGIN FOR r IN (SELECT table_name FROM information_schema.tables WHERE table_schema = &amp;#39;public&amp;#39;) LOOP EXECUTE format(&amp;#39;COPY %I TO %L WITH (FORMAT CSV, HEADER)&amp;#39;, r.table_name, &amp;#39;/&amp;lt;path-to-csv&amp;gt;/&amp;#39; || r.table_name || &amp;#39;.csv&amp;#39;); END LOOP; END $$;</description></item><item><title>Обновление PostgreSQL</title><link>https://fruw.supa.dog/posts/postgres-update/</link><pubDate>Mon, 09 Oct 2023 00:20:00 +0600</pubDate><guid>https://fruw.supa.dog/posts/postgres-update/</guid><description>Листинг запущенных экземпляров PostgreSQL pg_lsclusters Остановка экземпляра PostgreSQL новой версии pg_dropcluster &amp;lt;new-version&amp;gt; main --stop Миграция со старой версии на новую pg_upgradecluster &amp;lt;old-version&amp;gt; main Дроп экземпляра PostgreSQL старой версии pg_dropcluster &amp;lt;old-version&amp;gt; main Удаление пакетов старой версии PostgreSQL apt purge -y postgresql-&amp;lt;old-version&amp;gt; postgresql-client-&amp;lt;old-version&amp;gt;</description></item><item><title>ldaps аутентификация в Postgres Pro</title><link>https://fruw.supa.dog/posts/postgres-ldaps/</link><pubDate>Thu, 01 Jun 2023 20:40:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-ldaps/</guid><description>Выпуск сертфиката AD необходимо дать роль CA и выпустить сертификат. Подробнее: https://youtu.be/xC3ujXGkh_c?t=160
Перенос сертификата Необходимо перенести выпущенный конечный сертификат на сервер СУБД и перекодировать следующей командой:
openssl x509 -inform der -in &amp;lt;ad&amp;gt;.cer -out &amp;lt;ad&amp;gt;.pem Установка пакета ldap-utils apt install ldap-utils -y Правка ldap конфига В файл /etc/ldap/ldap.conf необходимо добавить следующие строки:
TLS_CACERT	/etc/ldap/&amp;lt;ad&amp;gt;.pem BASE	dc=&amp;lt;domain&amp;gt;,dc=&amp;lt;local&amp;gt; URI ldaps://&amp;lt;dc&amp;gt;.&amp;lt;domain&amp;gt;.&amp;lt;local&amp;gt;:636 Проверка ldap ldapsearch -x -b &amp;#34;dc=&amp;lt;domain&amp;gt;,dc=&amp;lt;local&amp;gt;&amp;#34; -H ldaps://&amp;lt;dc&amp;gt;.&amp;lt;domain&amp;gt;.&amp;lt;local&amp;gt;:636 -W -D &amp;lt;domain-user&amp;gt; Правка pg_hba.conf С ldapprefix/ldapsuffix в файле /var/lib/pgpro/std-14/data/pg_hba.</description></item><item><title>Дроп БД форсированно в Postgres</title><link>https://fruw.supa.dog/posts/postgres-drop-db/</link><pubDate>Fri, 03 Mar 2023 13:26:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-drop-db/</guid><description>На старой версии (&amp;lt;=12) Заходим в консоль Postgres:
psql Убиваем соединения с БД:
SELECT	pg_terminate_backend (pid) FROM	pg_stat_activity WHERE	pg_stat_activity.datname = &amp;#39;&amp;lt;database_name&amp;gt;&amp;#39;; Дропаем БД:
DROP DATABASE &amp;lt;database_name&amp;gt;; На новой версии (&amp;gt;=13) Заходим в консоль Postgres:
psql Дропаем БД:
DROP DATABASE &amp;lt;database_name&amp;gt; WITH (FORCE);</description></item><item><title>Установка Bareos на Astra Linux SE</title><link>https://fruw.supa.dog/posts/bareos-install/</link><pubDate>Fri, 27 Jan 2023 16:08:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/bareos-install/</guid><description>Конфигурация Сервера Установка Bareos и PostgreSQL curl -s https://download.bareos.org/current/Debian_10/add_bareos_repositories.sh | bash apt update apt install postgresql bareos bareos-webui Конфигурация БД dpkg-reconfigure bareos-database-common Включение сервисов Bareos, PostgreSQL и Apache systemctl enable --now postgresql bareos-director bareos-filedaemon bareos-storage apache2 Создание пользователя для Bareos-webui и конфига клиента Веб Bareos&amp;rsquo;а находится по адресу: http://&amp;lt;bareos-ip&amp;gt;/bareos-webui/
bconsole configure add console name=&amp;lt;web-user&amp;gt; password=&amp;lt;web-pass&amp;gt; profile=webui-admin tlsenable=no configure add client name=&amp;lt;client-name&amp;gt; address=&amp;lt;client-ip&amp;gt; password=&amp;lt;client-pass&amp;gt; reload exit Бэкап определённой папки В файл /etc/bareos/bareos-dir.</description></item><item><title>Простой бэкап Postgres Pro</title><link>https://fruw.supa.dog/posts/postgres-simple-backup/</link><pubDate>Wed, 14 Dec 2022 16:48:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-simple-backup/</guid><description>Скрипт для бэкапа БД и глобальных объектов В файл /home/&amp;lt;username&amp;gt;/pg-backup.sh необходимо добавить следующие строки:
#!/usr/bin/env bash pg_dump -U &amp;lt;username&amp;gt; -h &amp;lt;pg-hostname&amp;gt; -Fc &amp;lt;db&amp;gt; --file=&amp;lt;db&amp;gt;-$(date &amp;#39;+%Y-%m-%d&amp;#39;).dump pg_dumpall -U &amp;lt;username&amp;gt; -h &amp;lt;pg-hostname&amp;gt; --globals --file=gb-$(date &amp;#39;+%Y-%m-%d&amp;#39;).dump Файл cron с запуском скрипта (каждый день в 2:00) Необходимо дописать в конец crontab -e -u &amp;lt;username&amp;gt; следующие строки:
0 2 * * * /usr/bin/env bash /home/&amp;lt;username&amp;gt;/pg-backup.sh Рестор файлов БД и глобальных объектов pg_restore -C -d postgres &amp;lt;dbname&amp;gt;-&amp;lt;date&amp;gt;.</description></item><item><title>Аутентификация в Postgres Pro с помощью Kerberos</title><link>https://fruw.supa.dog/posts/postgres-krb5/</link><pubDate>Tue, 29 Nov 2022 16:21:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-krb5/</guid><description>Установка Kerberos и Postgres Pro Для начала, необходимо установить Postgres Pro и Kerberos. На машину с Postgres Pro Kerberos устанавливается также, как и на клиента.
Конфигурация сервера Kerberos Добавление принципиала Postgres Pro kadmin.local addprinc &amp;lt;username&amp;gt; addprinc postgres addprinc postgres/&amp;lt;pg-hostname&amp;gt; q Экспорт субъекта-службы ktutil add_entry -password -p postgres/&amp;lt;pg-hostname&amp;gt;@&amp;lt;DOMAIN.NAME&amp;gt; -k 1 -e aes256-cts-hmac-sha1-96 wkt postgres.keytab q Перенос субъекта-службы на сервер Postgres Pro Перенести keytab можно как угодно, главное, чтобы он находился в папке с конфигурационными файлами Postgres Pro.</description></item><item><title>Соединение по TLS в Postgres Pro</title><link>https://fruw.supa.dog/posts/postgres-tls/</link><pubDate>Mon, 28 Nov 2022 20:25:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-tls/</guid><description>Создание сертификата В этом посте я буду использовать самоподписанный сертификат, но сертификат от Let&amp;rsquo;s Encrypt тоже подойдёт. Сертификат и ключ желательно держать в той же папке, где лежат конфиги Postgres Pro.
openssl req -x509 -newkey rsa:4096 -nodes -keyout &amp;lt;key&amp;gt;.key -out &amp;lt;cert&amp;gt;.pem -sha256 -days 365 Включение TLS В файл /var/lib/pgpro/std-*/data/postgresql.conf необходимо добавить следующие строки:
ssl = on ssl_cert_file = &amp;#39;&amp;lt;cert&amp;gt;.pem&amp;#39; ssl_key_file = &amp;#39;&amp;lt;key&amp;gt;.pem&amp;#39; listen_addresses = &amp;#39;localhost, &amp;lt;master-ip&amp;gt;&amp;#39; Разрешение доступа через TLS В файл /var/lib/pgpro/std-*/data/pg_hba.</description></item><item><title>Настройка физической репликации Postgres Pro</title><link>https://fruw.supa.dog/posts/postgres-replication/</link><pubDate>Fri, 25 Nov 2022 16:51:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-replication/</guid><description>Установка Postgres Pro Процесс установки описан в этом посте.
Потоковая репликация Про различия в реализациях репликаций можно почитать вот здесь.
Конфигурация master Создание пользователя для репликации su - postgres psql -c &amp;#34;CREATE ROLE repuser WITH REPLICATION LOGIN ENCRYPTED PASSWORD &amp;#39;&amp;lt;password&amp;gt;&amp;#39;;&amp;#34; Разрешение подключения для slave Дописываем в конец файла /var/lib/pgpro/std-*/data/pg_hba.conf:
host replication repuser &amp;lt;slave-ip&amp;gt;/32 md5 Реконфигурация В файл /var/lib/pgpro/std-*/data/postgresql.conf необходимо добавить следующие строки:
listen_addresses = &amp;#39;localhost, &amp;lt;master-ip&amp;gt;&amp;#39; wal_level = hot_standby archive_mode = on archive_command = &amp;#39;cd .</description></item><item><title>Установка Postgres Pro на Astra Linux SE</title><link>https://fruw.supa.dog/posts/postgres-pro-astra-se/</link><pubDate>Fri, 25 Nov 2022 16:20:00 +0500</pubDate><guid>https://fruw.supa.dog/posts/postgres-pro-astra-se/</guid><description>Добавление репозитория apt -y install gnupg wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add - echo &amp;#34;deb http://repo.postgrespro.ru/pgpro-14/astra-smolensk/1.7 1.7_x86-64 main&amp;#34; &amp;gt; /etc/apt/sources.list.d/pgpro.list Установка пакета apt update apt -y install postgrespro-std-14 systemd /opt/pgpro/std-14/bin/pg-setup service enable --now ln -s /lib/systemd/system/postgrespro-std-14.service /etc/systemd/system/postgresql.service Обновление путей /opt/pgpro/std-14/bin/pg-wrapper links update Смена пароля postgres su - postgres psql -c &amp;#34;ALTER USER postgres PASSWORD &amp;#39;&amp;lt;password&amp;gt;&amp;#39;;&amp;#34;</description></item></channel></rss>