LINUX.ORG.RU

68
Всего сообщений: 520

Системный администратор / DevOps инженер (г.Воронеж)

Здравствуйте, меня зовут Дарья - HR-менеджер проекта Text.ru. Text.ru - известный и популярный сервис, являющийся лидером среди бирж копирайтинга и сервисов проверки уникальности текста.

У нас открыта вакансия системного администратора / DevOps Engineer (г.Воронеж)

Нам нужен хороший специалист, имеющий: - Опыт администрирования операционных систем семейства Linux. - Опыт настройки серверов для web-проектов. - Опыт администрирования и оптимизации баз данных: MySQL, PostgreSQL, MongoDB. - Понимание и опыт работы с Apache, Nginx, PHP-FPM. - Опыт работы с системами мониторинга (Zabbix и т.д.). - Хорошее знание shell, bash. - Аккуратное ведение конфигов.

Мы приготовили обширный перечень задач:

* Сопровождение и развитие текущей инфраструктуры проекта.

* Мониторинг и реагирование на инциденты.

* Поддержка и развитие процессов автоматизации развертывания систем, проектов и окружений.

* Администрирование Linux-серверов для web-сервисов.

* Администрирование СУБД (тонкий тюнинг, замеры производительности, репликация).

* Поддержка горячего резерва и бэкапов в актуальном состоянии.

* Поиск узких мест в работе служб и во взаимодействии различных приложений/подсистем между собой.

Зарплатная вилка от 60 до 100 тысяч рублей на руки - все будет зависеть от имеющихся знаний/навыков. Готовы рассматривать кандидатов из других городов, мы оплатим затраты на переезд и проживание. У нас молодая профессиональная команда, оформление по ТК РФ со всеми вытекающими последствиями в виде отпуска, праздников и оплаты больничных; крутая зона отдыха, вкусные чай, кофе, сладости, соки, йогурты и многое другое.

Подробное описание вакансии: https://voronezh.hh.ru/vacancy/24918542

 , , , ,

DarinaHR ()

Добавление информации, получаемой по SNMP, в PostgreSQL

Доброго времени суток. Встал вопрос, можно ли каким-нибудь образом заполнять таблицу в PostgreSQL данными, получаемыми по SNMP (по запросу snmptable в частности)? Дело в том, что нужно осуществить мониторинг. Сейчас делаю это с помощью Zabbix, используя SNMP-агент, но в случае с таблицами, содержащими множество метрик, добавлять каждый элемент данных по-отдельности - просто нецелесообразно по времени. Поэтому сейчас хочу выгрузить данные в PostgreSQL и после этого уже таблицу перекинуть в Grafana. Как это можно осуществить?

 , ,

Lotrein ()

Как осуществить мониторинг данных из Redis в Grafana?

Мне нужно как-то отобразить данные из бд Redis (ключи и их значения) в Grafana. Я пытался сделать это несколькими способами:

- SimpleJson

- Redis_fdw (Здесь я хотел перетаскивать данные из Redis в PostgreSQL, а из него уже в Grafana, но там возникли проблемы при установке).

Также я пытаюсь сейчас написать скрипт с помощью Python, который бы перетаскивал данные из Redis в PostgreSQL (ещё желательно сделать с таймером, чтобы это происходило, к примеру, каждые 5 секунд).

Как конкретно можно осуществить всё это наиболее просто и удобно?

На всякий случай скину то, что у меня есть на данный момент в скрипте, просто чтобы показать, что python видит и redis, и postgresql (и да, почему-то добавленные строки в конечном итоге не сохраняются в базе данных):

https://groups.google.com/group/redis-db/attach/8752b692ed92d/test.py?part=0....

( читать дальше... )

 , , ,

Lotrein ()

Ищу работу: Удаленный администратор. Linux, Highload. Поддержка и фулл тайм.

