Mudanças entre as edições de "Replicação no PostgreSQL"

De PJe
Ir para: navegação, pesquisa
(Banco de Dados (STANDBY))
(Banco de Dados (STANDBY))
Linha 101: Linha 101:
 
   for i in bkp_wal_postgres_5432_nome_do_banco_yyyy-mm-dd*.bz2; do tar xvf $i -C /; done
 
   for i in bkp_wal_postgres_5432_nome_do_banco_yyyy-mm-dd*.bz2; do tar xvf $i -C /; done
 
'''Observação:''' Os arquivos serão extraídos em <code><span style="background:#E6E8FA;">/var/lib/pgsql/9.5/data/pg_arch/</span></code>
 
'''Observação:''' Os arquivos serão extraídos em <code><span style="background:#E6E8FA;">/var/lib/pgsql/9.5/data/pg_arch/</span></code>
 +
 +
Passo 5. Mover os arquivos descompactados no passo anterior para o local onde o banco de replicação conseguirá ler:
 +
  mv /var/lib/pgsql/9.5/data/pg_arch/*  /var/lib/pgsql/9.5/data/pg_xlog/
 +
 +
Passo 6. Copiar os arquivos: '''postgresql.conf'''  e  '''pg_hba.conf''' do diretório <code><span style="background:#E6E8FA;">/var/lib/pgsql/9.5</span></code> para o diretório do cluster:
 +
  cd  /var/lib/pgsql/9.5
 +
  cp -p recovery.conf /var/lib/pgsql/9.5/data/

Edição das 15h43min de 14 de outubro de 2016

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.

 cd /var/local/backups/pgsql/prd/nome_do_banco/
 tar xvf bkp_hot_postgres_5432_nome_do_banco_<MAIS_ATUAL>.tar.bz2  -C  /
 ...

Passo 4. Descompactar apenas os arquivos WAL posteriores ao backup HOT restaurado no passo acima (ajusta yyyy-mm-dd).

 for i in bkp_wal_postgres_5432_nome_do_banco_yyyy-mm-dd*.bz2; do tar xvf $i -C /; done

Observação: Os arquivos serão extraídos em /var/lib/pgsql/9.5/data/pg_arch/

Passo 5. Mover os arquivos descompactados no passo anterior para o local onde o banco de replicação conseguirá ler:

 mv /var/lib/pgsql/9.5/data/pg_arch/*  /var/lib/pgsql/9.5/data/pg_xlog/

Passo 6. Copiar os arquivos: postgresql.conf e pg_hba.conf do diretório /var/lib/pgsql/9.5 para o diretório do cluster:

 cd  /var/lib/pgsql/9.5
 cp -p recovery.conf /var/lib/pgsql/9.5/data/
Ferramentas pessoais
Espaços nominais

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