提问人:Kyosh Pietro 提问时间:11/8/2023 最后编辑:Ahmed AshourKyosh Pietro 更新时间:11/8/2023 访问量:45
Postgresql 回滚调查
Postgresql Rollback investigation
问:
我有一个 PostgreSQL 40TB 大小的数据库,每天我每小时都会面临高回滚率。我只想查看有关会话的回滚详细信息,该会话调用回滚,回滚表名等。如何从数据库中获取此详细信息。提前致谢。
我没有找到任何 SQL 或其他方法来获取回滚详细信息
答:
0赞
Laurenz Albe
11/8/2023
#1
查看日志文件。如果回滚是由错误引起的,则这些错误应显示在日志中。如果没有错误,但应用程序故意运行,则记录的唯一方法是 ,它可以写入太多日志,从而影响数据库性能。ROLLBACK
log_statement = 'all'
另一种选择(如果这太多了)是将 .然后,将记录 1% 的数据库事务,从而减少数据量,并且仍然允许您查看足够的语句来弄清楚发生了什么。log_statement = 'all'
log_transaction_sample_rate = 0.01
ROLLBACK
评论
0赞
Kyosh Pietro
11/8/2023
但是数据库是 RDS,我无法访问日志文件
0赞
Laurenz Albe
11/8/2023
无法访问日志文件?获取其他服务提供商。如果不能访问日志,则无法运行数据库。如果有问题,你会去哪里看?
0赞
Kyosh Pietro
11/8/2023
RDS 管理系统管理团队,他们离我很远。好吧,你能说我吗?如果我设置 log_statement = 'all',回滚信息将出现在 postgresql 日志文件中,是吗?
0赞
Laurenz Albe
11/8/2023
它会的。但要注意:在繁忙的数据库上,这可能会杀死您的应用程序。
0赞
Kyosh Pietro
11/9/2023
知道了。谢谢
评论
transaction-abort