Estou fazendo a replicação para 16 milhões de registros. Só quero perguntar sobre a fase inicial da replicação lógica:
- Preciso copiar a tabela inicial do editor para o assinante primeiro? Ou é tratado pela assinatura? Não sei quanto tempo vai demorar se for tratado pelo processo de replicação...
- Aqui e em alguns outros sites também, https://www.enterprisedb.com/postgres-tutorials/logical-replication-postgresql-explained , diz "... gerar vários trabalhadores de sincronização de tabela" Como posso gerar vários trabalhadores de sincronização de tabela? Qual parâmetro é? Nenhum dos artigos que li menciona o parâmetro para configurar trabalhadores de sincronização
obrigado
Postgres 12 rodando no Ubuntu
1)
Não, você não precisa fazer nada. Assim que você criar a assinatura, o Postgres copiará os dados. Você pode impedir a cópia inicial, se desejar, usando
with (copy_data = false)
ao criar a assinatura .2)
Então, o número de processos em segundo plano para replicação lógica não é controlado por assinatura, mas em todo o sistema no assinante por meio de
max_logical_replication_workers
emax_sync_workers_per_subscription
.No entanto, para uma única tabela, apenas um único trabalhador será usado.
Portanto, aumentar
max_sync_workers_per_subscription
afeta apenas o número de tabelas que são sincronizadas em paralelo, não o número de trabalhadores por tabela .