Antes de migrar uma instância PostgreSQL auto-gerenciada para o ApsaraDB RDS for PostgreSQL, configure dois parâmetros no arquivo postgresql.conf: listen_addresses para permitir a conexão da instância RDS durante a migração e um parâmetro de retenção de WAL (wal_keep_segments ou wal_keep_size) para impedir a exclusão dos registros de write-ahead logging (WAL) antes da conclusão da replicação.
Os exemplos neste tópico usam PostgreSQL 13 no CentOS 7. Ajuste o número da versão nos caminhos de arquivos e comandos conforme seu ambiente.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância PostgreSQL auto-gerenciada implantada em uma instância do Elastic Compute Service (ECS) ou em um data center
Acesso aos usuários
postgreserootno host
Etapa 1: Verificar os valores atuais dos parâmetros
Conecte-se à instância PostgreSQL auto-gerenciada e execute os comandos abaixo para verificar os valores atuais.
|
Parâmetro |
Aplica-se a |
Comando |
Valor necessário |
|
|
Todas as versões |
|
|
|
|
PostgreSQL 10, 11, 12 |
|
|
|
|
PostgreSQL 13 e posteriores |
|
|
Funções desses parâmetros:
listen_addresses: Define os endereços IP dos quais a instância aceita conexões. Definir como*permite a conexão da instância RDS durante a migração.wal_keep_segments/wal_keep_size: Controla a quantidade de dados WAL retidos no diretóriopg_wal. Valores muito baixos causam a exclusão dos registros WAL após um backup completo, o que interrompe a replicação e exige o reinício do backup desde o começo.
O parâmetro listen_addresses e os parâmetros de retenção de WAL são estáticos e entram em vigor somente após a reinicialização completa do serviço. Se algum valor não atender ao requisito, siga as etapas 2 a 5 para parar o serviço, atualize o arquivo e execute-o novamente.
Se todos os valores já atenderem aos requisitos, pule para Criar uma conta para migração para a nuvem em uma instância PostgreSQL auto-gerenciada.
Etapa 2: Parar o serviço de banco de dados PostgreSQL
Somente o usuáriopostgrespode executar comandospg_ctl. Executesu - postgrespara alternar para o usuáriopostgres.
/usr/pgsql-13/bin/pg_ctl stop -m fast
Etapa 3: Localizar o arquivo postgresql.conf
Somente o usuáriorootpode executar o comandofind. Executesu - rootpara alternar para o usuárioroot.
find / -name postgresql.conf
A saída exibe o caminho do arquivo. Exemplo:
/var/lib/pgsql/13/data/postgresql.conf
Etapa 4: Edite o arquivo postgresql.conf
Acesse o diretório e abra o arquivo.
cd /var/lib/pgsql/13/data/
vim postgresql.conf
Defina os parâmetros com os valores necessários. Esses parâmetros podem estar comentados por padrão. Nesse caso, remova o # no início de cada linha após a edição.
listen_addresses = '*'
# PostgreSQL 10, 11, or 12:
wal_keep_segments = 4096
# PostgreSQL 13 and later:
wal_keep_size = 65536
Pressione Esc e insira :wq para salve e sair.
Etapa 5: Iniciar o serviço de banco de dados PostgreSQL
Somente o usuáriopostgrespode executar comandospg_ctl. Executesu - postgrespara alternar para o usuáriopostgres.
/usr/pgsql-13/bin/pg_ctl start
Próximos passos
Crie uma conta para migração para a nuvem em uma instância PostgreSQL auto-gerenciada