Histórico da Página
...
O uso do Barman tem como propósito principal diminuir o MTTR (Mean Time To Repair) - Tempo médio para reparo entre falhas - e manter o banco de dados com backup íntegro, mesmo em caso de falha total no servidor principal do banco de dados.
Nesta página , foram utilizadas duas VMs, sendo uma nomeada são demonstrados os passos com duas máquinas diferentes, uma contendo a instalação padrão do PostgreSQL para seu ambiente e outra contendo a configuração do Barman. Note que nos comandos de exemplo, estas são referidas como vm-postgresql01 e a outra como vm-barman.
Caso o usuário postgres não possua senha, configure uma para o mesmo.
, respectivamente.
No servidor PostgreSQLVMPOSTGRESQL
Altere o arquivo /etc/hosts e inclua o servidor vmbarmando Barman:
Bloco de código |
---|
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.4.149 vm-barman.xxxx.xxxx.oraclevcn.com vm-barman 10.0.4.178 vm-postgresql01.xxxx.xxxx.oraclevcn.com vm-postgresql01 |
Logo após na vmpostgresql01 crie o usuário Após isto, é necessária a criação dos usuários barman e streaming_barman.
Bloco de código | ||
---|---|---|
| ||
createuser -s -P barman |
...
createuser -s -P streaming_barman |
No arquivo de configuração do PostgreSQL, altere os seguintes parâmetros:
Bloco de código | ||
---|---|---|
| ||
vim /var/lib/pgsql/12/data/postgresql.conf |
Original | Após alteração |
---|---|
# listen_addresses = 'localhost' | listen_addresses = '*' |
# max_wal_senders = 10 | max_wal_senders = 2 |
# max_replication_slots = 10 | max_replication_slots = 2 |
No Também é necessária a alteração no arquivo de controle dos métodos de autenticação (pg_hba.conf, altere o seguinte: vim ).
Bloco de código | ||
---|---|---|
| ||
vim /var/lib/pgsql/12/data/pg_hba.conf |
Original | Após alteração |
---|---|
# IPv4 local connections: | # IPv4 local connections: |
host all all 127.0.0.1/32 ident | host all all 0.0.0.0/0 md5 |
host replication streaming_barman 10.0.4.149/32 trust |
Nota | ||
---|---|---|
| ||
Verifique com a área de segurança de rede, qual o melhor formato de configuração para melhor segurança do ambiente, de acordo com a política de cada empresa. |
Reinicie o PostgreSQL:
...
Após as alterações nos arquivos supracitados, reinicie o serviço do banco de dados.
Bloco de código |
---|
systemctl restart postgresql-12.service |
VMBARMANServidor do Barman
Altere o arquivo /etc/hosts e inclua o servidor vmpostgresql:
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 |
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 |
10.0.0.166 vmbarman. |
xxxx. |
xxxx.oraclevcn.com vmbarman |
10.0.0.194 vmpostgresql. |
xxxx. |
xxxx.oraclevcn.com vmpostgresql |
Após Será necessário também instalar o PostgreSQL e configurar, instale o barman: sudo dnf install -y nesta máquina.
Bloco de código | ||
---|---|---|
| ||
sudo dnf install -y barman |
Crie o arquivo de senhas (/var/lib/barman), e de a permissão necessária:
Bloco de código |
---|
...
vim .pgpass |
...
vm-postgresql01:5432:postgres:barman:Barman@123 |
...
vm-postgresql01:5432:postgres:streaming_barman:Barman@123 |
...
## Permissão no arquivo |
...
chmod 0600 .pgpass |
Configurar barman.conf:
Bloco de código |
---|
vim /etc/barman.conf |
...
compression = gzip |
Realizar a cópia do arquivo: streaming-server.conf-template, para acesso ao servidor do postgresql:
Bloco de código |
---|
cp streaming-server.conf-template vm-postgresql.conf |
Alterar o arquivo:
Bloco de código |
---|
[vm-postgresql] |
...
conninfo = host=vm-postgresql user=barman dbname=postgres |
...
streaming_conninfo = host=vm-postgresql user=streaming_barman |
...
streaming_backup_name = barman_streaming_backup |
...
create_slot = auto |
...
streaming_archiver_name = barman_receive_wal |
...
streaming_archiver_batch_size = 50 |
...
path_prefix = "/usr/pgsql-12/bin" |
Para realizar um backup no Servidor Barman, utilize o seguinte comando:
Bloco de código |
---|
[barman@vmbarman ~]$ barman backup vmpostgresql |
...
WARNING: No backup strategy set for server 'vmpostgresql' (using default 'exclusive_backup'). |
...
WARNING: The default backup strategy will change to 'concurrent_backup' in the future. Explicitly set 'backup_options' to silence this warning. |
...
Starting backup using rsync-exclusive method for server vmpostgresql in /var/lib/barman/vmpostgresql/base/20220304T120404 |
...
Backup start at LSN: 0/C000028 (00000001000000000000000C, 00000028) |
...
Starting backup copy via rsync/SSH for 20220304T120404 |
...
Copy done (time: 1 second) |
...
Asking PostgreSQL server to finalize the backup. |
...
Backup size: 24.5 MiB |
...
Backup end at LSN: 0/C000100 (00000001000000000000000C, 00000100) |
...
Backup completed (start time: 2022-03-04 12:04:05.098223, elapsed time: 2 seconds) |
...
Processing xlog segments from file archival for vmpostgresql |
...
00000001000000000000000B |
...
00000001000000000000000C |
...
00000001000000000000000C.00000028.backup |
Liste o backups realizados com o seguinte comando:
Bloco de código |
---|
[barman@vmbarman barman.d]$ barman list-backup vmpostgresql |
...
vmpostgresql 20220304T120404 - Fri Mar 4 12:04:06 2022 - Size: 24.5 MiB - WAL Size: 96.5 KiB |
...
vmpostgresql 20220303T210358 - Thu Mar 3 21:04:00 2022 - Size: 24.5 MiB - WAL Size: 32.2 KiB |
...
vmpostgresql 20220303T210310 - Thu Mar 3 21:03:11 2022 - Size: 24.5 MiB - WAL Size: 32.2 KiB |
...
vmpostgresql 20220303T210206 - Thu Mar 3 21:02:07 2022 - Size: 24.5 MiB - WAL Size: 32.2 KiB |
Posso listar os detalhes de um backup específico:
Bloco de código |
---|
[barman@vm-barman ~]$ barman show-backup vm-postgresql01 20220607T193746 |
...
Backup 20220607T193746: |
...
Server Name : vm-postgresql01 |
...
System Id : 7106500250670266068 |
...
Status : DONE PostgreSQL Version : 120011 |
...
PGDATA directory : /var/lib/pgsql/12/data |
...
Base backup information: |
...
Disk usage : 23.6 MiB (23.6 MiB with WALs) |
...
Incremental size : 23.6 MiB (-0.00%) |
...
Timeline : 1 |
...
Begin WAL : 000000010000000000000009 |
...
End WAL : 000000010000000000000009 |
...
WAL number : 1 |
...
WAL compression ratio: 99.90% |
...
Begin time : 2022-06-07 19:37:46.705044+00:00 |
...
End time : 2022-06-07 19:37:47.295758+00:00 |
...
Copy time : less than one second |
...
Estimated throughput : 40.6 MiB/s |
...
Begin Offset : 40 |
...
End Offset : 0 |
...
Begin LSN : 0/9000028 |
...
End LSN : 0/A000000 |
...
WAL information: |
...
No of files : 0 |
...
Disk usage : 0 B |
...
Last available : 000000010000000000000009 |
...
Catalog information: |
...
Retention Policy : not enforced |
...
Previous Backup : 20220607T193735 |
...
Next Backup : - (this is the latest base backup) |
...