Во-первых, я хочу пояснить, что этот вопрос уже задавался в Askubuntu, но я продолжил удалять его, потому что я почти не получил обратной связи. Если это нарушает протокол SU, пожалуйста, дайте мне знать.


Добро пожаловать в мой беспорядок ...

Ситуация такова:

  • Ubuntu Software делала некоторые "важные" обновления (и, вероятно, многие из них, поскольку прошло более 9 месяцев с момента моего последнего обновления).

  • Обновление, похоже, перестало работать (индикатор выполнения обновления заморожен), без объяснения причин происходящего. Есть уведомление о какой-то ошибке, которая не давала мне много информации или ничего общего с этим, за исключением нажатия на кнопку "Сообщить".

  • Приблизительно после 8 часов использования ПК и в надежде, что проблема решится сама собой, я отмечаю, что панель процессов все еще заморожена. Я скрещиваю пальцы и выключаю компьютер.

  • Теперь ноутбук не загружается в Ubuntu (все еще есть Windows, не пытался загрузить это, но я думаю, что это все еще работает).

  • Большая и важная база данных Postgresql хранится на ноутбуке, на /var/lib/postgresql/9.5/main (да, я очень устал за день до того, как выключил ноутбук, не ожидал этого ... действительно глупо не делай этого дома, дети).

  • Сделал загрузочную флешку с Ubuntu 16.04 live, чтобы получить доступ к моим файлам и сделать резервную копию перед переустановкой Ubuntu.

  • Не может сделать резервную копию упомянутой базы данных (имеется в виду, можно скопировать / вставить папку с помощью Nautilus или через терминал +sudo), он говорит, что содержимое /var/lib/postgresql/9.5/main не читается (у меня нет разрешений). С моим домашним каталогом проблем меньше, и мне удается сделать резервную копию (с несколькими незначительными исключениями).

Что я могу сделать по этому поводу? Можно ли скопировать файлы из базы данных, чтобы сделать резервную копию? Кроме того, как я могу получить доступ к этой базе данных впоследствии?

Спасибо за ваше время...


Обновление: я успешно заархивировал свои файлы, используя sudo /bin/bash а затем cp , как предложил davidgo (сохранил их на внешний жесткий диск).

Затем я установил Ubuntu с нуля на свой компьютер, установил posgresql-9.5 (добавив репозиторий Postgres PGDG, упомянутый davidgo) и скопировал файлы в ту же исходную папку (используя cp -rnP /pathto/backupfolder /var/lib/postgresql/9.5/main) и поменял владение на "postgres".

Теперь моя проблема в том, что я не могу запустить клиент postgresql (psql). Это вывод командной строки:

user@machine:~$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Просматривая документацию, я обнаружил, что могу запустить pg_ctl для запуска сервера, но в Ubuntu ожидается, что вместо этого я использую pg_ctlcluster . Итак, я попробую это:

user@machine:~$ su - postgres
Password: 
postgres@machine:~$ pg_ctlcluster 9.5 main status
pg_ctl: server is running (PID: 1034)
/usr/lib/postgresql/9.5/bin/postgres "-D" "/var/lib/postgresql/9.5/main" "-c" "config_file=/etc/postgresql/9.5/main/postgresql.conf"

Я могу сказать, что я довольно неуклюжий пользователь PostgreSQL, так что это, вероятно, нечто очень простое, чего я сейчас не вижу. Опять же, любая помощь будет более чем полезной!

2 ответа2

2

Чтобы заставить это работать, шаги были бы:

  1. Установите новую копию UBUNTU - на новый диск, чтобы не перезаписывать файлы postgres. Установите Postgres 9.5 на новый экземпляр (для этого вам может понадобиться или нет добавление репозитория Postgres PGDG )

  2. Скопируйте старые файлы Postgres в новую систему в ту же папку (обычно /var/lib/pgsql/9.5). Поскольку у вас возникли трудности здесь, вы должны попытаться сделать это как ROOT из командной строки. (Я предполагаю, что SELinux не работает или мешает, если это так, отключите его). [Вы можете вставить диск в качестве второго диска или использовать USB-накопитель]. Чтобы получить root-доступ, введите «sudo /bin /bash».

  3. Измените права владения файлами postgresql на пользователя postgres.

  4. Запустите Postgres!

0

в моем случае это был слишком большой shared_buffers, который вызвал сбойное состояние, я уменьшил его до 128 МБ и перезапустил, затем работал нормально, я сделал копию каталога данных после сбоя ОС на новую ОС ..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .