Обсуждение: Replicating an existing (huge) database

Поиск
Список
Период
Сортировка

Replicating an existing (huge) database

От
Srinivasa T N
Дата:
Hi All,
   I am using postgresql 12.  As part of streaming replication setup, I run pg_basebackup on the slave which copies the database from master to slave.  But the database is huge and it takes around 2 to 3 days for the pg_basebackup to finish.  When pg_basebackup is running, a huge number of wal files are generated on the master which occupies a lot of space (even though it is for 2-3 days, disk space is low).   Is there any other way to start replication without using pg_baseback?

Regards,
Seenu.

Re: Replicating an existing (huge) database

От
Laurenz Albe
Дата:
On Mon, 2022-11-28 at 15:47 +0530, Srinivasa T N wrote:
> I am using postgresql 12.  As part of streaming replication setup, I run pg_basebackup
> on the slave which copies the database from master to slave.  But the database is huge
> and it takes around 2 to 3 days for the pg_basebackup to finish.  When pg_basebackup
> is running, a huge number of wal files are generated on the master which occupies a lot
> of space (even though it is for 2-3 days, disk space is low).
> Is there any other way to start replication without using pg_baseback?

There is the "low level backup API" (pg_start_backup() and pg_stop_backup()) that
allows you to copy the data yourself, for example with storage snapshots, which
can be much faster.  The essential process is like with pg_basebackup, but you
can use more efficient methods to copy the data.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com



Re: Replicating an existing (huge) database

От
Torsten Förtsch
Дата:
You can set up wal archiving and set restore_command before you start the replica. Then you can use pg_basebackup with `-Xnone --no-slot`. Alternatively or in combination, use a quicker backup as Laurenz explained.

On Mon, Nov 28, 2022 at 11:17 AM Srinivasa T N <seenutn@gmail.com> wrote:
Hi All,
   I am using postgresql 12.  As part of streaming replication setup, I run pg_basebackup on the slave which copies the database from master to slave.  But the database is huge and it takes around 2 to 3 days for the pg_basebackup to finish.  When pg_basebackup is running, a huge number of wal files are generated on the master which occupies a lot of space (even though it is for 2-3 days, disk space is low).   Is there any other way to start replication without using pg_baseback?

Regards,
Seenu.