ID-DEB-002 - Criação Do Banco Em PostgreSQL Para O Consignado

ID: KB-ID-DEB-002

Responsável: Thiago Amaral, TI

Status: Publicado

Última Atualização: 16/09/2025


Propósito

Fornecer um guia passo a passo para o time de Suporte TI Nível 1 instalar, configurar, criar usuários e tabelas, e importar dados em um novo servidor de banco de dados PostgreSQL.

Aplica-se a

  • Time de Suporte TI Nível 1 da Fictor.

  • Servidores Linux (baseados em Debian/Ubuntu) para novas instalações de banco de dados.

Pré-requisitos

  • Acesso com permissões sudo ao servidor Linux.

  • Conhecimento básico de comandos de terminal.

  • Um arquivo de dados (ex: CSV) pronto para importação.

  • Porta 5432 liberada no firewall do servidor para acesso remoto.


Instruções

O processo abrange a instalação, criação do banco e usuário, configuração de acesso remoto e importação de dados.

1. Instalação e Habilitação do Serviço PostgreSQL

  1. Atualize os pacotes do sistema e instale o PostgreSQL:

    sudo apt update && sudo apt install postgresql postgresql-contrib -y
  2. Inicie e habilite o serviço para que ele seja executado automaticamente no boot do servidor:

    sudo systemctl start postgresql
    sudo systemctl enable postgresql
  3. Verifique se o serviço está rodando corretamente:

    sudo systemctl status postgresql

2. Criação do Banco de Dados e Usuário

As operações a seguir são feitas dentro do shell do PostgreSQL.

  1. Acesse o shell do sistema com o usuário padrão postgres:

    sudo -i -u postgres
  2. Dentro do shell do usuário postgres, inicie o prompt de comando do banco de dados:

    psql
  3. Crie um novo banco de dados (ex: `h_estoque`):

    CREATE DATABASE h_estoque;
  4. Crie um novo usuário com uma senha criptografada (substitua thiago e a senha conforme necessário):

    CREATE USER thiago WITH ENCRYPTED PASSWORD '5Ux5084J+';
  5. Conceda todos os privilégios do novo banco de dados ao novo usuário:

    GRANT ALL PRIVILEGES ON DATABASE h_estoque TO thiago;
  6. Saia do prompt do psql com \q e depois do shell do usuário com exit.

3. Habilitação de Conexões Remotas

Para permitir que aplicações externas se conectem ao banco, ajuste os seguintes arquivos de configuração.

  1. Edite o arquivo postgresql.conf para que o serviço escute em um IP específico ou em todos (*). * Arquivo: /etc/postgresql/13/main/postgresql.conf * Altere a linha: listen_addresses = '187.102.181.26'

  2. Edite o arquivo pg_hba.conf para autorizar a conexão do IP configurado, exigindo senha (md5). * Arquivo: /etc/postgresql/13/main/pg_hba.conf * Adicione a linha: host all all 187.102.181.26/32 md5

  3. Reinicie o serviço PostgreSQL para aplicar as alterações:

    sudo systemctl restart postgresql

4. Criação da Tabela e Importação de Dados

  1. Conecte-se ao banco de dados com o usuário recém-criado para criar a estrutura da tabela.

    psql -U thiago -d h_estoque
  2. Dentro do `psql`, execute o comando `CREATE TABLE` com as colunas necessárias:

    CREATE TABLE h_estoque_table (
    situacao VARCHAR, pes_tipo_pessoa VARCHAR, cedentecnpjcpf VARCHAR,
    tit_cedente_ent_codigo VARCHAR, cedentenome VARCHAR, cnae VARCHAR,
    secaocnaedescricao VARCHAR, notapdd VARCHAR, sac_tipo_pessoa VARCHAR,
    sacadocnpjcpf VARCHAR, sacadonome VARCHAR, idtitulovortx VARCHAR,
    tipoativo VARCHAR, dataemissao DATE, dataaquisicao DATE,
    datavencimento DATE, numeroboleto VARCHAR, numerotitulo VARCHAR,
    campochave VARCHAR, valoraquisicao NUMERIC, valornominal NUMERIC,
    valorpresente NUMERIC, pddnota NUMERIC, pddvencido NUMERIC,
    pagamentoparcial VARCHAR, coobricacao VARCHAR, datageracao DATE,
    pddtotal NUMERIC, campoadicional1 VARCHAR, campoadicional2 VARCHAR,
    campoadicional3 VARCHAR, campoadicional4 VARCHAR, campoadicional5 VARCHAR,
    pddefeitovagao NUMERIC, percentagemefeitovagao NUMERIC
    );
  3. Transfira o arquivo CSV para o servidor usando scp na sua máquina local.

    scp /caminho/local/FIDC.csv thiago-asset@IP_DO_SERVIDOR:/home/thiago-asset/
  4. Dentro do psql no servidor, use o comando \COPY para importar os dados do arquivo para a tabela.

    \COPY h_estoque_table FROM '/home/thiago/ESTOQUE_CLEANSED.csv' WITH (FORMAT csv, HEADER true, DELIMITER ';', ENCODING 'UTF-8');

5. Teste de Conexão

  1. Teste Local (dentro do servidor):

    psql -U thiago -d h_estoque
  2. Teste Remoto (de outra máquina):

    psql -h <IP público do servidor> -U thiago -d h_estoque
    • Este comando solicitará a senha do usuário thiago.


Resultado Esperado

Um servidor PostgreSQL funcional e acessível remotamente pela porta 5432. O banco h_estoque deve estar criado, com o usuário thiago tendo acesso total a ele, e a tabela h_estoque_table deve conter os dados importados do arquivo CSV.

Solução de Problemas

  • Problema/Erro: Datas importadas incorretamente devido ao formato americano (Mês/Dia/Ano). * Solução: Altere o datestyle do banco de dados para o padrão brasileiro (Dia/Mês/Ano). Conecte-se como superusuário (postgres) e execute: ALTER DATABASE h_estoque SET datestyle = 'ISO, DMY';

  • Problema/Erro: A importação falha devido a valores numéricos com vírgula em vez de ponto. * Solução: Antes de importar, processe o arquivo CSV no servidor com o comando sed para substituir as vírgulas por pontos em campos numéricos: sed 's/\([0-9]\),\([0-9]\)/\1.\2/g' FIDC-UTF.csv > FIDC-UTF-fixed.csv

  • Problema/Erro: A importação falha porque o CSV tem colunas vazias, mas a tabela não permite valores nulos. * Solução: Altere a coluna na tabela para permitir valores nulos: ALTER TABLE h_estoque_table ALTER COLUMN nome_da_coluna DROP NOT NULL;

  • Problema/Erro: Um usuário específico precisa ser o dono do banco de dados. * Solução: Use o comando ALTER DATABASE para transferir a propriedade: ALTER DATABASE h_estoque OWNER TO nome_do_usuario;

Artigos Relacionados

N/A

Anexos

  • Credenciais de Acesso ao Servidor (Exemplo): * ssh -i thiago-asset_ssh_key [email protected] * Senha: rJ]+42y5S}67

  • Comando para Envio de Arquivos: * scp /caminho/local/arquivo.csv usuario@servidor:/caminho/remoto/

Referências

Histórico de Revisões

Data
Versão
Responsável
Mudança

29/01/2024

v1.0

Thiago Thalisson

Confecção do documento.

Last updated