Você está na página 1de 32

MODELO DE TEMPLATE DE AULA

Disciplina: ADMINISTRAÇÃO DE BANCO DE DADOS I


Aula 03: CONFIGURAÇÃO DO CLUSTER POSTGRESQL

Apresentação
Apesar de termos realizado a instalação do SGBD, dependendo do SO e tipo de
instalação, ele ainda não estará pronto para ser utilizado.
Temos ainda que criar a estrutura do diretório que contém os arquivos de
dados , denominada cluster, do banco de dados e fazer a sua configuração
inicial.
Além disso veremos nesta aula como parar e iniciar o servidor e como fazer
conexão ao mesmo.

Objetivos

Objetivo 1 – Realizar a configuração inicial


Objetivo 2 – Criar o Cluster de Banco de Dados
Objetivo 3 – Iniciar e parar o servidor

1
Conteúdo online
Operações pós instalação

1. DEFININDO VARIÁVEIS DE AMBIENTE

Um passo importante para facilitar a administração do SGBD é configurarmos


variáveis de ambiente no Sistema Operacional, desta forma não precisaremos
informar o caminho nos diversos comandos

1.1. Configurando no Linux


Para adicionar o diretório dos binários ao path do superusuário do banco
(Postgres) e definir a variável de ambiente PGDATA que indica o diretório
de dados do SGBD você deve seguir os seguintes passos:
 Faça conexão como o usuário postgres

su - postgres

 Edite o arquivo bashrc

vi ~/.bashrc

 Acrescente as seguintes linhas ao


arquivo

PATH=$PATH:/usr/local/pgsql/bin:$HOME/bin
PGDATA=/db/data/
export PATH PGDATA

As alterações entram em vigor após a reinicialização do sistema.

Para que entrem em vigor imediatamente você deve dar o comando:

source .bashrc

2
1.2. Configurando no Windows

Caixa de atenção
Para as configurações e administração do banco de dados estamos
utilizando um postgreSql 12 instalado em um windows server 19 na AWS
Fim caixa de atenção

A configuração das variáveis de ambiente no Windows é realizada da


seguinte forma:

 Acesse o painel de controle e escolha


System

 A seguir escolha advanced system


setting

3
Na próxima janela escolha environment
variables

4
 Defina o nome da variável e seu valor

5
2. Inicializando a área de dados

Agora para que o SGBD funcione é necessário que seja realizada a inicialização
da área de dados do SGBD, que é denominada cluster de banco de dados

Link cluster de banco de dados

O cluster de banco de dados é composto pelo diretório que contem os dados e os


arquivos de configuração do PostGreSql.

Fim link cluster de banco de dados

6
Quando se realiza a instalação no LINUX a partir dos pacotes ou no Windows a
área de dados é, normalmente, criada de forma automática, se a instalação foi
realizado via os fontes voce deve criar esta área.

No caso de ter que ser criada será utilizado o aplicativo initdb

Caixa de atenção

Em ambientes de produção durante a instalação é altamente recomendável que


você coloque o cluster em um disco a parte do disco do S.O. e até mesmo do disco
onde instalou o SGBD.
O Acesso ao disco é um grande gargalo no desempenho do banco. Manter as bases
dados no mesmo disco do SGBD e ou do S.O faz com que o acesso a mesma seja
concorrente com os outros software, o que degrada o desempenho do sistema.
Além disso a segregação do cluster em um disco específico facilita a manutenção,
permitindo sua expansão e ou transferência para HD mais rápidos de forma mais
simples.

Fim caixa de atenção

2.1. initdb
Este utilitário de linha de comando cria um cluster de banco de dados do
PostGreSql.
Para isso ele irá criar os diretórios onde os banco de dados vão ser armazenados,
gerar o catálogo do banco de dados e criará o banco de dados de modelo
(template1) que terá seu estrutura copiada para todos os banco de dados que forem
criados posteriormente.

Link catálogo
O catálogo é um conjunto de tabelas que armazenam as informações utilizadas pelo
SGBD para fazer o gerenciamento do sistema.
Elas não pertencem a nenhum banco de dados em particular mas são
compartilhadas com todos.

7
Fim link catalogo

Este utilitário deve ser executado pelo mesmo usuário que vai executar o servidor (o
usuário postgres). Pois este necessita ter acesso aos arquivos e diretórios criados
pelo utilitário.

No Linux embora o initdb tente criar o diretório , poderá ocorrer dele não conseguir
por falta de permissão de acesso, porque geralmente o diretório é um subdiretório
de um diretório do root.
Para resolver esta situação voce deve se logar como root criar o diretório vazio e
usar o comando chow para tornar o postgres o proprietário do diretório como no
seguinte exemplo:
sudo chown -R postgres /db

