segunda-feira, 5 de novembro de 2007

PostgreSQL + POSTGIS

Baixar o software do site:http://www.postgresql.org/download/

Descompactar o arquivo utilizando do comando:

tar -jxvf postgresql-x.x.x.tar.bz2

no diretório criado digitar os comandos abaixo:

./configure
make
su
gmake install

adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres

/usr/local/pgsql/bin/initdb -D -A /usr/local/pgsql/data --locale='en_US.LATIN1'
Atualizar no arquivo postgres.conf

port = 5432
lc_messages = 'en_US.LATIN1' # locale for system error message#
stringslc_monetary = 'en_US.LATIN1' # locale for monetary formatting
lc_numeric = 'en_US.LATIN1' # locale for number formatting
lc_time = 'en_US.LATIN1'

/usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data >logfile 2>&1 &/usr/local/pgsql/bin/createdb test/usr/local/pgsql/bin/psql test

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Instalação do POSTGIS
2.1. ExigênciasPostGIS tem as seguintes exigências para construção e uso:

* Uma configuração e construção completos do código fonte PostgreSQL em árvore. PostGIS usa definições de processo de configuração/construção PostgreSQL para uma plataforma particular sua que está em construção. PostgreSQL está disponível em http://www.postgresql.org/.

* O compilador de GNU C (gcc). Alguns outros compiladores de C ANSI podem ser usados para compilar PostGIS, mas nós achamos poucos problemas ao compilar com gcc.
* GNU Make (gmake ou make). Para muitos sistemas, GNU Make é a versão default que faz falta. Para saber a versão utilizar make -v.
Outras versões de make não podem processar o PostGIS Makefile corretamente.

/***************************************************************************/*
(Opcional) Biblioteca de reprojeção Proj4.
A biblioteca Proj4 é usada para prover suporte a reprojeções coordenadas dentro de PostGIS.

Proj4 está disponível. Para carregá-la utilize o site, http://www.remotesensing.org/proj.

Baixar o software de:http://www.remotesensing.org/proj/

A versão utilizada para elaborar este documento foi proj-4.4.9.tar.gz

Descompactar o arquivo com o comando
tar -zxvf proj-4.4.9.tar.gz

No diretório criado executar os seguintes comandos
./configure --prefix=/opt/proj-4.4.9
gmake
su
gmake install

/**************************************************************************/

(Opcional) Biblioteca de geometria GEOS.
A biblioteca GEOS é usada para fornecer testes em geometria (Touches(), Contains(), Intersects()) e operações (Buffer(), GeomUnion(), Difference()) com PostGIS. GEOS está disponível para baixa em http://geos.refractions.net/.

A versão utilizada para elaborar este documento foi proj-4.4.9.tar.gz
Descompactar o arquivo com o comando

tar -jxvf geos-2.2.3.tar.bz2

No diretório criado executar os seguintes comandos
./configure --prefix=/opt/geos-2.2.3
gmake
su
gmake install

/**************************************************************************/
2.2. PostGIS
O módulo de PostGIS é uma extensão ao PostgreSQL servidor de retaguarda. Assim, PostGIS 1.0.0 requer uma cópia completa do fonte PostgreSQL organizado em diretório para compilar. O código fonte PostgreSQL está disponível em http://www.postgresql.org/.

PostGIS 1.0.0 pode ser construído com versões de PostgreSQL 7.1.x, 7.2.x ou 7.3.x. As versões de PostgreSQL anteriores não são suportadas.

1. Antes de você compilar os módulos do servidor de postGIS, você tem que compilar e instalar o pacote PostgreSQL.Nota Se você planeja usar funcionalidade de GEOS você poderia precisar unir PostgreSQL à biblioteca de C++ padrão:

LDFLAGS=-lstdc++
./configure [YOUR OPTIONS HERE]

Este é um trabalho voltado para exceções em C++ interando com ferramentas de desenvolvimento mais antigas. Se você perceber problemas estranhos (inesperadamente fechar uma retaguarda ou algo semelhante) tente este truque. Isso fará com que corra o risco de compilar o PostgreSQL.

2. Faça o download do arquivo fonte PostGIS de http://postgis.refractions.net/postgis-1.0.0.tar.gz. Descomprima o arquivo no diretório "contrib" do fonte PostgreSQL organizando os fontes no diretório.

# cd [postgresql source tree]/contrib
# gzip -d -c postgis-1.0.0.tar.gz tar xvf -

3. Uma vez feita a instalação de PostgreSQL, entrar no diretório de "postgis", e editar o arquivo Makefile.config.
* Se quiser dar suporte a reprojeção de coordenada, você tem que ter a biblioteca de Proj4 instalada, atribuir valor 1 a variável USE_PROJ, e eventualmente ajustar PROJ_DIR para direcionar a sua instalação para o diretório Proj4.
* Se quer usar funcionalidades GEOS, você tem que ter instalada a biblioteca de GEOS, atribuir valor 1 a variável USE_GEOS, e eventualmente ajustar GEOS_DIR para direcionar a sua instalação para o diretório GEOS.

/******************************************************************/
Para o suporte ao PROJ4 e GEOS foram alteradas as seguintes linhasno arquivo Makefile.config

USE_PROJ=1
PROJ_DIR=/opt/proj-4.4.9

