在 postgre DB 上不断运行作业的麻烦,永远不会完成。
我尝试了以下操作来修复它:
- apt-get update & upgrade(postgresql 已更新到最新版本)
/etc/init.d/postgresql 重启
postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) Active: active (exited) since Fri 2015-10-16 10:06:04 UTC; 9s ago Process: 6787 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 6787 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service
/etc/init.d/pgagent 重启
pgagent.service - Postgres Job Agent Daemon Loaded: loaded (/lib/systemd/system/pgagent.service; enabled) Active: active (running) since Fri 2015-10-16 10:06:04 UTC; 1min 48s ago Main PID: 6793 (pgagent) CGroup: /system.slice/pgagent.service └─6793 /usr/bin/pgagent -f -l 2 -s /var/log/pgagent hostaddr=localhost dbname=postgres user=postgresext Oct 16 10:07:00 m-t-db-01 pgagent[6793]: *** Caught unhandled unknown exception; terminating Oct 16 10:07:50 m-t-db-01 pgagent[6793]: *** Caught unhandled unknown exception; terminating
试图在 pgagent 上启用调试模式
vim /etc/default/pgagent
EXTRA_OPTS="-f -l 2 -s /var/log/pgagent hostaddr=localhost dbname=postgres user=postgresext"
- 试图重新启动机器
在
/var/log/pgagent
日志中我只看到:ERROR: Failed to query jobs table! DEBUG: Creating primary connection DEBUG: Connection Information: DEBUG: user : postgresext DEBUG: port : 0 DEBUG: host : localhost DEBUG: dbname : postgres DEBUG: password : DEBUG: conn timeout : 0 DEBUG: Connection Information: DEBUG: user : postgresext DEBUG: port : 0 DEBUG: host : localhost DEBUG: dbname : postgres DEBUG: password : DEBUG: conn timeout : 0 DEBUG: Creating DB connection: user=postgresext host=localhost dbname=postgres DEBUG: Database sanity check DEBUG: Clearing zombies DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 1, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Creating primary connection DEBUG: Connection Information: DEBUG: user : postgresext DEBUG: port : 0 DEBUG: host : localhost DEBUG: dbname : postgres DEBUG: password : DEBUG: conn timeout : 0 DEBUG: Connection Information: DEBUG: user : postgresext DEBUG: port : 0 DEBUG: host : localhost DEBUG: dbname : postgres DEBUG: password : DEBUG: conn timeout : 0 DEBUG: Creating DB connection: user=postgresext host=localhost dbname=postgres DEBUG: Database sanity check DEBUG: Clearing zombies DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 1, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 1, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Creating job thread for job 8 DEBUG: Creating DB connection: user=postgresext host=localhost dbname=postgres DEBUG: Allocating new connection to database postgres DEBUG: Starting job: 8 DEBUG: Creating job thread for job 5 DEBUG: Creating DB connection: user=postgresext host=localhost dbname=postgres DEBUG: Allocating new connection to database postgres DEBUG: Starting job: 5 DEBUG: Creating DB connection: user=postgresext host=localhost dbname=postgres dbname=testdb DEBUG: Sleeping... DEBUG: Allocating new connection to database testdb DEBUG: Executing SQL step 23 (part of job 8) DEBUG: Creating DB connection: user=postgresext host=localhost dbname=postgres dbname=testdb DEBUG: Allocating new connection to database testdb DEBUG: Executing SQL step 15 (part of job 5) DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 5, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Destroying job thread for job 8 DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 5, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 5, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 5, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping... DEBUG: Clearing inactive connections DEBUG: Connection stats: total - 5, free - 0, deleted - 0 DEBUG: Checking for jobs to run DEBUG: Sleeping...
在
vim /var/log/postgresql/postgresql-9.4-main.log
我只看到:[unknown]@[unknown] LOG: incomplete startup packet LOG: MultiXact member wraparound protections are now enabled LOG: database system is ready to accept connections LOG: autovacuum launcher started postgresext@postgres LOG: could not receive data from client: Connection reset by peer postgresext@testdb LOG: could not receive data from client: Connection reset by peer postgresext@postgres LOG: could not receive data from client: Connection reset by peer postgresext@postgres LOG: could not receive data from client: Connection reset by peer postgresext@testdb LOG: could not receive data from client: Connection reset by peer postgresext@postgres LOG: could not receive data from client: Connection reset by peer postgresext@postgres LOG: could not receive data from client: Connection reset by peer postgresext@testdb LOG: could not receive data from client: Connection reset by peer postgresext@testdb LOG: could not receive data from client: Connection reset by peer postgresext@testdb LOG: could not receive data from client: Connection reset by peer postgresext@postgres LOG: could not receive data from client: Connection reset by peer
我无法弄清楚实际问题是什么以及如何实际解决它?
我调查的另一件事是pgagent[6793]: *** Caught unhandled unknown exception; terminating
可以通过不正确的连接终止来调用......