问题标签 [postgres-xl]
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.
optimization - 如何在 Postgres XL 中优化 TPS 和整体数据库性能?
我一直在尝试使用 pgbench 为 Postgres XL 记录一些基准。我在一个 78MB 的数据库中使用了 pgbench,并带有一个 json 列。据我所知,我无法判断我的输出结果是否可以继续。我的意思是我应该从什么方面考虑结果是好还是坏。
我的主数据库表结构如下:
索引:
对于这个具有比例因子 1、初始客户端 5 的数据库表,我已经收到了大约 47 tps,当客户端数量达到 200 并且比例因子保持不变时,它减少到 21 tps。pgbench 测试每次运行 10 秒。
我有一个具有 8GB RAM 和 4 核 Intel Core i5 CPU 的系统。
所以很高兴知道我是否可以改进,或者是否有任何事情可以让我知道我正在以正确的方式做这件事也会受到赞赏。
谢谢!
postgresql - 我们可以在同一个系统上拥有多个 Postgres XL 集群吗?
每当我们创建 Postgres XL 集群时,协调器、数据节点和 GTM 都与同一个集群相同,不是吗?那么是否可以使用 pgxc_ctl 在同一主机上创建另一个集群?我是否必须生成不同的集群配置文件,以便新集群完全独立于旧集群?请给它一些光。
postgresql - Postgres XL 将数据节点添加到现有集群
这是我的 Postgres XL 9.5 配置:GTM Cordinator datanode1 datanode2。对于上述集群,我创建了数据库 DB1,其中包含 5000 万行的表,并在 2 个节点之间通过散列分布。之后,我再添加 2 个节点。但是当我在协调器 Alter table T1 add node (datanode3) 上执行时,我得到以下异常
错误:无法获得池连接提示:这可能是因为一个或多个节点当前无法访问,无论是由于节点故障还是网络故障。目标节点也可能已达到连接限制或池化器配置的连接数较低。请检查所有节点是否运行良好,并查看 max_connections 和 max_pool_size 配置参数。
Max_connections 和 max_pool_size 参数很好,当我检查 datanode3 和 datanode4 上的日志时,我发现协调器无法连接到节点,因为数据库 DB1 不存在。如果我在其中创建新的数据库和表,我可以将它们分发到所有节点。但是 DB1 上除了 select 之外的所有操作都无法完成。你对我的问题有什么建议吗?
postgres-xl - 在 Postgres 中删除名称中带有“减号”的数据库
我a-b
在 postgres 中命名了这个数据库,我无法使用这个查询删除它drop database "a-b";
。双引号应该可以工作,但遗憾的是,他们没有。我正在使用 Postgres-XL r1.3。
我收到的错误信息是:
ERROR: syntax error at or near "-"
postgres-xl - 我应该如何处理 postgres-xl gtm 故障转移
我有一个像 node1(gtm)、node2(gtm-slave)、node3(gtm-proxy1、coord1、datanode1) 这样的集群,我使用 pgxc_ctl 设置这些节点。我正在测试 gtm 故障转移。这是我所做的:
- 将 pgxc_ctl.conf 从 node1 复制到 node2
- 关闭节点1
- ssh int node2 并输入 pgxc_ctl,然后输入 failover gtm
- ssh 进入 node3,然后输入 gtm_ctl reconnect -Z gtm_proxy -D proxydir -o "-s node2 -t 20001"
- 尝试 psql 它给我错误“致命:无法从 GTM 获取事务 ID。GTM 可能已失败或失去连接”
所以我输入“全部停止”和“全部初始化”,看起来它解决了这个问题。但我认为我不需要重新启动集群。任何人都有建议
postgresql - Postgres-XL 可以同时分片、复制和自动平衡吗?
例如,如果我有 5 台服务器(A、B、C、D、E)
我们可以设置复制因子为 3 的数据分布吗?(例如一个写入到ABC,其他记录到ABD,其他记录到ABE,等等),所以当节点C发生一些硬件故障时,仍然有一些记录存在。
我们是否也可以添加一个新节点,然后在不停机的情况下将存储的数据平衡到新节点?
postgres-xl - 你能使用 Postgres-XL 的 Round Robbin 或 Hash 数据分片选项并有冗余吗
Postgres-XL 9.5 文档说,当使用 Round Robbin 或 Hashing 数据分片选项时,每个数据元素仅写入单个节点。除此之外,它没有提供任何其他细节。
数据真的不存储在多个节点上吗?如果是这样的话,这似乎很容易失败并且考虑不周。
复制模式真的是在多个节点上保存数据的唯一方法吗?复制选项似乎并不可行,因为它似乎慢了三倍,而且我认为随着您添加更多节点,它必须变得更慢。
postgres-xl - 绑定 postgres-xl 协调器以仅在特定接口上侦听
我正在尝试将协调器绑定为仅侦听特定接口。在协调器上的 postgresql.conf 中指定时,似乎忽略了 listen_addressses 选项。
在协调器数据目录中还有另一个名为 postmaster.opts 的文件,似乎每次 pgxc_ctl 连接到协调器以启动/停止它时都会重置它。
如果我可以在该文件中包含 -h 选项,那么协调器将绑定到我选择的 IP。
有趣的是,如果在 listen_addresses 中指定,GTM 将绑定到 IP。协调器和数据节点都不会。
我一般浏览了 postgres-xl 文档、pgxc_ctl 文档、邮件列表和谷歌,但找不到如何做到这一点。我最后的手段是通读代码库(我现在正在尝试这样做)。
--- 编辑 1:
listen_addressses
只要 postgres 不以-i
switch开头,似乎就很荣幸。由于某种原因,pgxc_ctl-i
在协调器上添加到 postmaster.opts 中的调用参数列表。
--- 编辑 2:
-i
启动协调器(和数据节点)时,似乎在源代码中添加了选项。因此,前进的唯一方法是从源头修补和重建。
--- 编辑 3:
-o -i
在对 datanode_cmd.c 和 coord_cmd.c 进行更改(从所有对 pg_ctl 的调用中删除了开关)进行构建时,我一直在测试 pgxc_ctl 。通过这样做,协调器和数据节点现在都绑定到接口,listen_addresses
如postgresql.conf
. -o -i
理解为什么是硬编码会很有趣。问题解决了。
postgis - 使用 PostGis 安装 Postgres-XL
问题:我正在尝试在 3 节点集群上安装启用 PostGis 的 Postgres-XL。我设法在具有 1 个 GTM、1 个协调器和 1 个数据节点的 3 个节点上安装 Postgres-XL。现在的问题是当我尝试在 DataNode 上安装 PostGis 扩展时,它安装成功,但是当我尝试在 Coordinator 上安装它时,它给了我以下错误:
我需要在所有数据节点和协调器上安装 PostGis 还是只在数据节点上安装 PostGis?
任何有关错误和/或上述问题的帮助将不胜感激。
self-join - 合并数据时,postgres-xl 自连接花费 10 秒
我的 postgres-xl 版本是 9.5r1.5 稳定版。当查询如下
这个查询很简单,只返回一行。当我在数据节点中运行它时,只花费了 10 毫秒。但是在坐标节点中花费了 10020 毫秒。我尝试了其他一些查询,并确保在加入同一个表坐标节点时花费 10 秒。但是如果查询什么都不返回,那么它在坐标节点中只需要 20 毫秒。所以我认为,当坐标节点组合数据时,它有问题。谁能告诉我如何避免这种情况。非常感谢。