public inbox for [email protected]  
help / color / mirror / Atom feed
From: Achilleas Mantzios <[email protected]>
To: [email protected]
Subject: Re: Is a VACUUM or ANALYZE necessary after logical replication?
Date: Sun, 16 Jun 2024 09:54:58 +0300
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <CAGbX52EwdrpPLyRuRRpnbhUqfQYijVz3cShSMuoXrs2Lgkod5Q@mail.gmail.com>
	<[email protected]>

Στις 16/6/24 02:13, ο/η Adrian Klaver έγραψε:
> On 6/15/24 15:55, Koen De Groote wrote:
>> I've gone over all of 
>> https://www.postgresql.org/docs/current/logical-replication.html 
>> <https://www.postgresql.org/docs/current/logical-replication.html; 
>> and the only mentions of the word "index" I could find was in 
>> relation to replica identity and examples of table definitions 
>> showing primary key indexes.
>>
>> Nothing is said about indexes. Maybe for good reason, maybe they are 
>> fully functionality immediately after replication?
>>
>> So the main question: Once a table is fully replicated, do I need to 
>> vacuum(analyze) that table, or are the indexes on that table already 
>> functional?
>
> VACUUM/ANALYZE is not about making the index functional. The VACUUM 
> marks the space dead tuples occupy in the table and associated indexes 
> as available for recycling. The ANALYZE updates tables statistics to 
> help the planner make decisions on what query plan to use. On a fresh 
> table VACUUM will not be of much value, ANALYZE though will help by 
> creating up to date table statistics.

Hi Adrian, however in case the replication is problematic due to e.g. :

- wrong encoding to the new system, e.g. from SQL_ASCII to UTF-8

- ALWAYS triggers written without full schema qualification or other 
problems throwing ERRORs, etc

- server restarts during the sync phase

- etc

those will produce rollbacks, hence bloating right from the start. In 
those cases either VACUUM FULL will be needed, or even better correct 
the errors in their source and repeat the whole process. Normally the 
new DB (subscriber) should be a little smaller than the original 
(publisher).

As you said, in any case, ANALYZE will be always needed afterwards, as 
well as taking care of sequences. IMHO the sequence part would be nice 
to be handled in a more elegant manner, e.g. by an option in pg_dump to 
dump only sequences, for "nearly zero" downtime upgrades, this step 
should happen rapidly at the switchover.

>
>>
>> Regards,
>> Koen De Groote
>
-- 
Achilleas Mantzios
  IT DEV - HEAD
  IT DEPT
  Dynacom Tankers Mgmt (as agents only)







view thread (4+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: Is a VACUUM or ANALYZE necessary after logical replication?
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox