PostgreSQL 故障排除
PostgreSQL 使用指南...
常见 PostgreSQL 任务及完整说明的查找位置。
让 PostgreSQL 运行更快
PostgreSQL 的性能主要取决于磁盘速度和可用内存。提升最大的改进是使用固态硬盘(SSD);7200 RPM 硬盘可以接受,但不建议使用 5400 RPM 硬盘。
- 调整 PostgreSQL 以使用更多内存——请参阅 PostgreSQL 性能调优。
- 随着数据库增长,保持其优化——请参阅 数据库维护。
- 硬件推荐请参阅 推荐硬件 FAQ。
更新 PostgreSQL
PokerTracker 4 支持 PostgreSQL 9.6 或更高版本(我们推荐 PostgreSQL 16)。如需升级到更新版本,请按以下专门指南操作:
在更新之前,请务必备份您的数据库。
在 pgAdmin 4 中备份和恢复
PokerTracker 4 内置了备份和恢复功能——请尽可能使用它。下面的外部 pgAdmin 4 方法仅适用于少数情况,即内置工具无法访问您的数据库,例如 PokerTracker 4 运行在虚拟机中,而 PostgreSQL 安装在宿主操作系统上。(这种情况请参阅网络指南。)
下面的截图显示的是较旧版本的 pgAdmin。pgAdmin 4 中的步骤是相同的。
使用 pgAdmin 4 备份数据库
-
打开 pgAdmin 4。
Windows:开始 > PostgreSQL > pgAdmin 4。 macOS:/Applications/pgAdmin 4。
-
连接到服务器。
在 Browser 树中,展开 Servers > PostgreSQL 并连接。如果系统要求输入密码,默认密码是 dbpass;另一个常用密码是 postgrespass。
-
展开 Databases 并选择您的数据库。
右键点击要备份的数据库,然后选择 Backup...。

-
选择备份文件名和位置。
输入路径和文件名,或点击右侧的浏览按钮("...")来选择备份的位置和文件名。
其余字段保持默认设置。

-
点击 Backup 按钮开始。
备份开始以及完成后,您会在 pgAdmin 右下角看到一个弹窗。

使用 pgAdmin 4 恢复数据库
-
创建一个新数据库。
在 Browser 树中,右键点击 Databases,然后选择 Create > Database...。

-
输入数据库名称,然后点击 Save。

-
将备份恢复到新数据库中。
右键点击新数据库并选择 Restore...。

-
选择您之前创建的备份文件。

-
点击 Restore。
无需进行其他更改。恢复过程开始和完成时,pgAdmin 会在屏幕右下角显示弹窗。

添加一个手动恢复的数据库
-
打开 数据库 > 数据库管理 窗口,然后点击 新建。
-
启用 此数据库已存在,点击 浏览数据库,并选择你刚刚还原的数据库。

