28 de outubro de 2014

Instalação do PostgreSQL 9.3 em distro Debian/Ubuntu

O PostgreSQL é um Sistema Gerenciador de Banco de Dados (SGBD) Open Source, mantido pelo PostgreSQL Global Development Group.
Neste post desmonstrarei como instalar o PostgreSQL 9.3 utilizando o pacote para compilação. Uma das vantagens deste tipo de instalação, é o controle sobre o local de instalação do serviço e do cluster, facilitando assim sua administração. Muito bom para ambiente de produção.
Portanto, siga os procedimentos abaixo para instalar a versão para compilação do PostgreSQL, seguido da criação do usuário "postgres" e do cluster.

Faça o download a partir do ftp repositório oficial do PostgreSQL
~$ sudo wget http://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.gz

Descompacte o pacote.
~$ sudo mkdir /opt/download
~$ sudo tar -vzxf ./postgresql-9.3.5.tar.gz -C /opt/download 
~$ cd /opt/download/postgresql-9.3.5

Instale as dependências abaixo, antes de iniciar a instalação.
~$ sudo aptitude install build-essential zlib1g-dev libreadline5-dev libc6-dev

Execute o comando abaixo, para compilar o PostgreSQL 9.3, passando o caminho para instalação em "--prefix=".
~$ sudo ./configure --prefix=/opt/postgresql-9.3

Execute o comando para instalar.
~$ sudo make && make install

Crie usuário "postgres"
~$ sudo adduser postgres

Quando o PostgreSQL for funcionar em produção, recomenda-se como boas práticas, a criação do usuário "postgres" com o login desabilitado. Para criar o usuário com esta característica, passar o parâmetro "--disabled-login" logo após o comando de criação. Neste caso, o acesso utilizando o usuário "postgres" deverá ser a partir do usuário "root", somente.
Adicione o caminho da instalação do PostgreSQL no arquivo "/etc/profile", para configurar a variável de ambiente PATH de sua distro. Edite o arquivo "/etc/profile" e inclua a linha abaixo
export PATH=$PATH:/opt/postgresql-9.3/bin

Execute o comando abaixo para aplicar a última configuração.
~$ source /etc/profile

Verifique se a variável de ambiente foi configurada corretamente, executando o comando abaixo.
~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/postgresql-9.3/bin

Agora que o serviço do SGDB está completamente instalado, crie o cluster do seu banco de dados.
Crie uma pasta e atribua permissões a mesma para criação do cluster. Se o cluster for criado em uma pasta na profile do usuário "postgres" não é necessário a criação da pasta. Basta executar o comando "initdb" para criação da mesma.
Neste exemplo, crie a pasta "pgdata", fora da profile do postgres, na pasta de instalação do PostgreSQL, executando os comandos abaixo.
~$ sudo mkdir /opt/postgresql-9.3/pgdata
~$ sudo chmod -R 774 /opt/postgresql-9.3/pgdata/
~$ sudo chown -R postgres.postgres /opt/postgresql-9.3/pgdata/

Execute o comando abaixo para entrar com o usuário "postgres".
~$ su - postgres

Crie o cluster na pasta /opt/postgresql-9.3/pgdata.
~$ initdb -D /opt/postgresql-9.3/pgdata/

Após criação do cluster, inicialize-o utilizando o comando abaixo
~$ pg_ctl -D /opt/postgresql-9.3/pgdata start

Pronto, o banco já está instalado. Execute o comando abaixo para acessá-lo.
~$ psql -h localhost
psql (9.3.5)
Type "help" for help. postgres=# Digite \q para sair.

Para ver os processos do Postgres, utilize o comando abaixo, para ver os processos do usuário "postgres".
~$ ps U postgres
PID   TTY  STAT   TIME COMMAND
1044 ?
        S         0:00 /opt/postgresql-9.3/bin/postgres -D /opt/postgresql-9.3/pgdata
1120 ?
        Ss       0:00 postgres: logger process
1128 ?        Ss       0:00 postgres: checkpointer process
1129 ?        Ss       0:00 postgres: writer process
1130 ?        Ss       0:00 postgres: wal writer process
1131 ?        Ss       0:00 postgres: autovacuum launcher process
1132 ?        Ss       0:01 postgres: stats collector process


Para parar o serviço, utilize.
~$ pg_ctl -D /opt/postgresql-9.3/pgdata stop

Veja também:
- Instalação PostgreSQL 9.1 32 bits em distro Debian ou Ubuntu
- Configurações adicionais para PostgreSQL 9.1
- Backup Parcial PostgreSQL com "pg_dump" 
- Backup Full PostgreSQL com "pg_dump"

0 comentários:

Postar um comentário