内容概述
Oracle数据库中切换redo日志会触发检查点事件,那么在PostgreSQL中是否也会触发checkpoint事件呢?
Oracle中测试
[oracle@orcldb ~]$ sqlplus / as sysdba
PG中测试
postgres=# show log_checkpoints ; log_checkpoints ----------------- on (1 row) postgres=# select pg_switch_wal(); pg_switch_wal --------------- 1/D5000248 (1 row) postgres=# select pg_switch_wal(); pg_switch_wal --------------- 1/D6000000 (1 row) postgres=# select pg_switch_wal(); pg_switch_wal --------------- 1/D6000000 (1 row) postgres=#
WAL segment超过max_wal_size测试
WAL segment超过max_wal_size(the default value is 1GB (64 files))触发检查点,
小结
Oracle数据库中进行redo切换会触发检查点事件将"脏块"刷到物理磁盘,完成后redo log可以被重复利用。 PostgreSQL中普通WAL切换并不会触发checkpoint,只有当WAL数量超过max_wal_size即默认64 files才会触发检查点,完成后WAL文件可以被删除/重复使用。