问题标签 [postgresql-9.6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - Postgres 迁移问题 9.6.0 到 9.6.1
我计划将我们的数据库从 9.6.0 升级到 9.6.1,但在升级一个具有许多表空间的数据库时发现了一个问题。升级失败并出现以下错误
“使用表空间时无法迁移到/从同一系统目录版本迁移”
parallel-processing - PostgreSQL 9.6 并行性不适用于创建表?
我有一个问题 - 当查询包含在“CREATE TABLE”中时,查询处理中的并行性现在似乎可以在我的数据库上工作。
Plain SELECT 完美地并行处理,因此非常快。并行性也显示在 EXPLAIN 输出中,我还可以在“顶级”监控中看到后台工作人员。所以它比第 9.5 页要好得多。
但是当我在 CREATE TABLE 中使用相同的 SELECT 时,它会运行很长时间而不是并行运行。它比第 9.5 页要慢得多。这种情况下的并行性未显示在 EXPLAIN 输出中,并且操作系统中没有运行后台工作程序。我试图设置 "force_parallel_mode" = ON 但没有任何改变。
是否有一些我错过的神奇设置应该从标准设置更改为在 CREATE TABLE 中也使用并行性?或者这种预期行为是“设计使然”的?
更新:好的,似乎是“设计使然” - CTE 上的并行查询,用于在 PostgreSQL 中编写操作
但在那种情况下,CREATE TABLE as SELECT 与 9.5 相比,在 9.6 上的性能似乎很差......
- 更新:看起来 PostgreSQL 9.6 需要比 9.5 更高的 work_mem 设置 - 我摆弄了运行不佳的查询的查询计划,发现只需更改会话中的 work_mem 设置,我就可以从“排序(成本=807568233.23..807568267.50 行= 13709 width=105)" for work_mem=32MB 到 "Sort (cost=151127.62..151161.89 rows=13709 width=105)" for work_mem=64MB...
dblink - PostgreSQL 9.6 dblink 扩展不能正常工作?
我在 PostgreSQL 9.6.1 上使用 dblink 扩展并行运行任务时遇到奇怪的问题。看起来扩展在某些情况下无法识别连接中的任务已经结束并且仍在等待结果。因此,过去可以在 PG 9.5 上完美运行的程序有时会无限期地挂在 PG 9.6 上。
程序:
- 使用“执行 dblink_connect”打开连接
- 使用“dblink_send_query”发送查询
- 其他任务被发送到不同的连接
- 程序获取第一个连接并发出“dblink_get_result”并等待输出
- 在需要第二个连接等之后 - 其中一些连接已经结束,因此它们应该在“dblink_get_result”开始后立即给出结果,但在某些情况下它在 PG 9.6 上不起作用并检查只是挂起......
PG 9.6 中的 dblink 行为是否有一些我不知道的变化?
json - 无法检索 json 对象值 postgresql 9.6
我有元素列,我想检索([{"Car": 3}, {"Truck": 1}]
将存储在 array_ 变量中的车辆数组。我得到 array_ 总是空的。这段代码有什么问题?
amazon-web-services - 没有 UI 的 Odoo 空白屏幕,在 AWS 上的 docker 容器设置上
配置 :
- AWS
- Ubuntu的
- 运行 docker :
docker -v
= Docker 版本 1.12.1,构建 23cf638 - PostgreSQL -
"PG_MAJOR=9.6", "PG_VERSION=9.6.0-1.pgdg80+1"
- 奥多 -
"ODOO_VERSION=9.0","ODOO_RELEASE=20160726"
问题 :
- 我能够登录到odoo。登录后网站页面打开,到此为止。在我转到任何选项之后,我之前安装的 'Employment' 、 'Notes' 等会出现一个简单的空白页面,如下所示。
- 仅供参考,它平稳运行了大约 100 天,之后最近容器停止运行 [可能是由于 aws 实例上的磁盘已满]。我腾出一些空间并重新启动了容器。
- 如果从相同的图像重新创建 db [postgresql 9.6] 和 odoo [9] 的新干净实例,它们可以正常工作。
- 使用此容器及其克隆不适用于任何新旧数据库。
- 早期的纯 html 页面正在加载,在 linux、docker 和容器重启几次后,它神奇地开始显示正确的登录页面。
我的结论:
- 登录是可能的,所以数据库连接很好。
postgresql - 如何启用 pg_xlog 的自动清理
我正在尝试配置 PostgreSQL 9.6 数据库以限制 pg_xlog 文件夹的大小。我已经阅读了很多关于这个问题或类似问题的帖子,但我尝试过的没有任何帮助。
我为我的 Postgresql 9.6 服务实例编写了一个设置脚本。它执行 initdb,注册一个 Windows 服务,启动它,创建一个空数据库并将转储恢复到数据库中。脚本完成后,数据库结构正常,数据在那里,但 xlog 文件夹已经包含 55 个文件(880 mb)。
为了减小文件夹的大小,我尝试将 wal_keep_segments 设置为 0 或 1,将 max_wal_size 设置为 200mb,减少 checkpoint_timeout,将 archive_mode 设置为 off 并将 archive_command 设置为空字符串。当我查询 pg_settings 时,我可以看到属性已正确设置。
然后我通过 SQL 强制检查点,清空数据库,重新启动 Windows 服务并尝试 pg_archivecleanup,但没有任何效果。我的 xlog 文件夹缩小到 50 个文件(800 mb),而不是接近我在配置中设置的 200 mb 限制。
我不知道还能尝试什么。如果有人能告诉我我做错了什么,我将不胜感激。如果需要更多信息,我很乐意提供。
非常感谢
postgresql - 无法远程连接到 postgresql
我遵循了我在网上找到的所有建议,但我似乎无法让它发挥作用。
背景:
我在运行 RHEL 6.8 的服务器上设置了 Postgresql 9.6。我正在尝试从运行 Linux Mint 17.3 的客户端远程连接到此服务器的 Postgresql 服务。
我试过的:
1)在 postgresql.conf 中,我添加了这两行:
2) 在 pg_hba.conf 中,我添加了这一行:
3)之后重新启动postgresql服务器:
4) 向防火墙添加规则以允许连接到端口 5432,以防万一:
5)跑netstat -tulpn | grep 5432
并得到这个输出:
这是我从客户端连接到服务器的命令:
我得到以下输出:
问题:
我还能做些什么来进一步解决此问题?
sql - PostgreSQL 9.6 - 在冲突中插入并在返回时更新
我已经创建并自动化了一个自定义工作流,用于急切地同步一系列物化视图。在尝试了几种不同的方法(对于一对多关系)后,我发现最可靠的同步工作流程是删除所有可能受到影响的记录,然后插入新记录。
注意: some_query_generating_some_materialized_view 是一个复杂的读取操作,需要大量的资源来执行。此外, some_materialized_view 使用多个外键和其他约束进行大量索引。
这感觉非常沉重。此工作流带有过多的删除和插入操作,这些操作通常是不必要的,因为某些已删除的记录可能相同,或相似到足以成为 UPDATE 的候选者。
我更喜欢以下内容:
问题出在ON CONFLICT ... DO UPDATE ... WHERE ... RETURNING
条款中。
如本问题所述:How to use RETURNING with ON CONFLICT in PostgreSQL?
RETURNING 子句仅返回受影响的记录。所以不受影响的记录不会被返回,因此(在上面的例子中)被不恰当地删除了。
似乎RETURNING
真正返回所有记录的唯一方法是通过删除WHERE some_materialized_view <> EXCLUDED
子句不必要地更新相同的记录,或者在另一个子句中再次运行 some_query_generating_some_materialized_view EXCEPT
......这两个选项也不理想。
那么,我错过了什么?还有其他选择吗?如果不是,一般来说,是否更愿意执行复杂的、资源密集型的读取操作而不是不必要的 UPDATE(记住相关的索引维护和检查约束)?
注意:我不包括EXPLAIN ANALYZE
结果,因为这不是特定于单个查询,而是一般的问题。为了可维护性和健全性,该项目需要保持一致,并且该技术多次用于具有不同结构和用例的表(一些读取繁重,其他写入繁重)。
sql-merge - MERGE INTO 不适用于 Postgres 9.6
在我的 Postgres 9.6 环境中,当我尝试执行“MERGE INTO”查询时,它会抛出以下错误:
它似乎不支持 MERGE 查询。但是,当我使用谷歌搜索时,Postgres 似乎从 9.1 版开始支持 MERGE。
请告诉我这里出了什么问题。
编辑:以下是我在 Postgres 中找到 MERGE 支持的来源。