Articles of postgresql

无法连接到Vagrant Box上的Postgres – 连接被拒绝?

首先,我是Vagrant和Postgres的新手。 我用http://files.vagrantup.com/lucid32.box创build了我的Vagrant实例,没有任何问题。 我可以运行vagrant up和vagrant ssh没有问题。 我按照说明做了一个小改动,我安装了“postgresql-8.4-postgis”包而不是“postgresql postgresql-contrib”。 我开始使用服务器: postgres@lucid32:/home/vagrant$ /etc/init.d/postgresql-8.4 start 虽然连接到stream浪的实例,我可以使用psql连接到实例没有问题。 在我的Vagrantfile中,我已经添加了: config.vm.forward_port 5432, 5432 但是当我尝试从本地主机运行psql时,我得到: psql: could not connect to server: Connection refused Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 我确定我缺less一些简单的东西。 有任何想法吗? 更新: 我发现这样的问题的参考和文章build议使用: psql -U postgres -h localhost 与我得到: psql: server closed the connection unexpectedly This […]

postgres stats收集器进程生成的I / O太多

我正在使用具有本地postgres数据库的多个虚拟机的XenServer。 即使所有应用程序未使用且数据库处于空闲状态,每个虚拟机也会导致恒定的存储networkingstream量,从而降低了iscsi存储设备的性能。 运行iotop之后,我注意到postgres stats收集器进程正在不断地以大约2 MByte / s的速率写入磁盘。 然后我通过编辑/etc/postgresql/8.4/main/postgresql.conf禁用收集统计信息: #—————————————————————————— # RUNTIME STATISTICS #—————————————————————————— # – Query/Index Statistics Collector – track_activities = off track_counts = off … 如http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm中所build议的那样。 这消除了连续写作,但closures统计跟踪有什么不利之处吗? 还是应该将pg_stat_tmp目录放在虚拟硬盘上以避免磁盘/networkingstream量? 该系统是一个最新的Debian 6.0.7(squeeze)与postgres 8.4和约20个数据库约50表,总转储文件大小小于100 MByte。

如何确保服务正在运行,使用厨师?

我正处于厨师可能开始服务(postgres)的情况,但可能会随后停止带外服务。 我想要一个后续的厨师运行,导致该服务正在运行。 我试过这个: service "postgresql" do action :start end 但是这并没有影响,据说(up to date)大概是因为厨师知道它已经启动了,并且不能够说明它已经停止了。 (可能是由于service … status如何performance这个服务?)如果我写这个: # anti-pattern warning! execute "force-start-postgresql" do command "service postgresql start || /etc/init.d/postgresql start" action :run end 我得到所需的行为。 还有一个action :restart使其运行。 然而,由于可移植性,这些看起来像反模式(并且在后一种情况下再次启动之前可能会阻止它)。 那么,我怎么能告诉厨师强行启动服务,即使它认为它已经在运行? 这是使用由OpsCode托pipe的Chef 11.6和默认的postgresql配方。 (请注意,这是相似的,但我觉得不像Chef中的“最新”资源强制操作一样) — 编辑 (澄清后jtimberland后)— 这里的-l debug显示: DEBUG: service[postgresql] supports status, running DEBUG: service[postgresql] is running 即使它没有运行。 所以这听起来像一个错误,我对此感兴趣。 […]

在删除很多行之后,我需要REINDEX和VACUUM表吗?

我正在运行一个PostgreSQL数据库,它有几个存储日志信息的表。 此信息仅用于报告目的,如果超过30天,将被转储到文件并从数据库中删除。 可以删除数百万行,并且每次删除后我们都会运行一个REINDEX。 这是足够的,还是我们也应该运行VACUUM或VACUUM ANALYZE? 或者REINDEX不是必需的,我们应该运行VACUUM或VACUUM ANALYZE? 我们正在使用PostgreSQL 8.2.3,我相信它不允许自动清空。

如何高效地扩展OpenStreetMap数据

