|
1 | 1 |
|
2 | 2 | Perguntas Frequentes (FAQ) sobre PostgreSQL |
3 | 3 |
|
4 | | - �ltima atualiza��o:Sat Nov 20 17:28:23 EDT2004 |
| 4 | + �ltima atualiza��o:Dom Jan 9 14:44:04 EDT2005 |
5 | 5 |
|
6 | 6 | Mantenedor atual: Bruce Momjian (pgman@candle.pha.pa.us) |
7 | 7 |
|
8 | 8 | Traduzido por: Euler Taveira de Oliveira (eulerto@yahoo.com.br) |
9 | 9 |
|
10 | 10 | A vers�o mais recente desse documento pode ser vista em |
11 | | - http://www.PostgreSQL.org/docs/faqs/FAQ.html (EN). |
12 | | - http://www.PostgreSQL.org/docs/faqs/FAQ_brazilian.html (pt_BR). |
| 11 | + http://www.postgresql.org/files/documentation/faqs/FAQ.html (EN). |
| 12 | + http://www.postgresql.org/files/documentation/faqs/FAQ_brazilian.html |
| 13 | + (pt_BR). |
13 | 14 |
|
14 | 15 | Perguntas sobre plataformas espec�ficas s�o respondidas em |
15 | | - http://www.PostgreSQL.org/docs/index.html. |
| 16 | + http://www.postgresql.org/docs/faq/. |
16 | 17 | _________________________________________________________________ |
17 | 18 |
|
18 | 19 | Perguntas Gerais |
|
92 | 93 | 4.14) Qual � a diferen�a entre os v�rios tipos de dados de caracteres? |
93 | 94 | 4.15.1) Como eu crio um campo serial/auto incremento? |
94 | 95 | 4.15.2) Como eu consigo o valor de um campo SERIAL? |
95 | | - 4.15.3) currval()e nextval()n�olidam com condi��o de corrida com |
96 | | -outrosusu�rios? |
| 96 | + 4.15.3) currval() n�olida com condi��o de corrida com outros |
| 97 | + usu�rios? |
97 | 98 | 4.15.4) Por que os n�meros da minha sequ�ncia n�o s�o reutilizados |
98 | 99 | quando uma transa��o � abortada? Por que h� intervalos nos n�meros da |
99 | 100 | minha sequ�ncia/coluna SERIAL? |
|
128 | 129 |
|
129 | 130 | 1.1) O que � PostgreSQL? Como ele � pronunciado? |
130 | 131 |
|
131 | | - PostgreSQL � pronunciado Post-Gres-Qui-El. Um arquivo de �udio est� |
132 | | - dispon�vel em http://www.postgresql.org/postgresql.mp3 para aqueles |
133 | | - que gostariam de ouvir a pron�ncia. |
| 132 | + PostgreSQL � pronunciado Post-Gres-Q-L. |
134 | 133 |
|
135 | 134 | PostgreSQL � um melhoramento do sistema de ger�ncia de banco de dados |
136 | 135 | POSTGRES (e tamb�m �, �s vezes, chamado simplesmente de "Postgres"), |
|
147 | 146 | ao grupo). O grupo � respons�vel por todo o desenvolvimento do |
148 | 147 | PostgreSQL. � um projeto da comunidade e n�o � controlado por nenhuma |
149 | 148 | empresa. Para se juntar ao grupo, veja a FAQ do desenvolvedor em |
150 | | - http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html |
| 149 | + http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html |
151 | 150 |
|
152 | 151 | Os autores do PostgreSQL 1.01 foram Andrew Yu e Jolly Chen. Muitos |
153 | 152 | outros contribuiram para portar, testar, depurar e melhorar o c�digo. |
|
166 | 165 |
|
167 | 166 | PostgreSQL Sistema de Ger�ncia de Banco de Dados |
168 | 167 |
|
169 | | - Portionscopyright (c) 1996-2004, PostgreSQL Global Development Group |
| 168 | + PortionsCopyright (c) 1996-2005, PostgreSQL Global Development Group |
170 | 169 | Portions Copyright (c) 1994-6 Regents of the University of California |
171 | 170 |
|
172 | 171 | Permiss�o de uso, c�pia, modifica��o e distribui��o desse software e |
|
204 | 203 | Iniciando com a vers�o 8.0, o PostgreSQL agora pode ser executado |
205 | 204 | nativamente nos sistemas operacionais Microsoft Windows baseados no NT |
206 | 205 | tais como Win2000, WinXP e Win2003. Um instalador est� dispon�vel em |
207 | | - http://pgfoundry.org/projects/pginstaller. |
| 206 | + http://pgfoundry.org/projects/pginstaller Vers�es do Windows baseados |
| 207 | + no MSDOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando |
| 208 | + o Cygwin. |
208 | 209 |
|
209 | | - H� tamb�m um porte para Novell Netware 6 em http://forge.novell.com. |
| 210 | + H� tamb�m um porte para Novell Netware 6 em http://forge.novell.com e |
| 211 | + uma vers�o para OS/2 (eComStation) em |
| 212 | + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre |
| 213 | + SQL&stype=all&sort=type&dir=%2F. |
210 | 214 |
|
211 | 215 | 1.5) Onde eu posso conseguir o PostgreSQL? |
212 | 216 |
|
|
251 | 255 |
|
252 | 256 | http://www.PostgreSQL.org |
253 | 257 |
|
254 | | - H� tamb�m um canal de IRC na Freenode e EFNet, canal PostgreSQL. Voc� |
255 | | - pode utilizar o comando Unix irc -c '#PostgreSQL' "$USER" |
256 | | - irc.phoenix.net. ou irc -c '#PostgreSQL' "$USER" irc.freenode.net. |
| 258 | + O principal canal de IRC � o #postgresql na Freenode |
| 259 | + (irc.freenode.net). Para se conectar voc� pode utilizar o comando Unix |
| 260 | + irc -c '#postgresql' "$USER" irc.freenode.net ou utilizar qualquer |
| 261 | + outro cliente de IRC. Um canal hisp�nico (#postgresql-es) e um franc�s |
| 262 | + (#postgresqlfr) tamb�m existem na mesma rede. H� tamb�m um canal |
| 263 | + PostgreSQL na EFNet. |
257 | 264 |
|
258 | 265 | Uma lista de empresas que prestam suporte comercial est� dispon�vel em |
259 | 266 | http://techdocs.postgresql.org/companies.php. |
260 | 267 |
|
261 | 268 | 1.7) Qual � a �ltima vers�o? |
262 | 269 |
|
263 | | - A �ltima vers�o do PostgreSQL � a vers�o 7.4.5. |
| 270 | + A �ltima vers�o do PostgreSQL � a vers�o 7.4.6. |
264 | 271 |
|
265 | 272 | N�s planejamos lan�ar vers�es novas a cada seis ou oito meses. |
266 | 273 |
|
|
278 | 285 | cole��o de artigos t�cnicos sobre PostgreSQL em |
279 | 286 | http://techdocs.PostgreSQL.org/. |
280 | 287 |
|
281 | | - psql tem alguns comandos \d para mostrar informa��o sobre tipos, |
282 | | - operadores, fun��es, agrega��es, etc. |
| 288 | + O programa cliente de linha de comando psql tem alguns comandos \d |
| 289 | + para mostrar informa��o sobre tipos, operadores, fun��es, agrega��es, |
| 290 | + etc. Use \? para mostrar os comandos dispon�veis. |
283 | 291 |
|
284 | 292 | Nosso web site cont�m ainda mais documenta��o. |
285 | 293 |
|
|
327 | 335 |
|
328 | 336 | 1.13) Como eu informo a exist�ncia de um bug? |
329 | 337 |
|
330 | | - Por favor visite a p�gina da ferramenta que reporta bugs em |
331 | | - http://www.PostgreSQL.org/bugs/bugs.php, que ir� lher dar as |
332 | | - instru��es e dire��es de como submeter um bug. |
| 338 | + Visite o formul�rio que reporta bugs do PostgreSQL em |
| 339 | + http://www.postgresql.org/support/submitbug. |
333 | 340 |
|
334 | 341 | Verifique tamb�m o nosso ftp ftp://ftp.PostgreSQL.org/pub para ver se |
335 | 342 | h� uma vers�o mais recente do PostgreSQL ou patches. |
|
349 | 356 | travamentos (locks). |
350 | 357 |
|
351 | 358 | Performance |
352 | | -PostgreSQL tem a performance similara outros bancos de dados |
353 | | - comerciais e de c�digo livre. Ele � mais r�pido em algumas |
354 | | - coisas, mais lento em outras. Comparado ao MySQL ou sistemas de |
355 | | - bancos de dados "leves", n�s somos mais r�pidos com m�ltiplos |
356 | | - usu�rios, consultas complexas e carga de consultas de |
| 359 | +A performance do PostgreSQL � compar�vela outros bancos de |
| 360 | +dadoscomerciais e de c�digo livre. Ele � mais r�pido em |
| 361 | +algumascoisas, mais lento em outras. Comparado ao MySQL ou |
| 362 | +sistemas debancos de dados "leves", n�s somos mais r�pidos com |
| 363 | +m�ltiplosusu�rios, consultas complexas e carga de consultas de |
357 | 364 | leitura/escrita. MySQL � mais r�pido para consultas simples com |
358 | 365 | SELECT feitas por poucos usu�rios. � claro que o MySQL n�o tem |
359 | 366 | muitas das caracter�sticas mencionadas na se��o Caracter�sticas |
360 | 367 | acima. N�s desenvolvemos buscando confiabilidade e |
361 | 368 | caracter�sticas, e n�s continuamos a melhorar a performance a |
362 | | - cada vers�o. H� uma p�gina interessante comparando o PostgreSQL |
363 | | - com o MySQL em |
364 | | - http://openacs.org/philosophy/why-not-mysql.html. MySQL � uma |
365 | | - empresa que distribui seu produto via c�digo livre, e requer |
366 | | - uma licen�a comercial para software de c�digo fechado, e n�o |
367 | | - uma comunidade de desenvolvimento de c�digo livre como o |
368 | | - PostgreSQL. |
| 369 | + cada vers�o. |
369 | 370 |
|
370 | 371 | Confiabilidade |
371 | 372 | N�s sabemos que um SGBD deve ser confi�vel ou ele � in�til. N�s |
|
413 | 414 | para apoiar o projeto PostgreSQL e n�o financia nenhuma empresa |
414 | 415 | espec�fica. Se voc� preferir, voc� pode enviar um cheque para o |
415 | 416 | endere�o de contato. |
416 | | - _________________________________________________________________ |
417 | 417 |
|
418 | 418 | Se voc� tiver uma hist�ria de sucesso sobre o PostgreSQL, envie-a para |
419 | | - nosso website em http://advocacy.postgresql.org. |
| 419 | + nossa lista advocacy em pgsql-advocacy@postgresql.org. |
| 420 | + _________________________________________________________________ |
420 | 421 |
|
421 | 422 | Perguntas sobre Clientes |
422 | 423 |
|
|
451 | 452 | 2.3) O PostgreSQL tem interfaces gr�ficas para iteragir com o usu�rio? |
452 | 453 |
|
453 | 454 | Sim, h� v�rias interfaces gr�ficas para PostgreSQL dispon�veis. Entre |
454 | | - elas o PgAccess http://www.pgaccess.org),PgAdmin III |
455 | | - (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ ) |
456 | | -e o Rekall (http://www.thekompany.com/products/rekall/, |
457 | | - propriet�ria). H� tamb�m o PhpPgAdmin ( |
458 | | - http://phppgadmin.sourceforge.net/ ), uma interface web para |
459 | | - PostgreSQL. |
| 455 | + elas o PgAccess http://www.pgaccess.org),pgAdmin III |
| 456 | + (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ |
| 457 | +), TORA (http://www.globecom.net/tora/, parcialmente comercial) e o |
| 458 | +Rekall ( http://www.thekompany.com/products/rekall/,propriet�ria). H� |
| 459 | +tamb�m o PhpPgAdmin (http://phppgadmin.sourceforge.net/ ), uma |
| 460 | +interface web paraPostgreSQL. |
460 | 461 |
|
461 | 462 | Veja http://techdocs.postgresql.org/guides/GUITools para uma lista |
462 | 463 | mais detalhada. |
|
500 | 501 | kernel. A quantidade exata que voc� precisa vai depender da |
501 | 502 | arquitetura e de quantos buffers e processos do servidor voc� |
502 | 503 | configurou para o postmaster. Muitos sistemas, com o n�mero padr�o de |
503 | | - buffers e processos, precisam de aproximadamente 1 MB. Veja o Guia do |
504 | | - Administrador do PostgreSQL para mais informa��o sobre mem�ria |
505 | | - compartilhada e sem�foros. |
| 504 | + buffers e processos, precisam de aproximadamente 1 MB. Veja a se��o |
| 505 | + PostgreSQL Administrator's Guide/Server Run-time Environment/Managing |
| 506 | + Kernel Resources para mais informa��o sobre mem�ria compartilhada e |
| 507 | + sem�foros. |
506 | 508 |
|
507 | 509 | 3.4) Quando eu tento iniciar o postmaster, eu recebo erros |
508 | 510 | IpcSemaphoreCreate. Por que? |
|
546 | 548 | remover e criar �ndices novamente quando estiver fazendo muitas |
547 | 549 | mudan�as nos dados. |
548 | 550 |
|
549 | | - H� v�rias op��es de ajuste. Voc� pode desabilitar o fsync() iniciando |
550 | | - o postmaster com a op��o -o -F. Isso ir� impedir que fsync()s enviem |
551 | | - os dados para disco ap�s cada transa��o. |
| 551 | + H� v�rias op��es de ajuste em Administration Guide/Server Run-time |
| 552 | + Environment/Run-time Configuration. Voc� pode desabilitar o fsync() |
| 553 | + utilizando a op��o fsync. Isso ir� impedir que fsync()s enviem os |
| 554 | + dados para disco ap�s cada transa��o. |
552 | 555 |
|
553 | | - Voc�tamb�mpode utilizar a op��o-B do postmasterpara aumentar o |
554 | | -n�mero debuffers de mem�ria compartilhada utilizados pelos processos |
555 | | -doservidor. Se voc� definiu este par�metro com um valor muito alto, o |
| 556 | + Voc� pode utilizar a op��oshared_bufferspara aumentar o n�mero de |
| 557 | + buffers de mem�ria compartilhada utilizados pelos processos do |
| 558 | + servidor. Se voc� definiu este par�metro com um valor muito alto, o |
556 | 559 | postmaster pode n�o iniciar porque voc� excedeu o limite de espa�o de |
557 | 560 | mem�ria compartilhada do kernel. Cada buffer � de 8K e o padr�o � de |
558 | | -64 buffers. |
| 561 | +1000 buffers. |
559 | 562 |
|
560 | | - Voc� tamb�m pode utilizar a op��o-S do backend para aumentar a m�xima |
561 | | - quantidade de mem�ria utilizada pelo processo servidor para ordena��es |
562 | | -tempor�rias. O valor de -S � medido em kilobytes e opadr�o � de 512 |
563 | | - (ou seja512K). |
| 563 | + Voc� tamb�m pode utilizar a op��osort_mem (no PostgreSQL 8.0: |
| 564 | +work_mem) para aumentar a m�ximaquantidade de mem�ria utilizada pelo |
| 565 | +processo servidor para cada ordena��o tempor�ria. O valorpadr�o � |
| 566 | +1024(ou seja1MB). |
564 | 567 |
|
565 | 568 | Voc� tamb�m pode utilizar o comando CLUSTER para agrupar dados em |
566 | 569 | tabelas para combinar um �ndice. Veja o manual sobre CLUSTER para mais |
|
598 | 601 | ambiente id�ntico e problemas de itera��o com o n�cleo/travamento n�o |
599 | 602 | podem ser reproduzidos. |
600 | 603 |
|
601 | | - O programa postgres possue as op��es -s, -A, e -t que podem ser muito |
602 | | - �teis para depura��o e medidas de performance. |
| 604 | + Se o postmaster est� sendo executado, inicie o psql em uma janela, e |
| 605 | + ent�o encontre o PID do processo postgres utilizado pelo psql |
| 606 | + utilizando |
| 607 | +SELECT pg_backend_pid() |
| 608 | + |
| 609 | + . Utilize um depurador para anexar ao PID do postgres. Voc� pode |
| 610 | + definir pontos de parada (breakpoints) no depurador e digitar |
| 611 | + consultas no psql. Se voc� est� depurando a inicializa��o do postgres, |
| 612 | + voc� pode definir PGOPTIONS="-W n" e ent�o iniciar o psql. Isto |
| 613 | + retardar� a inicializa��o por n segundos ent�o voc� pode anexar o |
| 614 | + depurador ao processo, definir quaisquer pontos de parada e continuar |
| 615 | + pela sequ�ncia de inicializa��o. |
| 616 | + |
| 617 | + H� v�rias vari�veis de configura��o do servidor |
| 618 | +log_* |
| 619 | + |
| 620 | + que habilitam a exibi��o de estat�sticas que podem ser muito �teis |
| 621 | + para depura��o e medidas de performance. |
603 | 622 |
|
604 | 623 | Voc� tamb�m pode compilar com perfil para ver que fun��es est�o |
605 | 624 | demandando tempo de execu��o. Os arquivo de perfil do n�cleo (backend) |
@@ -852,7 +871,13 @@ para cima) |
852 | 871 | * Buscas que n�o diferenciam mai�sculas de min�sculas tais como |
853 | 872 | ILIKE e ~* n�o utilizam �ndices. Ao inv�s, utilize �ndices |
854 | 873 | funcionais, que s�o descritos na se��o 4.12. |
855 | | - * A localidade padr�o C deve ser utilizada durante o initdb. |
| 874 | + * A localidade padr�o C deve ser utilizada durante o initdb porque |
| 875 | + n�o � poss�vel saber o pr�ximo/maior caracter em uma localidade |
| 876 | + que n�o seja a C. Voc� pode criar um �ndice especial |
| 877 | +text_pattern_ops |
| 878 | + para tais casos que funcionam somente para indexa��o utilizando |
| 879 | +LIKE |
| 880 | + . |
856 | 881 |
|
857 | 882 | Em vers�es anteriores a 8.0, �ndices frequentemente n�o podiam ser |
858 | 883 | usados a menos que os tipos de dados correspodessem aos tipos da |
@@ -999,11 +1024,10 @@ te safe) |
999 | 1024 | Finalmente, voc� poderia utilizar o OID retornado da senten�a INSERT |
1000 | 1025 | para obter o valor padr�o, embora este seja a abordagem menos |
1001 | 1026 | port�vel, pois o valor do oid n�o ultrapassa 4 bilh�es. Em Perl, |
1002 | | - utilizando DBI com o m�dulo DBD::Pg de Edmund Mergl, o valor do oid |
1003 | | -est� dispon�velvia $sth->{pg_oid_status} depois de $sth->execute(). |
| 1027 | + utilizando DBI com o m�dulo DBD::Pg, o valor do oid est� dispon�vel |
| 1028 | + via $sth->{pg_oid_status} depois de $sth->execute(). |
1004 | 1029 |
|
1005 | | - 4.15.3) currval() e nextval() n�o lidam com condi��o de corrida com outros |
1006 | | - usu�rios? |
| 1030 | + 4.15.3) currval() n�o lida com condi��o de corrida com outros usu�rios? |
1007 | 1031 |
|
1008 | 1032 | N�o. currval() retorna o valor atual atribuido pelo seu n�cleo |
1009 | 1033 | (backend), e n�o por todos os usu�rios. |
|