目录
log_statement ='mod' --指定相关语句的收集
log_directory = '/home/postgres/log' --指定收集的日志文件路径
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' --指定收集日志生成的文件名称
logging_collector = on --指定开启日志收集
log_truncate_on_rotation = off --指定同名是否覆盖日志文件
引言
在postgresql数据库中使用pitr对丢失的数据库进行回放的同时,很容易忘记数据丢失的具体时间。此时,开启日志收集定向收集数据变更的语句执行,能大大方便我们定位pitr回放的时间节点。
相关参数介绍
log_statement ='mod' --指定相关语句的收集
控制哪些 SQL 语句被记录。有效值是 none
(off)、ddl
、mod
和 all
(所有语句)。ddl
记录所有数据定义语句,例如CREATE
、ALTER
和 DROP
语句。mod
记录所有ddl
语句,外加数据修改语句例如INSERT
, UPDATE
、DELETE
、TRUNCATE
, 和COPY FROM
。 如果PREPARE
、EXECUTE
和 EXPLAIN ANALYZE
包含合适类型的命令,它们也会被记录。
log_directory = '/home/postgres/log' --指定收集的日志文件路径
此参数用于指定日志文件的存储路径。例如,如果设置为'/home/postgres/log',则所有的日志文件将被存储在这个目录下。
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' --指定收集日志生成的文件名称
log_filename:此参数用于指定日志文件的名称。可以使用一些特殊的占位符,如'%Y'、'%m'、'%d'、'%H'、'%M'和'%S',分别代表年、月、日、小时、分钟和秒。
logging_collector = on --指定开启日志收集
此参数用于控制是否启用日志收集。如果设置为'on',则日志收集器进程将被启动,用于管理日志文件。
log_truncate_on_rotation = off --指定同名是否覆盖日志文件
此参数用于控制在日志文件轮转时是否截断旧的日志文件。如果设置为'off',则在新的日志文件开始时,旧的日志文件将被保留,而不是被截断。如果日志文件最大值够大,文件名使用时间戳后缀,那么重名文件还是很难会发生。
log_rotation_age
此参数用于控制每个日志文件的最大寿命。当日志文件的寿命超过这个值时,将开始一个新的日志文件。常用于自动化清理日志,防止占用过高磁盘空间,这个参数的默认值是1d(一天)
log_rotation_size
此参数用于控制每个日志文件的最大大小。当日志文件的大小超过这个值时,将开始一个新的日志文件。当一个日志文件的大小超过这个设定值时,PostgreSQL会创建一个新的日志文件。这个参数的默认值是10MB
参数配置
log_statement ='mod'
log_directory = '/home/postgres/log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
logging_collector = on
log_truncate_on_rotation = off --指顶不覆盖
log_rotation_age = 14d --指定保留两个星期的日志
log_rotation_size = 10MB --指定单个文件大小上限为10MB
进入数据库模拟操作
create table text(id int) ;
insert into text (id) select n from generate_series(1,1000) as n;
delete from text where id <20
truncate table text;
vacuum text;
在我们指定的路径下已经生成相关文件csv文件中已经记录我们对数据变更操作的记录
关于每一列的含义 在postgresql数据库中如何实现Oracle中dblink功能 blog有做介绍。