Instalação e
Configuração
PostgreSQL
PostgreSQL o poderoso sistema de
banco de dados relacional de
código aberto.
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
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)
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)
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
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
Instalação One-Click
Instalação One-Click
Instalação One-Click
Instalação One-Click
Instalação One-Click
Instalação One-Click
Instalação One-Click
Instalação One-Click
Instalação One-Click
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
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
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
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
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
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
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.
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.
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
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
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
Instalação Código Fonte
07 - Criar usuário postgres:
# adduser postgres
# passwd postgres
08 - Criar diretório de dados (PGDATA):
# mkdir /usr/local/pgsql/data
# chown postgres:postgres /usr/local/pgsql/data/
Instalação Código Fonte
09 - Definir variáveis de ambiente no bash_profile:
# su - postgres
$ vi .bash_profile
export PATH=/usr/local/pgsql/bin:$PATH
export MANPATH=/usr/local/pgsql/share/man:$MANPATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data/
$ exit
# su - postgres
Instalação Código Fonte
10 - Criar o cluster de banco de dados:
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
11 - Inicializar o cluster de banco de dados:
$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
Instalação Código Fonte
12 - Criar e acessar um banco de dados teste:
$ createdb pgday
$ psql pgday
13 - Configurar inicialização automática:
# cd postgres/postgresql-9.6.6/contrib/start-scripts/
# cp linux /etc/init.d/postgresql
# chmod +x /etc/init.d/postgresql
Instalação Código Fonte
Verifique se é necessário alterar as variáveis PREFIX, PGDATA, PGUSER e
PGLOG do arquivo /etc/init.d/postgresql.
# chkconfig --add postgresql
# systemctl enable postgresql
# systemctl start postgresql
Obrigado pela
atenção de todos
Johnes Castro
Johnes.mendes@tecnisys.com.br
https://www.linkedin.com/in/joh
nes-castro-1144ba103/

Apresentação PGDAY - instalação e configuração - PostgreSQL

  • 1.
    Instalação e Configuração PostgreSQL PostgreSQL opoderoso sistema de banco de dados relacional de código aberto.
  • 2.
    Apresentação • Johnes CastroMendes • 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 vamoster 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ódigoFonte • 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
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    Instalação Via RPM PacoteDescriçã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órioPostgreSQL 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 Instalaros 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 Criaro 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 Dentrodo .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 possuiuma 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 deautenticaçã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
  • 27.
    Instalação Código Fonte 07- Criar usuário postgres: # adduser postgres # passwd postgres 08 - Criar diretório de dados (PGDATA): # mkdir /usr/local/pgsql/data # chown postgres:postgres /usr/local/pgsql/data/
  • 28.
    Instalação Código Fonte 09- Definir variáveis de ambiente no bash_profile: # su - postgres $ vi .bash_profile export PATH=/usr/local/pgsql/bin:$PATH export MANPATH=/usr/local/pgsql/share/man:$MANPATH export LD_LIBRARY_PATH=/usr/local/pgsql/lib export PGDATA=/usr/local/pgsql/data/ $ exit # su - postgres
  • 29.
    Instalação Código Fonte 10- Criar o cluster de banco de dados: $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 11 - Inicializar o cluster de banco de dados: $ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
  • 30.
    Instalação Código Fonte 12- Criar e acessar um banco de dados teste: $ createdb pgday $ psql pgday 13 - Configurar inicialização automática: # cd postgres/postgresql-9.6.6/contrib/start-scripts/ # cp linux /etc/init.d/postgresql # chmod +x /etc/init.d/postgresql
  • 31.
    Instalação Código Fonte Verifiquese é necessário alterar as variáveis PREFIX, PGDATA, PGUSER e PGLOG do arquivo /etc/init.d/postgresql. # chkconfig --add postgresql # systemctl enable postgresql # systemctl start postgresql
  • 32.
    Obrigado pela atenção detodos Johnes Castro Johnes.mendes@tecnisys.com.br https://www.linkedin.com/in/joh nes-castro-1144ba103/