Caixa de atenção
No Windows voce pode executar o initdb como admin do SO.

O initdb inicializa o idioma e a codificação do conjunto de caracteres do cluster


definindo:
 A ordem de intercalação (LC_COLLATE)
 As classes de conjunto de caracteres (LC_TYPE)
Obs: Está configurações não podem ser mudadas após serem estabelecidas e
ficam ativas até o cluster ser eliminado.

A sintaxe da chamada do utilitário é a seguinte:

initdb [opção...] --pgdata | -D diretório


Opções
-A método_de_autenticação
--auth=método_de_autenticação
Estabelece qual método de autenticação deve ser utilizado pelos usuários locais.
-D diretório

8
--pgdata=diretório
Determina o diretório onde o cluster de banco de dados será armazenado. É a única
opção obrigatória.
Quando existe a variável de ambiente PGDATA, você não precisa definir o diretório
-E codificação
--encoding=codificação
Determina a codificação do banco de dados de modelo.
--locale=idioma
Determina, para o cluster, o idioma padrão. Se omitida o idioma é herdado do
ambiente.
-U nome_do_usuário
--username=nome_do_usuário
Especifica o superusuário do banco de dados.
Se omitido assume o nome do usuário executando o initdb.
Caixa de atenção
Normalmente é preferível manter o nome postgres como superusuário
Vejamos agora um exemplo utilizando o ambiente do Windows server
Repare no comando initdb “C/postgres/data”
Caixa de Atenção
Foi direcionada a criação para um diretório diferente de PGDATA porque na
instalação do Windows já havia sido criado um cluster na localização padrão
Fim caixa de atenção

9
Foi criado o diretório e as demais estruturas conforme voce pode ver na figura 1.
Note particularmente os arquivos de configuração presente (pg_hba e postgresql)

Fig 1 – Agrupamento Criado

10
2.2. Iniciando o PostgreSQL
Um vez criado o cluster temos que inicializa-lo.
Caixa de atenção
Novamente na instalação do Windows e por pacotes a inicialização é realizada
automaticamente.
Fim caixa de atenção

No Linux há diversas maneiras de iniciar o PostgreSQL. O nome do executável


principal é postgres, assim podemos iniciar o banco apenas chamando-o:
$ postgres -D /db/data
Ou, se a variável PGDATA tiver sido definida, simplesmente:
$ postgres

No Windows como ele se instala com um serviço voce deve iniciar ou para o serviço
no painel de controle:

11
Porém, a forma mais simples de iniciar o banco em background é usando o utilitário
pg_ctl.

2.3. pg_ctl
O pg_ctl é um aplicativo de linha de comando do SO que permite iniciar, parar ou
reiniciar PostgreSQL
Apesar de ser possível poder iniciar o servidor manualmente este utilitário facilita o
trabalho por fornecer um conjunto de parâmetros para controlar a parada.
Os modos disponíveis são:
 iniciar (start), inicia o servidor
 parar (stop), para o servidor referente ao cluster especificado.
 reiniciar (restart) para e a seguir reinicia o cluster.
 recarregar (reload) força o postmaster, a ler novamente os arquivos de
configuração (postgresql.conf, pg_hba.conf, etc.). Desta forma as opções do
arquivo de configuração que não requerem o reinício completo passam a valer

A sintaxe da chamada do utilitário para iniciar o banco de dados é a seguinte:


pg_ctl start [-w] [-s] [-D diretório_de_dados] [-o opções] [-p caminho]
Opções
-D diretório_de_dados
Informa o diretório dos arquivos de dados do cluster. Se não for informado é utilizado
o estabelecido na variável de ambiente PGDATA.
-o opções
-p caminho
Informa a localização do postmaster..
-w
Aguarda, por 60 segundo, o início ou a parada terminar. Expira em 60 segundos.

Vejamos um exemplo:

12
Observe o comando
pg_ctl -D “C/postgres/data” start

Foi inicializado o cluster criado com o initdb no Windows server.

Parando o Servidor
Para parar o servidor a sintaxe é:
pg_ctl stop [-W] [-D diretório_de_dados] [-m s[mart] | f[ast] | i[mmediate] ]
- D diretório_de_dados
Informa o diretório dos arquivos de dados do cluster. Se não for informado é utilizado
o estabelecido na variável de ambiente PGDATA.
-W
Padrão para inícios e reinícios, não aguarda o termino da operação anterior.
-m modo
Especifíca o modo de parada (shutdown). O modo pode ser smart, fast ou
immediate, ou a primeira letra de um desses três.

