Prince Pathria wrote:
> I have following config
> wal_buffers = 16MB
> min_wal_size = 1GB
> max_wal_size = 2GB
> synchronous_commit = on
> archive_mode = on
> archive_command = 'cp %p /opt/postgres/%f'
> max_wal_senders = 4
> wal_keep_segments = 1024
> synchronous_standby_names = 'pgslave01'
>
>
> 1. Can we raise wal segment size to more than 16MB and is it same
> as `wal_buffers` ?
You can, but only by recompiling PostgreSQL.
Don't do it.
"wal_buffers" is not directly related to the size of the WAL segment.
> 2. During data loading I'm pushing 4GB data, and taking an assumption
> that my network is slow,
> Will master keep the segments in pg_wal more than wal_keep_segment value
> such that it's pulled by standby nodes or it will wipe if off?
No, it will happily delete them as soon as "wal_keep_segments" is exceeded.
Using replication slots is the best way to avoid that.
> 3. 1024 wal_keep_segments of 16 mb each makes 16GB of segments kept but
> I have kept max_wal_size = 2GB. Which one will be prioritised max_wal_size
> or wal_keep_segment?
"max_wal_size" is a soft limit, so if "wal_keep_segments" is set higher,
PostgreSQL will retain more than "max_wal_size" WAL.
Yours,
Laurenz Albe