报告中的无效页面头错误
概述
错误有很多种,其中最可怕的一种,就是你的数据消失了,取而代之的是一串红色文本。一个非常常见的问题是无效页面头错误,看起来可能像这样:

查看完整的错误字符串即可识别此错误。例如,下面是上图中的错误字符串:
更新数据库时出错:PokerTracker 4 Database
错误:
无法执行查询:INSERT INTO temp_cash_hand_player_statistics (SELECT id_hand, id_gametype, id_player, id_player_real, id_holecard, id_limit, id_session, date_played, "position", cnt_players, cnt_players, cnt_p_raise, flg_p_first_raise, cnt_p_call, flg_p_limp, flg_p_fold, flg_p_ccall, cnt_p_face_limpers, flg_vpip, flg_f_bet, cnt_f_raise, flg_f_first_raise, cnt_f_call, flg_f_check, flg_f_check_raise, flg_f_fold, flg_f_saw, flg_t_bet, cnt_t_raise, flg_t_first_raise, cnt_t_call, flg_t_check, flg_t_check_raise, flg_t_fold, flg_t_saw, flg_r_bet, cnt_r_raise, flg_r_first_raise, cnt_r_call, flg_r_check, flg_r_check_raise, flg_r_fold, flg_r_saw, enum_allin, enum_face_allin, enum_face_allin_action, flg_blind_s, flg_blind_b, flg_blind_ds, flg_blind_db, flg_sb_steal_fold, flg_bb_steal_fold, flg_blind_def_opp, flg_steal_att, flg_steal_opp, flg_blind_k, flg_showdown, flg_won_hand, amt_won, amt_expected_won, val_equity, id_final_hand, id_final_hand_lo, flg_showed, enum_folded, flg_p_face_raise, flg_p_3bet, flg_p_3bet_opp, flg_p_3bet_def_opp, enum_p_3bet_action, flg_p_4bet, flg_p_4bet_opp, flg_p_4bet_def_opp, enum_p_4bet_action, flg_p_squeeze, flg_p_squeeze_opp, flg_p_squeeze_def_opp, enum_p_squeeze_action, flg_f_face_raise, flg_f_3bet, flg_f_3bet_opp, flg_f_3bet_def_opp, enum_f_3bet_action, flg_f_4bet, flg_f_4bet_opp, flg_f_4bet_def_opp, enum_f_4bet_action, flg_f_cbet, flg_f_cbet_opp, flg_f_cbet_def_opp, enum_f_cbet_action, flg_t_face_raise, flg_t_3bet, flg_t_3bet_opp, flg_t_3bet_def_opp, enum_t_3bet_action, flg_t_4bet, flg_t_4bet_opp, flg_t_4bet_def_opp, enum_t_4bet_action, flg_t_cbet, flg_t_cbet_opp, flg_t_cbet_def_opp, enum_t_cbet_action, flg_t_float, flg_t_float_opp, flg_t_float_def_opp, enum_t_float_action, flg_t_donk, flg_t_donk_opp, flg_t_donk_def_opp, enum_t_donk_action, flg_r_face_raise, flg_r_3bet, flg_r_3bet_opp, flg_r_3bet_def_opp, enum_r_3bet_action, flg_r_4bet, flg_r_4bet_opp, flg_r_4bet_def_opp, enum_r_4bet_action, flg_r_cbet, flg_r_cbet_opp, flg_r_cbet_def_opp, enum_r_cbet_action, flg_r_float, flg_r_float_opp, flg_r_float_def_opp, enum_r_float_action, flg_r_donk, flg_r_donk_opp, flg_r_donk_def_opp, enum_r_donk_action, val_curr_conv FROM cash_hand_player_statistics );; 原因:致命错误(ERROR: invalid page header in block 8671 of relation "cash_hand_player_statistics")
错误字符串中最重要的部分是原因。在上面的示例中,原因是:
Reason: Fatal Error (ERROR: invalid page header in block xxxx of relation "xxxxx" )
无效页面头错误通常可能有两种情况。要么是数据库发生了某种损坏,要么是硬件有故障。请阅读下面的内容来排查这两种情况。
数据库损坏
电脑崩溃后,你的数据可能会损坏。你可以通过重建 PokerTracker 4 数据库索引并重建缓存来轻松修复。只需从主菜单中进入 Database-> Database Management。选择有问题的数据库,然后点击 Rebuild Cache。此过程会对数据库重新建立索引、清理并分析数据库,然后重建数据库缓存。

(注意:对于较大的数据库,此过程可能需要一些时间。请耐心等待并让过程完成,以确保获得最佳结果)
重新导入数据库
你也可以通过创建一个新的 PokerTracker 4 数据库并重新导入手牌来重建数据库。这个过程对某些用户来说可能比较麻烦,因此建议你先尝试重新建立数据库索引。
硬件故障
此错误的另一种可能原因是硬件故障。你可以按照 PostgreSQL 故障排除指南中的建议,让 PostgreSQL 忽略这些错误。
如果你的硬盘持续出现问题,应考虑将其更换为新的 7200 RPM 或更快的硬盘,或者 SSD。