208 lines
6.4 KiB
Markdown
208 lines
6.4 KiB
Markdown
|
|
# Reativação da replicação de banco de dados (Exemplo 01611_pinhais)
|
|
|
|
## Servidor SLAVE
|
|
|
|
* Acesse o servidor SLAVE e pare o banco de dados.
|
|
```
|
|
$ su - postgres
|
|
|
|
$ ssh -p 61100 [email protected]
|
|
|
|
$ su - root
|
|
|
|
# systemctl stop postgresql-11.service
|
|
|
|
# exit
|
|
```
|
|
|
|
__MUITA ATENÇÃO, tenha certeza que você está executando estes comandos no servidor SLAVE!__
|
|
|
|
* Apague as pastas da base atual e faça o backup dos configs:
|
|
|
|
* Limpar tablespaces:
|
|
```
|
|
$ cd /var/lib/pgsql/11/tablespaces
|
|
|
|
$ rm -rf arquivo*
|
|
|
|
$ rm -rf expurgo*
|
|
|
|
$ rm -rf indice/*
|
|
```
|
|
* Limpar pasta bkp:
|
|
```
|
|
$ cd /var/lib/pgsql/11/data
|
|
|
|
$ rm -rf bkp*
|
|
```
|
|
* Fazer backup dos arquivos e limpar pasta data:
|
|
```
|
|
$ mkdir bkp
|
|
|
|
$ mv postgresql.conf recovery.conf pg_hba.conf bkp/
|
|
|
|
$ rm -rf *.tgz
|
|
|
|
$ rm -rf base current_logfiles global pg_commit_ts pg_dynshmem pg_ident.conf pg_logical pg_multixact pg_notify pg_replslot pg_serial pg_snapshots pg_stat pg_stat_tmp pg_subtrans pg_tblspc pg_twophase PG_VERSION pg_xact postgresql.* postmaster.* tablespace_map.*
|
|
|
|
$ rm -rf log/*
|
|
|
|
$ rm -rf archive/*
|
|
|
|
$ mkdir bkp/pg_wal
|
|
|
|
$ mv pg_wal/* bkp/pg_wal/
|
|
```
|
|
|
|
|
|
## Servidor MASTER:
|
|
|
|
__Caso a replicação a partir do MASTER não esteja funcionando, e exista algum problema, como sem espaço em disco na partição, ou algum arquivo corrompido, executar os passos abaixo:__
|
|
_(ENTENDER A SITUAÇÃO)_
|
|
|
|
|
|
* Conectar via SSH no servidor MASTER e alterar as configurações:
|
|
|
|
* Alterar a configuração do postgres.conf para `semreplicacao`:
|
|
```
|
|
# cp /var/lib/pgsql/11/data/postgresql.semreplicacao /var/lib/pgsql/11/data/postgres.conf
|
|
```
|
|
* Reiniciar o serviço do postgres:
|
|
```
|
|
# systemctl restart postgresql-11.service
|
|
```
|
|
* Alterar novamente a configuração do postgres para `comreplicacao`:
|
|
```
|
|
# cp /var/lib/pgsql/11/data/postgresql.comreplicacao /var/lib/pgsql/11/data/postgres.conf
|
|
```
|
|
* Reiniciar novamente o serviço do postgres:
|
|
```
|
|
# systemctl restart postgresql-11.service
|
|
```
|
|
|
|
__Caso a replicação esteja corrompida, não utilizar os comandos acima, continuar a partir dos passos abaixo:__
|
|
|
|
* Iniciar o modo Backup do Banco de dados:
|
|
* Conectar via ipmadminbd e executar o seguinte comando SQL:
|
|
```
|
|
SELECT pg_start_backup('rep01611',true);
|
|
```
|
|
|
|
### Compactar e copiar os arquivos da base do Banco Master para o Banco Slave
|
|
|
|
* Você pode abrir vários terminais ssh no servidor MASTER para executar cada comando TAR, ou seja, irá transferir em simultâneo cada pasta para o servidor slave:
|
|
|
|
* Execute os comandos paara fazer as cópias:
|
|
|
|
```
|
|
# su - postgres
|
|
```
|
|
* Acesse a pasta "tablespaces" e compacte os arquivos:
|
|
```
|
|
$ cd /var/lib/pgsql/11/tablespaces/
|
|
|
|
$ tar -zcvf - arquivo/ |ssh -p 61100 [email protected] "cat > /var/lib/pgsql/11/tablespaces/arquivo.tgz"
|
|
|
|
$ tar -zcvf - expurgo/ |ssh -p 61100 [email protected] "cat > /var/lib/pgsql/11/tablespaces/expurgo.tgz"
|
|
```
|
|
* Acesse a pasta "indice" e compacte os arquivos:
|
|
```
|
|
$ cd /var/lib/pgsql/11/tablespaces/indice/
|
|
|
|
$ tar -zcvf - * |ssh -p 61100 [email protected] "cat > /var/lib/pgsql/11/tablespaces/indice/indice.tgz"
|
|
```
|
|
* Acesse a pasta "data" e compacte os arquivos:
|
|
```
|
|
$ cd /var/lib/pgsql/11/data/
|
|
|
|
$ tar -zcvf - backup_label current_logfiles global pg_commit_ts pg_dynshmem pg_hba.conf pg_ident.conf pg_logical pg_multixact pg_notify pg_replslot pg_serial pg_snapshots pg_stat pg_stat_tmp pg_subtrans pg_tblspc pg_twophase PG_VERSION pg_xact postgresql.auto.conf postgresql.conf postgresql.mig postgresql.org postgresql.prod postmaster.opts tablespace_map |ssh -p 61100 [email protected] "cat > /var/lib/pgsql/11/data/all.tgz"
|
|
|
|
$ tar -zcvf - base/ |ssh -p 61100 [email protected] "cat > /var/lib/pgsql/11/data/base.tgz"
|
|
```
|
|
|
|
## Servidor SLAVE
|
|
|
|
* Descompactar os arquivos tranferidos, você também pode abrir vários terminais SSH para cada comando TAR, descompactando vários arquivos ao mesmo tempo.
|
|
|
|
* Descompactar arquivos da "tablespaces":
|
|
|
|
```
|
|
$ ssh [email protected] -p 61100
|
|
|
|
$ cd /var/lib/pgsql/11/tablespaces/
|
|
|
|
$ tar -xzvf arquivo.tgz
|
|
|
|
$ tar -xzvf expurgo.tgz
|
|
```
|
|
|
|
* Descompactar arquivos do "indice":
|
|
```
|
|
$ cd /var/lib/pgsql/11/tablespaces/indice/
|
|
|
|
$ tar -xzvf indice.tgz
|
|
```
|
|
|
|
* Descompactar arquivos da "data":
|
|
```
|
|
$ cd /var/lib/pgsql/11/data/
|
|
|
|
$ tar -xzvf all.tgz
|
|
|
|
$ tar -xzvf base.tgz
|
|
```
|
|
|
|
* Ajustar PG_HBA e PostgreSQL.conf
|
|
```
|
|
$ cd bkp/
|
|
|
|
$ cp postgresql.conf recovery.conf pg_hba.conf ../
|
|
```
|
|
|
|
* Subir o banco no servidor SLAVE:
|
|
```
|
|
$ su - root
|
|
|
|
# systemctl start postgresql-11.service
|
|
```
|
|
* O comando de "start" ficará aguardando a importação de todos os arquivos wal no servidor SLAVE, onde através de outro terminal ssh pode ser acompanhado através dos logs:
|
|
```
|
|
# tail -f /var/lib/pgsql/11/data/log/postgresql-2019-09-23_101612.log
|
|
```
|
|
|
|
* Quando aparecer a seguinte nomenclatura nos logs do SGBD Slave bzip2: Can't open input file /var/lib/pgsql/11/data/archive/0000000100000C43000000A4: No such file or directory é porque a replicação já esta operando e aguardando um arquivo WAL do servidor Master. Após isso execute o comando do próximo passo para completar o Start do SGBD.
|
|
|
|
* Ao concluir a cópia, conectar via ipmadminbd no __SERVIDOR MASTER__ e executar o SQL abaixo:
|
|
(*executar somente após o banco slave estar ativo e recebendo os arquivos):
|
|
```
|
|
SELECT pg_stop_backup();
|
|
```
|
|
|
|
* Após o banco estar consistente e recebendo novos arquivos da replicação, deve-se apagar os backups utilizados para transferir a base.
|
|
```
|
|
[ : 31755] 2019-12-06 11:37:41 -03 LOG: consistent recovery state reached at F/D3FC1238
|
|
[ : 31753] 2019-12-06 11:37:41 -03 LOG: database system is ready to accept read only connections
|
|
[ : 31755] 2019-12-06 11:37:41 -03 LOG: restored log file "000000010000000F000000D4" from archive
|
|
```
|
|
* Executar os comandos para apagar os backups:
|
|
```
|
|
# rm -rf /var/lib/pgsql/11/data/all.tgz
|
|
|
|
# rm -rf /var/lib/pgsql/11/data/base.tgz
|
|
|
|
# rm -rf /var/lib/pgsql/11/tablespaces/arquivo.tgz
|
|
|
|
# rm -rf /var/lib/pgsql/11/tablespaces/expurgo.tgz
|
|
|
|
# rm -rf /var/lib/pgsql/11/tablespaces/indice/indice.tgz
|
|
```
|
|
|
|
* Acompanhamento de Logs
|
|
|
|
* O alerta __"Too Many WAL Files"__ pode existir na segunda-feira pela manhã já que no final de semana a rotina de VACUUM gera uma grande movimentação no banco.
|
|
|
|
|
|
- [`VOLTAR`](../README.md)
|
|
|