Link modo de parada


Existem 3 modos de parada no PostGreSql:
 “Smart” (inteligente) aguarda todos os clientes desconectarem. Este é o
padrão.
 “Fast” (rápido) não aguarda os clientes desconectarem. Realiza rollback das
transações ativas e desconecta os clientes e o servidor é parado.
 “Immediate” (imediato) é similar ao servidor ser desligado por falta de
energia. Mata o servidor sem fazer checkpoint ocasionando a necessidade de
se fazer a recuperação do sistemas ao realizar a reinicialiozação
Fim link modo de parada
Vejamos novamente um exemplo no Windows server:

13
pg_ctl stop -D “C\program files\postgreSQL\12\data”

Neste caso foi parado o cluster que havia sido instalado automaticamente pelo
instalador do Windows.

Para reinicia-lo basta comandar

Caixa de atenção
Note que os comandos são emitidos no prompt de comando do Windows e dentro
do diretório bin no caso C\program files\postgreSQL\12\bin onde ficam os utilitário
Fim caixa de atenção

Outras variações do pg_ctl

pg_ctl restart [-w] [-D diretório_de_dados] [-m s[mart] | f[ast] | i[mmediate] ] [-o
opções]
pg_ctl reload [-D diretório_de_dados]

Este comandos realizam respectivamente o reinicio e o reload do cluster.

3. CONEXÕES NO POSTGRESQL
Para realizar uma conexão no postgresql a partir da máquina local você pode utilizar

14
ou o psql ou o pgadmin.

Vamos ver cada um deles

3.1. PSQL
O PSQL é uma ferramenta de linha de comando para consultar e administrar dados
no Postgresql.

Ela pode ser chamada via terminal no Linux bastando após e logar com postgres
comandar

$ psql

Quando acionado assim, sem parâmetros, ele tentará realizar a conexão ao servidor
na máquina local, na porta padrão 5432 e na base “postgres”.

Para acessar uma máquina remota a linha de comando deverá informar estes
parâmetros com por exemplo

$ psql -h estacio -p 5432 -d aula -U aluno

-h é o servidor (host)

-p a porta

-d a base (database)

-U o usuário

No caso do Windows ela fica disponível na lista de programas (Fig2)

15
Fig 2 programas instalados no windows

Ao ser acionado aparece a janela do utilitário (fig3)

Fig 3 Interface do PSQL

No caso cada valor entre colchetes é o padrão que será utilizado se voce der enter
na linha.

No caso foi realizada a seguinte conexão:


Server – maquina local (localhost)
Database – postgres

16
Porta – 5432
Usuário – postgres

Além dos comandos do PostgreSQL, o psql possui uma série de comandos próprios
que facilitam tarefas rotineiras.

Por exemplo, para listar todas as bases do servidor comande \l

Note que existem 3 base de dados criadas:


 Postgres
 Template0
 Template1

Elas são criadas automaticamente quando o cluster é inicializado.

Para acessar o help digite \?

17
Para executar um comando SQL ou de administração termine o comando com “;”

SELECT * FROM pg_database;

O comanda gera um resultado similar ao \l, ele consulta o catalogo do sistema e


retorna as bases de dados existentes no servidor.

Para help de comandos Sql digite \h

18
Para sair do psql, use \q

O psql é uma ferramenta de administração muito importante para o DBA, seja no


Windows seja no Linux.

No Linux ,particularmente, quando você não instala a interface gráfica no servidor


ele é praticamente a única ferramenta que você poderá utilizar.

3.2. PGADMIN
O PGADMIN é um interface gráfica de administração do PostGreSql.

Ele fica disponível na lista de programas instalados (Fig3)

19
Fig 3 programas instalados no windows

A clicar o programa será aberto no browser

20
Fig 4 Interface PGAdmin4

A clicar em server serão pedidos as informações de conexão.


Após digitar as informações voce pode clicar em server e ai a janela da esquerda
funciona como uma estrutura de diretórios com as informações do servidor.

Caixa de atenção
Note que aparece apenas um database o postgres.
Os databases template0 e template1 não aparecem na listagem do PGAdmin, mas
eles existem.
Fim caixa de atenção

4. EDITANDO OS ARQUIVOS DE CONFIGURAÇÃO

21
Conforme vimos na aula 1 o PostGreSql possui alguns arquivos que balizam o seu
funcionamento:
 pg_hba.conf - é o arquivo de configuração para autenticação dos usuários.
