Configuração do arquivo postgresql.conf:
Por padrão no Linux (Ubuntu): /etc/postgresql/13/main/ (porém é possível alterar o caminho durante a instalação) ;
Por padrão no Windows: C:\Program Files\PostgreSQL\13\data (porém é possível alterar o caminho durante a instalação);
Existe a possibilidade de “Otimizar” o banco de dados objetivando obter o máximo desempenho em se tratando de distribuição de recursos de máquina. Para isso existem alguns parâmetros contidos dentro do arquivo de configuração do postgres: o postgresql.conf que podem ser alterados baseando-se nas configurações de hardware do servidor. Vale lembrar que essas configurações não fazem milagres, pois de nada adianta ter uma boa configuração, se as queries a serem executadas não possuem uma boa performance devido a terem sido mal construídas ou fugindo dos conceitos das formas normais e com lógica ruim.
Os parâmetros a seguir não representam a totalidade dos parâmetros existentes no arquivo postgresql.conf, ou seja, somente estão sendo apresentadas aqui as configurações principais, sendo que existem diversas outras porém que não iremos abordar.
Existe um site, o qual possibilita, mediante a informação referente a versão do postgres, quantidades de memória e cpu físicos, número de conexões simultâneas e tipo de disco, calcular as configurações ideais para o servidor de BD:
Os parâmetros são:
listen_addresses = '*' # what IP address(es) to listen on;
max_connections = 300 # (change requires restart)
shared_buffers = 33GB # min 128kB
work_mem = 3604kB # min 64kB
maintenance_work_mem = 2GB # min 1MB
effective_io_concurrency = 200 # 1-1000; 0 disables prefetching
max_worker_processes = 32 # (change requires restart)
max_parallel_maintenance_workers = 4 # taken from max_parallel_workers
max_parallel_workers_per_gather = 16 # taken from max_parallel_workers
max_parallel_workers = 32 # maximum number of max_worker_processes that
wal_buffers = 16MB # min 32kB, -1 sets based on shared_buffers
max_wal_size = 16GB
min_wal_size = 4GB
checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
random_page_cost = 1.1 # same scale as above
effective_cache_size = 99GB
default_statistics_target = 500 # range 1-10000
log_timezone = ' Etc/UTC'
autovacuum = off # Enable autovacuum subprocess? 'on'
datestyle = 'iso, dmy'
timezone = ' Etc/UTC'
lc_messages = 'C.UTF-8' # locale for system error message
lc_monetary = 'C.UTF-8 ' # locale for monetary formatting
lc_numeric = 'C.UTF-8' # locale for number formatting
lc_time = 'C.UTF-8' # locale for time formatting
Configuração do arquivo pg_hba.conf
Localização do arquivo:
No Linux (Ubuntu): /etc/postgresql/13/main/ (porém é possível alterar o caminho durante a instalação);
No Windows: C:\Program Files\PostgreSQL\13\data (porém é possível alterar o caminho durante a instalação);
Os parâmetros são:
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
## WS
host all all 20.0.6.20/32 md5
host all all 18.229.248.177/32 md5
host all all 18.229.218.233/32 md5
host all all 54.232.173.206/32 md5
host all all 54.207.85.255/32 md5
host all all 20.0.1.10/32 md5
host all all 18.229.3.73/32 md5
host all all 18.229.218.233/32 md5
host all all 10.0.62.32/32 md5
host all all 10.0.62.30/32 md5
#Zabbix
host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5
#BKPUser
host all bkp_user 127.0.0.1/32 trust
host all bkp_user 0.0.0.0/0 md5
host all bkp_user ::0/0 md5
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# windows consolidado ts
host all all 20.0.1.10/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Zabbix Agent
host all postgres 127.0.0.1/32 trust
**Lembrando que por default a partir da versão 12 do postgres, o arquivo pg_hba.conf vem configurado para que o postgres gere e autentique as senhas das roles utilizando o algoritmo SHA-256, portanto antes mesmo de criar a senha da role “postgres” será necessário realizar as alterações no arquivo semelhante como acima mudando para o algoritmo md5 (pois o Coopcred trabalha em MD5 e não sha-256)
= Configurações de IP únicas de cada servidor
***Após alteradas as configurações nos arquivos, o serviço do postgres precisará ser reiniciado.