Oi, estou executando em uma máquina centos 7, estou no processo de migrar um banco de dados postgres antigo para o novo servidor, ele tem 10 TB de dados, então estou tentando com pg_basebackup. O novo servidor tem um disco independente com armazenamento suficiente para lidar com a operação, mas não é o disco primário. Eu gostaria de definir o PGDATA neste disco de big data.
Eu segui estes passos:
Instale postgres-12 e postgres12-contrib
Monte o disco de dados na nova máquina
Crie um diretório pgdata vazio no disco de dados. Todos com o usuário postgres.
Usar
/usr/bin/pg_basebackup -h IP_OF_OLD_MACHINE -D /mnt/disks/data-disk/pgdata -P -U USERNAME --wal-method=stream
Acho que pg_basebackup
terminou com sucesso, os dados levaram várias horas, mas terminaram sem solicitar nenhum erro.
total 132K
-rw-------. 1 postgres postgres 230 Mar 18 12:36 backup_label
drwx------. 7 postgres postgres 4.0K Mar 18 12:43 base
-rw-------. 1 postgres postgres 30 Mar 19 00:13 current_logfiles
drwx------. 2 postgres postgres 4.0K Mar 19 00:13 global
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 log
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_commit_ts
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_dynshmem
-rw-------. 1 postgres postgres 4.8K Mar 18 12:36 pg_hba.conf
-rw-------. 1 postgres postgres 4.7K Mar 18 12:36 pg_hba.conf~
-rw-------. 1 postgres postgres 1.6K Mar 19 00:13 pg_ident.conf
drwx------. 4 postgres postgres 4.0K Mar 18 12:36 pg_logical
drwx------. 4 postgres postgres 4.0K Mar 18 12:36 pg_multixact
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_notify
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_replslot
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_serial
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_snapshots
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_stat
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_stat_tmp
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_subtrans
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_tblspc
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_twophase
-rw-------. 1 postgres postgres 3 Mar 19 08:27 PG_VERSION
drwx------. 3 postgres postgres 4.0K Mar 18 12:36 pg_wal
drwx------. 2 postgres postgres 4.0K Mar 18 12:36 pg_xact
-rw-------. 1 postgres postgres 88 Mar 18 12:36 postgresql.auto.conf
-rw-------. 1 postgres postgres 24K Mar 19 08:39 postgresql.conf
Ok, agora estou tentando inicializar um servidor postgres com esses dados, o que acabei de trazer.
Estas são minhas tentativas, olhando a documentação:
/usr/pgsql-12/bin/postgresql-12-setup initdb -D /mnt/disks/data-disk/pgdata
systemctl: invalid option -- 'D'
failed to find PGDATA setting in -D.service
/usr/pgsql-12/bin/postgresql-12-setup initdb --pgdata=/mnt/disks/data-disk/pgdata
systemctl: unrecognized option '--pgdata=/mnt/disks/data-disk/pgdata.service'
failed to find PGDATA setting in --pgdata=/mnt/disks/data-disk/pgdata.service
Existe algum erro no processo?
Atualização: como @pifor me disse, adicionei o PATH ao postgres bash_profile e comecei a reconhecer PG_DATA. O problema agora é que o initdb visa encontrar uma pasta vazia e não está vazia devido ao pg_basebackup