标签: postgresql

在 Windows 上记录 Postgres 启动错误

我一直在试验 Postgres 配置参数,并注意到当我使用阻止 Postgres 启动的设置时,pg_log 目录日志中没有显示任何内容。我有

log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
Run Code Online (Sandbox Code Playgroud)

有没有办法让 Postgres 在 Windows 7 和 Postgres 9.3 上将启动错误记录到 pg_log?

postgresql logs

3
推荐指数
1
解决办法
3283
查看次数

流式复制日志让我很困惑

我有一个流式复制热备用设置,它似乎运行良好。我可以登录,执行选择,结果似乎与主人是最新的。但是在备用的日志中,我看到了很多这样的:

cp: cannot stat `/mnt/wal_drive/wals/0000000100004BA800000070': No such file or directory
2014-02-28 16:00:37 CET LOG:  record with zero length at 4BA8/70DD79D0
2014-02-28 16:00:37 CET LOG:  started streaming WAL from primary at 4BA8/70000000 on timeline 1
2014-02-28 16:02:59 CET FATAL:  could not receive data from WAL stream: SSL error: sslv3 alert unexpected message
Run Code Online (Sandbox Code Playgroud)

这些分别是什么意思,我应该担心它们中的任何一个吗?

附注。在 master 中,我看到了其中一些,我希望它们与 SSL 相关:

2014-02-28 16:10:33 CET LOG:  SSL renegotiation failure
2014-02-28 16:10:33 CET LOG:  SSL error: unexpected record
Run Code Online (Sandbox Code Playgroud)

我在 ubuntu 12.04 上运行 postgresql 9.3

编辑

关于 …

postgresql replication

3
推荐指数
2
解决办法
3764
查看次数

表名的长度会影响性能吗?

PostgreSQL 表名限制为 63 个字符。

如果我将表名限制为 5 个字符之类的内容,或者我可以使用完整的 63 个字符而不会产生任何后果,是否会有性能提升?

我知道在创建查询时键入长名称会更长,但这就是别名的用途。

postgresql naming-convention

3
推荐指数
1
解决办法
2802
查看次数

如何在 plpgsql 中执行 WHERE x IN (val1, val2,...)

我想更新表中的行选择;这有效...

UPDATE t1 SET col1 = 'newvalue' WHERE col0 in (2, 4, 5);
Run Code Online (Sandbox Code Playgroud)

但是我怎么能在 plpgsql 函数中做同样的事情呢?下面给出了一个语法错误...

CREATE OR REPLACE FUNCTION foo(intarray int[])
RETURNS VOID AS 
$BODY$

BEGIN
  UPDATE t1 SET col1 = 'newvalue'
  WHERE col0 in intarray;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
Run Code Online (Sandbox Code Playgroud)

错误...

ERROR:  syntax error at or near "intarray"
LINE 7:       WHERE col0 in intarray;
Run Code Online (Sandbox Code Playgroud)

编辑:

如果我们更换in intarray;in (intarray);的功能被记录,但在运行时SELECT * FROM foo(ARRAY[1,3,5])的误差变...

ERROR:  operator does not exist: integer = integer[]
LINE 2:       WHERE …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql array

3
推荐指数
2
解决办法
4856
查看次数

TCP 负载均衡器是否可以替代 Postgres 9.X 读取从属负载均衡器(如 pgPool II 或 pgBouncer)?

为了扩展 PostgreSQL 流复制从属设备上的读取流量,我希望能够对请求进行负载平衡。Postgres 文档建议使用 pgPool 和 pgBouncer 之类的工具,但我想知道在 postgres 读取从站前面使用 TCP 负载均衡器(如 HAProxy 或 AWS Elastic Load Balancer)是否有问题(原则上)。

负载均衡器充当需要由客户端发出的读取请求的单个读取端点。一个显着的优势是当读取从属服务器关闭时读取请求不会受到影响,因为负载均衡器中的其他服务器可以接收负载。

postgresql scalability load-balancing

3
推荐指数
1
解决办法
2711
查看次数

我是否需要设置 tcpip_socket = true 以允许远程连接到 postgresql 数据库?

我正在尝试启用与在 ubuntu 12.04 上运行的 postgresql 9.1 db 的远程连接。

教程说“将 tcpip_socket 设置为 true”——但它适用于 centos 服务器。我在 ubuntu 上。

我的 postgresql.conf 中没有看到这一行。

$cat /etc/postgresql/9.1/main/postgresql.conf | grep tcpip_socket
Run Code Online (Sandbox Code Playgroud)

当我添加它时,我收到错误:

 "FATAL:  unrecognized configuration parameter "tcpip_socket"
Run Code Online (Sandbox Code Playgroud)

如果它在 ubuntu 12.04 上运行,我是否需要告诉 postgres 9.1“打开”tcp_ip 连接?

postgresql ubuntu

3
推荐指数
1
解决办法
5258
查看次数

组织 Postgres 数据库

pgAdmin 有没有办法将 Postgres 数据库组织到“文件夹”或组中?我创建的每个 Django 项目都有自己的 Postgres 数据库,我想找到一种组织它们的方法。

我在 StackOverflow ( /sf/ask/1590934061/ )上问了这个问题,我的问题被“搁置”,因为它偏离了主题。

在 StackOverflow 上,Erwin Brandstetter 建议我创建一个新的服务器组并设置组对话框:

pgadmin 服务器属性对话框

我的问题是:如何为“组”下拉框创建新选项?当我在 MacBook Pro 上使用 pgAdmin3 命令“添加服务器”时,我只在“组”下看到一个名为“服务器”的选项。

我需要创建一个新的“数据库集群”吗?我在 Postgres 文档的 17.2 节中找到了这个命令:

$ initdb -D /usr/local/pgsql/data
Run Code Online (Sandbox Code Playgroud)

在我的 MacBook Pro 上,我的默认数据库位于/usr/local/var/postgres/base/usr/local/var/postgres/global

我应该创建一个新目录,例如/usr/local/var/postgres2,然后执行这样的命令吗?

$ initdb -D /usr/local/var/postgres2
Run Code Online (Sandbox Code Playgroud)

postgresql pgadmin

3
推荐指数
1
解决办法
4304
查看次数

如何替换 PostgreSQL 中的变量

给定的 Oracle 查询通过替换变量将数据插入表中。我如何在 PostgreSQL 中实现相同的目标?

INSERT INTO control_threshold (
    threshold_id, group_name, description, sql, low_value, high_value)
VALUES(
    threshold_seq.nextval, '&2', '&1',  TRIM('&5' || '&6' || '&7' || '&8' || '&9'),
    trim('&3'), trim('&4'));
Run Code Online (Sandbox Code Playgroud)

postgresql sqlplus psql

3
推荐指数
1
解决办法
2700
查看次数

有没有办法在 psql 中定义宏/别名?

这是有点恼人键入EXPLAIN (ANALYZE, BUFFERS, VERBOSE)psql工具,当你每次优化查询。

那么,有没有办法以类似于它的方式定义别名(自动完成的会非常好)?psqlbash

例如FULLEXPLAIN SELECT * FROM pg_stat;结果为EXPLAIN (ANALYZE, BUFFERS, VERBOSE) SELECT * FROM pg_stat;

postgresql psql

3
推荐指数
1
解决办法
1806
查看次数

在 PostgreSQL 中有没有办法对列进行排名/权重以便对结果进行排序?

假设我正在搜索三个文本列。我不仅想要与给定单词或短语匹配的结果,而且还想对它们进行加权 ( column A > column B > column C) - 从而对结果进行排序,使得与列中的单词匹配的行A将比列中匹配的行高B,而那些column 中的匹配B将高于 column 中的匹配C

这可能吗?你能为我提供一些术语或进一步阅读的建议吗?

postgresql order-by

3
推荐指数
1
解决办法
4771
查看次数