问题
最常见的 PostgreSQL 错误解决方案。
无法登录数据库
错误:无法连接到服务器 / 连接被拒绝
unable to login to database (PT4_xxxx_xx_xx_xxxxxx) - reason: could not connect to server: connection refused (0x0000274D/10061) Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?
这通常表示 PostgreSQL 服务未运行。请重启它——参见重启 PostgreSQL 服务器。
如果重启无效,可能是残留的 postmaster.pid 文件阻止了启动。在停止 PostgreSQL 服务后,在数据文件夹中查找 postmaster.pid(Windows:C:\Program Files\PostgreSQL\16\data;macOS:/Library/PostgreSQL/16/data)并将其删除,然后重启电脑。请将 16 替换为你安装的版本。只有在 PostgreSQL 服务已停止时,才删除 postmaster.pid。
错误:没有 pg_hba.conf 条目
unable to login to database (PT4 DB). Reason: FATAL: no pg_hba.conf entry for host "::1", user "postgres", database "PT4 DB", SSL off
编辑 pg_hba.conf 文件。
- Windows
- macOS
你必须以管理员身份编辑 pg_hba.conf 文件。右键单击 Notepad 图标并选择 以管理员身份运行 来启动 记事本。点击 文件 > 打开 并选择 pg_hba.conf 文件,通常位于 C:\Program Files\PostgreSQL\16\data\pg_hba.conf。
滚动到底部,并完全按照这里显示的内容添加这一行:
host all all ::1/128 md5
保存文件并退出记事本。要使更改生效,请重启电脑,或者点击 开始 > 程序 > PostgreSQL > 重新加载配置。
-
打开位于 /Applications/Utilities/Terminal 的终端应用程序。
-
在 Nano 编辑器中打开 pg_hba.conf。
输入
sudo nano /Library/PostgreSQL/16/data/pg_hba.conf并按 Return。若系统要求,请输入你的 macOS 管理员密码。 -
使用向下箭头键滚动到文件底部,并完全按照这里显示的内容添加这一行:
host all all ::1/128 md5 -
按 CTRL+O 保存,然后按 CTRL+X 退出。
-
重启电脑以启用更改。
将 16 替换为你已安装的 PostgreSQL 版本。
安装或运行 PostgreSQL 时出现问题
安装、运行或联网使用 PostgreSQL 时出现的问题,通常是由安全软件阻止访问造成的。请查看防火墙故障排除指南,确认 PokerTracker 4 和 PostgreSQL 拥有完整访问权限。
无法连接 - 用户名或密码错误
如果你在安装 PokerTracker 4 之前已经在电脑上安装过 PostgreSQL,请使用当时设置的密码。如果你之前使用过其他跟踪器,请尝试 postgrespass;如果你之前安装过其他版本的 PokerTracker,默认密码可能是 dbpass。
如果你记不住密码,而且默认选项也不起作用,你可以将 PostgreSQL 配置为不要求来自本机的连接输入密码:
但从除本机以外的任何地方访问服务器时,仍然需要密码。- Windows
- macOS
你必须以管理员身份编辑 pg_hba.conf 文件。右键单击 Notepad 图标并选择 以管理员身份运行 来启动 记事本。点击 文件 > 打开 并选择 pg_hba.conf 文件,通常位于 C:\Program Files\PostgreSQL\16\data\pg_hba.conf。
滚动到底部,将所有 md5 或 scram-sha-256 实例都替换为 trust。
保存文件并退出记事本。要使更改生效,请重启电脑,或者点击 开始 > 程序 > PostgreSQL > 重新加载配置。
-
打开位于 /Applications/Utilities/Terminal 的终端应用程序。
-
在 Nano 编辑器中打开 pg_hba.conf。
输入
sudo nano /Library/PostgreSQL/16/data/pg_hba.conf并按 Return。若系统提示,请输入你的 macOS 管理员密码。 -
使用向下箭头键滚动到文件底部,并将所有 md5 或 scram-sha-256 替换为 trust。
-
按 CTRL+O 保存,然后按 CTRL+X 退出。
-
重启计算机以启用更改。
将 16 替换为你已安装的 PostgreSQL 版本。
无法导入手牌
如果你看到类似这样的错误:
Unable to import hand (#18202934050). Reason: Unable to execute query: COPY tourney_holdem_hand_summary FROM STDIN;; Reason: Fatal Error (ERROR: could not read block 0 of relation 1663/16438/16742: Invalid argument CONTEXT: COPY tourney_holdem_hand_summary, line 1: "54551 100 736 3 971 18202934050 2008/06/17 20:55:42 2008/06/17 17:22:44 9 2 2 2 1500.00 1500.00 1500..." )
...或者这样的:
Unable to import hand (#7651813545). Reason: Unable to execute query: COPY holdem_hand_player_statistics FROM STDIN;; Reason: Fatal Error (ERROR: index "hhps:idx5-id_session" contains unexpected zero page at block 0 HINT: Please REINDEX it. CONTEXT: COPY holdem_hand_player_statistics, line 1: "70112 696 696 0 2 8819 2008/08/15 04:05:59 8 f f 0 f 0 f f f f f 0 f 0 t f f t f 0 f 0 t f t t f 0 f..." )
常见原因有两个。
第一个原因是电脑崩溃导致的数据损坏,需要重建数据库索引。请在 数据库 > 数据库管理 窗口中执行重建索引(维护 > 重建索引)——完整步骤请参见数据库维护。完成维护后,重建缓存,以确保数据库按预期运行。

第二个原因是硬件故障。虽然我们不建议这样做,但你可以通过编辑 postgresql.conf 文件来设置 PostgreSQL 忽略这些错误。
- Windows
- macOS
你必须以管理员身份编辑 postgresql.conf 文件。右键单击 Notepad 图标并选择 以管理员身份运行 来启动它。点击 File > Open,然后选择 postgresql.conf 文件,通常位于 C:\Program Files\PostgreSQL\16\data\postgresql.conf。
滚动到文件底部,新建一行,并添加文本 zero_damaged_pages = on。
保存文件并退出 Notepad。要启用更改,请重启计算机,或点击 Start > Programs > PostgreSQL > Reload Configuration。
-
打开位于 /Applications/Utilities/Terminal 的 Terminal 应用程序。
-
在 Nano 编辑器中打开 postgresql.conf。
输入
sudo nano /Library/PostgreSQL/16/data/postgresql.conf并按 Return。若系统提示,请输入你的 macOS 管理员密码。 -
滚动到文件底部,新建一行,并添加文本
zero_damaged_pages = on。 -
按 CTRL+O 保存,然后按 CTRL+X 退出。
-
重启计算机以启用更改。
将 16 替换为你已安装的 PostgreSQL 版本。
如果你的硬盘问题持续存在,请考虑将其更换为 7200 RPM(或更快)的硬盘,或者 SSD。
网络计算机上的 PostgreSQL
你可以将 PostgreSQL 部署在局域网中的另一台计算机上。安装说明请参见在本地网络上托管的 PostgreSQL 服务器。
此方法不是官方支持的。由于 PokerTracker 4 并非为远程数据库访问而设计,某些功能——备份、还原、数据库优化和数据库维护——只有在数据库与 PokerTracker 4 位于同一台计算机上时才能正常工作。
安装在单独驱动器上的 PostgreSQL
要从不同的驱动器运行数据库,请先从电脑上完全删除 PostgreSQL(见下文),然后将其重新安装到你选择的驱动器上。更多详情,请参见论坛帖子在单独驱动器上创建数据库。
安装在热插拔驱动器上的 PostgreSQL
本指南将数据库设置在可热插拔的硬盘上,这样你就可以在不同电脑之间移动它并使用同一个数据库。这避免了 PostgreSQL 的网络限制,并让你可以在本地网络之外使用数据库。
本指南假设 PokerTracker 4 已安装在两台 Windows 电脑上,并且各自使用独立数据库。目前我们不建议 macOS 用户采用此方案。
开始之前,请先备份你的数据库,并将备份保存在安全的位置。
准备热插拔驱动器
- 打开 开始 > 计算机(“我的电脑”窗口——你会经常回到这里)。
- 右键单击你的热插拔驱动器,选择 重命名,并将其命名为你的数据库名称(例如
pg_16)。 - 再次右键单击该驱动器并选择 格式化。将文件系统设置为 NTFS,分配单元大小设为 4096,选择 快速格式化,然后点击 开始。
- 分配一个在两台电脑上都可用的盘符。打开 开始 > 右键单击 计算机 > 管理 > 磁盘管理。右键单击你的热插拔驱动器,选择 更改驱动器号和路径 > 更改...,选择 分配以下驱动器号,并选择 P(代表 PostgreSQL)。接受警告并继续。
卸载 PostgreSQL
- 打开 开始 > 控制面板 > 程序和功能。等待列表加载完成后,右键单击 PostgreSQL 并选择 卸载。记下版本号。
- 打开提升权限的命令提示符(右键单击 命令提示符 > 以管理员身份运行),并执行
net user /delete postgres。你应该会看到“命令已成功完成。”如果出现“拒绝访问”,说明你不是以管理员身份运行。完成后输入exit。 - 删除 C:\Program Files\PostgreSQL 中残留的文件夹。请先确认你的数据已备份并妥善保存。
下载并安装 PostgreSQL
下载你要安装的 Enterprise DB 版本 PostgreSQL——通常选择你当前所用主版本中的最新发行版。
运行安装程序,在提示选择安装位置时,浏览到你的 P: 盘中的 P:\PostgreSQL\16(将 16 替换为你的版本;点击新建文件夹图标创建该文件夹)。
继续完成安装程序。在密码界面中,在两个输入框都填入 dbpass。点击 下一步,直到安装完成。

还原数据库
使用与备份时相同的方法还原你已备份的数据库。
PostgreSQL 关闭与启动
现在到另一台电脑上,并将其同步到热插拔驱动器。
你必须在每次将驱动器在电脑之间移动时停止 PostgreSQL 服务,否则你可能会丢失数据库服务器。
在你的主电脑上:
- 关闭 PokerTracker 4。
- 打开 开始 > 右键单击 计算机 > 管理 > 服务。
- 在列表中找到 PostgreSQL,右键单击它并选择 停止。现在可以安全地移除驱动器了。
在将驱动器连接到另一台电脑之前,确保那边的 PostgreSQL 服务没有运行。连接驱动器后,启动该服务:右键单击 PostgreSQL > 启动。
第二台电脑
如果这台电脑上已经安装了 PostgreSQL,请先卸载它。
- 插入驱动器,并像在第一台电脑上一样为其分配盘符 P:(参见准备热插拔驱动器)。
- 下载你之前使用的同一版本 PostgreSQL 并运行安装程序,再次将安装位置设置为 P:\PostgreSQL\16。
- 让安装程序创建服务密码,但在密码页面上取消勾选初始化数据库。完成安装。
- 编辑 C:\Program Files\PokerTracker 4\Data\Config\PokerTracker.cfg,删除所有数据库信息并保存。
- 运行 PokerTracker 4。在 PostgreSQL 配置界面中,输入密码 dbpass 并点击 连接。
- 当系统提示创建数据库时,勾选 此数据库已存在,点击 浏览,选择你的数据库,然后点击 连接。
现在,你可以在两台电脑上使用同一个数据库了。
记住,在移动驱动器之前要停止 PostgreSQL 服务,并在将其插入另一台电脑后再次启动它(开始 > 程序 > PostgreSQL > 启动服务)。