USE_GEOS=1
GEOS_DIR=/opt/geos-2.2.1

/******************************************************************/4. Rode o compilador e instale comandos.
./configure --with-pgsql=/usr/local/pgsql/bin/pg_config --with-geos=/opt/geos-

2.2.1/bin/geos-config --with-proj=/opt/proj-4.4.9/

# make
# su
# make install

Todos os arquivos são instalados relativamente no diretório de instalação do PostgreSQL, [prefix].
* Bibliotecas são instaladas [prefix]/lib/contrib.
* Arquivos de suporte importantes como postgis.sql são instalados em[prefix]/share/contrib.
* Carregador e binaries livres são instalados em [prefix]/bin.


5. PostGIS requer para o PL/pgSQL extensão da linguagem procedural. Antes de carregar o arquivo postgis.sql, você tem que habilitar primeiro o PL/pgSQL. Você deveria usar o comando createlang. O Guia de Programador PostgreSQL 7.1 tem detalhes, caso você queira executá-lo manualmente.

# /usr/local/pgsql/bin/createlang plpgsql template1

6. Carregue o objeto PostGIS e defina funções no banco de dados carregando definições de arquivo de postgis.sql.Copiar as bibliotecas do GEOS e PROJ parao postgres

# cp /opt/geos-2.2.3/lib/* /usr/local/pgsql/lib
# cp /opt/proj-4.4.9/lib/* /usr/local/pgsql/lib

No SUSE é preciso copiar as bibliotecas para

# cp /opt/geos-2.2.3/lib/* /usr/lib
# cp /opt/proj-4.4.9/lib/* /usr/lib

# /usr/local/pgsql/bin/psql -d template1 -f /usr/local/pgsql/share/contrib/lwpostgis.sql

Na execução do comando acima pode gerar erro de bibliotecas:Editar como root o arquivo:

/etc/ld.so.conf
Acrescentar o caminhos para as bibliotecas necessárias.

Por exemplo:
/opt/geos-3.0.0/
/opt/proj-2.5.0/

Para carregar o caminho, executar como root:
/sbin/ldconfig

Extensões de servidor de PostGIS agora são carregadas e prontas para uso.

7. Para um completo uso de coordenada de identificadores de definição de sistemas EPSG, você também pode carregar as definições de arquivo spatial_ref_sys.sql e conteúdos de tabela SPATIAL_REF_SYS.

# /usr/local/pgsql/bin/psql -d template1 -f /usr/local/pgsql/share/contrib/spatial_ref_sys.sql
############################################
Alguns comandos interessantes

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -b -v -f f:\backup\mi_2005_2006_public_%date%.backup "MI_2005_2006"

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -v -f f:\backup\mi_2005_2006_mapas_%date%.backup -n mapas "MI_2005_2006"

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -v -f f:\backup\mi_2005_2006_log_%date%.backup -n log "MI_2005_2006"

"C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_dump.exe" -i -h 10.68.12.245 -p 5432 -U postgres -F c -v -f f:\backup\mi_2005_2006_dicionario_%date%.backup -n dicionario "MI_2005_2006"

Rem ALTER DATABASE "MI_2005_2006_NEW" RENAME TO "MI_2005_2006_NEW_";
rem

"C:\Arquivos de programas\PostgreSQL\8.1\bin\psql.exe" -d MI2005 -h 10.68.12.245 -p 5432 -U postgres

rem /usr/local/pgsql/bin/postmaster -D /dados/pgsql/dadosMIcd

rem /usr/local/pgsql/bin/pg_ctl -D /dados/pgsql/dadosMIcd -l logfile start

rem /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >/tmp/logfile 2>&1 &

rem /usr/local/pgsql/bin/postmaster -D /dados/pgsql/dadosMIcd >/tmp/logfileDadosMIcd 2>&1 &rem CREATE DATABASE "MI_2005_2006"

rem WITH OWNER = postgresrem ENCODING = 'LATIN1'rem TABLESPACE = pg_default;

rem CREATE DATABASE "MI_2005_2006_DEV"rem WITH OWNER = postgresrem ENCODING = 'LATIN1'rem TABLESPACE = pg_default;rem CREATE DATABASE "SAM"

rem WITH OWNER = postgresrem ENCODING = 'LATIN1'rem TABLESPACE = pg_default;rem CREATE DATABASE "dicivip"

rem WITH OWNER = postgresrem ENCODING = 'UTF8'rem TABLESPACE = pg_default;

rem /usr/local/pgsql/bin/createlang plpgsql template1rem /usr/local/pgsql/bin/psql -d
template1 -f /usr/local/pgsql/share/contrib/lwpostgis.sqlrem /usr/local/pgsql/bin/psql -d
template1 -f /usr/local/pgsql/share/contrib/spatial_ref_sys.sql

rem ALTER DATABASE "MI_2005_2006_DEV" RENAME TO "MI_2005_2006_dev";
rem ALTER USER postgres WITH PASSWORD 'sagi123';

C:\Arquivos de programas\PostgreSQL\8.1\bin\pg_restore.exe -i -h 10.68.12.244 -p 5432 -U postgres -d dicivip -v "F:\backup\dicivip_10-10-2006.backup" Task update history

Nenhum comentário: