我正在用postgresql 9.3开发一个rails应用程序。 当我今天尝试启动乘客服务器时,我得到: PG::ConnectionBad – could not connect to server: Connection refused Is the server running on host "localhost" (217.74.65.145) and accepting TCP/IP connections on port 5432? 我想,没有什么大不了的。 重新启动postgres总是解决问题。 所以我跑sudo service postgresql restart并得到: * Restarting PostgreSQL 9.3 database server * The PostgreSQL server failed to start. Please check the log output: 2014-06-11 10:32:41 CEST LOG: […]
我在OpenStack云上的8核心Ubuntu 12.04虚拟机上运行了TileMill / PostGIS堆栈。 这是一个非常相似的系统的重build,上周在非常相似的硬件(相同的云,但不同的物理硬件,我相信)上运行良好。 我试图重build堆栈完全一样(使用我已经build立的一些脚本)。 一切都在运行,但是数据库正在慢慢地进行查询,这最终performance为非常缓慢的瓦片生成。 一个示例查询(计算澳大利亚每个城镇半径内的酒吧数量),之前花费了10-20秒钟的时间,现在超过10分钟: explain (analyze, buffers) update places set pubs = (select count(*) from planet_osm_point p where p.amenity = 'pub' and st_dwithin(p.way,places.way,scope)) + (select count(*) from planet_osm_polygon p where p.amenity = 'pub' and st_dwithin(p.way,places.way,scope)) ; Update on places (cost=0.00..948254806.93 rows=9037 width=160) (actual time=623321.558..623321.558 rows=0 loops=1) Buffers: shared hit=132126300 -> Seq […]
我在/folder/.pgpass中放入了一个.pgpass文件,看起来像这样 *:*:*:postgres:password_for_postgres 我有一个bash脚本,我从postgreSQL备份数据库: #!/bin/bash export PGPASSFILE=/folder/.pgpass echo $PGPASSFILE pg_dump –username=postgres –format=c –file=/backup/db/db.sqlc database 但是,脚本仍然要求我input密码。 就我所知,PGPASSFILE具有应有的价值。 有什么问题可能是什么暗示? / K
我有一个正在运行的PostgreSQL数据库。 现在我想在我的数据库上自动执行一些操作,但是我的密码有问题。 我正在使用下面的bash脚本: #!/bin/bash export PGPASSWORD="postgres" sudo -u postgres psql -d pg_ldap -w –no-password -h localhost -p 5432 -t -c "SELECT id FROM radusers WHERE id=1" 当我运行bash脚本时,出现以下错误: psql: fe_sendauth: no password supplied 我甚至试图在我的主目录中configuration.pgpass文件,但无济于事: *:*:*:postgres:postgres 我已经运行了下面的命令: sudo chmod 0600 .pgpass 尽pipe如此,似乎没有任何方法的作品。 有没有人有任何想法? 我忘了做点什么吗?
我有一个Django的设置是在Ubuntu 14.04 LTS上使用Django 1.6.7和Postgres 9.3。 在任何时候,该站点都可以同时连接大约250个PostgreSQL数据库,该数据库是2.5GHz的四核至强E5-2670处理器,并具有16GB的内存。 特定机器的全天平均负载约为20到30。 偶尔我会收到有关连接超时到数据库的哨兵电子邮件,并且我认为启用某种连接池可以帮助缓解这个问题,并且稍微降低数据库的负载。 由于我们使用的是Django 1.6,所以我们可以使用内置的池。 但是,当我将CONN_MAX_AGE设置为10秒或60秒时,几乎立即同时连接的数量跳转到最大允许设置(这是我们通常看到的大约两倍),并且连接开始被拒绝。 所以,出于什么原因,连接是持续的,但是它们不被重用。 这可能是什么原因? PS。 我们也使用gunicorn和–worker-class = eventlet。 也许这是我们的灾难的来源?
我经常保存并稍后恢复一个用于testing的小型PostgreSQL数据库。 其数据由于testing而定期更新,然后必须进行新的转储,并定期使用转储重新创build处于明确定义状态的数据库。 我注意到,转储(使用pg_dump -Fc database )只需要几秒钟,但恢复( pg_restore -d database )大约需要一分钟。 这似乎很奇怪。 我可以预料,两者都需要大致相同的时间(假定这两个任务都是I / O绑定的)。 还原有问题吗? 我可以让它更快吗? 或者恢复花费的时间比转储还要正常吗? (如果是,那为什么?) 转储文件通常有大约3-4 MiB; DBMS是PostgreSQL V8.4,运行在Pentium4 3GHz,在Ubuntu Linux下有1GiB RAM。
我在PostgreSQL 8.3.1中有一个数据库,我想迁移到MS SQL Server 2005(或者2008),包括表模式和数据。 数据库大小约为50GB,大约有4亿行,所以我认为简单的INSERT语句是不可能的。 任何人都可以推荐执行此迁移的最佳工具吗? 显然它需要可靠,所以目标数据库中的数据与源数据完全一样,并且需要能够在合理的时间内复制这些数据量。
我知道这个问题听起来很挑衅,但事实并非如此。 我最近在很多领域都发现了MySQL限制,并且越来越喜欢PostgreSQL。 它扩展了很多,它比MySQL更重视SQL标准。 尽pipe我仍然是PostgreSQL世界的新手,而且我愿意为了我所有未来的项目而放弃MySQL,但是我想知道的是:MySQL有没有什么特别的function可以做得更好(比如更多高性能或更多的用户友好等)比在PostgreSQL? 我想知道我会从MySQL中错过什么。 我已经发现MySQL中的AUTO_INCREMENT字段比PostgreSQL中的SEQUENCES更方便,并且在Windows中的部署过去是有问题的(不再是一个问题,对我来说永远不是问题)。 还有什么?
从您的经验来看,哪个数据库服务更难以扩展? MySQL或Postgres? 我知道MySQL有几个开箱即用的缩放/集群function,但是使用Postgres,没有任何东西可以直接使用。 CMIIW。 编辑 : 对不起,在这里混乱,我的问题是指缩小(水平缩放),即聚类,分片等。我知道两者可以水平扩展,但哪一个更容易实现? 感谢你的分享。
我已经阅读了关于提高postgres性能的在线内容,但SHMMAX和SHMALL的“正确”值仍然没有。 共识似乎是SHMMAX = total_memory / 4和SHMALL = total_memory / 2是安全的起始值。 但是,SHMALL可以用页面或字节来衡量,而且我也找不到关于在Ubuntu上使用哪些信息。 Ubuntu(或更一般的Debian)使用SHMALL的页面或字节吗?