FolioPierEstudos de TI

O banco de dados no ambiente

Nota 2 de 41 · 6 min de leitura
Nesta página
  1. O servidor de banco de dados
  2. Banco, tabela, linha e coluna
  3. Onde ficam os bancos no cenário
  4. Como o sistema encontra o banco
  5. A pasta compartilhada e o banco são acessos diferentes
  6. Os dados entre a matriz e a filial
  7. A versão do MySQL

Quando o sistema não encontra um cadastro ou não consegue gravar uma venda, é preciso saber qual banco de dados o sistema utiliza, em qual computador esse banco fica e como os dados chegam até ele. Esse mapa evita confundir uma falha do banco de dados com uma falha da rede ou da comunicação entre a loja e a matriz.

O servidor de banco de dados

Um banco de dados é um conjunto organizado de informações, como produtos, preços, clientes, estoque e vendas. O Sistema Gerenciador de Banco de Dados (SGBD) é o programa que gerencia essas informações e controla o acesso a elas. No cenário, o SGBD é o MySQL. Quando está em execução, ele atua como servidor de banco de dados e oferece aos outros programas um serviço de banco de dados. Esse serviço é a função do próprio MySQL de receber e processar os pedidos de consulta e de gravação.

As estações não abrem diretamente os arquivos em que os dados ficam guardados. As estações enviam pedidos ao MySQL, e o MySQL acessa os arquivos e devolve as respostas.

No Windows, o MySQL é executado como um serviço do Windows, iniciando junto com o computador e funcionando em segundo plano, sem depender de alguém conectado ao Windows. Esse é um modo de executar o programa; o serviço de banco de dados é a função que ele oferece aos outros programas. O serviço do Windows aparece na lista de serviços, aberta pelo comando services.msc, com o nome escolhido na instalação, como MySQL, por exemplo.

Banco, tabela, linha e coluna

As informações se organizam em quatro níveis:

  • Banco: um conjunto de tabelas com nome próprio, também chamado de schema. Um mesmo servidor MySQL pode guardar vários bancos.
  • Tabela: reúne um tipo de informação, como os produtos ou as vendas.
  • Linha: cada item guardado em uma tabela, como uma venda. A linha também é chamada de registro.
  • Coluna: uma informação de cada linha, como o número do documento ou a data da venda. A coluna também é chamada de campo.

Os nomes registro e campo aparecem com frequência nas telas dos sistemas. Os nomes linha e coluna aparecem no SQL, a linguagem usada para consultar e alterar os dados.

No cenário, o banco da filial se chama loja e reúne, entre outras, as tabelas produtos, clientes, vendas e itens_venda.

Onde ficam os bancos no cenário

  • o servidor da filial, no endereço 192.168.1.10, executa o serviço do MySQL na porta padrão, a 3306, e guarda o banco loja, usado por todas as estações da filial;
  • o caixa e o balcão executam o sistema da filial, que consulta e grava no banco do servidor da filial pela rede local;
  • o servidor da matriz, no endereço 192.168.0.50, guarda o banco da matriz, que reúne as informações recebidas da filial, e executa o serviço de sincronização.

Esse arranjo pode variar de uma instalação para outra. Em uma loja única, o mesmo computador pode guardar o banco e funcionar como caixa. Em algumas instalações, o caixa tem um banco próprio, com o MySQL instalado no próprio computador, para continuar vendendo quando o servidor da filial fica indisponível. Nesses casos, o banco usado pelo caixa está no próprio caixa.

Como o sistema encontra o banco

Para se conectar ao banco, o sistema precisa de cinco informações: o endereço do servidor, a porta, o nome do banco, o usuário e a senha. Em muitos sistemas, essas informações ficam em um arquivo de configuração, na pasta de instalação. Quando a configuração indica localhost ou 127.0.0.1, o sistema procura o banco no próprio computador em que está rodando.

A porta do MySQL pode ser alterada no arquivo de configuração do servidor de banco de dados, o my.ini. Para que a mudança entre em vigor, o serviço precisa ser reiniciado. A configuração do sistema em cada estação precisa indicar a mesma porta, e o firewall do servidor precisa liberar a porta nova.

Depois de uma troca de servidor, a configuração de cada estação precisa ser conferida. Um arquivo de configuração copiado de outro computador pode conservar o endereço antigo, e o sistema passa a procurar o banco em um computador que não existe mais na rede.

A pasta compartilhada e o banco são acessos diferentes

O servidor da filial oferece dois serviços diferentes às estações. O compartilhamento de arquivos do Windows, pelo protocolo SMB, atende o acesso à pasta de instalação do sistema, na porta 445. O MySQL atende os pedidos de dados, na porta 3306. Abrir a pasta compartilhada não comprova que a conexão com o MySQL funciona, porque os dois acessos usam serviços, portas e permissões diferentes.

O MySQL guarda as tabelas em arquivos, na pasta de dados do servidor. Uma cópia desses arquivos feita com o serviço em execução pode ficar inconsistente e não permitir a restauração dos dados. A cópia de segurança de um banco exige um procedimento próprio.

Os dados entre a matriz e a filial

A filial tem o próprio banco, e a matriz tem o seu. A rotina de sincronização no servidor da filial inicia a comunicação com o serviço de sincronização no servidor da matriz. Por essa comunicação, as vendas registradas na filial são enviadas à matriz, e os preços atualizados e os demais dados necessários às operações são recebidos e aplicados na filial. Por isso, um banco sem nenhum defeito na filial não comprova que uma atualização enviada pela matriz chegou e foi aplicada.

Quando a etiqueta de um produto sai com o preço antigo depois de uma alteração feita na matriz, a primeira verificação é o preço gravado no banco da filial. Se o banco ainda tem o preço antigo, a investigação segue para a sincronização. Se o banco já tem o preço novo, a investigação segue para a impressão.

A versão do MySQL

Uma mesma empresa pode ter versões diferentes do MySQL em servidores diferentes. A versão importa, porque comandos, opções e formas de armazenamento mudam de uma versão para outra. O comando SELECT VERSION(); mostra a versão do servidor ao qual a conexão foi aberta.

No suporte

Antes de atribuir uma falha ao banco ou à rede, convém montar o mapa da conexão: em qual computador fica o banco, em qual porta o serviço escuta, qual banco e qual usuário o sistema utiliza e qual é a versão do MySQL. Esse mapa indica qual teste fazer e em qual computador.

Para guardar

  • O MySQL é o SGBD: em execução, oferece o serviço de banco de dados, recebe os pedidos das estações e acessa os arquivos dos dados.
  • Os dados se organizam em banco, tabela, linha e coluna.
  • A configuração do sistema indica o servidor, a porta, o banco, o usuário e a senha.
  • O compartilhamento de arquivos e o serviço de banco de dados oferecido pelo MySQL são serviços diferentes, em portas diferentes.
  • Um banco sem defeito na filial não comprova que as atualizações da matriz chegaram.
Depois de uma troca de servidor, o sistema de uma estação não encontra o banco. O que conferir primeiro?

A configuração do sistema nessa estação. Se a configuração ainda indica o endereço do servidor antigo, o sistema procura o banco em um computador que não existe mais na rede. Em um caixa com banco próprio, o banco esperado fica no próprio caixa.

A pasta do sistema abre no caixa, mas o sistema não se conecta ao banco. Por que um acesso não garante o outro?

A pasta usa o compartilhamento de arquivos do Windows, na porta 445. O sistema precisa alcançar o MySQL, na porta 3306, e ser aceito com o usuário e a senha configurados. São serviços, portas e permissões diferentes.

Publicado a partir do Obsidian · FolioPier