Уважаемые работодатели, выполняю работы по настройке и поддержке кластерных WEB решений и не только. Имею хороший опыт удаленной работы в крупной компании с большим количеством разработчиков, поддержки и обслуживания кластерных WEB/MAIL/DB/SIP решений, в том числе опыт поддержки большого количества физических серверов (более 200), автоматизации сервисов, опыт работы с различными системами мониторинга, IP телефонией и сетевым оборудованием.

Общий опыт работы с Linux, сетями и телефонией более 10 лет.

Работаю с любыми дистрибутивами, нагруженными WEB сервисами, пишу любые скрипты автоматизации. Обслуживаю кластеры баз данных, WEB кластеры, почтовые кластеры, системы очередей, различные системы виртуализации.

Ключевые кластерные решения успешно внедренные в разных проектах:

WEB: Nginx / PHP-FPM / Redis / Memcached

SQL: MariaDB Galera / PostgreSQL Citus / ProxySQL / PGPool

NOSQL: Redis / MongoDB / Tarantool / CouchDB / Sphinx / Elastic

File: LizardFS / MooseFS / GlusterFS

SIP: OpenSIPS / MediaProxy / Asterisk

Общие термины:

Asterisk / VMware / KVM / Proxmox / Nginx / Apache / Lighttpd / Hybris SAP / PHP5-FPM / PHP7-FPM / HHVM / MariaDB Galera Cluster / PostgreSQL Citus / Redis / Cassandra / HBase / MongoDB / Tarantool / Memcached / CouchDB / Sphinx / Solr / Elastic / Wildfly / Tomcat / Samba / LizardFS / MooseFS / GlusterFS / Lsyncd / FTP / Bind / Unbound / PowerDNS / OpenVPN / L2TP / IPSEC / Strongswan / Radius / IPtables / Ansible / LibreNMS / Newrelic / MMonit / Graylog / Grafana / Prometheus / Graphite / InfluxDB / FluentD и прочее.

Все возможные сервисы перечислять не имеет смысла, есть опыт и по Windows/AD/MSSQL сервисам, опыт по интеграции сервисов между собой, опыт A/B тестирования WEB приложений, настройка отложенных репликаций, построение горизонтального шардинга БД, отказоустойчивые сетевые конфигурации.

График удаленный, работа по договору подряда(возможно и без него), стоимость всегда обсуждаема в зависимости от Ваших задач.

Контакты:

Андрей

E-mail: syslinux@protonmail.com

