Google Cloud SQL-解密Postgres日志并查看临时日志文件

时间:2019-06-12 22:30:05

标签: postgresql google-cloud-platform google-cloud-sql

我有一个在Google Cloud SQL上运行的Postgres实例。我在在线“日志查看器”中破译消息时遇到了一些麻烦。

我收到很多像这样的“信息”级消息,一遍又一遍地重复。

[i] 2019-06-12 16:19:05.376 MDT [119402]: [2-1] db=cleanchemidata,user=cleanchemiadmin STATEMENT: SELECT MAX("cc_systemdataview"."time_stamp") AS "time_stamp__max" FROM "cc_systemdataview" WHERE "cc_systemdataview"."job_id" = 72
[i] 2019-06-12 16:19:06.213 MDT [119401]: [1-1] db=cleanchemidata,user=cleanchemiadmin LOG: temporary file: path "base/pgsql_tmp/pgsql_tmp119401.0", size 38330368

我创建了该用户和数据库,并且知道为什么我的应用程序要执行该select语句。

不理解为什么在日志中打印此选择语句(但应用程序中没有其他SQL语句)。看起来好像不是错误?

临时日志文件位于路径“ base / pgsql_tmp / pgsql_tmp119401.0”,可能有答案,但我无法弄清楚如何访问它。我尝试打开“云外壳”并浏览文件系统,但找不到此“基本”或“ pgsql_tmp”文件夹或任何日志文件。

关于为什么显示此STATEMENT消息或如何访问此临时日志文件的任何想法?

1 个答案:

答案 0 :(得分:1)

按照以下link进行PostgreSQL性能监视:

  

写入一个临时文件时发出此日志事件,用作   正常操作的一部分,然后再次删除。

     

通常,当查询分配不足时,您会看到此消息   由于 work_mem 的限制而需要存储,并且不得不使用磁盘上的文件   执行排序或哈希操作。

您可以在提供的链接中找到更多详细信息以及建议采取的措施。

我不熟悉您的数据库约束,但我会考虑优化上述查询,因为不使用临时文件的查询通常效果更好。

不幸的是,关于访问日志文件,由于Cloud SQL is a fully-managed service,您当前无法查看临时文件。可视化日志的唯一方法是通过here中所述的Stackdriver日志。

了解Cloud Shell本身是一个临时VM实例很重要。其主要目的是使您无需安装Google Cloud SDK即可轻松管理项目和资源。它的内容与Cloud SQL的实例文件系统无关,因此您看不到提到的目录。