postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)
生活随笔
收集整理的這篇文章主要介紹了
postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
os: centos 7.4
db: postgresql 10.10
postgresql 查看 pg_stat_activity 有時會看到 autovacuum:VACUUM xxoo.xxoo(to prevent wraparound) ,這個其實是預防事務ID回卷,原因是 postgresql 采用 32bit 事務id。
版本
# cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) # # su - postgres Last login: Sat Oct 26 22:55:25 CST 2019 on pts/0 $ $ psql -c "select version();"version ----------------------------------------------------------------------------------------------------------PostgreSQL 10.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit (1 row)when
當表的 age 大于 autovacuum_freeze_max_age時,autovacuum 進程回自動對該表進行 freeze。
autovacuum:VACUUM public.tmp_t0 (to prevent wraparound)默認的 autovacuum_freeze_max_age 值為 200000000
postgres=# select name,setting from pg_settings where name like 'autovacuum%' order by name;name | setting -------------------------------------+-----------autovacuum | onautovacuum_analyze_scale_factor | 0.1autovacuum_analyze_threshold | 50autovacuum_freeze_max_age | 200000000autovacuum_max_workers | 3autovacuum_multixact_freeze_max_age | 400000000autovacuum_naptime | 60autovacuum_vacuum_cost_delay | 20autovacuum_vacuum_cost_limit | -1autovacuum_vacuum_scale_factor | 0.2autovacuum_vacuum_threshold | 50autovacuum_work_mem | -1 (12 rows) SELECT c.oid::regclass as table_name,greatest(age(c.relfrozenxid),age(t.relfrozenxid)) as age from pg_class cLEFT OUTER JOIN pg_class t ON c.reltoastrelid = t.oid WHERE c.relkind IN ('r', 'm') order by 2 desc ; SELECT datname, age(datfrozenxid) FROM pg_database;參考:
https://www.postgresql.org/docs/10/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
總結
以上是生活随笔為你收集整理的postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 八大排序 详解(下)——指向函数的指针
- 下一篇: 中南大学移动宽带连接路由器解决方案