Académique Documents
Professionnel Documents
Culture Documents
TUTORIAL
CURSO DE POSTGRESQL
Setor de Administrao de Banco de Dados
Equipe de Trabalho
SUMRIO
1.
POSTGRES .................................................................................................................... 3
1.1
1.2
1.3
2.
3.
pg_hba.conf ............................................................................................................... 8
3.2
postgres.conf ............................................................................................................ 11
4.
5.
BACKUPS .................................................................................................................... 20
5.1
5.2
5.3
5.4
6.
7.
8.
OUTRAS DOCUMENTAES/FONTES............................................................................... 32
8.1
8.2
8.3
Apostilas de PostgreSQL............................................................................................. 32
Matriz de Revises
Data
07/05/2012
07/05/2012
23/05/2012
23/05/2012
23/05/2012
Reviso
01
01
02
02
02
Alteraes
Pg. 12, Item 3.2.2, adicionada descrio por sesses e linhas..
Pg. 32, Item 6, adicionado item f.
Alterado Cabealho do Arquivo.
Alterado item d, pgina 16.
Criado item 5.2 Restaurar backup utilizando PGADMIN, pgina 22.
1. POSTGRES
O PostgreSQL, desenvolvido originalmente no Departamento de Cincia de Computao da
Universidade de Berkeley, foi pioneiro em muitos dos conceitos objeto-relacionais que agora esto
disponveis em alguns bancos de dados comerciais. Fornece suporte a linguagem SQL92/SQL99,
integridade de transaes e extensibilidade de tipos.
O PostgreSQL um descendente com cdigo aberto do cdigo original desenvolvido em
Berkeley.
1.1
Uma dvida comum ao PostgreSQL seu nome. As formas corretas so as duas seguintes:
Postgres, pronuncia-se postgres (sim o s pronunciado!);
PostgreSQL, pronuncia-se postgres s que le.
1.2
LIMITES DO POSTGRESQL
Limite
Tamanho mximo de um banco de dados
Tamanho mximo de uma tabela
Tamanho mximo de uma linha (registro)
Tamanho mximo de um campo (coluna)
Nmero mximo do linhas por tabela
Nmero mximo de colunas por tabela
Nmero mximo de ndices por tabela
1.3
Valor
Ilimitado
32 TB
1.6 TB
1 GB
Ilimitado
250 - 1600 depende do tipo de coluna
Ilimitado
CASOS DE USO
Empresa
Cisco
DETRAN-PR
Metr-SP
CELEPAR
Usurios
3000
8000
5000
Embrapa
FAB
SERPRO
CAIXA*
2000
3000
Mais de 20.000
terminais.
2. INSTALAO NO WINDOWS
Todos os testes e homologao do sistema ocorreram na verso 9.1, logo somente esta poder
ser utilizado em clientes.
a) Baixar a verso 9.1 do site da postgresql http://www.postgresql.org/download/
Obs.: Para a verso em Linux utilizaremos somente se o cliente possuir algum especializado neste
sistema operacional para manuteno e suporte.
b) Iniciar a instalao e Next >
d) Selecionar o Diretrio das bases de dados e Next >, por padro deixaremos no mesmo
diretrio da instalao do PostgreSQL, conforme imagem abaixo.
e) Neste passo dever ser informada a senha do super-usuario postgres, sendo que esse usurio
tambm ser criado no Windows\Linux.
Obs.: essa senha no poder ser recuperada em caso de perda, por definio utilizaremos a
mesma senha do SA do MS SQL-Server que desbr@DAH
f)
A porta dever ficar a padro que 5432, logo dever tambm ser liberada no firewall do
sistema operacional.
i)
3. CONFIGURANDO O POSTGRESQL
Neste tutorial veremos como implementar o arquivo pg_hba.conf atravs da compreenso de
sua estrutura, opes e mtodos; uma ao simples e o arquivo default contm todas as
explicaes necessrias (em ingls) para a correta configurao.
3.1
PG_HBA.CONF
3.1.1 LOCALIZAO
3.1.2 FUNO
pg_hba.conf significa PostgreSQL host-basedauthenticationconfiguration (configurao
PostgreSQL de autenticao baseada no hospedeiro), tem a finalidade de definir regras de acesso ao
servidor PostgreSQL que estamos configurando.
3.1.3 CONFIGURAO
A configurao consiste em informar linha(s) que conter(o) cinco colunas descriminadas
abaixo:
- TYPE: tipo de conexo. Por padro utilizaremos host:
* local, destinada a conexes utilizando soquete de domnio Unix;
* host, conexes utilizando protocolo TCP/IP; corresponde a conexes SSL e conexes
no SSL (Secure Socket Layer);
* hostssl, conexes utilizando protocolo TCP/IP que obrigatoriamente tenham
criptografia SSL;
* hostnossl, conexes utilizando protocolo TCP/IP que obrigatoriamente no tenham
criptografia SSL.
- DATABASE: banco de dados a que esta conexo corresponde. Por padro informaremos o
nome do banco utilizado pelo cliente; valores possveis:
* nome do banco do cliente;
* all, permite a conexo acesso a todos os bancos contidos no servidor;
* sameuser,especifica que o registro corresponde ao banco de dados com o mesmo
nome do usurio que est solicitando a conexo; muito til em data centers;
* samegroup, especifica que o usurio dever ser membro de um grupo, sendo que o
nome da base de dados ser o mesmo do grupo; muito til em data centers;
* tambm podemos informar vrios nomes de bancos de dados separados por vrgula,
ou ainda criar um arquivo precedido de @ contendo os bancos que faro parte da regra.
- USER: usurio(s) do PostgreSQL que ter(o) acesso ao banco de dados; o preenchimento
desta coluna depender do cenrio mas usualmente utilizares a opo all:
* nome do usurio que ter permisso;
* all, todos usurios tero permisso;
* pode ser informado vrios usurios separados por vrgula;
Direitos Reservados Desbravador Software Ltda.
9
* pode ser informado grupos, precedendo o nome do(s) grupo(s) pelo sinal de +;
* pode ser informado um arquivo precedido de @ contendo os nomes dos grupos.
- ADDRESS: esta coluna composta pelo endereo IP/mscara de IP; informamos qual IP, ou
faixa de IPs que tero acesso aos bancos do servidor PostgreSQL; a mscara pode ser
preenchida com notao CIDR (ClasslessInter-DomainRouting), ou seja, ao invs de informar
255.0.0.0 podemos informar 8, 255.255.0.0 informamos 16 e assim por diante. Exemplo: para
um nico endereo IP acessar o banco informaremos 183.12.56.38/24 pois o 24 define
validao da informao at a quarta posio do endereo IP, j 183.12.56.0/16 far com que
todos endereos IPs que iniciem com 183.12.56 acessem o banco; os exemplos acima so
sobre o IPV4, para IPV6 necessrio que a biblioteca em C instalada em seu sistema
operacional tenha suporte pata tal.
- METHOD: especifica o mtodo de autenticao utilizada para o registro, por default
utilizaremos md5:
* trust, permite todos os tipos de conexo;
* reject, conexo rejeitada incondicionalmente. til para eliminar por filtragem
hosts indesejvel de um determinado grupo;
* md5, exige senha criptografada pelo mtodo md5 para conectar;
* crypt, exige senha criptografada pelo mtodo crypt, acima da verso 7.2 dar
preferncia para md5;
* password, cliente fornece senha no criptografada enviada em texto puro pela rede;
* krb4 krb5, utiliza kerberos v4 e v5 para autenticao do usurio;
* ident, atravs do usurio do sistema operacional;
* pam, utiliza o servio PluggableAuthentication Modules para autenticar;
Abaixo temos um exemplo de um arquivo que configura trs parmetros de acesso, podemos
informar vrias linhas com os devidos parmetros de acesso.
- Permitir que todos os usurios, com IPs que iniciem com 169.254.180 tenham acesso a base
postoABC atravs do mtodo de autenticao md5;
- Permitir que o usurio dsl acesse com IP que inicie com 178.125 e tenha acesso a todas as bases
de dados do servidor atravs do mtodo de autenticao md5;
- Permitir que o usurio dsl e teste acessem atravs do IP 189.80.18.102 a base de dados
postoDEF sem mtodo de autenticao;
# TYPE
DATABASE
USER
ADDRESS
METHOD
host postoABC
all
169.201.180.0/24 md5
host all
dsl
178.125.0.0/16
md5
host postoDEF
dsl,teste
189.80.18.102/32 trust
3.1.5 OBSERVAES
As informaes acima so aplicveis para instalaes em Windows e Linux;
Caso haja alguma informao incorreta no arquivo pg_hba.conf ao iniciar o servio do
PostgreSQL, a mensagem abaixo ser apresentada:
--------------------------Services
--------------------------The postgresql-x64-9.1 - PostgreSQL Server 9.1 service on Local Computer started and then stopped.
Some services stop automatically if they are not in use by other services or programs.
--------------------------OK
---------------------------
3.2
POSTGRES.CONF
Neste captulo veremos qual a finalidade do arquivo postgresql.conf e como alterar parmetros
bsicos para o bom funcionamento do PostgreSQL.
3.2.1 LOCALIZAO
Por default o arquivo postgresql.conf est em \PostgreSQL\9.1\data\, na instalao
Windows em C:\Program Files\PostgreSQL\9.1\data\postgresql.conf e em instalaes Linux em
/opt/PostgreSQL/9.1/data/postgresql.conf (9.1 a verso utilizada como exemplo, esta informao
altera-se conforme verso).
3.2.2 FUNO
Prover parmetros de ajustes do banco. Estes parmetros esto separados por sesses e
linhas.
3.2.3 AJUSTES
O Postgres atravs do arquivo postgres.conf contm cerca de 200 parmetros sendo que
podem ser referentes a performance, segurana ou conectividade, neste manual abordaremos
somente os parmetros bsicos para o bom funcionamento do banco.
Veremos que no arquivo de configurao permitida a utilizao de letras maisculas e
minsculas; permitido os tipos de dados: inteiro, float, string e boolean; alguns parmetros podem
ter unidades de memria (KB, MB e GB) e de tempo (ms, s, min, h e d);
As linhas que contm # no incio so comentrios, seus dados so vlidos somente para
visualizao.
Sesso CONNECTIONS AND AUTHENTICATION
listen_addresses: aceita conexo de onde?
Alm do pg_hba.conf que contm esta
informao nesta opo tambm podemos alterar dados de conexo que sobrepem o declarado no
pg_hba.conf; o default * que permite todos hosts; pode ser informado hosts especficos ou
localhost que restringira somente o acesso local (usado para manutenes). Alterao requer
reiniciar servidor;
port: o padro 5432, existe a possibilidade de em alguma instalao outra porta ser
sugerida pelo setor de TI da empresa cliente. Alterao requer reiniciar servidor;
max_connections: mximo de conexes simultneas, o valor default 100; este parmetro
aloca recursos prevendo a quantidade simultnea de acessos, neste caso, devemos informar um valor
correspondente a quantidade de usurios do sistema acrescendo uma margem de aproximadamente
15% em relao ao total de usurios. Alterao requer reiniciar servidor;
Sesso RESOURCE USAGE
shared_buffers: esta a memria utilizada para operaes ativas (informaes de leituras e
dados que ainda no foram gravador no disco), no corresponde a memria RAM total utilizada pelo
Postgres; devemos informar como valor inicial entre 20% e 25% da memria RAM total e nunca deve
ultrapassar 8GB, acima deste valor h perda de performance;
work_mem: utilizada para ordenao e agregao, quando valor de armazenamento maior
que valor disponibilizado neste parmetro, o excedente vai para disco. Um valor inicial pode ser
atribudo baseado na diviso entre a quantidade de conexes e a quantidade de memria RAM
disponvel aps reiniciar o servidor (computador), o resultado desta equao divido por 3, exemplo:
((memria RAM livre (3Gb) / 20 conexes simultneas) / 3) = 51Mb;
Direitos Reservados Desbravador Software Ltda.
12
4. UTILIZANDO O PGADMIN
Ferramenta de administrao para banco de dados PostgreSQL. Inclui uma interface administrativa
grfica, editor de cdigo SQL e muito mais.
O pgAdmin instalado automaticamente quando instalamos o Postgresql. Pode ser encontrado em
Iniciar / Todos os Programas / Postgresql 9.1 / pgAdmin III. Mas pode ser baixado separadamente
atravs do site http://www.pgadmin.org/download/.
a) Para executar o PgAdmin, deve ser iniciado conforme imagem abaixo atravs do menu Iniciar
do Windows.
b) Para Adicionar uma nova conexo ir emFileAdd Server, quando estiver no servidor ao
instalar o PostgreSQL j cria uma conexo com a prpria maquina.
d) Aps Criar a conexo o primeiro passo criar um usurio que ser utilizado pelo sistema
Gas10, Fast10, Dah 4.0. Com o Boto direito em Login RolesNew Login Role.
As opes que devem ser preenchidas so das abas Properties, Definition, Role Privileges,
marcando as opes conforme imagem abaixo.
No marcar as opes Superuser, Can create roles na aba Role privilegies.
e) Aps criar o usurio deve-se criar a base de dados que ser utilizado pelo sistema. Com boto
direito em Databases New Database.
f)
Aps criar a base devemos criar o schema, com boto direito em base de dados criada acima e
New Object New Schema
g) Para Rodar comandos SQL, podemos utilizar o boto direito em cima da base de dados e ir em
CREATE Script ou no cone SQL da barra de ferramenta do PG Admin.
5. BACKUPS
5.1
a) Clicar com o boto Direito na base de dados que deseja efetuar o backup.
5.2
a) No object browse localize a base de dados que ser restaurado o banco de dados, clique com o
boto direito sobre esta e selecione a opo Restore ..., a tela abaixo ser apresentada,
informe o arquivo de backup no campo Filename e aps clique no boto Restore; o processo
de restaurao ocorrer sendo documentado na guia Messages (as outras opes desta
funcionalidade no sero abordadas nesta apostila). IMPORTANTE: para restaurar o backup
esteja logado com o usurio dah.
5.3
@echo off
SETdate=
for /F "tokens=1-3 delims=/ " %%a in ('date /T') do set date=%%c%%b%%a
SET time=
for /F "tokens=1-3 delims=: " %%a in ('time /T') do set time=%%c%%a%%b
SET DATAATUAL=
SET DATAATUAL=%date%_%time%
REM**Exporta as variveis para que no seja necessrio a interao do usurio
REM**IP do servidor PostgreSQL
SET PGHOST=localhost
REM**Porta de acesso ao PostgreSQL
SET PGPORT=5432
REM **Base de Dados que ser feito backup
SET PGDATABASE=gt
REM **Usurio da base de dados
SET PGUSER=dah
REM**Senha da base de dados
SET PGPASSWORD=era.a
REM **Diretrio de destino do arquivo de Backup
SET DESTDIR=D:\backup\
REM **Cria a varivel DESTBACKUP e seta nela um Diretrio
REM **para gravar uma cpia do backup, pode ser uma pasta na rede, DVD, CD, etc.
SET DESTBACKUP=\\DOUGLASPC\tmp\postgres\
REM **Comando para gerar o Backup da base de dados
pg_dump.exe -F c -b -v -f %DESTDIR%%PGDATABASE%%DATAATUAL%.backup
REM ** Copia o arquivo .backup e cola ele na pasta de destino
REM ** definido na varivel DESTBACKUP
copy /Y "%DESTDIR%%PGDATABASE%%DATAATUAL%.backup" "%DESTBACKUP%"
Direitos Reservados Desbravador Software Ltda.
23
5.4
Aps ter criado o arquivo .bat, dever ser utilizado o Agendador de Tarefas do Windows e
criar as tarefas que sero executados periodicamente.
a) Para iniciar a configurao ir em Iniciar Todos os Programas Acessrios
Ferramentas do Sistema Agendador de Tarefas
e) Informar a Data e Hora que inicia a Tarefa, e em repetir deixar a cada 1 dia.
f)
i)
j)
k) Ir na opo Disparadores e Selecionar Editar, marcar para Repetir a tarefa a cada 6 Horas
por um perodo Indefinidamente. Nesta configurao sero gerados 4 backups por dia a
cada 6 horas. Essa uma sugesto, mas cada Distribuidora poder agendar conforme a
necessidade de cada cliente.
l)
Aps confirmar, digitar a senha do usurio do Windows que ser sempre utilizado.
Obs.: Para o agendamento foi utilizado o Windows 7, mas para servidores win 2008 no deve
ocorrer muitas diferenas.
Para maiores informaes sobre esse servio, pode ser encontrado no site da Microsoft
http://technet.microsoft.com/pt-br/library/cc721871(v=ws.10).aspx
a)
b)
c)
d)
e)
Caso seja necessrio poder ser editado o prprio arquivo informando as informaes
necessrias.
Obs.: Aps liberar a verso em UNIDAC, teremos que ter 2 estruturas de pastas totalmente
separadas, uma para o sistema em produo e outro para o modulo de treinamento.
8. OUTRAS DOCUMENTAES/FONTES
8.1
8.2
8.3
APOSTILAS DE POSTGRESQL
http://professor.ucg.br/SiteDocente/admin/arquivosUpload/4622/mate
rial/_aula5_1_BD_Postgres_SQL.pdf