Не может получить доступ к PostgreSQL после перезапуска катастрофического отказа, сообщает dbus ошибка

Я выполнял базу данных Postgresql v9.6, и я перезагрузил, но теперь она не запустится. Ничто, кажется, не работает. Какая-либо идея?

Я пытаюсь выполнить своего Django Server:

django.db.utils. OperationalError: не мог соединиться с сервером: Соединение, которому отказывают в сервере, работает на хосте "localhost" (127.0.0.1) и принимает соединения TCP/IP на порте 5432?

Я попробовал к следующим командам:

$ sudo /etc/init.d/postgresql restart
 * Restarting PostgreSQL 9.6 database server                                                                                   * Failed to issue method call: Unit postgresql@9.6-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.6-main.service' for details.

$ sudo service postgresql start
 * Starting PostgreSQL 9.6 database server                                                                                                         * Failed to issue method call: Unit postgresql@9.6-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.6-main.service' for details.    [fail]



(env) dominic@dom-Inspiron-7559:~/Desktop/Project
    $ systemctl status postgresql@9.6-main.service
    Failed to issue method call: No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/systemd1/unit/postgresql_409_2e6_2dmain_2eservice


$ pg_config --version
PostgreSQL 11.2 (Ubuntu 11.2-1.pgdg14.04+1)

$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log


$ sudo pg_ctlcluster 9.6 main start
Failed to issue method call: Unit postgresql@9.6-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.6-main.service' for details.

$ sudo systemctl daemon-reload

Править:

$ ps uxa|grep postgres
dominic  13786  0.0  0.0  15952  2304 pts/0    S+   17:18   0:00 grep --color=auto postgres

/var/log/postgresql$ sudo энергия postgresql-9.6-main.log.1

2019-03-16 16:15:26.224 EDT [7265] modadmin@mod LOG:  could not receive data from client: Connection reset by peer
2019-03-17 15:08:10.290 EDT [12791] modadmin@mod LOG:  could not receive data from client: Connection reset by peer
2019-03-17 15:16:39.060 EDT [17891] modadmin@mod LOG:  could not receive data from client: Connection reset by peer

Я ничего не вижу с сегодняшнего дня..?

1
задан 19 March 2019 в 00:19

1 ответ

Dbus является решением межпроцессного взаимодействия (IPC), используемым широко в дистрибутивах Linux. Также systemd использует его. Однако это независимо от PostgreSQL.

systemctl status команды показывают сообщение об ошибке, связанное, скорее всего, со что systemctl команда, как приложение командной строки, не может связаться с Вашим systemd. Systemd является главным главным демоном Вашей системы, справляясь со всеми фоновыми сервисами, включая PostgreSQL.

Таким образом, у Вас есть по крайней мере два, независимые проблемы. Отметьте, такие случаи редки на Linux, скорее всего, у Вас была неудача. Я надеюсь, у Вас есть некоторый тип резервного копирования, если Ваш Postgresql имел важные данные в нем.

Вероятно, фиксация Вашего PostgreSQL является более важным. Что хорошо видимо, что Ваш PostgreSQL не запускался (если он имел, Ваш django, возможно, соединил его). Вы можете вручную, и более непосредственно проверять его если a ps uxa|grep postgres не дает выполнимого результата.

Проверьте конец своего журнала postgresql, который наиболее вероятен в /var/log/postgresql.log. Это возможно, что Ваша база данных повреждена. Если это так, Вы поражены - за postgresql, просто никакое средство восстановления базы данных низкого уровня никогда не разрабатывалось. У Вас должны всегда быть хорошие резервные копии. Существует некоторый хитрый путь с тем, что можно восстановить определенные данные, но это хорошо по пределам этого сообщения.

Всегда имеет по крайней мере одно резервное копирование от всего то, что важно в Вашей системе. Это не должно быть полезное, высокоуровневое, эффективное решение, но это должно существовать. Например, ежедневная газета pg_dump yourDjangoDb|pxz -9ve - >/var/backups/djangopg.xz довольно хорошо для рабочей станции разработки.

Расширьте свой вопрос с помощью конца Вашего postgresql.log.

О dbus, чтобы знать, работает ли услуга все еще, выполняются ps uxa|grep dbus-daemon команда. Если это не работает, у Вас есть проблема. Если это работает, Вы можете Dbus не иметь никаких действительно важных персистентных данных сам по себе, таким образом, Вы сможете сделать более "прямые" способы сделать его работающий снова. Если это не работает, то существует некоторая проблема связи, которая, скорее всего, связана с некоторыми сокетами Unix в /run. Так или иначе a strace systemctl status dbus.service мог помочь много.

0
ответ дан 7 December 2019 в 21:00

Другие вопросы по тегам:

Похожие вопросы: