PostgreSQL Prático/Configurações/Configurações Diversas

Origem: Wikilivros, livros abertos por um mundo aberto.

11.2 - postgresql.conf[editar | editar código-fonte]

O postgresql.conf permite configurar as demais funcionalidades do PostgreSQL

Liberando acesso via rede TCP/IP na versão 7.4.x: tcp_socket = true (default = false)

No 8.0.x: listen_address = '10.0.0.16'

Alguns configurações do postgresql.conf: Regra geral: os valores que vêm comentados com # são os valores default. Se formos alterar algum idealmente devemos fazer uma cópia da linha e descomentar, para sempre saber o valor default.

sameuser é o usuário padrão no ident.conf (significa o mesmo user do sistema operacional).

# FILE LOCATIONS
#hba_file = 'ConfigDir/pg_hba.conf'   # host-based authentication file

# CONNECTIONS AND AUTHENTICATION
# - Connection Settings –
#
# O parâmetro listen_address define que interfaces de rede do servidor, através de seus endereços IP, aceitam tentativas de conexão via TCP/IP
#listen_addresses = 'localhost'         # Quais endereços IP ou nomes onde serão feitas as escutas; 
                          # lista de endereços/nomes separados por vírgula;
                          # se fôr omitido, o default é 'localhost'
                          # '*' = todas interfaces de rede estarão habilitadas para escutar requisições
#port = 5432
max_connections = 100 (duas são reservadas para o superusuário)
# note: increasing max_connections costs ~400 bytes of shared memory per 
#superuser_reserved_connections = 2

# - Security & Authentication -
#authentication_timeout = 60            # 1-600, in seconds
#ssl = off
#password_encryption = on
# RESOURCE USAGE (except WAL)
# - Memory -
shared_buffers = 1000         # min 16 or max_connections*2, 8KB each
#temp_buffers = 1000          # min 100, 8KB each
#max_prepared_transactions = 5          # can be 0 or more
# note: increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
#work_mem = 1024                        # min 64, size in KB
#maintenance_work_mem = 16384           # min 1024, size in KB
#max_stack_depth = 2048                 # min 100, size in KB
# - Free Space Map -
#max_fsm_pages = 20000      # min max_fsm_relations*16, 6 bytes each
#max_fsm_relations = 1000   # min 100, ~70 bytes each

Algumas Configurações no postgresql.conf
...
# AUTOVACUUM PARAMETERS
#autovacuum = off			# enable autovacuum subprocess?
...
# - Locale and Formatting -

#datestyle = 'iso, mdy'  # Era o original
datestyle = 'sql, european'  # 	Formato dd/mm/yyyy
...
#client_encoding = sql_ascii		
#client_encoding = latin1		# Suporte à acentuação do Brasil
...

Consultando no psql: SHOW DATESTYLE;

Retorna -> SQL, DMY

Ajustando o estilo da data no psql: SET DATESTYLE TO SQL, DMY;

ALTER ROLE nomeuser SET datestyle TO SQL, DMY;

O caminho de entrada num banco do PostgreSQL: -> postgresql.conf -> ph_hba.conf -> ident.conf (caso este exista e seja citado no pg_hba.conf)

O encoding e outros recursos podem ser passados para cada banco, no momento de sua criação, como por exemplo:

De fora do banco: createdb -E LATIN1 nomebanco.

De dentro do banco (psql): CREATE DATABASE nomebanco WITH ENCODING 'LATIN1';

Para a relação completa dos encoding suportados veja tabela 21-2. Para visualizar a codificação no psql digite \encoding.

Para mudar a codificação de um banco dinamicamente, estando nele utilize: \encoding novoencoding

Como também podemos utilizar o comando SET: SET CLIENT_ENCODING 'LATIN1'; Consultando o encoding existente SHOW CLIENT_ENCODING;

PARA DESFAZER AS ALTERAÇÕES E VOLTAR À CODIFICAÇÃO PADRÃO: RESET CLIENT_ENCODING;

Mais detalhes: http://www.postgresql.org/docs/8.1/interactive/runtime-config.html#CONFIG-SETTING

Para saber os locales existentes execute de dentro do psql: \l -- Exibe bancos, donos e locales (Codificação)

Em cada conexão com o PostgreSQL, somente se pode acessar um único banco. No postgresql.conf podemos definir o encoding através da variável client_encoding.