我正在尝试通过 pgAdmin3 GUI 连接到端口 5432 上远程服务器 myHost 上的 Postgresql 数据库。
服务器端 :
客户端 :
我收到以下错误消息:
服务器意外关闭了连接 这可能意味着服务器在处理请求之前或处理请求时异常终止。
我尝试使用 psql -h localhost -p 3333 --dbname=myDB --user=mySuperUser 访问具有超级用户角色的特定数据库,但没有成功。
我在设置中忘记了什么?
谢谢
我正在尝试获取唯一 ip_addresses 的数量(在本例中为“3”)。该表如下所示:
结构:
CREATE TABLE bandits (
key text NOT NULL,
ip_address inet,
offence text,
count bigint DEFAULT 1);
Run Code Online (Sandbox Code Playgroud)
数据:
从标准输入复制强盗(key、ip_address、offence、count); 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
我们有一个 Web 应用程序,其架构要求任何注册用户(实际上是一家公司)都应该彼此隔离,即,我将使用相同的数据模型运行相同的 Web 应用程序,但为每个客户使用不同的数据集。
所以,我们确实考虑过在 Postgres 中为每个客户创建一个不同的数据库。这个解决方案可以扩展到 10-20K 的数据库吗?多好?
有没有人对此有更好的解决方案?
提前致谢。
我已经阅读了网上关于提高 postgres 性能的所有内容,但是 SHMMAX 和 SHMALL 的“正确”值仍然让我难以理解。
共识似乎是 SHMMAX = total_memory/4 和 SHMALL = total_memory/2 是安全的起始值。
但是,SHMALL 可以以页数或字节数来衡量,我找不到任何有关在 Ubuntu 上使用的信息。
Ubuntu(或更普遍的 Debian)是否为 SHMALL 使用页面或字节?
一年多以来,我一直在运行一个充满 OSM 数据的内部 PostGIS 服务器,用于基于 Mapnik 的瓦片生成和基于 Nominatim 的地理编码,并使用日复制更新。这很好用。
然而,随着使用量呈指数级增长,我希望通过添加额外的 PostgreSQL 服务器来实现更好的可靠性和性能。我有点迷失了。
由于 PostgreSQL 似乎不能自己处理复制,我会考虑使用像 PgPool-II 这样的中间件来保持服务器同步。但恐怕对于这种用法来说,这只是必要的:非常高的读写比率,所有写入每天都在同一确切时间完成。
我的问题很简单:你会怎么做才能使这些服务器保持同步?而且,OpenStreetMap Foundation、MapQuest、Mapbox 或 CloudMade 为此做了什么?
谢谢。
我将 PostgreSQL (8.3) 与多个数据库一起使用......我想知道是否有某种方法可以记录仅在其中一个数据库(不是全部)中进行的查询。
或者每个数据库有一个日志文件...
我知道我可以log_line_prefix = "%d"用来记录数据库的名称,然后过滤,但这不是问题。
我应该使用 log_analyzer 来解决这个问题吗?你有什么建议 ?
谢谢
我的机器上似乎安装了一些 postgresql。我不确定这是否是一个错误,或者 Ubuntu 是否出于某种奇怪的原因复制了目录并将它们保留在其他地方。
我有一个 postgresql 目录 /etc
一进 /usr/lib
和一个 /opt
在这一点上我很困惑。
我如何去删除多余的?。
哪些是他额外的?
我还需要确保我的 rails env 中的“pg” gem 指向正确的 posgresql db 服务器。
关于我的问题的任何想法都会很大。
使用 PostgreSQL 9.1.2
我看到过多的 CPU 使用率和大量的 postmaster 任务写入磁盘。即使我的应用程序几乎什么都不做(每分钟插入 10 次),也会发生这种情况。但是,有合理数量的连接打开。
我一直在尝试确定我的应用程序中是什么导致了这种情况。我对 postgresql 很陌生,到目前为止还没有到任何地方。我在我的配置文件中打开了一些日志选项,并查看了 pg_stat_activity 表中的连接,但它们都处于空闲状态。然而,每个连接消耗约 50% 的 CPU,并且正在向磁盘写入约 15M/s(不读取任何内容)。
我基本上是使用股票 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
17057 postgres 20 0 236m 33m 13m R 45.0 0.1 73:48.78 postmaster
17188 postgres 20 0 …Run Code Online (Sandbox Code Playgroud) 我们在 PostgreSQL 配置方面遇到了一些问题。经过一些基准测试后,我发现非常简单的查询需要相对较长的时间,经过进一步检查,实际的 COMMIT 命令似乎非常慢。
我使用下表进行了一个非常简单的测试:
CREATE TABLE test (
id serial primary key,
foo varchar(16),
);
Run Code Online (Sandbox Code Playgroud)
在打开所有语句的登录后,我运行了以下查询 10000 次:
BEGIN;
INSERT INTO test (a) VALUES ('bar');
COMMIT;
Run Code Online (Sandbox Code Playgroud)
BEGIN 和 INSERT 需要 < 1ms 才能完成,但 COMMIT 平均需要 22ms 才能完成。
在我自己的 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: …Run Code Online (Sandbox Code Playgroud) 今天,我通过 apt.postgresql.org 在 Ubuntu precision 上安装了 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"
Run Code Online (Sandbox Code Playgroud)
我确实跑locale-gen it_IT.utf8了,事实上:
root@ubuntu:/tmp# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
it_IT.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)
日志似乎没有关于为什么 postgres 无法识别 it_IT.utf8 的任何有意义的信息...你能帮忙吗?
postgresql ×10
ubuntu ×3
linux ×2
performance ×2
debian ×1
hard-drive ×1
postgis ×1
replication ×1
shmmax ×1
sql ×1
ssh ×1
sysctl ×1
ubuntu-12.04 ×1