Replicação no PostgreSQL

De PJe
Edição feita às 15h37min de 14 de outubro de 2016 por Iralhi.macedo (disc | contribs)

Ir para: navegação, pesquisa

Este manual tem a a finalidade de mostrar os passos necessários para implementação da replicação do banco PJe.

Conteúdo

Procedimento de Criar Replicação

Os passos abaixo ora são executados no MASTER e ora no STANDBY.

MASTER Produção
STANDBY Cópia

NOTA: atenção para executar os comandos no servidor correto.

Estrutura da MASTER

Serviço:
usr/pgsql-9.5/bin/postmaster -p 5432 -D /var/lib/pgsql/9.5/data

Backups de WAL:
/var/local/backups/pgsql/prd/nome do servidor (local original)

Backup HOT:
/var/local/backups/pgsql/prd/nome do servidor (local original)

Atividades PRÉ no MASTER

Passo 1. Configurar os parâmetros de banco de produção editando o arquivo postgresql.conf disponível em: /var/lib/pgsql/9.5/data

 listen_address = '*' --> Reponderá por qualquer ip cadastrado no server
 wal_level = hot_standby
 max_wal_senders = 5  --> Número máximo de servidores slave que estarão plugados no master 
 wal_keep_segments = 20  --> Facilita o início da replicação quando o banco não está em modo ARCHIVE 

Passo 2. Colocar a entrada abaixo no final do arquivo PG_HBA.CONF

 host   replication    replicador_cluster   zincopir01.cnj.jus.br   md5

Porém esses passos já foram executados anteriormente (estão aqui apenas para fins de conhecimento).

Observação: Para que as configurações dos passos 1 e 2 no MASTER sejam ativadas é necessário reiniciar o serviço (em alguns ambientes esses parâmetros já estão configurados). Essa ação indisponibiliza o banco.

 systemctl stop postgres-9.5.service    
 systemctl start postgres-9.5.service    

Passo 3. Criar o usuário de BD que irá fazer a replicação.

 psql -p<porta>  (  psql -p 5432 )
 CREATE ROLE replicador_cluster WITH REPLICATION PASSWORD '*****' LOGIN; --> para saber se o usuário já existe
 select * from pg_user;    ou     \du+

Atividades PRÉ no STANDBY

Passo 1. Fazer uma cópia dos arquivos de parâmetros localizados na área do backup e ajustá-lo para ser utilizado no banco STANDBY (será utilizado mais a frente).

 cd /var/local/backups/pgsql/prd/zincopi01/
 mv postgresql.conf /var/lib/pgsql/9.5
 mv pg_hba.conf /var/lib/pgsql/9.5
 cd /var/lib/pgsql/9.5
 vi postgresql.conf
 hot_standby = on (encontrar o parâmetro no arquivo e setar para “on”)

Passo 2. Criar o recovery.conf a ser utilizado mais a frente. cd /var/lib/pgsql/9.5/

 vi recovery.conf (inserir as linhas abaixo)
 standby_mode='on'
 primary_conninfo = 'host=server port=number user=replicador_cluster password=????? application_name=?????'
 trigger_file ='/var/lib/pgsql/9.5/data/rep.trigger'

Procedimentos Restauração Backup

Observação: Existem diversas formas de fazer o procedimento abaixo. Por exemplo:
1) Com o banco Master aberto ou fechado; e
2) Com RSYNC, PG_BASEBACKUP e Restore dos arquivos de backup físico.

Banco de Dados (MASTER)

Passo 1. Realizar um backup físico do banco, como sugestão utilizar o script abaixo.

 var/lib/pgsql/scripts/bkp_hot_cluster.sh nome_do_banco
 ll /var/local/backups/pgsql/prd/nome_do_banco/ -tr

Passo 2. Gerar um backup WAL para que os dados mais recentes, se existirem, estejam no backup a ser utilizado para montar a replicação.

 /var/lib/pgsql/scripts/bkp_wal_cluster.sh nome_do_banco
 ll /var/local/backups/pgsql/prd/nome_do_banco/ -tr

Banco de Dados (STANDBY)

Passo 1. Por segurança, desconecte-se da Master.

Passo 2. Caso o servidor já tenha um cluster postgres no mesmo diretório, certificar-se que o serviço do postgres esteja desligado.

 ps -ef | grep postgres
 systemctl stop postgres-9.5.service

Passo 3. Descompactar o arquivo TAR a partir do raiz, a estrutura de diretórios ficará igual ao do servidor de produção.
ATENÇÃO: caso exista arquivos com mesmos nomes nos respectivos diretórios, eles serão sobrescritos, cuidado para NÃO executar os comandos no banco MASTER.

Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Informações Gerais
Aplicativos PJe
Manuais
Suporte
Ferramentas