Почему служба postgresql запущена, а СУБД останавливается?
Выключилось электричество, сервер физический тоже.
После запуска служба postgresql запустилась, а СУБД выключилась с указанным сообщением и сообщением таймаута.
Служба останавливается быстро, запуск медленный, около минуты.
Вот лог:
Вот pg_log:
Странно еще то, что раньше были подобные случаи, но служба вместе с подпроцессами запускались.
В чем сейчас причина? Как решить эту ситуацию?
Доп. инфо:
ОС: Ubuntu 16.04
После запуска служба postgresql запустилась, а СУБД выключилась с указанным сообщением и сообщением таймаута.
Служба останавливается быстро, запуск медленный, около минуты.
Вот лог:
syslog |
|---|
| Feb 21 12:55:13 Tehnika systemd[1]: Starting PostgreSQL Cluster 9.6-main...
Feb 21 12:55:14 Tehnika postgresql@9.6-main[48727]: Removed stale pid file. Feb 21 12:55:20 Tehnika postgresql@9.6-main[48727]: The PostgreSQL server failed to start. Please check the log output: Feb 21 12:55:20 Tehnika postgresql@9.6-main[48727]: 2018-02-21 12:55:14 MSK [48734-1] СООБЩЕНИЕ: передача вывода в протокол процессу сбора протоколов Feb 21 12:55:20 Tehnika postgresql@9.6-main[48727]: 2018-02-21 12:55:14 MSK [48734-2] ПОДСКАЗКА: В дальнейшем протоколы будут выводиться в каталог "pg_log". Feb 21 12:55:20 Tehnika systemd[1]: postgresql@9.6-main.service: Control process exited, code=exited status=1 Feb 21 12:56:01 Tehnika CRON[49906]: (root) CMD (bash /home/rs/killSessions1C.sh) Feb 21 12:56:01 Tehnika CRON[49905]: (CRON) info (No MTA installed, discarding output) Feb 21 12:56:23 Tehnika systemd[1]: Created slice User Slice of NataliyaL. Feb 21 12:56:23 Tehnika systemd[1]: Starting User Manager for UID 1004... Feb 21 12:56:23 Tehnika systemd[1]: Started Session 152 of user NataliyaL. Feb 21 12:56:23 Tehnika systemd[50447]: Reached target Sockets. Feb 21 12:56:23 Tehnika systemd[50447]: Reached target Timers. Feb 21 12:56:23 Tehnika systemd[50447]: Reached target Paths. Feb 21 12:56:23 Tehnika systemd[50447]: Reached target Basic System. Feb 21 12:56:23 Tehnika systemd[50447]: Reached target Default. Feb 21 12:56:23 Tehnika systemd[50447]: Startup finished in 69ms. Feb 21 12:56:23 Tehnika systemd[1]: Started User Manager for UID 1004. Feb 21 12:56:35 Tehnika /usr/bin/x2gostartagent: successfully started X2Go agent session with ID NataliyaL-58-1519206992_stDLXDE_dp32 Feb 21 12:56:50 Tehnika systemd[1]: postgresql@9.6-main.service: State 'stop-final-sigterm' timed out. Killing. Feb 21 12:56:50 Tehnika systemd[1]: Failed to start PostgreSQL Cluster 9.6-main. Feb 21 12:56:50 Tehnika systemd[1]: postgresql@9.6-main.service: Unit entered failed state. Feb 21 12:56:50 Tehnika systemd[1]: postgresql@9.6-main.service: Failed with result 'timeout'. Feb 21 12:56:50 Tehnika systemd[1]: Starting PostgreSQL RDBMS... Feb 21 12:56:50 Tehnika systemd[1]: Started PostgreSQL RDBMS. |
Вот pg_log:
pg_log |
|---|
| postgres@Tehnika:~/9.6/main/pg_log$ cat postgresql-Wed.log | tail -n 30
2018-02-21 11:56:03 MSK [96771-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 11:56:03 MSK [96774-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 11:56:04 MSK [96811-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 11:56:04 MSK [96845-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 11:56:04 MSK [96646-3] СООБЩЕНИЕ: получен запрос на "вежливое" выключение 2018-02-21 11:56:49 MSK [97882-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 11:57:01 MSK [98127-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 11:57:04 MSK [98209-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 11:57:04 MSK [98212-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 12:55:14 MSK [48738-1] СООБЩЕНИЕ: работа системы БД была прервана; последний момент работы: 2018-02-21 00:02:19 MSK 2018-02-21 12:55:14 MSK [48739-1] [н/д]@[н/д] СООБЩЕНИЕ: неполный стартовый пакет 2018-02-21 12:55:14 MSK [48741-1] usr1cv8@template1 ВАЖНО: система баз данных запускается 2018-02-21 12:55:15 MSK [48748-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:15 MSK [48781-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:16 MSK [48820-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:16 MSK [48831-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:17 MSK [48834-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:17 MSK [48837-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:18 MSK [48840-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:18 MSK [48876-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:19 MSK [48912-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:19 MSK [48922-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:20 MSK [48925-1] postgres@postgres ВАЖНО: система баз данных запускается 2018-02-21 12:55:20 MSK [48734-3] СООБЩЕНИЕ: получен запрос на "вежливое" выключение 2018-02-21 12:55:35 MSK [49304-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 12:55:39 MSK [49382-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 12:56:11 MSK [50138-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 12:56:17 MSK [50293-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 12:56:39 MSK [51324-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается 2018-02-21 12:56:42 MSK [51410-1] usr1cv8@template1 ВАЖНО: система баз данных останавливается |
Странно еще то, что раньше были подобные случаи, но служба вместе с подпроцессами запускались.
В чем сейчас причина? Как решить эту ситуацию?
Доп. инфо:
ОС: Ubuntu 16.04
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Права:
data=main |
|---|
| postgres@Tehnika:~/9.6/main$ ls -l
итого 88 drwx------ 8 postgres postgres 4096 фев 17 21:43 base drwx------ 2 postgres postgres 4096 фев 20 20:28 global drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_clog drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_commit_ts drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_dynshmem drwx------ 2 postgres postgres 4096 фев 2 00:00 pg_log drwx------ 4 postgres postgres 4096 янв 27 19:10 pg_logical drwx------ 4 postgres postgres 4096 янв 27 19:10 pg_multixact drwx------ 2 postgres postgres 4096 фев 21 12:55 pg_notify drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_replslot drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_serial drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_snapshots drwx------ 2 postgres postgres 4096 фев 2 03:11 pg_stat drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_stat_tmp drwx------ 2 postgres postgres 4096 фев 17 21:53 pg_subtrans drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_tblspc drwx------ 2 postgres postgres 4096 янв 27 19:10 pg_twophase -rw------- 1 postgres postgres 4 янв 27 19:10 PG_VERSION drwx------ 3 postgres postgres 4096 фев 20 22:37 pg_xlog -rw------- 1 postgres postgres 88 янв 27 19:10 postgresql.auto.conf -rw------- 1 postgres postgres 133 фев 21 12:55 postmaster.opts -rw------- 1 postgres postgres 93 фев 21 12:55 postmaster.pid postgres@Tehnika:~/9.6/main$ postgres@Tehnika:~/9.6/main$ echo $HOME /var/lib/postgresql postgres@Tehnika:~/9.6/main$ |
main |
|---|
| postgres@Tehnika:~/9.6/main$ cd ..
postgres@Tehnika:~/9.6$ ls -l итого 4 drwx------ 20 postgres postgres 4096 фев 21 12:55 main postgres@Tehnika:~/9.6$ |
Вопрос решил так:
И заработало. Спасибо за подсказку!
Решение |
|---|
| root@Tehnika:/var/log#
root@Tehnika:/var/log# chmod -R u=rwx,g=,o= /var/lib/postgresql/ root@Tehnika:/var/log# root@Tehnika:/home/rs# root@Tehnika:/home/rs# service postgresql stop root@Tehnika:/home/rs# root@Tehnika:/home/rs# service postgresql start root@Tehnika:/home/rs# |
И заработало. Спасибо за подсказку!
Сегодня утром снова отключили электричество, снова эта ситуация, но на этот раз решение не сработало.
Выходит, что с правами все в порядке. Но в чем тогда причина?
Выходит, что с правами все в порядке. Но в чем тогда причина?
Бывает что после отключение питания на Linux серверах с 1С вообще ничего не запускается. База postgres поломана и кэш 1С тоже. Вот шаги как заново всё привести в рабочее состояние.
1. Запускаем postgres в сингл моде от пользователя postgres чтобы его не убил systemd по таймауту
После можно остановить postgres с нормальным кодом завершения и запустить в нормальном режиме
2. Останавливаем непригодный 1С и чистим его кэш и конфигурациооные файлы и запускаем заново
3. Запускаем RAS и добавляем базы которые были у нас на сервере 1С
Радуемся жизни :)
1. Запускаем postgres в сингл моде от пользователя postgres чтобы его не убил systemd по таймауту
root@1cserver:~# su postgres
postgres@1cserver:~$ /usr/lib/postgresql/9.6/bin/postgres --single -c config_file=/etc/postgresql/9.6/main/postgresql.conf -D /var/lib/postgresql/9.6/main -P -d 1
2018-09-07 09:23:27.289 MSK [3421] DEBUG: запись о контрольной точке по смещению 23/36889418
2018-09-07 09:23:27.294 MSK [3421] DEBUG: redo record is at 23/3674B6A8; shutdown FALSE
2018-09-07 09:23:27.294 MSK [3421] DEBUG: next transaction ID: 0:18537840; next OID: 13492030
2018-09-07 09:23:27.294 MSK [3421] DEBUG: next MultiXactId: 1; next MultiXactOffset: 0
2018-09-07 09:23:27.294 MSK [3421] DEBUG: oldest unfrozen transaction ID: 545, in database 1
2018-09-07 09:23:27.294 MSK [3421] DEBUG: oldest MultiXactId: 1, in database 1
2018-09-07 09:23:27.294 MSK [3421] DEBUG: commit timestamp Xid oldest/newest: 0/0
2018-09-07 09:23:27.294 MSK [3421] DEBUG: предел наложения ID транзакций равен 2147484192, источник ограничения - база данных с OID 1
2018-09-07 09:23:27.294 MSK [3421] DEBUG: предел наложения MultiXactId равен 2147483648, источник ограничения - база данных с OID 1
2018-09-07 09:23:27.294 MSK [3421] DEBUG: starting up replication slots
2018-09-07 09:23:27.294 MSK [3421] LOG: система БД была остановлена нештатно; производится автоматическое восстановление
2018-09-07 09:23:27.298 MSK [3421] DEBUG: resetting unlogged relations: cleanup 1 init 0
2018-09-07 09:23:27.507 MSK [3421] LOG: запись REDO начинается со смещения 23/3674B6A8
2018-09-07 09:23:27.515 MSK [3421] LOG: invalid record length at 23/368B5C50: wanted 24, got 0
2018-09-07 09:23:27.515 MSK [3421] LOG: записи REDO обработаны до смещения 23/368B5C28
2018-09-07 09:23:27.515 MSK [3421] LOG: последняя завершённая транзакция была выполнена в 2018-09-06 20:47:59.49413+03
2018-09-07 09:23:27.515 MSK [3421] DEBUG: resetting unlogged relations: cleanup 0 init 1
2018-09-07 09:23:27.941 MSK [3421] DEBUG: performing replication slot checkpoint
2018-09-07 09:23:27.985 MSK [3421] DEBUG: предел наложения MultiXactId равен 2147483648, источник ограничения - база данных с OID 1
2018-09-07 09:23:27.985 MSK [3421] DEBUG: Граница членов мультитранзакции сейчас: 4294914944 (при старейшей мультитранзакции 1)
PostgreSQL stand-alone backend 9.6.8
backend>
ПоказатьПосле можно остановить postgres с нормальным кодом завершения и запустить в нормальном режиме
root@1cserver:/home/usr1cv8# kill -15 #ваш_пид_процесса
root@1cserver:/home/usr1cv8# /etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service.2. Останавливаем непригодный 1С и чистим его кэш и конфигурациооные файлы и запускаем заново
root@1cserver:~# /etc/init.d/srv1cv83 stop
root@1cserver:~# rm -rf /home/usr1cv8/.1cv8
root@1cserver:~# /etc/init.d/srv1cv83 start3. Запускаем RAS и добавляем базы которые были у нас на сервере 1С
root@1cserver:~# /opt/1C/v8.3/x86_64/ras --daemon cluster
root@1cserver:~# /opt/1C/v8.3/x86_64/rac cluster list
cluster : 583eba18-b263-11e8-ed9e-309c239dab48
host : 1cserver
port : 1541
name : "Локальный кластер"
expiration-timeout : 0
lifetime-limit : 0
max-memory-size : 0
max-memory-time-limit : 0
security-level : 0
session-fault-tolerance-level : 0
load-balancing-mode : performance
errors-count-threshold : 0
kill-problem-processes : 0
root@1cserver:~# /opt/1C/v8.3/x86_64/rac infobase create --cluster=583eba18-b263-11e8-ed9e-309c239dab48 --name=our_1c_db --dbms=PostgreSQL --db-server=1cserver --db-name=our_1c_db --locale=ru --db-user=postgres --db-pwd=our_postgres_db_password
и так далее для каждой базы 1С что были на сервере
ПоказатьРадуемся жизни :)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
