文档 v3.7.0 版本已不再积极维护,你当前浏览的是一份归档快照。 最新文档请参阅 最新版本。
答疑
因 postgres 存在而中止
当您在运行 PostgreSQL 的节点上运行 pgsql.yml 时会发生这种情况。
如果有正在运行的 PostgreSQL 实例,您可以使用 pgsql-rm.yml 剧本显式移除它:
因启用 pg_safeguard 而中止
禁用
pg_safeguard以移除 PostgreSQL 实例。
如果启用了 pg_safeguard,您无法使用 bin/pgsql-rm 和 pgsql-rm.yml 剧本移除正在运行的 PostgreSQL 实例。
要禁用 pg_safeguard,您可以在配置清单中将 pg_safeguard 设置为 false,或将 -e pg_safeguard=false 作为命令行参数传递给剧本:
等待 postgres/patroni 主库失败
这个错误有几个可能的原因,您需要 检查 系统日志来确定实际原因。
这通常发生在集群配置错误,或者之前的主库被不当移除时(例如,DCS 中有相同集群名称的垃圾元数据)。
您必须检查 /pg/log/* 以找到原因。
要从 etcd 删除垃圾元数据,您可以使用 etcdctl del --prefix /pg/<cls>,操作时请谨慎!
- 1:配置错误。识别不正确的参数,修改它们并应用更改。
- 2:部署中已存在同名的另一个集群
- 3:节点上的之前集群,或同名的之前集群未正确移除。
- 要移除过时的集群元数据,您可以使用
etcdctl del --prefix /pg/<cls>手动删除残留数据。 - 4:与您的 PostgreSQL 或节点相关的 RPM 包未成功安装。
- 5:您的 Watchdog 内核模块未正确启用或加载,但是必需的。
- 6:指定的语言环境或字符类型
pg_lc_collate和pg_lc_ctype在操作系统中不存在
请随时提交问题或寻求社区帮助。
等待 postgres/patroni 从库失败
立即失败:通常,这是由于配置错误、网络问题、DCS 元数据损坏等导致的,您必须检查 /pg/log 以找出实际原因。
一段时间后失败:这可能是由于源实例数据损坏。查看 PGSQL 常见问题:数据损坏时如何创建从库?
超时:如果 wait for postgres replica 任务需要 30 分钟或更长时间并因超时而失败,这对于大型集群(例如 1TB+,可能需要数小时才能创建从库)是常见的。在这种情况下,底层创建从库过程仍在进行。您可以使用 pg list <cls> 检查集群状态,等待从库追上主库。然后继续以下任务:
安装 PostgreSQL 13 - 17
要安装 PostgreSQL 13 ~ 17,您必须在配置清单中将 pg_version 设置为 13、14、15、16 或 17。(通常在集群级别设置)
如何为 PostgreSQL 启用大页面?
使用
node_hugepage_count和node_hugepage_ratio或/pg/bin/pg-tune-hugepage
如果您计划启用大页面,请考虑使用 node_hugepage_count 和 node_hugepage_ratio 并使用 ./node.yml -t node_tune 应用。
在 PostgreSQL 启动之前分配足够的大页面是好的做法,然后使用 pg_tune_hugepage 稍后缩减它们。
如果您的 PostgreSQL 已经在运行,您可以使用 /pg/bin/pg-tune-hugepage 即时启用大页面。请注意,这仅适用于 PostgreSQL 15+
如何在故障转移期间保证零数据丢失?
使用
crit.yml模板,或设置pg_rpo为0,或使用同步模式 配置集群。
考虑使用 同步从库 和 法定人数提交 来保证故障转移期间 0 数据丢失。
如何从磁盘满的情况中恢复?
rm -rf /pg/dummy将释放一些紧急空间。
pg_dummy_filesize 默认设置为 64MB。考虑在生产环境中将其增加到 8GB 或更大。
它将被放置在与 PGSQL 主数据磁盘相同的磁盘上的 /pg/dummy 中。您可以删除该文件以释放一些紧急空间。至少您可以在该节点上运行一些 shell 脚本。
数据损坏时如何创建从库?
在坏实例上禁用
clonefrom并重新加载 patroni 配置。
Pigsty 在所有实例的 patroni 配置上设置 cloneform: true 标签,这标记实例可用于克隆从库。
如果此实例有损坏的数据文件,您可以设置 clonefrom: false 以避免从有问题的实例拉取数据。具体操作如下:
数据损坏时如何创建从库?
在坏实例上禁用
clonefrom并重新加载 patroni 配置。
Pigsty 在所有实例的 patroni 配置上设置 cloneform: true 标签,这标记实例可用于克隆从库。
如果此实例有损坏的数据文件,您可以设置 clonefrom: false 以避免从有问题的实例拉取数据。具体操作如下:
监控导出器的性能影响
影响不大,每 10 ~ 15 秒 200ms,不会影响数据库性能。
Pigsty 中 prometheus 的默认抓取间隔为 10 秒,确保导出器可以在该时间段内完成抓取。
如何监控现有的 PostgreSQL 实例?
详情请查看 PGSQL 监控。
如何从 prometheus 中移除监控目标?
或者