Questions tagged «postgresql»

PostgreSQL是一个功能强大的开源对象关系数据库系统。它拥有超过15年的积极开发经验和成熟的架构,在可靠性,数据完整性和正确性方面赢得了极高的声誉。它可以在所有主要操作系统上运行,包括Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows。


3
PostgreSQL降低提交性能
PostgreSQL配置存在一些问题。经过一些基准测试后,我发现非常简单的查询会花费相对较长的时间,经过进一步检查,看来实际的COMMIT命令确实很慢。 我使用下表运行了一个非常简单的测试: CREATE TABLE test ( id serial primary key, foo varchar(16), ); 打开所有语句的登录后,我运行以下查询10000次: BEGIN; INSERT INTO test (a) VALUES ('bar'); COMMIT; BEGIN和INSERT花费的时间少于1毫秒,而COMMIT花费的平均时间为22毫秒。 在我自己的PC上运行相同的基准测试(速度要慢得多),BEGIN和INSERT语句的平均结果相同,但是COMMIT的平均时间约为0.4毫秒(快20倍以上)。 经过一番阅读后,我尝试使用该pg_test_fsync工具来解决问题。在服务器上,我得到以下结果: $ ./pg_test_fsync -o 1024 1024 operations per test O_DIRECT supported on this platform for open_datasync and open_sync. Compare file sync methods using one 8kB write: …

3
邮政管理员使用过多的CPU和磁盘写入
使用PostgreSQL 9.1.2 我看到过多的CPU使用率以及来自邮局主管任务的大量磁盘写操作。即使我的应用程序几乎什么也不做(每分钟10次插入),也会发生这种情况。但是,有相当数量的连接打开。 我一直在尝试确定导致应用程序崩溃的原因。我对Postgresql相当陌生,到目前为止还没有到位。我在配置文件中打开了一些日志记录选项,并查看了pg_stat_activity表中的连接,但是它们都处于空闲状态。但是,每个连接消耗约50%的CPU,并且正在以每秒15M / s的速度向磁盘写入数据(不读取内容)。 我基本上是通过很少的调整来使用stock postgresql.conf。我将不胜感激,对我可以做些什么来寻求帮助。 这是top / iotop向我显示的示例: Cpu(s): 18.9%us, 14.4%sy, 0.0%ni, 53.4%id, 11.8%wa, 0.0%hi, 1.5%si, 0.0%st Mem: 32865916k total, 7263720k used, 25602196k free, 575608k buffers Swap: 16777208k total, 0k used, 16777208k free, 4464212k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND …

2
如何有效地扩展OpenStreetMap数据
一年多以来,我一直在运行内部装有OSM数据的PostGIS服务器,该服务器既用于基于Mapnik的图块生成,又用于基于Nominatim的地理编码,并按日重复进行更新。效果很好。 但是,随着使用量成倍增长,我想通过添加其他PostgreSQL服务器来获得更好的可靠性和性能。我有点迷路了。 由于PostgreSQL似乎并不自行处理复制,因此我会考虑使用诸如PgPool-II之类的中间件来保持服务器同步。但是,恐怕这种用法只不过是必要的:很高的读写比率,其中所有写入每天都在相同的确切时间完成。 我的问题很简单:您将如何使这些服务器保持同步?而且,OpenStreetMap Foundation,MapQuest,Mapbox或CloudMade对此做了什么? 谢谢。

2
PostgreSQL性能-调整SHMMAX和SHMALL
我已经阅读了几乎所有有关提高postgres性能的在线信息,但是SHMMAX和SHMALL的“正确”价值仍然使我难以理解。 共识似乎是SHMMAX = total_memory / 4和SHMALL = total_memory / 2是安全的起始值。 但是,SHMALL可以用页面或字节来度量,我找不到有关在Ubuntu上使用的信息。 Ubuntu(或更常见的Debian)是否将页面或字节用于SHMALL?


