Mudanças entre as edições de "Replicação no PostgreSQL"
(→Atividades PRÉ no MASTER) |
(→Atividades PRÉ no STANDBY) |
||
Linha 52: | Linha 52: | ||
==== Atividades PRÉ no STANDBY ==== | ==== 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). | + | '''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/ | cd /var/local/backups/pgsql/prd/zincopi01/ | ||
mv postgresql.conf /var/lib/pgsql/9.5 | mv postgresql.conf /var/lib/pgsql/9.5 | ||
Linha 60: | Linha 60: | ||
hot_standby = on <small>(encontrar o parâmetro no arquivo e setar para “on”)</small> | hot_standby = on <small>(encontrar o parâmetro no arquivo e setar para “on”)</small> | ||
− | Passo 2. Criar o '''recovery.conf''' a ser utilizado mais a frente. | + | '''Passo 2.''' Criar o '''recovery.conf''' a ser utilizado mais a frente. |
<code><span style="background:#E6E8FA;"> cd /var/lib/pgsql/9.5/ </span></code> | <code><span style="background:#E6E8FA;"> cd /var/lib/pgsql/9.5/ </span></code> | ||
Edição das 15h47min 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/
Para confirmar se os arquivos foram substituídos, verificar as datas ou se os parâmetros contêm as modificações realizadas.
-
cd /var/lib/pgsql/9.5/data/
- Verificar os arquivos: postgresql.conf, pg_hba.conf, recovery.conf.