Я решаю странную проблему с одной установкой PostgreSQL 10.4. Один из экземпляров баз данных PostgreSQL перестал работать через 7 месяцев без проблем. Когда этот парень увидел, что база данных не перекодировалась, попытался перезапустить базу данных и де-ОС, но это не сработало.
Итак, я начал просматривать логи и ничего не нашел, только заявления о выключении no postgresql_20190208.log
2019-02-08 16:24:07.749 -02 [12878] LOG: could not receive data from client: Connection reset by peer
2019-02-08 16:30:59.421 -02 [27180] LOG: received fast shutdown request
2019-02-08 16:30:59.422 -02 [27180] LOG: aborting any active transactions
2019-02-08 16:30:59.422 -02 [44204] FATAL: terminating connection due to administrator command
2019-02-08 16:30:59.422 -02 [13796] FATAL: terminating autovacuum process due to administrator command
2019-02-08 16:30:59.422 -02 [95589] FATAL: terminating connection due to administrator command
Хорошо, когда я проверил файл startup.log, я обнаружил:
2019-02-08 16:31:00.861 -02 [13815] FATAL: could not access file "": No such file or directory
2019-02-08 16:31:00.861 -02 [13815] LOG: database system is shut down
Я никогда не видел этого раньше. Я ожидаю, что в сообщении будет показан файл с проблемой или что-то, что может повредить некоторые данные, но пустой адрес файла не так уж сильно помогает.
Итак, я попытался запустить базу данных самостоятельно
postgres -D datadir/ -d 5 ;
2019-02-08 22:39:19.010 -02 [45971] DEBUG: postgres: PostmasterMain: initial environment dump:
[some envirounment variables]
2019-02-08 22:39:19.011 -02 [45971] DEBUG: registering background worker "logical replication launcher"
2019-02-08 22:39:19.011 -02 [45971] DEBUG: find_in_dynamic_libpath: trying "/banco/PostgreSQL/10/lib/postgresql/"
2019-02-08 22:39:19.011 -02 [45971] DEBUG: find_in_dynamic_libpath: trying "/banco/PostgreSQL/10/lib/postgresql/.so"
2019-02-08 22:39:19.011 -02 [45971] FATAL: could not access file "": No such file or directory
2019-02-08 22:39:19.011 -02 [45971] DEBUG: shmem_exit(1): 0 before_shmem_exit callbacks to make
2019-02-08 22:39:19.011 -02 [45971] DEBUG: shmem_exit(1): 0 on_shmem_exit callbacks to make
2019-02-08 22:39:19.011 -02 [45971] DEBUG: proc_exit(1): 1 callbacks to make
2019-02-08 22:39:19.011 -02 [45971] LOG: database system is shut down
2019-02-08 22:39:19.011 -02 [45971] DEBUG: exit(1)
2019-02-08 22:39:19.011 -02 [45971] DEBUG: shmem_exit(-1): 0 before_shmem_exit callbacks to make
2019-02-08 22:39:19.011 -02 [45971] DEBUG: shmem_exit(-1): 0 on_shmem_exit callbacks to make
2019-02-08 22:39:19.011 -02 [45971] DEBUG: proc_exit(-1): 0 callbacks to make
После увиденного я подумал: может быть, установка postgresql испортилась. Итак, я сделал резервную копию папки данных и запустил команду initdb для проверки, и она сработала.
Кто-нибудь из вас видел, как это произошло? Я пробую другую стратегию, которая переустанавливает весь postgres и просто копирует папку данных, чтобы увидеть, работает ли она. Если этого не произойдет, я восстановлю вчерашнюю резервную копию
Ребята, вы знаете, что может быть причиной этого?