Funciona determinando quem pode acessar a base de dados.
 Pg_ident.conf – usado pelo esquema ident de autenticação dos Sistemas
Operacionais, mapeia usuários do SO e da base de dados. Por padrão fica vazio.
 postgresql.conf – arquivo principal de configuração do SGBD. Possui uma lista
de parâmetros que controla o funcionamento do cluster.

Além dos arquivos de configuração, existem outros arquivos com informações de


controle
utilizadas por utilitários como o pg_ctl. q São eles:
 postmaster.pid: é um arquivo lock para impedir a execução do PostgreSQL
duplicado,contendo o PID do processo principal em execução e outras
informações, tais como a hora em que o serviço foi iniciado;
 postmaster.opts: contém a linha de comando, com todos os parâmetros,
usada para iniciar o PostgreSQL e que é usada pelo pg_ctl para fazer o
restart;
 PG_VERSION: contém apenas a versão do PostgreSQL.
Estes arquivos ficam em no diretório de dados do servidor, como por exemplo o
mostrado na Fig5, correspondente a instalação em um Windows server

22
Fig5 – Localização dos Arquivos de Configuração

23
4.1. Postgresql.conf
Existem diversos parâmetros de configuração que balizam o funcionamento do
servidor do PostGreSql.
Diversos deste parâmetros são definidos no arquivo postgresql.conf
A fig 6 mostra o início do arquivo instalado no servidor Windows server

Fig6 – Arquivo postgresql.conf

24
As entradas deste arquivo obedecem a algumas regras:
 Um parâmetro é especificado por linha
 O sinal de igual entre o nome do parâmetro e do valor é opcional
 Espaços e linhas em branco são ignorados
 O caracter # insere um comentário
 Valores de paramentros que não são indicadores simples ou números devem
vir entre apóstrofos(‘)
Abaixo temos um exemplo de entradas válidas:

# Isto é um comentário
log_connections = yes
log_destination = 'syslog'
search_path = '$user, public'

O arquivo de configuração é lido sempre que o servidor é inicializado ou então a


partir do comando pg_ctl reload.

Caixa de atenção
Algumas alterações podem ser feitas com o servidor no ar, mas outras somente tem
efeito após a reinicialização do servidor, não adiante fazer reload.
As que exigem restart constam no próprio arquivo a informação

Fim Caixa de Atenção

25
A maioria dos parâmetros do arquivo possuem comentários com suas faixas de
valores.
Os principais parâmetros são os listados na tabela abaixo

Fonte Administração de Banco de Dados – Fábio Caiut

26
A edição do Arquivo pode ser realizada com qualquer editor de texto como o
NotePad do Windows ou o VI do Linux

27
Atividades

Atividade 1: Acesse a AWS e crie um instancia do Windows server 2019

Gabarito comentado
Após a criação a instancia deve aparecer na lista de instâncias

Atividade2:
Configure o acesso remoto a área de trabalho da instancia
Para fazer a configuração siga este tutorial
Link tutorial
https://docs.aws.amazon.com/pt_br/AWSEC2/latest/WindowsGuide/
connecting_to_windows_instance.html
Gabarito Comentado:
Após a configuração deve ser possível o acesso remoto

28
Atividade3: Instalar o PostGreSql no Windows server
Realize o download e a instalação do PostgreSql no Windows Server

Gabarito Comentado:
Após a instalação devem aparecer os programas no menu do windows

29
Atividade 4: Acesse o PSQL e o PGadmin e faça conexão no SGBD.

Gabarito Comentado:
Conexão PSQL

Conexão PGADMIN

30
Referências
Manual do PostGreSql
Santos E. V. Administração do PostGreSql 1ª.Ed 2017
Caiut F – Administração de Banco de Dados 1ª.Ed 2015
Próximos passos

Na próxima aula veremos iniciaremos o estudo da configuração da segurança do


SGBD

Explore +

Acesse o site do projeto do postgresql


https://www.postgresql.org/

31
Documentação oficial do SGBD
https://www.postgresql.org/docs/

Documentação oficial do PGAdmin4


https://www.pgadmin.org/docs/pgadmin4/development/

Livro PostGreSql
https://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico

Leia o tutorial que ensina a instalor o PGAdmin no modo servidor o linux


https://www.digitalocean.com/community/tutorials/como-instalar-e-configurar-
o-pgadmin-4-no-modo-servidor-pt
Assista ao vídeo do tutorial do pgadmin4
https://www.youtube.com/watch?v=113VffHDYDU
lembre de acionar as legendas e a tradução

32

Você também pode gostar