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:


https://pgtune.leopard.in.ua/




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.