Commit inicial automático

This commit is contained in:
2025-11-28 00:29:42 -03:00
commit 5cd1348e69
513 changed files with 18638 additions and 0 deletions
+207
View File
@@ -0,0 +1,207 @@
# 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)