【发布时间】:2014-10-13 19:55:22
【问题描述】:
编辑:
更改了问题标题 - 之前是关于 Postgres 中的启动包不完整,但 Craig 发现这不是 db 问题
我有 django 应用程序和安装脚本。
其中,脚本确保 postgresql 已安装并执行manage.py syncdb。
最近我注意到syncdb 的一些问题 - 它挂在Creating table xxxxxx....
我中止了整个任务并继续,数据库似乎工作(甚至南工作),但我没有被要求创建 root 帐户。因此,它似乎创建了表格,然后挂在某些东西上,或者没有启动某些东西。我决定一劳永逸地解决它,并且在我发现上面提到的 comunicate 的 postgresql 日志中:
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
LOG: incomplete startup packet
我重新安装了 postgresql(我正在运行 ubuntu 13.10),但它并没有解决问题。 然后我认为这可能与创建表的应用程序有关,但取出这个应用程序证明它是无关的。 所以如果不是 postgresql 安装而不是 django app 它可能是什么?
也许我在安装 postgresql 时搞砸了?我做到了:
apt-get install postgresql postgresql-contrib
然后创建集群:
pg_createcluster 9.1 main
仅此而已。
自从我上次安装 postgresql 以来已经有一段时间了,所以也许我错过了一些明显的东西,虽然我不知道是什么。
我读过一些关于这个问题的文章,据说它与未编译的握手或类似的东西有关,不过,db 和 app ar 在同一台机器上。
我在 ubuntu 13.10 上使用 django 版本 1.5 和 postgresql 9.1(如前所述)
任何指针将不胜感激。
TIA
来自SELECT * FROM pg_stat_activity;的输出
datid | datname | procpid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | waiting | current_query
-------+----------+---------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+---------+---------------------------------
23255 | imris | 18330 | 23254 | imris | | | | -1 | 2014-08-20 15:43:19.38489+02 | | 2014-08-20 15:43:20.379704+02 | f | <IDLE>
11953 | postgres | 18342 | 10 | postgres | psql | | | -1 | 2014-08-20 15:43:25.240481+02 | 2014-08-20 15:43:30.365372+02 | 2014-08-20 15:43:30.365372+02 | f | SELECT * FROM pg_stat_activity;
(2 rows)
【问题讨论】:
-
“不完整的启动包”不是一个严重的问题。如果在建立连接之前断开连接,就可能发生这种情况。
-
很高兴听到这个消息。但是为什么我的同步数据库没有完成呢?可能是什么?
-
我猜有什么东西在排他锁上等待。显示
SELECT * FROM pg_stat_activity WHERE waiting = 't'的输出(编辑您的问题以添加它,完成后在此处评论) -
好吧,我想这并不多。当然,我在 syncdb 挂起时检查了它
-
好的,所以卡住的地方不在数据库级别;在堆栈中看起来更高。
标签: django postgresql django-syncdb