2. Apresentação
• Johnes Castro Mendes
• 21 Anos
• Cursando Segurança da Informação
• Tecnisys Tecnologias Inovadoras
• Analista de Suporte em Banco de dados
• Trabalho com PostgreSQL desde da sua versão 9.5
3. O que vamos ter nesse workshop?
• Instalando e configurando o PostgresSQL 9.6.6
• Explicar os 3 modos que o PostgreSQL pode ser instalado
• Instalação One-Click
• Instalação via RMP
• Instalação via código fonte
• Configurando a instância para ser usada
• Variáveis de ambiente
• Contextualizando os diretórios do Cluster
• Contextualizando os principais arquivos de configuração
• postgresql.conf
• Pg_hba.conf (Host-Based Authentication)
4. Modos de instalação
One-Click
• Fácil instalação
• Modo gráfico
• Intuitivo
• Usado bastante em instalação em Windows (Se você pensa em instalar o
Postgres no Windows saia da sala)
5. Modos de instalação
RPM
• Quando a instalação é feita pelo RPM, fica-se preso às escolhas da
pessoa que construiu o pacote
• Instalação bastante utilizada em sistemas operacionais Linux
• Não é tão difícil quanto parece
6. Modos de instalação
Código Fonte
• Controle completo sobre as configurações opcionais, opções de
compilação, diretórios de instalação, entre outros
• Instalação pouco utilizada
• Se você pensa em ser um commiter do PostgreSQL, deve saber fazer essa
instalação
16. Instalação Via RPM
Pacote Descrição
postgresql Clientes, bibliotecas e documentação
postgresql-server Programas (e data files) requeridos para executar o servidor
postgresql-devel Arquivos requeridos para criar novas aplicações clientes
postgresql-pltcl Cliente Tcl e PL/Tcl
postgresql-plperl Biblioteca Perl do PostgreSQL
postgresql-plpython Biblioteca Python do PostgreSQL
postgresql-test Testes de regressão para PostgreSQL
postgresql-libs Bibliotecas compartilhadas para aplicações clientes
postgresql-docs Documentação extra não incluída no pacote base postgresql
postgresql-
debuginfo
Informação de debug para o pacote postgresql ou para o
desenvolvimento de aplicações que usam este pacote
postgresql-contrib Software distribuídos de terceiros
17. Instalação Via RPM
Repositório PostgreSQL 9.6
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-
x86_64/pgdg-centos96-9.6-3.noarch.rpm
Incluir o repositório:
yum install
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-
x86_64/pgdg-centos96-9.6-3.noarch.rpm
18. Instalação Via RPM
Instalar os pacotes:
yum install postgresql96-server.x86_64 -y
yum install postgresql96-contrib.x86_64 -y
yum install postgresql96-libs.x86_64 –y
No usuário root, habilitar o serviço.
systemctl enable postgresql-9.6
19. Instalação Via RPM
Criar o cluster com o initdb:
/usr/pgsql-9.6/bin/initdb -D /var/lib/pgsql/9.6/data
Startar o banco:
/usr/pgsql-9.6/bin/pg_ctl -D /var/lib/pgsql/9.6/data -l logfile start
Adicionar as variáveis de ambiente do postgres no linux:
Como usuário postgres
cd ~
vim .bash_profile
20. Instalação Via RPM
Dentro do .bash_profile acrescente os seguintes parâmetros:
PGDATA=/var/lib/pgsql/9.6/data
export PGDATA
PATH=:$PATH:/usr/pgsql-9.6/bin
export PATH
E depois fazer logoff no usuário postgres
exit
E logar novamente
su - postgres
21. Instalação Via RPM
Por último, configurar as conexões no pg_hba para aceitar qualquer tipo de
conexão:
Dentro do usuário Postgres
vim /var/lib/pgsql/9.6/data/pg_hba.conf
E dentro do pg_hba.conf acrescentar as informações:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 trust
# IPv6 local connections:
host all all ::1/128 trust
22. POSTGRESQL.CONF
O Postgres possui uma instância que suporte mais de um banco de dados.
Portanto as configurações de instância são diferentes das configurações
individuais de cada banco de dados, embora, obviamente, uma afete a
outra, pois elas coexistem juntamente.
postgresql.conf
O arquivo de configuração da instância se chama 'postgresql.conf", e pode
ser encontrado dentro do diretório de dados do Postgres (dentro do
$PGDATA). Ele é um arquivo de texto e portanto pode ser visualizado
através de leitores de texto como vi ou vim no Linux e notepad no
Windows.
Existem muitas configurações que podem ser feitas neste arquivo.
23. PG_HBA.CONF
O esquema de autenticação no Postgres chama-se "Host Based
Autentication" (HBA), nessa arquivo configuramos o servidor para aceitar
ou não conexão, não se prendendo em apenas uma autenticação normal
(usuário e senha).
Na prática, mesmo que o usuário tenha acesso ao banco com usuário e
senha, apenas máquinas (IP) cadastradas poderão acessar. Esse tipo de
segurança impede vários tipos de ataques.
As configurações são realizadas em um arquivo que fica no $PGDATA,
esse arquivo é lido pelo serviço do Postgres quando o mesmo é iniciado. O
arquivo é chamado de pg_hba.conf.
24. Instalação Código Fonte
01 - Fazer o download do código fonte:
https://www.postgresql.org/ftp/source/
02 - Criar diretório:
# mkdir postgres
# cd postgres
25. Instalação Código Fonte
03 - Mover o arquivo do código fonte para o diretório criado (use o
MobaXterm ou o WinSCP) e descompactar:
# tar -xvzf postgresql-9.6.2.tar.gz
04 - Instalar dependências:
# yum install readline-devel
# yum install zlib-devel
# yum install gcc
# yum install perl
26. Instalação Código Fonte
05 - Configurar, compilar e instalar postresql:
# ./configure
# make
# make install
06 - Compilar e instalar postgresql-contrib:
# cd contrib
# make
# make install