在一年多的时间里,我运行一个内部的PostGIS服务器,里面充满了OSM数据,用于基于Mapnik的tile生成和基于Nominatim的地理编码,并且使用日复制更新。 这工作得很好。 但是,随着使用量呈指数级增长,我希望通过添加额外的PostgreSQL服务器来实现更好的可靠性和性能。 而我有点失落。 由于PostgreSQL似乎不能自行处理复制,所以我会考虑使用像PgPool-II这样的中间件来保持服务器的同步。 但是恐怕这种用法是没有什么必要的:非常高的读写比,所有的写操作都是在每天相同的时间完成的。 我的问题很简单:你将如何保持这些服务器同步? 而且,在OpenStreetMap Foundation,MapQuest,Mapbox或CloudMade上做了什么呢? 谢谢。

完全将PostgreSQL重置为默认值?

题 有没有办法在Linux上完全重置PostgreSQL安装,所以它和我安装PostgreSQL时的状态是一样的? 理念 我考虑过了 rm -rf /var/lib/pgsql/* rm -rf /var/lib/pgsql/backups/* rm -rf /var/lib/pgsql/data/* 但也许这不是一个推荐的方法。 目的 这将是方便摆脱以前使用它的程序的左侧。

postgresql安装:initdb数据目录不是空的?

我正在尝试创buildpostgresql数据库。 当我安装PostgreSQL时,我给了这个命令: sudo yum install postgresql postgresql-server 后来我修改了configuration文件: sudo vim /var/lib/pgsql/data/pg_hba.conf 并修改为 local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust host all all 0.0.0.0/0 md5 虽然我试图启动postgresql服务: sudo service postgresql initdb > Data directory is not empty! [FAILED] sudo chkconfig postgresql on sudo service postgresql start Starting postgresql service: [ […]

如何在puppet中为服务使用自定义状态命令?

我正在使用backports的PostgreSQL 9.1中的debian squeeze。 木偶版本2.7.14。 不幸的是init脚本返回状态的错误退出码。 所以我写了一个自定义status命令来检测postgresql是否在运行。 service { 'postgresql': ensure => running, enable => true, hasstatus => false, hasrestart => true, status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if ($4 != \"online\") rc=3} END { exit rc }'", provider => debian, } 我的命令像一个魅力,但傀儡似乎有问题。 我总是得到notice: /Stage[main]/Postgresql/Service[postgresql]/ensure: ensure changed 'stopped' to 'running'虽然它已经在notice: /Stage[main]/Postgresql/Service[postgresql]/ensure: ensure changed 'stopped' […]

无法login到phpPgAdmin

我试图在我的testing机器上设置phpPgAdmin,这样我就可以与PostgreSQL进行交互,而不必一直使用psql CLI。 我通过RPM存储库安装了PostgreSQL 9.1,而我手动安装了phpPadAdmin 5.0.4(通过从phpPgAdmin网站中提取存档)。 为了logging,我的主机操作系统是CentOS 6.2。 我已经做了以下configuration更改: PostgreSQL的 在pg_hba.conf里面,我把所有的METHOD改成了md5。 我给了postgres帐户一个密码 我用密码添加了一个名为webuser的新帐户(请注意,我没有为帐户做任何其他事情,所以我不能完全说我知道它拥有什么权限) phpPgAdmin config.inc.php 改变行$conf['servers'][0]['host'] = ''; to $conf['servers'][0]['host'] = '127.0.0.1'; (我也尝试使用localhost作为值)。 将$conf['extra_login_security']为false 。 每当我尝试login到phpPgAdmin,即使我使用成功的证书(在psql中工作的证书),我也会得到“login失败”。 我尝试了解常见问题解答中问题3中提到的一些步骤,但目前为止还没有很好的解决。 这可能没有帮助,这是我第一次使用PostgreSQL。 我对MySQL很熟悉,但是我正在使用PostgreSQL来处理这个项目。 任何人都可以提供一些帮助,如何在CentOS 6.2上设置phpPgAdmin? 如果到目前为止我的configuration中做了一些非常错误的事情,那么把一些东西/一切都扔掉就没有什么大不了的了,因为它不像我在那里存储任何数据! 我很感谢您的任何见解!

使用简单的PostgreSQL 8.4.4在Centos 5.5上查询速度极慢

我看到的奇怪和极其缓慢的IO模式是( iostat -dxk 1 /dev/xvdb1 ): Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util xvdb1 0.00 0.00 0.99 0.99 7.92 3.96 12.00 1.96 2206.00 502.00 99.41 Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util xvdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.40 Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s […]