今天例行日檢查看表格的frozen age,如下 : |
以前就知道這類物件,只是沒時間深研 |
最近比較有空,上網查了一下資料 |
先是看到了wiki文章 |
寫得不怎麼樣 |
再找了一下 |
看到了騰訊工程師寫的文章 |
真的不錯 |
了解它的形成後 |
當然就是要找出母表是哪一個 |
很簡單,一行指令就找出來了 |
如果是大表,就手動做一做vaccum 囉!! |
小表就交給自動化去處理就好了............. |
我的重點其實是第二張圖的指令 |
總要找到表格是哪個 |
才能處理呀~~~ |
####2020/08/21##### |
今天處理Postgres 10 |
但是..怎麼狀況有點不一樣 |
因為我發現,不管我vacuum幾次 |
它的txid都不會改變,怪了~~ |
所以靈機一動,直接vacuum toast |
解了~~~ |
真是奇怪~~ |
是不是pg10跟pg 9的差異阿~~ |
下次再驗證看看 |
###2020/08/26#### |
好吧~~ 是我理解錯誤 |
因為剛剛在Postgres 9.0(EDB 9.0) |
處理Nagios 所發出來的WRAP TXID 小於 5000000的警訊 |
pg9 及pg 10的toast結構應該是一樣的 |
只是inline table 如果vacuum後 |
frozen id 如果還是沒改變的話 |
就得跑vacuum在它的overflow toast表上 |
toast物件的schema是pg_toast |
相信的search_path不會放它啦~~ |
因此你的vacuum指令得帶入pg_toast.xxxxx |