gpt4 book ai didi

macos-big-sur - 基于 ARM 的 M1 Mac w/Big Sur 上的 Postgres 错误

转载 作者:行者123 更新时间:2023-12-04 11:07:57 28 4
gpt4 key购买 nike

自从我买了一台新的基于 ARM 的 M1 MacBook Pro,我就一直遇到严重且一致的 PostgreSQL 问题 (psql 13.1)。无论我使用 Rails 服务器还是 Foreman,我都会在浏览器和终端中收到错误,例如 PG::InternalError: ERROR: could not read block 15 in file "base/147456/148555": Bad addressPG::Error (invalid encoding name: unicode)Error during failsafe response: PG::UnableToSend: no connection to the server 。奇怪的是,我经常可以反复刷新浏览器以使其正常工作(直到它们不可避免地再次出现)。
我知道与基于 ARM 的 M1 Mac 相关的所有配置挑战,这就是为什么我以多种方式多次卸载并重新安装从 Homebrew 到 Postgres 的所有内容(使用 Rosetta,不使用 Rosetta,使用 arch -x86_64 brew 命令,使用 Postgres应用程序而不是 Homebrew 安装)。我在随机留言板上遇到了其他几个人,他们遇到了同样的问题(也在新的 Mac 上)并且没有任何运气,这就是为什么我不愿意相信这是一个驱动器损坏问题。 (我也多次运行磁盘工具急救检查;它说一切正常,但我不知道它有多可靠。)
我正在使用thoughtbot parity 将我的开发环境数据库与当前生产中的数据库同步。当我运行 development restore production 时,我的终端中有数百行看起来像下面的输出(这是在下载完成后立即但在继续创建默认值、处理数据、序列集等之前)。我相信这是问题的根源,但我不确定解决方案是什么:

pg_restore: dropping TABLE [table name1]
pg_restore: from TOC entry 442; 1259 15829269 TABLE [table name1] u1oi0d2o8cha8f
pg_restore: error: could not execute query: ERROR: table "[table name1]" does not exist
Command was: DROP TABLE "public"."[table name1]";
pg_restore: dropping TABLE [table name2]
pg_restore: from TOC entry 277; 1259 16955 TABLE [table name2] u1oi0d2o8cha8f
pg_restore: error: could not execute query: ERROR: table "[table name2]" does not exist
Command was: DROP TABLE "public"."[table name2]";
pg_restore: dropping TABLE [table name3]
pg_restore: from TOC entry 463; 1259 15830702 TABLE [table name3] u1oi0d2o8cha8f
pg_restore: error: could not execute query: ERROR: table "[table name3]" does not exist
Command was: DROP TABLE "public"."[table name3]";
pg_restore: dropping TABLE [table name4]
pg_restore: from TOC entry 445; 1259 15830421 TABLE [table name4] u1oi0d2o8cha8f
pg_restore: error: could not execute query: ERROR: table "[table name4]" does not exist
Command was: DROP TABLE "public"."[table name4]";
有没有其他人经历过这种情况?任何解决方案的想法将不胜感激。谢谢!
编辑:我能够在较旧的 MacBook Pro(也运行 Big Sur)上重现相同的问题,因此它似乎与 M1 无关,但可能与 Big Sur 相关。

最佳答案

此问题的最终解决方法 :
在尝试了其他答案中的所有解决方法后,我仍然偶尔会收到此错误。即使在转储和恢复数据库之后,切换到 M1-native postgres,运行各种维护脚本等。
在对 postgresql.conf 进行大量修改后,唯一已经可靠地无限期解决了这个问题(此后没有收到错误):
在 postgresql.conf 中,更改:

max_worker_processes = 8
max_worker_processes = 1
进行此更改后,我将所有测试都抛出到了我以前出错的数据库中,并且一次也没有显示相同的错误。以前,我在大约 2000 万条记录的数据库上运行的提取例程在处理 1 到 200 万条记录后会出现错误地址错误。现在它完成了整个过程。
显然,减少并行工作线程的数量会降低性能,但这是我找到的可靠且永久解决此问题的唯一方法。

关于macos-big-sur - 基于 ARM 的 M1 Mac w/Big Sur 上的 Postgres 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65687712/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com