Postgresql

postgresql 邏輯複製 - 訂閱者大小差異

  • February 5, 2020

我在 Amazon RDS 中有一個 postgres 11 數據庫,其中有超過 2 TB 的數據,其表的整數 id 遞增,接近耗盡。我一直在審查使用邏輯複製將現有數據庫同步到新數據庫,並將架構修改為具有 bigint id。經過大量的盡職調查,一切看起來都很好,我已經準備好進行切換了。

我注意到的一件事是訂閱者數據庫的整體大小較小,即使它的許多列和索引已切換為使用 bigint ids 與 int。有誰知道為什麼會這樣?這是我無法找到與我的猜測(碎片等)的確認的一個問題。

使用此處描述的查詢,我有以下用法:

  • 總計:發布者 2.171 TB,訂閱者 2.020 TB
  • 索引:發布者 0.737 TB,訂閱者 0.581 TB
  • Toast:發布者 0.212 TB,訂閱者 0.215 TB
  • 表:發布者 1.223 TB,訂閱者 1.223 TB

這是可以預料的,沒有問題。

當邏輯複製開始時,它會從源表中複製現有數據。然後目標表中的數據將被密集打包並佔用更少的空間。

隨著複製的進行,目標表被修改,“死元組”將累積並被 autovacuum 刪除。隨著時間的推移,桌子會變得有點“臃腫”,這是正常和健康的。

由於您不打算長時間使用邏輯複製,因此副本可能永遠不會像原始副本一樣大。

引用自:https://dba.stackexchange.com/questions/258915