一、PostgreSQL日志级别配置
PostgreSQL将日志分为11个级别,从低到高依次为:DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、LOG、INFO、NOTICE、WARNING、ERROR和FATAL。通过设置日志级别,您可以仅记录提交错误或记录所有SQL查询。以下是一个设置日志级别为WARNING的示例:
# 修改postgresql.conf文件 log_min_messages = WARNING
以上示例表示仅记录级别高于WARNING的日志。更改它,然后重新启动PostgreSQL以使更改生效。
二、PostgreSQL日志配置
要开始记录PostgreSQL日志,您需要在配置文件中指定记录的方式,并指定应记录哪些信息。
以下是一个基本的日志记录示例:
# 修改postgresql.conf文件 log_destination = 'stderr' logging_collector = on log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_rotation_age = 1d log_rotation_size = 10MB
以上示例表示将日志记录在stderr文件中,并启用了日志收集器,日志将记录到pg_log目录中的postgresql-日期_时间.log文件中。此外,日志旋转每天进行一次,或者当日志文件大小达到10MB时,进行一次日志旋转。
三、PostgreSQL日志保留
默认情况下,PostgreSQL会定期删除旧日志。如果您需要更长时间保存日志,请使用以下配置:
# 修改postgresql.conf文件 log_rotation_age = 7d # 保留七天的日志 log_rotation_size = 0 # 禁用按大小分割的日志
以上示例表示每七天进行一次日志旋转,禁用按大小分割的日志。
四、PostgreSQL时间
默认情况下,PostgreSQL在日志条目中显示本地时间。如果您需要使用UTC时间,请将log_timezone配置为UTC。
# 修改postgresql.conf文件 log_timezone = 'UTC'
五、PostgreSQL创建无日志表
在特定情况下,您可能希望创建一个不产生任何日志记录的表。为此,您可以将log_statement配置为none。
# 修改postgresql.conf文件 log_statement = 'none'
六、PostgreSQL源码
所有PostgreSQL的源代码都可在官网上的下载。以下是一个基本编译和安装示例:
# 下载源码 curl -O https://ftp.postgresql.org/pub/source/v13.2/postgresql-13.2.tar.gz # 解压源码 tar xf postgresql-13.2.tar.gz cd postgresql-13.2 # 编译 ./configure make sudo make install
七、PostgreSQL的in查询
在PostgreSQL中,您可以使用in运算符来执行多个值的查询。以下是一个示例:
SELECT * FROM table WHERE column IN (value1, value2, value3);
八、PostgreSQL版本
要查看安装的PostgreSQL版本,请使用以下命令:
psql -c "SELECT version();"
九、PostgreSQL官网
要了解有关PostgreSQL的更多信息,请访问官网:https://www.postgresql.org/
十、PostgreSQL的临时表选取
在PostgreSQL中,您可以使用WITH语法创建临时表,并在后续查询中使用它。以下是一个示例:
WITH temp_table AS ( SELECT column1, column2 FROM table1 WHERE ... ), SELECT * FROM temp_table JOIN table2 ON temp_table.column1 = table2.column1;