2
如何计算唯一值?
我正在尝试获取唯一的ip_addresses的数量(在这种情况下为'3')。该表如下所示: 结构体: CREATE TABLE bandits ( key text NOT NULL, ip_address inet, offence text, count bigint DEFAULT 1); 数据: 从stdin复制盗贼(密钥,ip_address,犯罪,计数); 127.0.0.1_testing 127.0.0.1测试1 127.0.0.2_testing 127.0.0.2测试3 127.0.0.2_testing2 127.0.0.2 testing2 1 127.0.0.3_testing 127.0.0.3测试1
9 sql  postgresql 


2
PostgreSQL启动后退出
我的Debian 8(Jessie)上的PostgreSQL 9.5服务器通过service postgresql start以下命令启动后一直直接退出: # service postgresql status ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) Active: active (exited) since Fr 2016-12-02 11:02:51 CET; 11min ago Process: 2360 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 2360 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service Dez 05 16:29:24 dev systemd[1]: Starting PostgreSQL RDBMS... Dez 05 …

2
Ubuntu 12.04上的Postgresql 9.2“无效的语言环境名称”
今天,我通过apt.postgresql.org在Ubuntu上精确安装了Postgresql 9.2-直到我被困在“无效的语言环境名称:it_IT.utf8”错误之前,所有操作都相对轻松了: root@ubuntu:/tmp# sudo -u postgres psql -Xc "CREATE DATABASE test TEMPLATE template0 ENCODING 'utf8' LC_CTYPE='it_IT.utf8'" ERROR: invalid locale name: "it_IT.utf8" 我确实跑locale-gen it_IT.utf8了,实际上: root@ubuntu:/tmp# locale -a C C.UTF-8 en_GB.utf8 en_US.utf8 it_IT.utf8 POSIX 日志似乎没有关于postgres为什么无法识别它的任何有意义的信息_IT.utf8 ...您能帮上忙吗?


2
Postgres内部日志轮换机制可以删除早于特定时间的日志文件吗?
我正在使用posgtres的内部日志旋转机制。我希望删除30天以上的日志文件。我如何获得postgres来做到这一点?如果postgres不支持它,是否可以将logrotate设置为仅删除30天以上的日志? 我当前的配置是: log_destination = 'stderr' logging_collector = on log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' #log_truncate_on_rotation = off log_rotation_age = 1440 log_rotation_size = 0

2
PostgreSQL对大量数据库的性能如何?
我们有一个Web应用程序,该Web应用程序的体系结构要求将任何注册用户(实际上是一家公司)与其他用户隔离开,即,我将使用相同的数据模型运行相同的Webapp,但为每个客户使用不同的数据集。 因此,我们确实考虑过在Postgres中为每个客户创建一个不同的数据库。该解决方案可以扩展到10-20K个数据库吗?多好? 有谁对此有更好的解决方案? 提前致谢。

2
pg_restore比pg_dump花费更长的时间
我定期保存并稍后还原用于测试的较小的PostgreSQL数据库。测试会定期更新其数据,然后必须进行新的转储,并定期使用转储以良好定义的状态重新创建数据库。 我注意到转储(使用pg_dump -Fc database)仅需花费几秒钟,而还原(pg_restore -d database)则需要大约一分钟。这看起来很奇怪。我本来希望这两个过程都花费大约相同的时间(假设两个任务都受I / O约束)。 还原是否存在问题?我可以加快速度吗?还是恢复比转储花费更长的时间是正常的?(如果是,那为什么呢?) 转储文件通常具有大约3-4 MiB;DBMS是PostgreSQL V8.4,在Ubuntu Linux下运行于具有1GiB RAM的Pentium4 3GHz上。

2
带有数据的PostgreSQL容器化的分布式文件系统
我很好奇,是否有人在某种形式的分布式文件系统(最好是GlusterFS)上的生产容器中运行PostgreSQL。 我目前正在运行Mesos / Marathon。万一PostgreSQL节点发生故障,Marathon只需在其他节点上启动PostgreSQL的另一个实例,并且如果操作正确(服务发现和应用程序从数据库连接丢失中恢复),将实现最终的容错能力。 我知道PostgreSQL有自己的HA解决方案,例如日志传送和热备用备份,但是仍然需要解决何时从主服务器切换到从服务器,如何正确执行操作等问题。 那么,如何在GlusterFS或类似产品上的生产环境中运行PostgreSQL?如果可以,是否稳定?性能如何?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.