Matrix: syslinux@protonmail.com / @syslinux:matrix.org ( https://about.riot.im/ )

Telegram: @syslinux

 , , , ,

raver ()

Ищу работу Python программист и (или) Linux администратор.

г.Ростов-на-Дону навыки Python (2,3) с 2000 года. Django, Flask, aiohttp, SQL (PostgreSQL Transact-SQL (давно), MySQL), nginx, bind, PowerDNS, Docker (немного), MongoDB и еще куча всего о чем забыл (всякие exim). ЗП от 60т.р.

Можно разовые задачи с договорными расценками. Если надо есть ИП и ООО.

контакты demmsnt at gmail.com

 ,

demrnd ()

Улучшенный сценарий архивации PostgreSQL

Доработав сценарий, делюсь, может кому будет полезно. Кроме того внимательно выслушаю замечания.

root@PostgreSQL:/home/maintainer# cat /root/backup.sh
#!/bin/bash

FILENAME='/root/psql_dblist'
PORT=5433
USERNAME='dbadmin'
SERVERNAME='localhost'
ARCHIVEDIR='/Backup'
SUFFIX=''
ADMINSEMAILS='email@gmail.com email@yandex.ru'
NETDIR='//192.168.88.11/Kamin/PostgreSQL'
EMFROM="email@mail.su"
ERRLOG="/root/backup.txt"
EMSMTP="192.168.88.232:25"
EMPASS="Pa$$w0rd"


if [[ 'daily' = $1 ]]
then
    SUFFIX='daily_'$(date +%u)'_'$(date +%H)
    #echo $SUFFIX
    #echo Ok
fi

if [[ 'monthly' = $1 ]]
then
    SUFFIX='monthly_'$(date +%b)'_'$(date +%H)
fi

if [[ 'hot' = $1 ]]
then
    SUFFIX='hot_'$(date +%Y-%b-%d-%H%M)
fi

if [[ $SUFFIX = '' ]]
then
    echo 'Type monthly, daily or hot as parametr'
    exit
fi


if mount | grep -qw $NETDIR
then
    echo "Network directory is mounted"
else
    echo "Network direcrory $NETDIR is not mounted" >> $ERRLOG
    SUBJECT="PostgeSQL:NoGood SUFFUX=$SUFFIX"
    MESSAGE="File /root/backup.txt contain some errors. Look for attachment"
    sendEmail -f $EMFROM -t $ADMINSEMAILS -u $SUBJECT -m $MESSAGE -s $EMSMTP -xu $EMFROM -xp $EMPASS -o tls=no -q -a $ERRLOG
    exit
fi

#DBLIST=$(psql -U $USERNAME -p $PORT -l | awk '/psql/ { print $1 }')
DBLIST=$(psql -U $USERNAME -p $PORT -l | q -d'|' "select c1 from - where c1 <> '' and c2 <> '' and c1 not like 'template%' limit 1,10000")

echo "$DBLIST" > $FILENAME

cat ${FILENAME} | while read DBNAME;
do
    mkdir -p ${ARCHIVEDIR}'/'${DBNAME};
    pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | gzip > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$SUFFIX'.dump.gz';
    #pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | gzip > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$(date +%Y-%b-%d-%H%M)'.dump.gz';
done


read BackupErr < /root/backup.txt
SUBJECT=''
MESSAGE=''

if [[ $BackupErr = '' ]]
then
    SUBJECT="Archiving PostgeSQL:Ok SUFFUX=$SUFFIX"
    MESSAGE="Archiving successful. File /root/backup.txt is empry."
else
    SUBJECT="PostgeSQL:NoGood SUFFUX=$SUFFIX"
    MESSAGE="File /root/backup.txt contain some errors. Look for attachment"
fi

sendEmail -f $EMFROM -t $ADMINSEMAILS -u $SUBJECT -m $MESSAGE -s $EMSMTP -xu $EMFROM -xp $EMPASS -o tls=no -q -a $ERRLOG

Добавлено уведомление о результате по e-mail. Оптимизации кода пока нет. На это тоже нужно время и самое главное время на тестирование.

root@PostgreSQL:/home/maintainer# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
0       8,12,16,20      *       *       *       /root/backup.sh daily 2>> /root/backup.txt
0       4       15      *       *       /root/backup.sh monthly 2>> /root/backup.txt

 ,

Shulman ()

Усовершенствование скрипта архивации

Есть скрипт, это может быть важно, поэтому вот он:

www.linux.org.ru/forum/development/14003423

В общем запускается он по крону с параметрами daily и monthly.

Все уже работает.

Теперь хочу чтобы был анализ ошибок. Думаю самое простое, чтобы если у скрипта появился вывод, его нужно перенаправить в файл и в конце выполнения сценария добавить проверку, а не появилось ли в этом файле что? После чего накатать письмо админам.

Я где то видел, что ошибки перенаправляются в файл, но как это написать не помню.

Предположим файл запускается так:

/root/backup.sh daily

Как перенаправить ошибки в файл?

И естественно, может у кого есть идеи лучше.

 , ,

Shulman ()

PostgreSQL. Помогите с запросом.

Всем привет.

В посгресе новичек. Составил такой запрос:

SELECT
  jt.tid, 1 AS some_column, jt.status, 1000 AS priority
FROM
  some_table AS st
INNER JOIN 
  joined_table AS jt 
ON 
  jt.some_table_id = st.id 
AND 
jt.status IN ('st1','st2','st3','st4')
WHERE ...

Вопрос. Как, в зависимости от jt.status можно поменять константу в priority?

Например, когда статус = st1, priority был 1000, для st2 - 900, для st3 = 800.

 ,

djnoob ()

postgresql через localhost

Установил postgresql-10 Через сокет захожу без проблем: psql -U postgres

Но вот через localhost или 127.0.0.1 или 0.0.0.0 - тишина - ни ответа ни привета.

в pg_hba.conf стоит trust - раньше ставил md5

в posgresql.conf listen_addresses = '*'

netstat -nlp | grep 5432

tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      15419/postmaster
tcp6       0      0 :::5432                 :::*                    LISTEN      15419/postmaster
unix  2      [ ACC ]     STREAM     LISTENING     2879679531 15419/postmaster     /var/run/postgresql/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     2879679534 15419/postmaster     /tmp/.s.PGSQL.5432

То есть вроде постгрес слушает порты - но ответа нет никакого - ни ошибки, ни таймаута от psql нет.

Куда копать?

 ,

Bingo ()

Я все поломал, но Debian все починит?

Я сделал

# apt-get remove postgresql-pro-1c-9.6

Удалил /etc/postgresql и хранилище кастомного кластера вручную.

А потом пытался поставить все обратно, но ничего не получилось.

Потом, после apt-get --help я попробовал сделать

# apt-get purge postgresql-pro-1c-9.6

Теперь я не могу восстановить дефолт и имею вот что

root@1cfresh:/home/maintainer# pg_createcluster 9.6 main --start
Configuring already existing cluster (configuration: /etc/postgresql/9.6/main, data: /var/lib/postgresql/9.6/main, owner: 117:122)
Error: move_conffile: required configuration file /var/lib/postgresql/9.6/main/postgresql.conf does not exist

То есть

root@1cfresh:/home/maintainer# ls /etc/postgresql/
root@1cfresh:/home/maintainer#

Хотя при этом:

root@1cfresh:/home/maintainer# apt-get remove postgresql-pro-1c-9.6^C
root@1cfresh:/home/maintainer# /etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service.
root@1cfresh:/home/maintainer# /etc/init.d/postgresql status
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2018-02-22 12:19:50 +05; 1h 37min ago
  Process: 18887 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 18887 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/postgresql.service

фев 22 12:19:50 1cfresh systemd[1]: Starting PostgreSQL RDBMS...
фев 22 12:19:50 1cfresh systemd[1]: Started PostgreSQL RDBMS.

Нужно ли переустанавливать GNU/Linux Debian, или можно все восстановить с помощью установки?

Сервер тестовый, но можно только представить что было бы если бы такое кто-либо устроил на боевом...

 , ,

Shulman ()

отговорите: (nodejs) vue.js + express + pg-promise + postgresql + docker

Хочу сделать небольшое и легконагруженное приложение - редактор словарей терминов. Есть список слов, можно искать слово. У слова есть карточка, которая своя для каждого пользователя, но можно смотреть чужие карточки. Карточка в формате markdown или что-то около того.

Клиента буду делать на vue.js, а сервер хочу на node.js . Да, меня уже отговаривали использовать node.js на стороне сервера. Но вдруг для такого простого проекта прокатит? В принципе, я готов всю тяжесть написать на pl/pgSQL, а на нодке - только тончайший интерфейс и собственно веб сервер. Соответственно, вопрос - как там с утечками памяти и прочими такими вот ужасами?

Т.е. вопрос состоит не в удобстве и не в производительности, а в качестве с т.з. надёжности.

Перемещено tailgunner из development

 ,

den73 ()

СООБЩЕНИЕ: автоочистка: найдена устаревшая врем. таблица «pg_temp_6».«tt5» в базе «ds38_kamin55_psql»

После восстановления из полного архива, сделанного pg_basebackup и применения всех записей из журнала транзакций, наблюдаю следующую картину:

2018-02-19 14:28:14.219 +05 [5968] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt19" в базе "ds38_kamin55_psql"
2018-02-19 14:28:14.219 +05 [5968] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt20" в базе "ds38_kamin55_psql"
2018-02-19 14:28:14.219 +05 [5968] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt21" в базе "ds38_kamin55_psql"
2018-02-19 14:28:14.219 +05 [5968] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt22" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt1" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt2" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt3" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt4" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt5" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt6" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt7" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt8" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt9" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt10" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt11" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt12" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt13" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt1" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt2" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt3" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt4" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt5" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt6" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt7" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt8" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt9" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt10" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt11" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt12" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_6"."tt13" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt14" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt15" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt16" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt17" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt18" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt19" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt20" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt21" в базе "ds38_kamin55_psql"
2018-02-19 14:29:14.226 +05 [6000] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt22" в базе "ds38_kamin55_psql"

Записи в цикле, то есть как только заканчивается предыдущий набор строк, он снова повторяется.

Получается журнал забит этими строками. Что он делает?

PostgreSQL 9.6, Debian 9

 ,

Shulman ()

Запуск и остановка PostgreSQL без SystemD

В общем у меня была проблема запуска PostgreSQL, которую я решил как было написано тут:

https://www.postgresql.org/docs/9.6/static/server-start.html

/usr/lib/postgresql/9.6/bin/postgres -D /etc/postgresql/9.6/Slave/ >/var/log/postgresql/postgresql-9.6-Slave.log 2>&1 &

Как остановить PostgreSQL, чтобы это было корректно.

Сейчас скрипты systemd не видят работающего сервера и когда я делаю


root@1cfresh:/home/maintainer# systemctl stop postgresql
root@1cfresh:/home/maintainer# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2018-02-17 13:53:06 +05; 1 day 18h ago
 Main PID: 11026 (code=exited, status=0/SUCCESS)

фев 14 09:25:27 1cfresh systemd[1]: Starting PostgreSQL RDBMS...
фев 14 09:25:27 1cfresh systemd[1]: Started PostgreSQL RDBMS.
фев 17 13:53:06 1cfresh systemd[1]: Stopped PostgreSQL RDBMS.
root@1cfresh:/home/maintainer# /etc/init.d/postgresql stop
[ ok ] Stopping postgresql (via systemctl): postgresql.service.
root@1cfresh:/home/maintainer# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2018-02-17 13:53:06 +05; 1 day 18h ago
 Main PID: 11026 (code=exited, status=0/SUCCESS)

фев 14 09:25:27 1cfresh systemd[1]: Starting PostgreSQL RDBMS...
фев 14 09:25:27 1cfresh systemd[1]: Started PostgreSQL RDBMS.
фев 17 13:53:06 1cfresh systemd[1]: Stopped PostgreSQL RDBMS.

Ничего не происходит.

Как корректно потушить PostgreSQL

РЕШЕНИЕ:

postgres@1cfresh:/home/maintainer$ pg_ctlcluster
\Usage: /usr/bin/pg_ctlcluster <version> <cluster> <action>
postgres@1cfresh:/home/maintainer$ pg_ctlcluster 9.6 Slave stop
Warning: stopping the cluster using pg_ctlcluster will mark the systemd unit as failed. Consider using systemctl:
  sudo systemctl stop postgresql@9.6-Slave
pg_ctl: сервер не останавливается
ПОДСКАЗКА: Параметр "-m fast" может сбросить сеансы принудительно,
не дожидаясь, пока они завершатся сами.

postgres@1cfresh:/home/maintainer$ tail -n 30 /var/log/postgresql/postgresql-9.6-Slave.log
2018-02-19 10:56:31.909 +05 [15145] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt27" в базе "ds38_kamin55_psql"
2018-02-19 10:56:31.909 +05 [15145] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt28" в базе "ds38_kamin55_psql"
2018-02-19 10:56:31.909 +05 [15145] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt29" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt13" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt14" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt15" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt16" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt17" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt18" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt19" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt20" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt21" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt22" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt23" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt24" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt25" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt26" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt27" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt28" в базе "ds38_kamin55_psql"
2018-02-19 10:57:31.925 +05 [15161] СООБЩЕНИЕ:  автоочистка: найдена устаревшая врем. таблица "pg_temp_5"."tt29" в базе "ds38_kamin55_psql"
2018-02-19 10:57:49.625 +05 [8551] СООБЩЕНИЕ:  получен запрос на "вежливое" выключение
2018-02-19 10:57:49.625 +05 [8698] СООБЩЕНИЕ:  процесс запуска автоочистки завершается
2018-02-19 11:17:09.006 +05 [15458] dbadmin@ds38_kamin55_psql ВАЖНО:  система баз данных останавливается
2018-02-19 11:17:09.011 +05 [15459] dbadmin@ds38_kamin55_psql ВАЖНО:  система баз данных останавливается
2018-02-19 11:17:09.012 +05 [15460] dbadmin@ds38_kamin55_psql ВАЖНО:  система баз данных останавливается
2018-02-19 11:17:09.016 +05 [8555] СООБЩЕНИЕ:  выключение
2018-02-19 11:17:09.017 +05 [15461] dbadmin@template1 ВАЖНО:  система баз данных останавливается
2018-02-19 11:17:09.039 +05 [15462] dbadmin@template1 ВАЖНО:  система баз данных останавливается
2018-02-19 11:17:09.045 +05 [15463] dbadmin@template1 ВАЖНО:  система баз данных останавливается
2018-02-19 11:17:09.081 +05 [8551] СООБЩЕНИЕ:  система БД выключена

 

Shulman ()

Ищем Django/Python developer middle удаленно или в офис СПБ

Всем добрейшего времени суток. SMYT продолжает поиски Django/Python developer. Мы специализируемся на разработке и внедрении сложных ИТ решений. Основные направления деятельности компании - крупные веб-проекты, автоматизация бизнеса и мобильные приложения.

Требования к кандидату: 1. Опыт разработки на Python\ Django от 1 года. 2. Уверенное знание SQL Приветствуются: 1. Опыт работы с PostgreSQL или других RDBMS. 2. Знание Linux (Debian/Ubuntu) или других *nix. 3. Знание других языков/фреймворков (Java, php, .NET, C/C++). 4. Наличие OpenSource-проектов или участие в них. 5. Опыт работы с MongoDB, Redis, Celery, RabbitMQ, WebSockets

Чем предстоит заниматься: 1.Разработка программного кода согласно утвержденному ТЗ. 2.Работа над крупными интернет и корпоративными проектами (с некоторыми из них вы можете ознакомиться здесь http://www.smyt.ru/projects/). 3.Участие в разработке корпоративных систем. Условия работы: 1. Постоянная удаленная работа или работа в офисе Санкт-Петербурга на Василевском острове. 2. Занятость до 40 часов в неделю. 3. Почасовая оплата (с ростом Вашего профессионализма будет расти и Ваша ставка). Рейт может составлять от 500 до 1000 р в час в зависимости от уровня квалификации. 3. Свободный график – Вы сами выбираете время, удобное для продуктивной работы.

Ждем Ваши отклики на hr@smyt.ru либо добавьте в скайпе live:hr_12502

 , ,

Nevskay_Irina ()

PostgreSQL и SystemD

Вот что написали мне по моей ситуации:

При запуске, PostgreSQL обрабатывает еще несколько файлов транзакций и снова останавливается.

root@1cfresh:/home/maintainer# /etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service.
root@1cfresh:/home/maintainer# tail -n 30 /var/log/postgresql/postgresql-9.6-Slave.log
2018-02-14 09:34:08.827 +05 [11385] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:08.974 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000A9" восстановлен из архива
2018-02-14 09:34:09.208 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000AA" восстановлен из архива
2018-02-14 09:34:09.334 +05 [11392] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:09.444 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000AB" восстановлен из архива
2018-02-14 09:34:09.679 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000AC" восстановлен из архива
2018-02-14 09:34:09.841 +05 [11399] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:09.927 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000AD" восстановлен из архива
2018-02-14 09:34:10.201 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000AE" восстановлен из архива
2018-02-14 09:34:10.350 +05 [11406] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:10.460 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000AF" восстановлен из архива
2018-02-14 09:34:10.526 +05 [11368] СООБЩЕНИЕ:  согласованное состояние восстановления достигнуто по смещению 2/AFFFF930
2018-02-14 09:34:10.716 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B0" восстановлен из архива
2018-02-14 09:34:10.856 +05 [11413] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:11.014 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B1" восстановлен из архива
2018-02-14 09:34:11.318 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B2" восстановлен из архива
2018-02-14 09:34:11.363 +05 [11418] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:11.602 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B3" восстановлен из архива
2018-02-14 09:34:11.870 +05 [11427] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:11.882 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B4" восстановлен из архива
2018-02-14 09:34:12.176 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B5" восстановлен из архива
2018-02-14 09:34:12.377 +05 [11434] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:12.452 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B6" восстановлен из архива
2018-02-14 09:34:12.787 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B7" восстановлен из архива
2018-02-14 09:34:12.884 +05 [11439] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:13.157 +05 [11368] СООБЩЕНИЕ:  файл журнала "0000000100000002000000B8" восстановлен из архива
2018-02-14 09:34:13.390 +05 [11446] postgres@postgres ВАЖНО:  система баз данных запускается
2018-02-14 09:34:13.392 +05 [11367] СООБЩЕНИЕ:  получен запрос на "вежливое" выключение
2018-02-14 09:34:13.399 +05 [11372] СООБЩЕНИЕ:  выключение
2018-02-14 09:34:13.413 +05 [11367] СООБЩЕНИЕ:  система БД выключена

http://www.sql.ru/forum/1225717/postgresql-9-5-ne-zapuskaetsya-avtomaticheski...

http://charlesnagy.info/it/postgresql/postgresql-server-fails-to-start-in-rec...

По ссылкам пишут что это SystemD виноват. А не «вежливые» люди.

Что делать, хелп плиз, я прям уже почти все поборол и споткнулся на финише.

Система Debian 9 последнего разлива, PostgreSQl 9.6.6

Решение:

Запустить PostgreSQL руками, в обход SystemD

/usr/lib/postgresql/9.6/bin/postgres  -D /etc/postgresql/9.6/Slave/ >/var/log/postgresql/postgresql-9.6-Slave.log 2>&1 &

 , ,

Shulman ()

Репликация в PostgreSQL

В общем я на пороге репликации, а точнее пока разбираюсь с восстановлением из WAL.

Файлы WAL у меня в нужный каталог посыпались. Ну естественно когда я что то в базу пишу. Что тоже приятно, хоть что то понятно.

Сейчас я хочу создать «контрольную точку» и мучаю pg_basebackup.

root@PostgreSQL:/home/maintainer# pg_basebackup -h localhost -U dbadmin -p 5433 -w -D /Backup/WAL/test_basebackup/
pg_basebackup: не удалось подключиться к серверу: ВАЖНО:  в pg_hba.conf нет записи, разрешающей подключение для репликации с компьютера "::1" для пользователя "dbadmin", SSL вкл.
ВАЖНО:  в pg_hba.conf нет записи, разрешающей подключение для репликации с компьютера "::1" для пользователя "dbadmin", SSL выкл.

Ковыряние pg_hda.conf приводило лишь к невозможности запуска сервера. Привожу то что было до начала экспериментов:

root@PostgreSQL:/home/maintainer# tail -n 30 /etc/postgresql/9.6/1CFresh/pg_hba.conf


# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local   all             postgres                                peer
local   all             dbadmin                                 peer map=root_map

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
host    all             all             0.0.0.0/0            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     dbadmin          0.0.0.0/0              peer map=root_map
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

Точнее я закоментил строку «host replication dbadmin 0.0.0.0/0 peer map=root_map»

root@PostgreSQL:/home/maintainer# tail -n 30 /etc/postgresql/9.6/1CFresh/pg_ident.conf
# (The uppercase quantities must be replaced by actual values.)
#
# MAPNAME is the (otherwise freely chosen) map name that was used in
# pg_hba.conf.  SYSTEM-USERNAME is the detected user name of the
# client.  PG-USERNAME is the requested PostgreSQL user name.  The
# existence of a record specifies that SYSTEM-USERNAME may connect as
# PG-USERNAME.
#
# If SYSTEM-USERNAME starts with a slash (/), it will be treated as a
# regular expression.  Optionally this can contain a capture (a
# parenthesized subexpression).  The substring matching the capture
# will be substituted for \1 (backslash-one) if present in
# PG-USERNAME.
#
# Multiple maps may be specified in this file and used by pg_hba.conf.
#
# No map names are defined in the default configuration.  If all
# system user names and PostgreSQL user names are the same, you don't
# need anything in this file.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal.  If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect.  You can
# use "pg_ctl reload" to do that.

# Put your actual configuration here
# ----------------------------------

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
root_map        root                    dbadmin

В общем помогите понять, обещаю зазубрить, просто не факт что я сейчас разберусь, а потом оно будет пригождаться. Но думаю если пойму, то в следующий раз разберусь скорее.

Спасибо.

 ,

Shulman ()

PostgreSQL и mchar

PostgreSQL 9.6 в редакции postgrespro.ru для 1С.

В логах заметил повторяющееся сообщение вида:

2018-02-06 20:00:52.708 +05 [14089] dbadmin@ds7_kamin55_psql СООБЩЕНИЕ:  Can't find mchar/mvarvarchar types: mchar=0 mvarchar=0

Гуглеш по «Can't find mchar/mvarvarchar types: mchar=0 mvarchar=0» результата не дает. Хотя где то мне попадалось прикручивание mchar к PostgreSQL. Теперь найти не могу.

Кто решал такое?

PS. Гуглеж продолжается.

 , ,

Shulman ()

Вход на PostgreSQL

Здравствуйте!

Я создал кластер PSQL 9.6.6.

pg_createcluster 9.6 Kamin -d /databases/kamin

Создал пользователя dbadmin с паролем

create role dbadmin with login superuser;

alter role dbadmin with encrypted password 'password';

Пытаюсь обратится к кластеру целиком и что то о нем узнать.


root@PostgreSQL:/home/maintainer# psql -U dbadmin -p 5433 -l -W
Пароль пользователя dbadmin:
psql: ВАЖНО:  пользователь "dbadmin" не прошёл проверку подлинности (Peer)

Но я могу обратится к конкретной базе, и тогда «проверка подлинности» проходит и запросы, или например архивация проходят.

Если я сделаю su postgres, то psql -p 5433 -l так же отрабатывают.

Почему я не могу из под любого пользователя сделать то что хочу зная пароли?

В общем я хочу вывести список всех баз, чтобы распарсить его и использовать как аргумент для скрипта архивации.

 

Shulman ()

Резервирование лога транзакций

В общем мой ведущий гордится тем, что на вебинаре его научили настраивать непрерывное инкрементальное архивирование, что позволяет восстанавливать архивы с интервалом в 1 секунду.

То есть при восстановлении архива, я могу выбрать любое время, а не только часы в которые делалось полное резервирование.

Все это круто, но работает на нашем MS SQL, а я вот пытаюсь внедрить PostgreSQL.

Возможно ли там такое организовать, ну хотя бы сторонними средствами. Можно даже с бюджетом, но с минимальным и чтобы точно работало. А иначе смысл от архивации.

В общем могу ли я так сделать на PostgreSQL?

 ,

Shulman ()

Ansible & PostgreSQL

Верно ли написан сценарий:

- name: Remove PostgreSQL db
  become: yes
  become_user: postgres
  postgresql_db:
    name: "{{ dbname }}"
    state: absent

- name: Remove PostgreSQL user
  become: yes
  become_user: postgres
  postgresql_user:
    db: "{{ dbname }}"
    user: "{{ username }}"
    state: absent

Выдет ошибку что не удалось удалить базу\пользователя, хотя все в базе есть... Подскажите в чем может быть проблема?

 ,

LYJEX ()