Postgresql Admin Cap1

Download Postgresql Admin Cap1

Post on 14-Oct-2015

61 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li><p>AdministraoProfissionaldoPostgreSQLIntroduo</p><p>IntroduoFalar sobre PostgreSQL certamente no uma tarefa das mais fceis. Sempre acreditei nessa idia, devido s dificuldades que enfrentei para encontrar um material mais completo sobre este SGBD.</p><p>So poucos os livros em portugus sobre o assunto. Mesmo em ingls, devido evoluo do banco em suas ltimas verses, no muito difcil topar com algum material defasado.</p><p>Em se tratando de administrao do servidor, tambm muito comum encontrar receitas de bolo como: configure seu shared_buffers para tanto, aumente o work_mem para tanto. Libere tanto de memria disso, tanto daquilo e eu sempre me perguntei: Sim, mas por qu?.</p><p>Por outro lado, a vasta documentao oficial salvou minha pele algumas vezes (sou professor de PostgreSQL e no me envergonho de recorrer a ela mesmo durante algumas aulas). No entanto, o que poderia ser bom, imagino que possa ter provocado um efeito colateral. Muita gente pode ter pensado como eu: Como escrever um material sobre PostgreSQL que organize os assuntos de um jeito que penso ser mais didtico, mas que no fique com cara de cpia descarada da documentao oficial?.</p><p>Esta ento minha misso. Preciso escrever algo sobre administrao do PostgreSQL que seja mais breve que sua documentao oficial (at a, fcil... bronca seria se tivesse que ser maior), que possa recorrer a ela em momentos oportunos, mas que no faa voc achar que gastou dinheiro toa comprando algo que no acrescentou nada s sagradas escrituras de Berkeley1.</p><p>EmentaeorganizaoO contedo foi cuidadosamente arranjado para focar em tarefas administrativas do PostgreSQL e do ambiente em questes que influenciem em como o SGBD dever funcionar (ou no, como diria Caetano).</p><p>Trataremos aqui da verso 8.4, apesar dos caras j estarem com o 8.5 no forno com algumas idias interessantes como o suporte ao j bem esperado Hot Standby (explicar isso agora? ...). Todos os testes foram realizados na verso 8.4.2 em sistema Debian netinst virtualizado com Virtual Box aqui em um velho note de guerra, com hospedeiro rodando Ubuntu Hard Heron que s atualizo quando sair outro LTS. Em alguns momento, posso apresentar alguns resultados executados em outras mquinas. Quem sou eu para dizer qualquer coisa, mas em minha humilde opinio, o PostgreSQL ainda um sistema extremamente vinculado famlia Unix, portanto, quando me referir ao Windows, vai ser s para no dizer que no falei das flores.Captulo 1 Primeiros passos. No primeiro momento, vamos tratar do processo de instalao em mais de uma plataforma, utilizando mais de um mtodo, alm de conhecer a disposio fsica do servidor instalado. Apesar do nome Primeiros passos, no se trata aqui de um captulo de nivelamento. Vamos assumir que o leitor j possui mais de 15 minutos de experincia com PostgreSQL e tem noes de instrues SQL e Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDR ou RDBMS).</p><p>Captulo 2 Opes de configurao. Neste captulo, colocaremos uma lupa sobre o postgresql.conf, principal arquivo de configurao do banco e veremos como este est organizado. Veremos ainda alguns recursos de configurao definidos pelos clientes.</p><p>1 CidadesededaUniversidadedaCalifrnia,berodoPostgreSQL</p><p>1</p></li><li><p>AdministraoProfissionaldoPostgreSQLIntroduo</p><p>Captulo 3 Autenticaes e permisses. Aps um embasamento nas opes de configurao, importante saber como conectar e como o PostgreSQL faz para dizer quem pode fazer o qu e onde. Este captulo aborda do grosso modo aos ajustes finos sobre conexes, papis e permisses do PostgreSQL.</p><p>Captulo 4 Transaes e Write Ahead Logging. Certamente um dos captulos mais legais. O WAL a alma negcio no PostgreSQL. ele quem garante a durabilidade de uma transao e conhec-lo bem pode lhe trazer boas idias de desempenho, integridade e disponibilidade.</p><p>Captulo 5 Rotinas administrativas. Se estamos em um livro sobre administrao do PostgreSQL, este captulo o principal responsvel. Vacuum, analyze, logging e monitoria so tarefas administrativas que precisam estar bastante claras na mente do DBA PostgreSQL.</p><p>Captulo 6 Backups Eles podem salvar seu emprego. Se voc sentiu falta dos backups como tarefas administrativas fundamentais, ns tambm. Tanto que um captulo inteiro foi reservado s para eles. Veremos o mecanismo dump texto e binrio, alm do famoso Point-in-Time Recovery para backups incrementais e timelines. Ser visto aqui o que poderia estar apenas no captulo 9 Alta Disponibilidade, que a tcnica de Warm Standby baseada no log shipping de um servidor master para um slave que assume a ponta caso detecte que algo de ruim aconteceu ao master (failover). Aqui ser fundamental que voc entenda bem o captulo 4 Transaes e Write Ahead Logging.</p><p>Captulo 7 Algo sobre infraestrutura. Neste captulo eu me aventuro a falar sobre algo que no bem minha praia. Sou desenvolvedor, mas tive o cuidado de apresent-o previamente a diversos amigos Sysadmins e eles no riram da minha cara. Espero sinceramente que no tenha sido por pura amizade. Para ser um bom DBA PostgreSQL, voc precisar conhecer bem este assunto.</p><p>Captulo 8 Tunning Ensinando o elefante a voar. Aqui voc conhecer algumas ferramentas para medio de desempenho, dicas para evitar gargalos e diversas opes de configurao para transformar seu PostgreSQL num Dumbo envenenado. (Perdo leitor. Tenho certeza de que se no fossem 3h da manh e eu no estivesse morto de sono, esta frase infame no teria surgido).</p><p>Captulo 9 Alta disponibilidade. Em muitos sistemas, disponibilidade algo ainda mais crtico do que desempenho. Vejamos algumas tecnologias que podero auxili-lo em situaes onde parar ou perder dados sejam simplesmente inadmissveis.</p><p>ParaquemestouescrevendoSe voc est procurando um material introdutrio sobre PostgreSQL, modelagem de dados e linguagem SQL, pode voltar seo Best-sellers: Livros mais vendidos de todos tempos da livraria e recolocar este livro na estante. Aproveite e pea para o vendedor utilizar algo melhor como encalo para a estante. :-)</p><p>Material assim, voc encontra uns muito bons l naquela prateleira da seo Bancos de Dados, na rea de informtica. Me preocupei em falar para quem j sabe disso mas precisa administrar um servidor PostgreSQL.</p><p>Escrevo tambm para desenvolvedores curiosos na rea como eu. impressionante como ns somos capazes de, ao menor deslize, estragar tudo e congelar o banco. Se meu sonho se realizasse e todo desenvolvedor que trabalhe com o PostgreSQL se especializasse nos assuntos que este livro aborda, acredito que eu ganharia o nobel da paz por trs anos seguidos (no quarto eu negaria para dar chance a algum Obama desprestigiado).</p><p>2</p></li><li><p>AdministraoProfissionaldoPostgreSQLIntroduo</p><p>E por que no dizer que escrevo para coveiros, ascensoristas, deputados e quem mais puder encontrar um tempo livre para ler um livrinho light e bem humorado. Escrevo at mesmo para torcedores do Nutico ou do Santa Cruz. Coitados, eles precisam de algo que lhes traga mais alegria.</p><p>3</p></li><li><p>AdministraoProfissionaldoPostgreSQLIntroduo</p><p>SumrioIntroduo.............................................................................................................................................1</p><p>EMENTA E ORGANIZAO........................................................................................................................1PARA QUEM ESTOU ESCREVENDO..............................................................................................................2</p><p>1Primeirospassos...............................................................................................................................81.1PROCESSO DE INSTALAO..................................................................................................................8</p><p>1.1.1Instalao no Debian Lenny..................................................................................................8EscolhaedownloaddoDebianLenny...................................................................................8Processodeinstalaoemmodogrfico................................................................................9Efetuandoodownloaddosfontes.........................................................................................48Preparandooambiente.........................................................................................................52InstalandooPostgreSQLapartirdocdigofonte...............................................................54Psinstalao.......................................................................................................................55Inicializao..........................................................................................................................60Customizaes,facilitaeseautomatizaes.....................................................................60Instalaoviaaptget............................................................................................................64</p><p>1.1.2Instalao do EnterpriseDB no Windows...........................................................................641.1.3Instalao no Ubuntu via Synaptic.....................................................................................80</p><p>1.2INITDB INCIO DO DATABASE CLUSTER..............................................................................................851.2.1Arquivos e diretrios do cluster..........................................................................................87</p><p>Diretriobase.......................................................................................................................87Comooarmazenadorfunciona............................................................................................94Mapeamentodeespaolivreempginasdedados..............................................................97Umpoucodeprtica.............................................................................................................99Outrosdiretrios.................................................................................................................107Arquivosdeconfiguraodocluster..................................................................................109</p><p>1.2.2Encoding e localizao......................................................................................................110ProblemascomoDebian/Ubuntu.....................................................................................112ContornandooproblemanoDebian...................................................................................113ContornandooproblemanoUbuntu...................................................................................114EscolhadelocalesnoinitdbenoCREATEDATABASE..................................................115</p><p>1.3OPES DE INICIALIZAO .............................................................................................................1181.3.1Inicializao via postgres..................................................................................................1181.3.2Inicializao via pg_ctl.....................................................................................................120</p><p>Modosdeencerramento......................................................................................................121Sinaisparaprocessosemexecuo....................................................................................124</p><p>1.4SAINDO DO CLUSTER COM NOVOS TABLESPACES..................................................................................125Infraestruturaecatlogo.....................................................................................................128</p><p>1.5RESUMO GERAL............................................................................................................................1292Opesdeconfigurao...............................................................................................................130</p><p>2.1QUANDO E COMO ALTERAR OPES DE CONFIGURAO.......................................................................1302.2COMO EST ORGANIZADO O POSTGRESQL.CONF..................................................................................130</p><p>2.2.1Localizao de arquivos....................................................................................................1302.2.2Conexes e autenticaes..................................................................................................1322.2.3Consumo de recursos.........................................................................................................135</p><p>4</p></li><li><p>AdministraoProfissionaldoPostgreSQLIntroduo</p><p>2.2.4Logs de transao WAL.....................................................................................................1412.2.5Tuning de planejamento de consultas...............................................................................1452.2.6Logs do sistema.................................................................................................................1522.2.7Coletor de estatsticas.......................................................................................................1602.2.8Autovacuum.......................................................................................................................1612.2.9Padres para os clientes...................................................................................................164</p><p>Maissobreesquemasesearch_path....................................................................................171ComofuncionaatabelaBase64.........................................................................................173Representaotemporal......................................................................................................175</p><p>2.2.10Gesto de lock.................................................................................................................1772.2.11Compatibilidade..............................................................................................................178</p><p>2.3CONCLUSO.................................................................................................................................1823Autenticaesepermisses..........................................................................................................183</p><p>3.1CONTROLANDO ACESSOS................................................................................................................1833.1.1Interfaces e conexes no postgresql.conf..........................................................................1833.1.2Autenticaes no pg_hba.conf...........................................................................................185</p><p>Autenticaolocal..............................................................................................................190Identidadedeusurios........................................................................................................192Mapasdeidentificao.......................................................................................................194</p><p>3.2O TCPDUMP VAI DEDURAR A CONVERSA DAS CONEXES HOST................................................</p></li></ul>