Удаление ненужных файлов CLOG в PostgreSQL
Commit Log или CLOG — это структура, хранящая состояние транзакций. При обновлении pg_database.datfrozenxid PostgreSQL пытается удалить ненужные файлы CLOG. Обратите внимание на то, что соответствующие страницы CLOG также удаляются.
На рисунке 75 показан конкретный пример. Если минимальный pg_database.datfrozenxid содержится в файле clog '0002', более старые файлы ('0000' и '0001') можно удалить, поскольку все транзакции, хранящиеся в этих файлах, могут рассматриваться как во всем кластере БД.
Примечание: pg_database.datfrozenxid и файл CLOG
Ниже показан фактический результат pg_database.datfrozenxid и файлов CLOG:
$ psql testdb -c "SELECT datname, datfrozenxid FROM pg_database" datname | datfrozenxid ----------+-------------- template1 | 7308883 template0 | 7556347 postgres | 7339732 testdb | 7506298 (4 rows) $ ls -la -h data/pg_xact/ # In versions 9.6 or earlier, "ls -la -h data/pg_clog/" total 316K drwx------ 2 postgres postgres 28 Dec 29 17:15 . drwx------ 20 postgres postgres 4.0K Dec 29 17:13 .. -rw------- 1 postgres postgres 256K Dec 29 17:15 0006 -rw------- 1 postgres postgres 56K Dec 29 17:15 0007




