Suporte / Infraestrutura
- Análise de Performance
- DEP
- Performance - Visão geral
- Registrando / Atualizando MIDAS.DLL
- Script para análise de performance
- Bancos de dados
- Impressão
- Instalação do Sistema
- Checklist de Instalação ou Migração de Sistema para Novo Servidor
- Como realizar a instalação das aplicações
- Resolutiva de problemas pós instalação de aplicação - Cliente FIREBIRD
- Instalação do Firebird
- Instalação e Configuração Oracle
- Analisando o tamanho e espaço da tablespace
- Backup e Restauração da base de dados
- Limpar cache do Oracle (V$SQL)
- Parâmetros de sessão
- Realizando Backup no Oracle com EXP
- SQL's que mais consomem o banco de dados
- Instalação e Configuração PostgreSQL
- Ajustando Horário / Timezone do Postgres
- Aumentar o número de sessões
- Configurar base PostgreSQL no PgAdmin
- Criar banco de dados/conectar/exportar via linha de comando (cmd)
- Definições / Particularidades do PostgreSQL
- Gerar Backup
- Gerenciar banco de dados (Commit, nova conexão)
- Identificar índices não utilizados (ou não eficientes)
- Identificar tamanho do banco de dados
- Lições aprendidas
- Manutenção do PostgreSQL
- Obter informação sobre o banco de dados PostgreSQL - Tamanho / Enconding / Collate / Versao
- pg_hba.config
- PostgreSQL - Verificar sessões ativas
- Instalar, Criar Banco e Configurar Gerenciador de banco de Dados
- Instalação PDV
- Ativação do ECF
- Instalando PDV / Arquivos utilizados ECF
- Procedimentos para impressoras fiscais (novas / já em uso)
- Procedimentos em banco Oracle
- Serviços cloud
Análise de Performance
Neste capítulo, seguirá um checklist para consulta sobre os seguintes problemas: Sistema abre com a tela toda branca, sistema não abre, impressora não funciona, lentidão.
DEP
DEP - (Prevenção de execução de dados): É um recurso de segurança que vem de fábrica nos sistemas operacionais Microsoft Windows. Este recurso destina-se a impedir a execução de códigos de uma região da memória não-executável em um aplicativo ou serviço.
Este recurso pode ser ativado tanto nos servidores quando nas estações de trabalho dos usuários, isso vai depender de como nossos produtos estão instalados.
Configuração da DEP
Performance - Visão geral
Esta IT tem por objetivo apresentar alguns pontos que podem ser avaliados durante a análise de desempenho (lentidão) de servidores e estações de trabalho Windows, quando o servidor/estação apresenta lentidão excessiva no uso com as aplicações da Ema.
Esta análise deve ser realizada por intermédio do responsável pela infraestrutura de TI da empresa (cliente), quando os sistemas da Ema estiverem prejudicando o andamento dos processos de negócios devido ao seu baixo desempenho.
Para os servidores, todas as versões do sistema operacional Windows Server 2008 R2, possuem um recurso muito útil chamado de “Performance Monitor", ou "Monitor de Performance", que pode ser encontrado nas "Ferramentas Administrativas". Este recurso consegue utilizar coletores de informações sobre todo o hardware e software, e emitir um relatório ao final, diagnosticando a situação atual.
Uma análise de desempenho deve ser realizada preferencialmente de maneira holística, pois os servidores e os demais ativos de TI atuam sobre uma topologia de rede que costuma ser diferente em cada cenário, e isto pode influenciar diretamente o desempenho das aplicações da Ema.
Em suma, não somente o servidor pode ou deve ser analisado, mas a rede como um todo: Servidores físicos, servidores virtuais, estações de trabalho, ativos de rede, serviços de rede, sistemas operacionais, etc.
A seguir, encontram-se alguns itens que de acordo com nossa experiência, comumente costumam influenciar no desempenho do servidor:
Hardware
Processador:
Verificar se a capacidade de processamento do servidor está suportando a carga de processos atual.
Memória RAM:
Verificar a quantidade de memória RAM disponível, além da memória RAM que está sendo utilizada. Computadores que trabalham utilizando o limite da memória RAM, realizando paginação em disco, apresentam lentidão excessiva. Este é um dos problemas mais comuns. Se necessário, realizar testes para diagnóstico de problemas na memória RAM. O Windows Server possui um recurso chamado "Diagnóstico de Memória do Windows", se for necessário.
Disco (HD):
Verificar o espaço em disco livre, a integridade e o desempenho do HD. Servidores antigos possuem discos mais lentos. Pouco espaço livre em disco é um risco muito grande, não só para os sistemas da Ema, mas para o servidor. A integridade e o desempenho do disco pode ser verificada com aplicativos de terceiros, ou com o próprio Monitor de Performance do Windows.
Servidor Físico:
Verificar a integridade e o tempo de vida do servidor físico. Servidores antigos costumam não suportar os sistemas da Ema e diversas outras aplicações, com um desempenho satisfatório.
Software
Drivers:
Conferir se todos os drivers estão devidamente instalados e atualizados.
Prevenção de Execução de dados (DEP):
Incluir os executáveis da Ema como exceção no DEP. Isto ajuda a evitar diversos problemas que já enfrentamos.
Arquitetura do Sistema Operacional:
Recomenda-se que a arquitetura do S.O. seja de 64 bits, para que o servidor possa utilizar todo o desempenho disponíveis nos processadores atuais. Sistemas operacionais de 32 bits reconhecem até 3,3 GB de memória RAM por padrão. Algumas versões de 32 bits conseguem utilizar mais de 3,3GB de memória RAM, mas muitos aplicativos não conseguem utilizar mais que o limite desta arquitetura quando instalados, como por exemplo, o banco de dados Oracle.
Serviços do Windows:
Verificar se existem serviços que podem ser desativados, para que não comprometam ou influenciem no desempenho do servidor desnecessariamente.
Antivírus:
A existência de antivírus pode prejudicar ou comprometer totalmente o desempenho dos sistemas da Ema. Recomenda-se que os diretórios e os executáveis utilizados pela Ema sejam adicionados como exceção no antivírus para evitar problemas.
Vírus:
Poucos servidores possuem antivírus. Muitos malwares costumam afetar o desempenho do servidor, neste caso, também é muito importante verificar a existência de vírus.
Plugin Internet Banking:
Os plugins costumam interferir no funcionamento do nosso software. Eis alguns: GBplugin, Warsaw e SCPVISTA (Bradesco). O sistema pode apresentar lentidão, travamento ou ainda, fechar sozinho em alguns casos, sem apresentar mensagem de erro. Verificar o uso de qualquer internet banking nas estações de trabalho ou nos servidores e removê-los, pois, eles não são compatíveis com as aplicações da Ema.
Serviços Virtuais:
Verificar a integridade dos sistemas de virtualização, realizar os últimos updates disponíveis para o hipervisor.
Outros aplicativos:
A existência de diversos outros softwares instalados no mesmo servidor onde encontram-se os sistemas da Ema influenciam diretamente no desempenho e/ou na funcionalidade dos sistemas. O servidor deve ser dedicado aos sistemas da Ema.
Relatórios de Problemas:
Caso ocorra algum problema muito específico, este recurso que está disponível na Central de Ações, no Painel de Controle, pode ajudar a identificar a origem dos erros. Pesquisar pela opção "Exibir todos os relatórios de problemas"
Infraestrutura:
Internet:
Para cenários que utilizam a comunicação via internet para uso dos sistemas da Ema, é de suma importância que o link de internet tenha uma velocidade compatível com todos os recursos que são utilizados na rede. Conferir a velocidade contratada, o consumo de banda do link e a integridade do sinal. Se necessário, solicitar o aumento de velocidade ou outras providências pertinentes ao problema relatado.
Rede:
O cabeamento deve estar devidamente protegido de interferências e agentes externos que possam prejudicar a integridade dos cabos. A comunicação entre os hosts não deve sofrer quedas constantes ou perdas de pacotes. Avaliar a largura de banda da rede e os demais ativos relacionados a transmissão dos dados (switches, roteadores, access points, etc).
Ainda em relação a Rede, é possível realizar testes de largura de banda através do aplicativo Iperf: http://brainwork.com.br/. Ele poderá identificar facilmente, se existem problemas na largura de banda interna ou quedas na conexão.
Alimentação Elétrica:
Verificar a alimentação elétrica dos principais ativos de TI. Se houver problemas aparentes ou histórico de incidentes, deve-se verificar a situação com uma empresa especializada.
Observações sobre Banco de dados:
Recomendamos fortemente que o banco de dados seja avaliado em conjunto com a infraestrutura de TI, pois o banco de dados está totalmente relacionado com o uso crítico das aplicações da Ema, e podem influenciar diretamente no desempenho.
Parcerias:
A Ema possui parceria com empresas especializadas em infraestrutura de TI e banco de dados Oracle. São empresas certificadas pela Ema para exercerem qualquer tipo de serviço relacionado ao seu ramo de atuação, com ênfase nas aplicações da Ema.
Registrando / Atualizando MIDAS.DLL
Para registar a DLL midas.dll efetue o seguinte procedimento:
- Identifique o local onde está a DLL, por padrão ela estará em: C:\Ema software\Contas ERP\midas.dll
- Abra o CMD como administrador;
- Na tela de comando dê
- cd\ "entrer"
- cd ema software "enter"
- cd Contas ERP "enter"
- regsvr32 midas.dll "enter"
Com isto a DLL será registrada.
Script para análise de performance
Objetivo
Essa documentação tem por objetivo prover orientações para o fluxo de análise de performance dos sistemas da Ema, de modo que as ações realizadas pelas áreas envolvidas neste processo sejam organizadas e eficazes para a resolução de cada demanda.
Fluxo de atendimento
O fluxo de atendimento para análise de performance deve ser iniciado por meio da abertura de uma tarefa com o time de Suporte. Nesta primeira etapa a equipe de Suporte irá levantar informações acerca da situação relatada pelo cliente, onde deverá ser realizada uma pré-análise do ambiente onde o sistema da Ema está operando. O time de Suporte deverá detalhar o comportamento apresentado pelo sistema no momento em que o problema relatado pelo cliente ocorre.
Durante a etapa de pré-análise, o time de Suporte poderá identificar algum gap de performance. A equipe poderá repassar ao cliente os pontos de verificação para que ele possa prover às ações corretivas. Caso o problema de performance persista ou caso seja considerado pertinente uma análise relacionada à infraestrutura de TI do cliente para identificação do problema, a equipe de TI da Ema será acionada para prestar apoio. A equipe de TI deverá ser acionada após a avaliação do segundo nível de atendimento do Suporte, para que outros aspectos relacionados à situação relatada pelo cliente possam ser avaliadas.
A equipe de TI da Ema ficará responsável por avaliar a estrutura de servidores, estações de trabalho e/ou rede do cliente, bem como poderá conferir se o banco de dados utilizado pelo sistema da Ema está parametrizado corretamente, de acordo com os padrões que constam em nossa documentação. Todas estas atividades serão executadas de maneira remota.
Se a equipe de TI da Ema identificar gaps de performance na infraestrutura do cliente, eles serão repassados ao responsável pelo início do atendimento da tarefa, para que ele estabeleça contato com o cliente e realize um feedback. Os pontos de atenção avaliados pela equipe de TI serão encaminhados com orientações de correção e/ou sugestões de melhoria. Caso nenhum gap seja identificado pelo time de TI, o atendimento poderá ser escalado para avaliação da equipe de Desenvolvimento ou devolvido para equipe de Suporte, dependendo da situação. Se for necessário, a equipe de TI da Ema poderá se reunir com o cliente presencialmente na Ema ou remotamente via call, para avaliação dos gaps identificados ou para apoio técnico.
Se o atendimento for escalado para o time de Desenvolvimento, a equipe irá realizar uma análise com base em todo levantamento de informações que constam na tarefa, em busca de algum problema no produto que possa estar interferindo na baixa performance da operação relatada pelo cliente, bem como irá verificar alguns aspectos relacionados ao banco de dados que estiverem ao nosso alcance, como, por exemplo, a necessidade de criação de índices.
Se o problema de performance persistir ou não for identificado após todas as verificações realizadas pelas áreas de negócio da Ema (Operações, TI e Desenvolvimento), será avaliado o acionamento de uma empresa parceira para avaliação do banco de dados do sistema da Ema, podendo a empresa ser acionada diretamente pela Ema ou pelo próprio cliente.
Atividades de cada área
Suporte (Operações)
Levantamento de informações acerca da situação relatada pelo cliente
- Descrever o comportamento da situação apresentada, obtendo detalhes do momento em que a operação realizada pelo cliente ocorre, considerando:
- Ocorre somente na estação de trabalho?
- Ocorre somente no servidor?
- Ocorre na estação de trabalho e no servidor?
- Foi testado em outro ambiente? (como, por exemplo, no ambiente de homologação do próprio cliente)
- Atualização da versão dos sistemas da Ema;
- Atualização do sistema operacional;
- Implementação de novos recursos;
- Instalação e/ou configurações de aplicativos terceiros (antivírus, aplicativos de internet banking, firewalls, ferramentas, utilitários, etc.);
- Manutenção preventiva ou corretiva.
- Instalação ou substituição de switches;
- Instalação ou substituição de roteadores;
- Instalação de novos ativos.
- Existem processos que fazem conexão em bases de dados de terceiros?
- Existem agendamentos programados?
- Dados para simulação da operação no ambiente interno e/ou no ambiente do cliente;
- Comparar o tempo do procedimento homologado em relação com a situação apresentada pelo cliente;
- Frequência com que a situação ocorre;
- Há quanto tempo o problema vem ocorrendo;
- Informações sobre o local onde o problema ocorre:
- Se houve alguma mudança recente na estrutura do servidor e/ou da estação de trabalho, tais como:
- Se houve alguma mudança recente na estrutura da rede, tais como:
- Se for possível, grave um vídeo da operação, apresentando o comportamento informado pelo cliente.
- Procure identificar as consultas mais lentas que ocorrem nas operações do sistema, ou se às consultas na base de dados que vinculadas a situação repassada pelo cliente podem estar apresentando lentidão. Isto é um requisito para análise da área de desenvolvimento e no próximo tópico serão apresentados recursos para realização dessa análise.
- Para clientes que utilizam DOX:
Pré-análise da estrutura
- Avaliação do consumo dos recursos de hardware:
- CPU;
- Memória RAM;
- Disco;
- Rede.
- Qual a velocidade da rede de computadores?
- 100Mbps ou 1Gbps?
- O uso de rede gigabit é um requisito para uso do sistema via atalho nas estações.
- O servidor e/ou estação de trabalho utiliza o sistema da Ema via atalho por meio de uma rede sem fio?
- Não haverá um bom desempenho do sistema na rede sem fio, em certos casos esse cenário pode comprometer muito o uso da aplicação.
- Velocidade do link de internet:
- Para os usuários que realizam acesso externo ao servidor para uso do sistema, a velocidade de internet (tanto na origem, quanto no destino) pode influenciar na performance.
- Caso exista antivírus no servidor e/ou na estação de trabalho, solicite ao cliente que inclua o client e/ou os micro serviços do sistema como exceção na varredura e também na verificação em tempo real, bem como realize um teste desativando o antivírus temporariamente;
- Verificar o consumo de CPU e memória RAM;
- A reinicialização dos micro serviços pode ajudar na resolução do problema.
- Logs dos micro serviços:
- Avaliar os logs dos micro serviços em busca de erros que possam ajudar na identificação do problema
- Verificar a existência de plug-ins de internet banking;
- PEX:
- Identifique se o processo apresentado pelo cliente é uma personalização.
- Verifique o arquivo midas.dll:
- A versão do arquivo midas.dll utilizada pelo sistema da Ema deve ser a 21.0.17707.5020, com data de 06/11/2014;
- Este arquivo deve estar localizado no diretório do executável da Ema, bem como poderá estar no diretório C:\Windows\SysWOW64;
- Verifique se há no servidor e/ou na estação de trabalho outros arquivos midas.dll em versões incompatíveis.
- Utilize o recurso Validar estrutura de banco de dados, disponível no sistema em Configurações > Utilitários, para validar se existem campos faltando no banco ou demais ajustes que podem ser feitos. Quando o banco de dados for do tipo Oracle, também existe a opção de Validar índices do banco.
- Para verificar as consultas mais lentas no banco de dados, temos um parâmetro no sistema para habilitar o log das querys que consomem mais tempo. O tempo a ser informado ficará sob critério de análise, pois é algo que depende de cada operação. A sugestão é logar tempos superiores a 10 segundos. Este parâmetro está localizado no Ema Configurador, conforme a imagem a seguir:
- Para análise de consultas lentas no banco de dados (quando o cliente utilizar banco de dados do tipo Oracle), temos um recurso disponível no SQL Developer que pode ajudar na identificação das querys . Esta opção pode ser acessada no SQL Developer através do menu Ferramentas > Monitor de SQL em Tempo Real.
Análise do ambiente de TI
- Uso de recursos de hardware do servidor e/ou da estação de trabalho:
- CPU;
- Memória RAM;
- Disco;
- Rede.
- Avaliação do hardware utilizado;
- Avaliação da largura de banda de rede (100Mbps/1000Mbps)
- Avaliar o uso do host de virtualização ou solicitar para que o cliente faça essa avaliação (caso o servidor do sistema esteja virtualizado);
- Logs do sistema operacional:
- Logs de aplicação, sistema e segurança.
- Aplicativos de terceiros:
- Avaliar se existem outros aplicativos (além do sistema da Ema) que possam estar interferindo na performance ou no uso adequado de nossas aplicações.
- Processos em execução:
- Verificar se existe algum processo que possa estar interferindo de maneira significativa na performance do servidor e/ou estação de trabalho, bem como se o processo pode ser um software malicioso.
- Antivírus:
- Avaliar se os executáveis da Ema já foram configurados adequadamente como exceção.
- Largura de banda e desempenho da rede:
- Se necessário, avaliar se o tráfego de rede dos servidores e/ou das estações de trabalho correspondem ao que está sendo apresentado nas configurações da interface de rede;
- Ferramenta para apoio na análise da banda de rede: https://www.iperiusbackup.net/pt-br/iperf-ferramenta-para-medir-a-largura-de-banda-e-o-desempenho-da-rede-tcp-udp-sctp/
- Internet:
- Conferir a velocidade e integridade do link de internet, caso ele esteja envolvido na entrega do serviço para uso das aplicações da Ema.
Monitoramento de recursos de hardware
- Se for necessário realizar o acompanhamento do consumo dos recursos de hardware do servidor e/ou da estação de trabalho por um período de tempo, será realizada a instalação de uma ferramenta de monitoramento do servidor, onde serão avaliados os seguintes aspectos:
- Uso de CPU;
- Uso de memória RAM;
- Uso de disco;
- Uso da rede:
- A ferramenta a ser utilizada será a HetrixTools;
- Será disponibilizado, se necessário, um link para acesso ao relatório de desempenho;
Banco de dados
- Quando houver incidentes relacionados ao tamanho do banco de dados, inicialmente avaliar tabelas com prefixo XX, ZZ ou YY que podem ser relacionadas a conversão de dados e dropar (excluir) essas tabelas;
- Verificações que poderão ser realizadas em cada tipo de banco:
- Verificação relacionada a parametrização da base de dados, tais como:
- Parâmetros de sessão, transação e processos;
- Quantidade de memória alocada para a base;
- Arquivos de log do Oracle (alert log): C:\app\diag\rdbms\orcl\orcl\trace
- Atualização das estatísticas da base de dados: https://kb.ema.net.br/link/765#bkmrk-1%C2%AA-op%C3%A7%C3%A3o%3A-execute-db
- Versão do Oracle (Full ou XE);
- Tamanho da base de dados (Dumps e data files);
- Validar estrutura do banco de dados pelo sistema (DOX/ERP);
- Em último caso, o backup/restore do schema ou a reinstalação do banco Oracle pode resolver
- Verificação relacionada a parametrização da base de dados, tais como:
- Quantidade máxima de processos alocada para a base
- Utilizar comando de manutenção VACCUM
- Tunning de banco de dados em ambientes Windows
- pgTune (https://pgtune.leopard.in.ua/)
- Backup/restore do banco de dados;
- Utilização do utilitário Gfix para correção de possíveis erros na base de dados.
- Oracle:Postgres:
- Firebird:
Desenvolvimento
Análise do produto
- Avaliação de pontos que podem estar com problemas e comprometendo a operação relatada pelo cliente.
- Para este ponto, é de extrema importância que exista uma simulação do problema, mesmo que aqui não ocorra, temos que ter exatamente os passos a passos de como o procedimento está sendo executado pelo cliente, quais telas são utilizadas, quais teclas ou atalhos são utilizados ou se utilização feita com o mouse, etc.
- Customizações e/ou funcionalidades que possam estar consumindo memória (vazamento) e/ou com codificação que possa ser aperfeiçoada.
Ações que podem ser realizadas a nível de banco de dados:
- Avaliação de índices na base;
- Problemas relacionados a triggers, functions, procedures, jobs, etc;
- Avaliação de querys (Conforme os dados obtidos na etapa de pré-análise).
Terceiros
- Escopo dos serviços prestados por nossos parceiros:
- Postgres
- Avaliação de problemas relacionados a performance no sistema da Ema;
- Migração de banco de dados Oracle para Postgres (no Linux);
- Migração de banco de dados Postgres do Windows para Linux;
- Implantação de banco de dados Postgres (no Linux) para novas contas.
- Oracle (Box Tecnologia)
- Avaliação de problemas relacionados a performance no sistema da Ema;
- Avaliação da estrutura do banco de dados;
- Migração de banco de dados Oracle do Windows para Linux.
- Banco de dados
Bancos de dados
Procedimentos, comandos, orientações sobre bancos de dados
Oracle
Comandos pós instalação
Abaixo seguem os comandos de parametrização que devem ser executados no banco de dados após a instalação inicial:
- CONECTAR VIA PROMPT DE COMANDO
- Iniciar -> Executar -> sqlplus sys as sysdba
- Iniciar -> Executar -> sqlplus sys as sysdba
- ALTERAR O CHARSET
- shut immediate;
- startup restrict;
- alter database character set INTERNAL_USE WE8ISO8859P1;
- shut;
- startup;
- AUMENTAR O Nº DE CONEXÕES (Se necessário, realizar backup do arquivo de configuração do Oracle deste diretório: C:\app\product\11.2.0\dbhome_1\database)
- shut immediate;
- startup restrict;
- alter system set PROCESSES=3000 scope=SPFILE;
- alter system set TRANSACTIONS=3000 scope=SPFILE;
- alter system set SESSIONS=3000 scope=SPFILE;
- shut;
- startup;
- ALTERAR FORMATO DATA/HORA E IDIOMA
- alter session set NLS_DATE_FORMAT = 'YYYY-MM-DD';
- alter session set NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
- call dbms_session.set_nls('NLS_LANGUAGE','PORTUGUESE');
- call dbms_session.set_nls('NLS_TERRITORY','BRAZIL');
- call dbms_session.set_nls('NLS_NUMERIC_CHARACTERS','''.,''');
- CRIAR USUÁRIO EMA
- CREATE USER EMA IDENTIFIED BY "dbaaccesskey"
DEFAULT TABLESPACE "USERS"
QUOTA UNLIMITED ON "USERS"; - GRANT "CONNECT" TO EMA WITH ADMIN OPTION;
GRANT "DBA" TO EMA WITH ADMIN OPTION;
ALTER USER EMA DEFAULT ROLE "CONNECT", "DBA";
- CREATE USER EMA IDENTIFIED BY "dbaaccesskey"
- CONFIGURAR ORACLE 11G PARA NÃO EXPIRAR A SENHA DO USUÁRIO
- ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Comandos de manutenção
1 - CONFIGURAR ORACLE 11G PARA NÃO EXPIRAR A SENHA DO USUÁRIO
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
---------------------------------------------------------
2 - OTIMIZAR E CORRIGIR PROBLEMAS COM O BANCO
1ª opção: EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('EMA', 'COMPUTE');
2ª opção: EXEC DBMS_STATS.GATHER_DATABASE_STATS;
---------------------------------------------------------
3 - VERIFICAR INFORMAÇÕES SOBRE MEMÓRIA E OUTRAS PARAMETRIZAÇÕES
Verificar o nº de processos: show parameter processes;
Verificar o nº de sessões: show parameter sessions;
Verificar o nº de transações: show parameter transactions;
Verificar informações sobre a memória: show parameter memory;
Verificar informações sobre a memória sga: show parameter sga;
Verificar informações sobre a memória pga: show parameter pga;
---------------------------------------------------------
4 - VERIFICAR SESSÕES, PROCESSOS E TRANSAÇÕES
select name, value
from v$parameter
where name in ('processes', 'sessions', 'transactions');
---------------------------------------------------------
5 - VERIFICAR SESSÕES EM USO E LIMITE CONFIGURADO
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
---------------------------------------------------------
6 - AUMENTAR MEMÓRIA RAM ALOCADA PARA O ORACLE
*Fazer um backup do arquivo antes de executar os comandos "$ORACLE_HOME/database/spfileXE-ORCL.ora"
alter system set memory_max_target=6500M scope=spfile;
alter system set memory_target=4500M scope=spfile;
shut immediate;
startup;
ou
alter system set sga_target=4G scope=spfile;
alter system set sga_max_size=5G scope=spfile;
shut immediate;
startup;
---------------------------------------------------------
7 - VERIFICAR Nº DE TABELAS
select count(1) from all_tables where owner = 'EMA';
---------------------------------------------------------
8 - VERIFICAR USUÁRIOS CONECTADOS
select sid,serial#,username, osuser, machine from v$session;
PARA DESCONECTAR O USUÁRIO DA BASE
alter system disconnect session 'sid,serial' immediate;
---------------------------------------------------------
9 - ADICIONAR NOVO TABLESPACE
CREATE TABLESPACE NOME_TABLESPACE LOGGING DATAFILE 'C:\APP\ORADATA\ORCL\NOME.DBF' SIZE 100M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL;
---------------------------------------------------------
10 - CRIAR UM NOVO DBF EM UM TABLESPACE EXISTENTE
ALTER TABLESPACE USERS ADD DATAFILE 'C:\APP\ORADATA\ORCL\USERS02.DBF' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
---------------------------------------------------------
11 - CRIAR NOVO DBF EM NO TABLESPACE TEMP
ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP02.DBF' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
---------------------------------------------------------
12 - EXCLUIR DBF DE UM TABLESPACE
ALTER TABLESPACE USERS DROP DATAFILE 'C:\APP\ORADATA\ORCL\WMW01.DBF';
---------------------------------------------------------
13 - COMANDO PARA OBTER TAMANHO OCUPADO POR CADA SCHEMA DO BANCO
select owner BANCO, tablespace_name,
cast(sum(bytes / 1024/*KB*/ / 1024/*MB*/) as numeric(15,2)) TAMANHO_MB,
cast(sum(bytes / 1024/*KB*/ / 1024/*MB*/ / 1024/*GB*/) as numeric(15,2)) TAMANHO_GB
from dba_segments
where tablespace_name = 'USERS'
group by owner, tablespace_name
order by 4 desc;
---------------------------------------------------------
14 - COMANDO PARA OBTER TAMANHO OCUPADO PELO SCHEMA EMA
select sum(bytes/1024/1024/1024)GB from dba_segments where owner='EMA';
---------------------------------------------------------
15 - IDENTIFICAR O TAMANHO DO DATAFILE
select substr(a.tablespace_name,1,20) "Tablespaces",
(b.BYTES/1048576) as "TotalMB",
(b.BYTES/1048576)-(c.BYTES/1048576) as "UsedMB",
(c.BYTES/1048576) as "FreeMB"
from dba_tablespaces a,
(select tablespace_name,sum(bytes) as "BYTES"
from dba_data_files
group by tablespace_name ) b,
(select tablespace_name,sum(bytes) as "BYTES"
from dba_free_space
group by tablespace_name) c
where
a.tablespace_name = b.tablespace_name(+)
and b.tablespace_name = c.tablespace_name(+)
order by a.tablespace_name;
---------------------------------------------------------
16 - LIBERAR BLOQUEIO DE TABELA PARA DROPAR USUÁRIO
alter table bloqueio_tabela enable table lock;
---------------------------------------------------------
17 - OBTER ESTATÍSTICAS DO BANCO DE DADOS
exec DBMS_STATS.GATHER_SCHEMA_STATS('EMA'); --SCHEMA
exec dbms_stats.gather_fixed_objects_stats(); --Objetos fixos do oracle
exec dbms_stats.gather_database_stats(); --Todo o Banco
exec dbms_stats.gather_dictionary_stats(); --Dicionario de dados do oracle
exec dbms_stats.gather_system_stats(); --S.O.
---------------------------------------------------------
18 - DESBLOQUER CONTA DE USUÁRIO NO ORACLE
ALTER USER "NOME DO USUARIO" IDENTIFIED BY "NOVA SENHA" ACCOUNT UNLOCK;
---------------------------------------------------------
19 - ALTERAR SENHA DO USUÁRIO NO ORACLE
ALTER USER EMA IDENTIFIED BY "senha" ACCOUNT UNLOCK;
---------------------------------------------------------
20 - COLOCAR DATAFILE PARA AUTOEXTEND=ON
alter database datafile 'C:\app\Administrador\oradata\orcl\USERS05.DBF' autoextend on;
---------------------------------------------------------
21 - DROPAR DATAFILE QUE NÃO EXISTE MAIS
alter database datafile 'c:\oracle\oradata\datafiles\file01.db' offline drop;
---------------------------------------------------------
22 - SETAR O TABLESPACE USERS COMO PRINCIPAL
--Pegar o FILE_ID do USERS com esse SELECT:
select file_id,
file_name,
TABLESPACE_NAME
from dba_data_files
where tablespace_name = 'USERS';
--Colocar o FILE_ID no lugar do número 4:
alter database datafile 4 resize 1024M;
---------------------------------------------------------
23 - SCRIPT PARA DROPAR TODOS OS USUÁRIOS DO ORACLE
begin
for tab in (
select distinct owner
from all_tables
where tablespace_name = 'USERS'
)
loop
execute immediate 'drop user ' || tab.owner || ' cascade';
end loop;
end;
---------------------------------------------------------
24 - VERIFICAR QUANTIDADE DE PROCESSOS EM USO E LIMITE
select * from v$resource_limit where resource_name = 'processes';
---------------------------------------------------------
25 - DELETER DATAFILE (EXCLUIR O ARQUIVO E DEPOIS DROPAR DO ORACLE)
SQL> startup
ORACLE instance started.
Total System Global Area 1720328192 bytes
Fixed Size 2255904 bytes
Variable Size 1275069408 bytes
Database Buffers 436207616 bytes
Redo Buffers 6795264 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: 'C:\ORACLE\ORADATA\ORCL\TRASHED01.DBF'
SQL> alter database datafile 6 offline drop;
---------------------------------------------------------
26 - OBTER VERSÃO DO ORACLE
select * from v$version;
---------------------------------------------------------
27 - RESOLVER PROBLEMA "ORA-12514 - TNS:Listener..." e outros erros de Listener
Antes de executar as ações a seguir, tente reiniciar os serviços do Oracle e do Listener nos Serviços do Windows. Dependendo do tipo de problema apresentado, a reinicialização dos serviços pode fazer com que o Listener volte a funcionar corretamente.
Realizar também um teste para confirmar se o serviço Listener está configurado corretamente, executando o seguinte comando no CMD do Windows: TNSPING ORCL
## SOLUÇÃO 1
Executar os seguintes comandos no terminal do Oracle:
- Consultar o valor da string LOCAL_LISTENER (pode estar vazio): SHOW PARAMETER LOCAL LISTENER
- Setar um valor para string LOCAL_LISTENER*: alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.21)(PORT=1521))'scope=both;
*Substituir o endereço IP na sintaxe HOST pelo endereço IP do servidor de banco de dados
## SOLUÇÃO 2
- Consultar o valor da variável v$parameter: select value from v$parameter where name='service_names'
- Após consultar o valor da variável, copiar o resultado do "service_names" no arquivo "tnsnames.ora":
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *<Endereco_IP_Servidor>*)(PORT = *<1521>*))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <service_names>)
)
)
- Executar o seguinte comando no CMD do Windows para testar se a conectividade com o Listener está funcionando: sqlplus system/dbaaccesskey@orcl
Se funcionar, a conexão com o banco será feita normalmente sem erros de Listener
## SOLUÇÃO 3
Substituir o conteúdo do arquivo "LISTENER.ORA" pelo conteúdo abaixo, informando o nome do servidor Oracle no parâmetro HOST:
# listener.ora Network Configuration File: C:\app\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = Nome_do_Servidor)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app
## SOLUÇÃO 4
Alterar no arquivo listener.ora o endereço de IP do host para o nome do host (reiniciar serviços do Oracle)
---------------------------------------------------------
28 - CONCEDER PERMISSÃO DE CONSULTA EM TODAS AS TABELAS DE UM SCHEMA PARA O USUÁRIO
BEGIN
FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner='EMA') LOOP
EXECUTE IMMEDIATE 'grant select on '||R.owner||'.'||R.table_name||' to MXCRICIUMA';
END LOOP;
END;
---------------------------------------------------------
29 - VERIFICAR PRIVILÉGIOS DE USUÁRIOS NO ORACLE
select * from (
select 'GRANT '||privilege||' TO '||grantee||';' from dba_sys_privs
where grantee in ('EMA','EMA_CONSULTA')
union all
select 'grant '||privilege||' on '||grantor||'.'||table_name||' to '||grantee||';' from dba_tab_privs
where grantee in ('EMA','EMA_CONSULTA')
union all
select 'GRANT '||GRANTED_ROLE||' TO '||grantee||';' from dba_role_privs
where grantee in ('EMA','EMA_CONSULTA'));
---------------------------------------------------------
30 - PERMISÃO PARA ACESSO A FUNÇÃO
GRANT EXECUTE ON EMA.VALOR_VARIAVEL_PROCESSO TO PUBLIC
CREATE PUBLIC SYNONYM VALOR_VARIAVEL_PROCESSO FOR EMA.VALOR_VARIAVEL_PROCESSO
---------------------------------------------------------
31 - NÃO USAR O "EMA." NA FRENTE DOS SELECTS
ALTER SESSION SET CURRENT_SCHEMA="EMA";
---------------------------------------------------------
32 - REVOGAR PERMISSÕES PARA USUÁRIO
REVOKE DBA FROM nome_usuario;
---------------------------------------------------------
33 - ALTERAR A SENHA DO USUÁRIO
ALTER USER EMA IDENTIFIED BY "dbaaccesskey_99";
---------------------------------------------------------
34 - SENHA PADRÃO USUÁRIOS WMW
db97!#!!
---------------------------------------------------------
35 - CONCEDER PERMISSÃO PARA LOGAR NO ORACLE
GRANT create session to MXCRICIUMA;
---------------------------------------------------------
36 - CONCEDER PERMISSÃO PARA USUÁRIO ACESSAR DETERMINADAS TABELAS NO ORACLE
GRANT select,update,delete,insert ON EMA.exl_modeloicliente TO mxcriciuma;
---------------------------------------------------------
37 - CONCEDER PERMISSÃO PARA USUÁRIO CRIAR VIEWS NO ORACLE
GRANT create view TO mxcriciuma;
---------------------------------------------------------
38 - REVOGAR PERMISSÃO DE CONSULTA EM TODAS AS TABELAS DE UM USUÁRIO
BEGIN
FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner='EMA') LOOP
EXECUTE IMMEDIATE 'revoke select on '||R.owner||'.'||R.table_name||' from MXCRICIUMA';
END LOOP;
END;
---------------------------------------------------------
39 - ERRO DURANTE A INSTALAÇÃO DO ORACLE
"Causa: Falha ao acessar local temporario oracle"
6.2.23 INS-30131 Error When Installing Oracle Database or Oracle Client
If the administrative shares are not enabled when performing a single instance Oracle Database or Oracle Client installation for 12c Release 1 (12.1) on Microsoft Windows 7, Microsoft Windows 8, and Microsoft Windows 10, then the installation fails with an INS-30131 error.
Workaround:
Execute the net share command to ensure that the administrative shares are enabled. If they are disabled, then enable them by following the instructions in the Microsoft Windows documentation. Alternatively, perform the client or server installation by specifying the following options:
For a client installation:
-ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
For a server installation:
-ignorePrereq -J"-Doracle.install.db.validate.supportedOSCheck=false"
This issue is tracked with Oracle bug 21452473.
---------------------------------------------------------
40 - CONSULTAR SQLS QUE MAIS CONSOMEM CPU
SELECT *
FROM ( SELECT ROUND ( ( (cpu_time / 1000000) / 60), 2) AS "Tempo total de CPU",
executions AS "Quant. exec.",
rows_processed AS "Quant. linhas proc.",
disk_reads AS "Leituras no disco",
first_load_time AS "Primeira utilização",
last_load_time AS "Última utilização",
parsing_schema_name AS "Usuário analisado",
sql_text AS "SQL exec."
FROM v$sqlarea
WHERE parsing_schema_name NOT IN ('SYS', 'SYSTEM', 'SYSMAN', 'DBSNMP')
ORDER BY 1 DESC)
WHERE ROWNUM <= 10;
Nesse caso, a seleção da consulta mais externa (cláusula where) faz com que o retorno sejam de apenas os 10 scripts com maior tempo total de CPU (garantido no sort da consulta interna), mas podemos alterar esse valor ou retirar a condição. Na seleção da consulta mais interna, retirei os usuários de controle do DBA e do próprio SGBD Oracle, para que a análise possa ser feita apenas por aplicações e pessoas.
Vou explicar rapidamente as informações da projeção (cláusula select):
"Tempo total de CPU" – nesse “campo” é retornado o tempo total de CPU gasto para executar todas as vezes o script em questão. Fiz uma continha para exibir o tempo em minutos;
"Quant. exec" – nesse “campo” é retornado a quantidade de vezes que o SQL em questão foi executado desde sua primeira vez que foi submetido;
"Quant. linhas proc." – nesse “campo” é exibido a quantidade total de linhas processadas em todas as execuções da SQL em questão;
"Leituras no disco" – nesse “campo” é retornado a quantidade total de leituras realizadas no disco;
"Primeira utilização" – informa a data e hora da primeira utilização da SQL em questão, ou pelo menos a mais recente das “primeiras vezes”;
"Última utilização" – informa a data e hora da última utilização da SQL em questão;
"Usuário analisado " – informa qual o usuário da instância Oracle que realizou a SQL;
"SQL exec." – informa o script SQL submetido.
---------------------------------------------------------
41 - CRIAR USUÁRIO NO ORACLE SOMENTE PARA CONSULTA
CREATE USER seu_usuario IDENTIFIED BY sua_senha;
GRANT CONNECT TO seu_usuario;
GRANT SELECT ANY TABLE TO seu_usuario;
---------------------------------------------------------
42 - CRIAR NOVO .DBF NO TABLESPACE SYSTEM
ALTER TABLESPACE SYSTEM
ADD DATAFILE 'C:\app\oradata\orcl\SYSTEM02.DBF' SIZE 1G;
*Conferir caminho do diretório ORADATA e o nome do arquivo .DBF
---------------------------------------------------------
43 - DROPAR USUÁRIO NO ORACLE
DROP user CASCADE;
Backup e restore
EXP/IMP
exp ema/dbaaccesskey@orcl full=n consistent=y constraints=y statistics=none object_consistent=y file=C:\ema_backup\bkp-ema.dmp log=C:\ema_backup\export.log
exp ema/dbaaccesskey@zenthi full=y consistent=y constraints=y statistics=none object_consistent=y file=c:\backup_ema\backup_full.dmp log=c:\backup_ema\export_full.log
exp ema/dbaaccesskey@192.168.8.71/orcl full=n consistent=y constraints=y statistics=none object_consistent=y file=c:\ema.dmp log=c:\backup.log
exp user/password@ip:port/service_name
imp ema/dbaaccesskey@orcl file=D:\jean.dmp fromuser=ema touser=ema ignore=y STATISTICS=NONE log=D:\import.log
EXPDP/IMPDP
Configuração inicial:
Para realizar o processo de backup/restore pelo Data Pump (expdp / impdp), primeiro é necessário definir um diretório onde os arquivos de backup serão alocados. Para isso, basta acessar o terminal do Oracle e executar o comando baixo:
CREATE OR REPLACE DIRECTORY datapump AS 'C:\Ema Software\Ema_Cloud_Bkp\';
GRANT READ, WRITE ON DIRECTORY datapump TO ema;
execute dbms_metadata_util.load_stylesheets
O caminho do diretório pode ser alterado conforme necessidade.
Como realizar o backup?
- Comando padrão para exportar o backup do schema "ema" (nome padrão utilizado nos clientes):
expdp system/dbaaccesskey directory=datapump dumpfile=bkp-ema.dmp schemas=ema logfile=export.log - Comando para realizar a exportação de vários schemas simultâneos:
expdp system/dbaaccesskey directory=datapump dumpfile=full.dmp schemas=EMA_DESENV,TESTCOMPLETE,UNIEMA logfile=export.log
- Realizar backup completo de todos os schemas existentes no banco de dados:
expdp system/dbaaccesskey directory=datapump dumpfile=bkp_full.dmp full=y logfile=backup_full.log
Como restaurar o backup?
- Comando padrão para restaurar o backup do schema "ema" (nome padrão utilizado nos clientes):
impdp system/dbaaccesskey directory=datapump dumpfile=bkp-ema.dmp schemas=ema. Importante observar o nome do arquivo .dmp, neste exemplo, o nome é o "bkp-ema.dmp". - Comando para restaurar o backup, mapeando o schema de origem "ema" para outro nome (para quando houver a necessidade de alterar o nome ou manter mais de um schema no mesmo banco):
impdp system/dbaaccesskey directory=datapump dumpfile=bkp-ema.dmp schemas=ema remap_schema=ema:nome_cliente - Comando para exportar somente tabelas específicas do schema:
expdp system/dbaaccesskey directory=datapump dumpfile=table.dmp tables=ema.cliente logfile=export_table.log
Comandos de backup específicos
- OPÇÃO PARA QUANDO HOUVER ERROS ORA-31693, ORA-02354, ORA-39776, ORA-00600 DURANTE A IMPORTAÇÃO
impdp system/dbaaccesskey directory=datapump dumpfile=ema.dmp ACCESS_METHOD=CONVENTIONAL remap_schema=ema:ema remap_tablespace=users:users - IMPORTAR SÓ TABELAS ESPECÍFICAS
impdp system/dbaaccesskey directory=datapump dumpfile=ema.dmp TABLES=EMA.CLIENTE ACCESS_METHOD=CONVENTIONAL remap_schema=ema:ema remap_tablespace=users:users - IMPORTAR BASE SEM DROPAR (SÓ ATUALIZANDO AS TABELAS)
impdp system/dbaaccesskey directory=datapump dumpfile=bkp-ema.dmp remap_schema=ema:ecoville logfile=export.log full=y TABLE_EXISTS_ACTION=REPLACE - IMPORTAR BASE REMAPEANDO O TABLESPACE
impdp system/dbaaccesskey directory=datapump dumpfile=ema.dmp schemas=ema remap_schema=ema:ema remap_tablespace=users:users - ARGUMENTO A SER INCLUSO NO COMANDO DE BACKUP PARA EXCLUIR TABELAS DO BACKUP
exclude=table:\"IN \(\'ITEM_FORMULA_FOTO\',\'ANEXO\',\'LOG\'\)\" nologfile=y
Outros comandos
Verificar o nº de processos: show parameter processes;
Verificar o nº de sessões: show parameter sessions;
Verificar o nº de transações: show parameter transactions;
Verificar informações sobre a memória: show parameter memory;
Verificar informações sobre a memória sga: show parameter sga;
Verificar informações sobre a memória pga: show parameter pga;
VERIFICAR SESSÕES, PROCESSOS E TRANSAÇÕES
select name, value
from v$parameter
where name in ('processes', 'sessions', 'transactions');
VERIFICAR SESSÕES EM USO E LIMITE CONFIGURADO
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
Portas de conexão do Bancos de Dados
Sempre que instalamos um banco de dados no computador local ou em servidores, os bancos vêm com suas configurações padrões para conexão, um ponto importante dessa configuração são as portas de conexões, que servem para que possamos realizar a comunicação das ferramentas da Ema ou de aplicativos usados para realizar consultas e manutenções no próprio banco.
Lista de de banco de dados e Portas utilizadas na Ema
- Oracle: Porta 1521
- Postgres: Porta 5432
- Firebird: Porta 3050
Possíveis causas para falhas de conexão com o bando de dados e perda de comunicação
Em algumas situações, pode ocorrer algumas falhas de comunicação ou não conseguirmos conectar no banco de dados. São algumas delas:
Porta do banco não está liberada no firewall do Windows
Há casos em que não conseguimos conexão porque a porta do nosso banco de dados não está liberada no firewall do Windows, para verificarmos e termos certeza que não é por conta disso que não conseguimos a conexão com o BD, devemos:
Porta Já utilizada por outro processo ou aplicativo
Em situações que a porta está em uso por outro software/aplicativo ou processo, devemos tentar identificar qual o processo primeiro e depois avaliar se é possível alterar a porta ou até mesmo removê-lo do servidor ou computador se necessário, pois pode acabar impactando na comunicação com o banco de dados e gerando não-conformidades.
Para identificarmos podemos usar o comando pelo prompt de comando, ou CMD através do atalho + R e digitando o comando cmd para abrir a tela do terminal de consulta.
Depois na tela do terminal, digitamos o seguinte comando "netstat -aon", este comando irá listar os ip's e portas que estão em uso no Windows, auxiliando a identificar se a porta que precisamos para o banco de dados está livre ou não.
Porta do banco alterada ou redirecionada em acessos externos
Em casos bem específicos, podemos nos deparar com as portas convencionais não sendo utilizadas em alguns casos por definição internas da empresas ou nossos clientes. Nesse caso devemos primeiro confirmar com a equipe de TI do cliente caso houver.
Impressão
Mapeamento de impressão (LPT)
O mapeamento será realizado nas seguintes situações:
- Quando houver necessidade de imprimir diretamente nas portas LPT, ao invés do caminho de impressão.
- Quando a impressora de etiquetas estiver instalada na porta USB, mas o caminho necessário para impressão estiver configurado na porta LPT
Para que o mapeamento seja realizado, a impressora precisa estar compartilhada no Windows. Após tê-la compartilhado, é necessário obter o nome que ela recebeu no compartilhamento, para mapeá-la posteriormente.
O mapeamento é realizado no Prompt de Comandos do Windows, que pode ser chamado pelo conjunto de caracteres "cmd", na barra de pesquisa ou na opção "Executar" (Windows + R). Sempre que possível, executar o Prompt de Comandos como administrador.
Vejamos um exemplo de mapeamento da porta LPT1. Já no Prompt, essa é a sintaxe utilizada:
- net use LPT1 \\nome_computador\nome_impressora_compartilhada
Para desfazer o compartilhamento:
- net use LPT1 /delete
No local do nome do computador, pode-se também utilizar o endereço IP do computador.
Caso o mapeamento seja concluído com sucesso, uma mensagem de confirmação seja emita no Prompt.
As sintaxes podem ser digitadas num arquivo texto, e salvas com a extensão ".bat", para que seja criado um pequeno script. Assim, o usuário poderá executá-lo sempre que for preciso, pois o mapeamento costuma falhar. Primeiro exclui-se o mapeamento, e depois ele é refeito.
Para que o mapeamento feito na máquina local, seja redirecionado para um servidor de acesso remoto externo, a opção "Portas" deverá estar marcada na aba "Recursos Locais", do cliente de conexão remota (Remote Desktop)
DOSPrint
De maneira alternativa também é possível utilizar o aplicativo DOSPrint para realizar o mapeamento de maneira mais simples. O DOSPrint pode ser baixado diretamente de nosso Drive
O DOSPrint não necessita de instalação. Basta executá-lo, ele será inicializado na barra de tarefas do Windows:
Com o DOSPrint iniciado, para prosseguir com a configuração do mapeamento é necessário clicar com o botão direito do mouse em cima do atalho e ir na opção "Configure". Será aberta a seguinte tela:
Com isso, basta seleciona a porta de conexão e clicar na opção "Set", informando o caminho de impressão. Feito isso, a impressora já estará mapeada na porta seleciona. Para que o mapeamento seja realizado sempre que o computador for iniciado, é preciso colocar o DOSPrint para inicializar junto do Windows:
- C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Instalação do Sistema
Nesse capítulo vamos revisar as instruções para instalação/atualização de clientes e também de como tratar erros comuns no ambiente de produção.
Checklist de Instalação ou Migração de Sistema para Novo Servidor
1. Antes de começar
Garanta o apoio do responsável de TI do cliente para rotinas de backup e alinhamento dos passos seguintes.
2. Tipos de Migração
2.1. Instalação/Migração no mesmo servidor
-
Solicite ao TI do cliente um backup completo do servidor.
-
Salve o backup do banco de dados em dois destinos: local e nuvem.
-
Não remova a pasta do banco de dados (Oracle/PostgreSQL) após a desinstalação!
→ Renomeie a pasta para facilitar eventual recuperação dos dados.
2.2. Instalação/Migração para outro servidor
-
Atividades podem ser realizadas de forma paralela: não é preciso aguardar o dia da migração.
-
Solicite acesso antecipado ao novo servidor para já ir instalando banco e sistema;
- Analise se há algum impedindo técnico;
- Realize as configurações e compartilhamentos de pasta necessários, importante uma base de homologação, se possível, para testes.
3. Banco de Dados
-
PostgreSQL:
-
Verifique a versão instalada atualmente e utilize a mesma no novo servidor.
-
4. Sistema
-
Versão:
-
Mantenha a mesma versão utilizada pelo cliente.
-
-
Porta de Comunicação:
-
Utilize a mesma porta já configurada no Ema Configurador.
-
5. Ambiente de Homologação
-
Avalie se é necessário manter a mesma versão do ambiente de produção ou instalar uma versão diferente, conforme testes do cliente.
6. Liberação de Portas no Firewall
6.1. Rede Local
-
Banco de Dados:
-
Firebird: 3050
-
Oracle: 1521
-
PostgreSQL: 5432
-
-
Porta Principal:
-
Conforme configurado no Ema Configurador
-
-
Micro Serviços:
-
Liberar intervalo 8000-8030
-
6.2. Acesso Externo (Ema PDV)
-
Mesmas portas acima +
-
Micro serviço do registro:
-
Liberar 8000-8003
-
-
Liberação deve ser feita no roteador/firewall e no firewall do Windows do servidor.
7. Infraestrutura
-
Tipo de Sistema Operacional:
-
Verifique se o servidor atual é Desktop ou Server.
-
Confirme se é necessário manter o mesmo tipo no novo ambiente.
-
-
Acesso ao Sistema ERP/DOX:
-
Se acesso é por atalho local, libere as portas do sistema no firewall do Windows.
-
Se acesso é por WTS (acesso remoto), verifique se o servidor já está configurado para isso.
-
-
Endereço IP:
-
Sempre fixe um IP no novo servidor.
-
8. Compartilhamento de Pastas
-
Se o sistema for utilizado via atalho de rede local:
-
Compartilhe a pasta Contas ERP (dentro da pasta Ema Software).
-
Garanta permissão de escrita para todos os usuários, tanto nas configurações de compartilhamento quanto diretamente na pasta.
-
Como realizar a instalação das aplicações
Passos iniciais para instalação das aplicações
Acessar o servidor do cliente > entrar no Drive > e logar com o email da conta EMA. Após isso, o caminho abaixo deve ser acessado:
Feito isso, a página abaixo será aberta e de acordo com a licença de uso contratada pelo cliente, deverá ser baixada as aplicações.
No exemplo em questão vamos simular a instalação de um cliente que possui todas as aplicações.
Pode ser clicado com o botão direito em cima do arquivo > fazer download.
Feito isso, as aplicações serão baixadas na pasta download. Conforme seguirá, vamos acessar a pasta > copiar os arquivos > criar uma pasta e jogar os executáveis no disco local do cliente.
Feito isso, é só instalar.
Instalação Serviços + ERP
O requisito mínimo para instalação do ERP é a instalação dos serviços junto ao executável do ERP. Então vamos selecionar os executáveis abaixo:
Feito isso, irá abrir a tela de execução do executável. Por padrão a instalação dos executáveis já trará a pasta DISCO LOCAL C > EMA SOFTWARE para instalação das aplicações. Porém, caso o cliente utilize outra unidade mapeada como disco, é necessário alterar esse caminho na instalação. No exemplo em questão, não vamos alterar.
Na tela em questão, selecionamos os micro serviços necessários para a utilização dos serviços. Atenção: Nessa documentação não vamos nos aprofundar na utilização de cada um, caso você queira se aprofundar, pode clicar aqui.
Feito a seleção, pode ser clicado em INSTALAR.
Aguarde terminar a instalação e prossiga com a instalação do ERP (é o mesmo processo).
Sobre o Ema Configurador
Feito a instalação é necessário configurar o EMA CONFIGURADOR. Em Disco Local > Ema Software > Contas ERP > Ema Configurador. Para que assim, esse possa se conectar com o banco de dados do cliente.
Firebird
Para clientes Firebird, o caminho configurado será exatamente o caminho referenciado no qual o banco se localiza. Exemplo abaixo onde o banco se localiza no caminho especificado.
Para o configurador, vamos acessar "nova configuração de ambiente"> registrar como firebird > na aba Servidor manter porta padrão e acessar aba banco de dados > setar endereço > testar conexão.
O usuário por padrão será: SYSDBA
A senha por padrão será: dbaaccesskey
Feito isso, é só salvar.
Atenção: Caso você não saiba configurar o banco de dados FIREBIRD, acesse aqui.
PostgreSQL
Será o mesmo caminho para realizar a configuração do Firebird. Porém para o postgreSQL, o caminho do banco de dados é apenas o IP da máquina onde ele está instalado. Segue exemplo onde o IP da máquina onde a base de dados é o 192.68.0.200.
Por sua vez, o nome de usuário será o nome da base de dados utilizada (do cliente) e a senha será a padrão: dbaaccesskey
No exemplo abaixo, estamos nos conectando na base do cliente realgems, que está no caminho 200.
Atenção: Caso você não saiba configurar o banco de dados POSTGRESQL, acesse aqui.
Oracle
Como seguiu com os clientes Firebird e PostgreSQL, a configuração para cliente Oracle seguirá o mesmo formato da configuração postgreSQL, onde o usuário é o nome do banco e a senha é padrão: dbaaccesskey . Porém, para o oracle. O caminho de conexão é diferente, conforme segue:
No endereço banco está o caminho:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=orcl)))
Onde em:
- HOST será colocado o IP de onde o banco está instalado.
- Porta será a porta utilizada pelo banco de dados.
Feito a validação, poderá ser salva a configuração.
Atenção: Caso você não saiba configurar o banco de dados ORACLE, acesse aqui.
**Importante verificar se na aba serviços, todos os serviços que você marcou durante a instalação do SERVIÇOS estão marcados.
Instalação ERPx
A instalação do ERPX, também deve ser realizado previamente o download e instalação dos serviços conforme o ERP, porém não é necessário realizar nenhum tipo de configuração diferente e seguir os mesmos passos anteriores em relação a configuração do serviços.
Para instalar a aplicação do ERPx, deve ser acessado o caminho onde o executável Instalador está instalado e executar.
**A pasta padrão trazida é sempre o disco local C > Ema software conforme já falado em módulos anteriores.
Caso o Ema_Servidor não suba, é necessário testar a conexão do banco e verificar se o endereço está correto.
Instalação PDV
Para instalar o PDV, é necessário seguir com o passo a passo da documentação já existente no KB. Clique aqui para mais detalhes.
Instalação DOX Portal, DOX Estudio, Balcão e APS
Para instalar as aplicações acima, é importante acessar o caminho do arquivo > executar como administrador, como seguiu com qualquer instalação de executável acima e prosseguir. Visto que se serviços já estiver instalado na máquina, não haverá problemas para apenas executar os executáveis restantes.
Resolutiva de problemas pós instalação de aplicação - Cliente FIREBIRD
Como resolver o erro de banco após puxar o atalho do cliente FIREBIRD?
Existem duas opções para resolutiva de problemas na abertura do ERP de clientes Firebird quando aparecer a mensagem:
"Não foi possível conectar ao banco de dados!
Considere as ações sugeridas em 'Mostrar detalhes'.
Deseja tentar novamente?"
Opção 1
Quando acontece esse tipo de problema na abertura do sistema deve ser verificada a fbclient.dll na máquina do cliente que está com problema no acesso.
Deve ser acessado o Servidor > Ir na pasta Disco Local > Arquivos e Programas > Firebird > Firebird_3_0 > WOW64 > Copiar a fbclient.dll (64 bits).
Em seguida ir na máquina do cliente > Disco Local > Windows > SysWOW64 e colar essa dll.
Caso ainda sim o sistema não abrir deve ser copiada a fbclient.dll (32 bits) no Servidor novamente porém a dll que está diretamente na pasta Firebird_3_0 e colada na pasta Disco Local > Windows > System32.
Opção 2
Instalação do Firebird
Para iniciar a instalação do gerenciador de banco de dados Firebird, baixe o arquivo do mesmo e execute o instalador. Podes estar verificando a versão e sistema operacional aqui.
- Escolha o idioma e clique em OK:
- Concorde com os termos do aplicativo, e clique em Next >
- Tela de informativo, com todos as configurações da instalação. Clique em Next >
- Nesta tela, está o caminho onde os arquivos do Firebird serão armazenados. (Caso queira mudar o caminho clique em "Browse" e escolha o local).
- Clique em Next >
- Marque no check box os componentes que serão instalados. Clique em Next >
- Clique em Next >
- Marque as opções que estão destacadas em vermelho na imagem e clique em Next >
- Insira uma senha para o administrador (SYSDBA) e clique em Next >
- Clique em Install
- Clique em Next>
- Por fim, clique em Finish
Pronto, o Firebird está devidamente instalado no seu computador, agora baixe o arquivo do IBexpert e descompacte na pasta de preferência.
Instalação e Configuração Oracle
Instalação do banco de dados Oracle, configuração da base de dados, ferramenta de banco, backup, etc...
Analisando o tamanho e espaço da tablespace
Algumas ferramentas de banco de dados não conseguem mostrar o consumo do tablespace do oracle, o que de certa forma é bem critico, pois quando o tablespace estoura o tamanho o funcionamento das aplicações fica comprometido.
Conectar no banco com um usuário que tenha os privilégios, ou como SYSDBA e executar o comando abaixo:
SELECT T.TABLESPACE,
T.TOTALSPACE AS " TOTALSPACE(MB)",
ROUND ( (T.TOTALSPACE - FS.FREESPACE), 2) AS "USED SPACE(MB)",
FS.FREESPACE AS "FREESPACE(MB)",
ROUND ( ( (T.TOTALSPACE - FS.FREESPACE) / T.TOTALSPACE) * 100, 2)
AS "% USED",
ROUND ( (FS.FREESPACE / T.TOTALSPACE) * 100, 2) AS "% FREE"
FROM ( SELECT ROUND (SUM (D.BYTES) / (1024 * 1024)) AS TOTALSPACE,
D.TABLESPACE_NAME TABLESPACE
FROM DBA_DATA_FILES D
GROUP BY D.TABLESPACE_NAME) T,
( SELECT ROUND (SUM (F.BYTES) / (1024 * 1024)) AS FREESPACE,
F.TABLESPACE_NAME TABLESPACE
FROM DBA_FREE_SPACE F
GROUP BY F.TABLESPACE_NAME) FS
WHERE T.TABLESPACE = FS.TABLESPACE
ORDER BY T.TABLESPACE;
Caso identifique alguma tablespace com o "Used Space(MB)" próximo a 32gb, pelos padrões, você poderá alertar a equipe responsável pela manutenção da base de dados.
Backup e Restauração da base de dados
Para soluções de backups automatizados fornecidos pela Ema Software, solicite ao nosso comercial orçamento do Ema Cloud Backup
Oracle 11G R2 Enterprise ou Standard
Data Pump
O Data Pump é um dos recursos de backup disponibilizados no Oracle.
Para realizar o backup utilizando o recurso EXPDP, do Data Pump, devem ser executados os seguintes procedimentos iniciais:
- Acessar o Prompt de Comando do Windows: Menu Iniciar -> Executar -> cmd.exe [Enter]
- Logar na linha de comando do Oracle utilizando a seguinte sintaxe: sqlplus sys as sysdba [Enter]
- Informe a senha do Oracle [Enter]
- Uma vez conectado na linha de comando do Oracle, é necessário criar o diretório onde será armazenado o arquivo de backup, utilizando a os seguintes comandos abaixo:
CREATE OR REPLACE DIRECTORY NOME AS 'CAMINHO_DO_DIRETÓRIO';
GRANT READ, WRITE ON DIRECTORY NOME TO USUÁRIO;
EXECUTE DBMS_METADATA_UTIL.LOAD_STYLESHEETS;
- Em DIRECTORY a palavra NOME deve ser substituída por um nome de sua preferência, para identificação do diretório onde os backups serão exportados.
- Em CAMINHO_DO_DIRETÓRIO deve-se informar o diretório em que os backups serão salvos.
- Já em USUÁRIO deve-se informar o nome do usuário utilizado pelo sistema no Oracle, que por padrão é o usuário EMA.
Eis um exemplo:
CREATE OR REPLACE DIRECTORY DATAPUMP AS 'C:\EMA SOFTWARE\FERRAMENTAS\';
GRANT READ, WRITE ON DIRECTORY DATAPUMP TO EMA;
EXECUTE DBMS_METADATA_UTIL.LOAD_STYLESHEETS;
EXPDP - Exportação de Base de Dados
O EXPDP realiza a exportação dos dados (backup) de usuários específicos no Oracle.
Após a realização dos procedimentos de configuração do Data Pump, é possível utilizar o EXPDP para realizar o backup do sistema. Esta é a sintaxe que deve ser executada no Prompt de Comando do Windows para iniciar o processo:
EXPDP USUARIO/SENHA SCHEMAS=USUARIO DIRECTORY=NOME_DIRETORIO DUMPFILE=NOME_BACKUP.DMP LOGFILE=NOME_LOG.LOG
As palavras em destaque devem ser substituídas pelas informações corretas.
- Em USUÁRIO/SENHA deve-se informar um usuário e senha do Oracle com permissões administrativas. Como usuário EMA possui permissões administrativas, ele pode ser utilizado. O usuário SYSTEM, um dos administradores padrões do Oracle, também pode ser utilizado.
- Na opção SCHEMAS o usuário do Oracle que possui os dados do sistema deve ser informado. Por padrão utiliza-se o usuário EMA.
- Em NOME_DIRETORIO informa-se o nome do diretório criado na pré configuração, da qual seguindo o exemplo citado anteriormente, foi defino como datapump.
Por fim, definimos o nome do arquivo de backup e do seu log. Segue um exemplo da sintaxe completa:
EXPDP EMA/123 SCHEMAS=EMA DIRECTORY=DATAPUMP DUMPFILE=BKP-EMA.DMP LOGFILE=EXPORT.LOG
Com esta sintaxe, estamos gerando o backup do usuário EMA, onde o arquivo de backup recebeu o nome de BKP-EMA.DMP, no diretório DATAPUMP, criado nas configurações iniciais, do qual irá salvar a exportação do backup em C:\EMA SOFTWARE\FERRAMENTAS\.
Para facilitar a execução do backup, disponibilizamos abaixo a sintaxe para criação de um script que irá realizar a exportação da base de dados, após as configurações iniciais terem sido realizadas conforme o exemplo. O script deve ser criado a partir do Bloco de Notas do Windows.
Após acessar o bloco de notas, é preciso informar os seguintes comandos para exportação, e posteriormente salvar o arquivo com a extensão .bat:
del "C:\Ema Software\Ferramentas\bkp-ema.dmp"
del "C:\Ema Software\Ferramentas\export.log"
expdp ema/senha directory=datapump dumpfile=bkp-ema.dmp schemas=EMA logfile=export.log
O script irá manter apenas a última cópia da base de dados. Ele também poderá ser utilizado pelo profissional responsável por sua infraestrutura de TI para criação de rotinas de backup automatizadas.
***OBSERVAÇÃO: A senha do banco de dados deve ser obtida através do setor responsável, geralmente o T.I. da sua empresa. É preciso editar o script de backup para informar a senha da base de dados, bem como para realizar as configurações iniciais. O EXPDP não está disponível para uso na versão Oracle 11G R2 XE. O script deve ser executado diretamente no servidor da base de dados.
IMPDP - Importação da Base de Dados
Permite importar usuários específicos (Schemas), tablespaces ou tabelas. Neste caso, o propósito é importar o usuário inteiro.
IMPDP USUARIO/SENHA DIRECTORY=NOME_DIRETORIO DUMPFILE=NOME_BACKUP.DMP REMAP_SCHEMA=SCHEMA_ORIGEM:SCHEMA_DESTINO EMAP_TABLESPACE=TABLESPACE_ORIGEM:TABLESPACE_DESTINO
Exemplo:
IMPDP EMA/123 DIRECTORY=DATAPUMP DUMPFILE=BACKUP.DMP REMAP_SCHEMA=EMA:CARLESSO REMAP_TABLESPACE=USERS:USERS2
Limpar cache do Oracle (V$SQL)
O comando visa apoiar os programadores com os testes de desempenho. A descarga do cache do buffer de dados é uma ótima ferramenta de teste e evita que você precise devolver (parar e reiniciar) sua instância de banco de dados entre as execuções de teste.
NÃO recomendamos que você limpe o cache do buffer de dados em um sistema de produção!
alter system flush buffer_cache;
alter system flush shared_pool;
OPCIONAL:
EXECUTE dbms_result_cache.flush;
Nota: A liberação do cache do buffer de dados impõe uma sobrecarga séria de desempenho, especialmente nos bancos de dados RAC. O uso do cache do buffer de liberação foi destinado apenas ao sistema de teste.
Parâmetros de sessão
Quando os serviços da Ema são configurados em um ambiente com banco de dados Oracle, todas as execuções de scripts são executadas com alguns parâmetros de sessões definidos.
Para que seus testes no SQL Developer ou outro gerenciador de banco sejam equivalentes à execução do DOX, você deve rodar os scripts abaixo na sessão do banco logada (todas as vezes que for iniciado uma sessão no SGBD terá que ser executado).
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
ALTER SESSION SET NLS_DATE_FORMAT = 'RRRR-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'RRRR-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'RRRR-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_SORT=BINARY_AI;
ALTER SESSION SET NLS_COMP=LINGUISTIC;
Após ter executado estes scripts na sessão logada no SGBD, todos os comandos serão executados com os mesmos parâmetros que o DOX executa.
*** Importante verificar se os comandos acima são comitados.
Realizando Backup no Oracle com EXP
Um dos modos de realizar a exportação de dados (backup) de uma base do Oracle, é utilizando o EXP, conforme exemplo abaixo.
Para iniciar, abra o prompt de comando, no Iniciar do Windows, e utilize a seguinte sintaxe:
exp usuario/senha@orcl file=c:\temp\teste.dmp full=y
- “usuario”: Nome do usuário do banco Oracle.
- “senha”: Senha do usuário do banco.
- “orcl”: Nome da instância do banco (sempre digitar @ entre a senha e a instância).
- “file”: Insira o caminho que deseja colocar o arquivo exportado, barra (\) e o nome que deseja para o arquivo e a extensão .dmp no final
SQL's que mais consomem o banco de dados
O SQL disponibilizado abaixo trará os SQL's que mais consomem o banco, desse modo fica mais simples de verificar se tem algum SQL processando sem necessidade, ou que possa ser arrumado. Copie esse SQL na sua ferramenta de banco Oracle e execute-o.
SELECT "SQL_TEXT",
"PARSING_SCHEMA_NAME",
"SQL_ID",
"ELAPSED_TIME_MIN",
"PERC_ELAPSED_TIME_MIN",
"EXECUTIONS",
"FIRST_LOAD_TIME",
"LAST_ACTIVE_TIME"
FROM ( SELECT SQL_TEXT,
PARSING_SCHEMA_NAME,
SQL_ID,
CAST (ELAPSED_TIME / 1000000 / 60 AS NUMERIC (18, 2))
AS ELAPSED_TIME_MIN,
CAST (
(RATIO_TO_REPORT (ELAPSED_TIME) OVER ()) * 100 AS NUMERIC (18, 2))
PERC_ELAPSED_TIME_MIN,
EXECUTIONS,
FIRST_LOAD_TIME,
TO_CHAR (LAST_ACTIVE_TIME, 'DD/MM/YYYY HH24:MI:SS')
AS LAST_ACTIVE_TIME
FROM V$SQL
WHERE PARSING_SCHEMA_NAME IN ('EMA')
ORDER BY CAST (ELAPSED_TIME / 1000000 / 60 AS NUMERIC (18, 2)) DESC)
WHERE ROWNUM <= 100;
Instalação e Configuração PostgreSQL
Instalação do banco de dados PostgreSQL, configuração da base de dados, ferramenta de banco, backup, etc...
Ajustando Horário / Timezone do Postgres
Olá, se você está enfrentando problemas com formato e/ou data hora errado em comandos retornados de sua base de dados postgres é necessário fazer esse ajuste:
Baixar o arquivo com o timezone atualizado: clique aqui
Logo após substitua o arquivo orignal que se encontra no seguinte caminho: C:\Program Files\PostgreSQL\10\share\timezone\America, assim que substituido, você deverá reiniciar o PostgreSQL. Depois de reiniciar o banco de dados com o novo arquivo baixado aplique as configurações abaixo:
ALTER DATABASE EMA SET TIMEZONE TO 'AMERICA/SAO_PAULO';
ALTER SYSTEM SET TIMEZONE="GMT+3";
SELECT PG_RELOAD_CONF();
Podemos fixar GMT+3 por que não temos mais o conhecido horário de verão, se um dia ele voltar lembre-se de fazer essa alteração na data estipulada para GMT+2 garantindo assim a sincronia entre horários e conversão correta do horário UTC.
Aumentar o número de sessões
** ATENÇÃO: Avalie com cuidado esta alteração para que não interfira no uso de memória total do servidor de banco de dados, 500 seções é um número médio usado em nossos clientes e está dentro de uma margem de segurança.
- Vá ate o caminho: C:\Program Files\PostgreSQL\10\data\
- Edite o arquivo: postgresql.conf
- Na linha 64, no comando : max_connections = 100
- Altere para max_connections = 500
- Reinicie o serviço do PostgreSQL
Para iniciar, parar ou reiniciar o serviço de banco de dados PostgreSQL, basta acessar a tela de Serviços do Windows, procurar pelo serviço "postgresql-..." e clicar na opção desejada.
Configurar base PostgreSQL no PgAdmin
Com o PostgreSQL 10 instalado, pode-se configurar a base de dados no pgAdmin 4. Para isso, temos que criar um banco de dados e fazer o Restore de um arquivo de backup. Veja o exemplo a seguir.
Criação da base de dados:
Depois de informar o nome, vamos para a aba Definition, onde vamos preencher as seguintes informações:
- Encoding: Informar a opção WIN1252.
- Template: Selecionar a opção Template0
- Table Space: Selecionar Pg_Default
- Collation: Informar a opção Portuguese_Brazil.1252
- Character type: Informar a opção Portuguese_Brazil.1252
Importando uma base, Restore:
Você pode acessar o Query Tool para executar scripts na base:
Criar banco de dados/conectar/exportar via linha de comando (cmd)
Criar banco
Siga os passos abaixo:
- Abra o Prompt de Comando em modo administrador.
- Execute os comandos abaixo, alterando caso necessário o nome do banco:
- C:\WINDOWS\system32> cd\
- C:\> psql --username=postgres
- Senha para usuário postgres: senha do banco
- postgres=# CREATE DATABASE ema WITH OWNER="postgres" ENCODING="WIN1252" TEMPLATE="template0";
- postgres=# \q
- C:\> exit
Você pode usar também o pgAdmin4 para, siga as instruções:
- Em um computador com Windows, efetue a conexão com o banco com o PgAdmin
- Em "Databases", clique com botão direto, Create - database
- Insira o nome do banco e clique em "Save"
Conectar ao banco via PSQL:
Para conectar a instância princial
- psql --username=postgres
Para conectar em um usuário específico
- psql --username=postgres --dbname=ema
Caso ao digitar psql apresente, você deverá inserir uma variável de ambiente no seu windows ou rodar os comandos acima, direto na basta: C:\Program Files\PostgreSQL\10\bin
Importar banco de dados:
- Clique com botão direto em sua base recem criada - Restore
- Insira manualmente o caminho do arquivo .dmp e clique em restore
- Aguarde o término
Exportar base via linha de comando:
- Abra o Prompt de Comando em modo administrador.
- Execute os comandos abaixo, alterando caso necessário os parâmetros do pg_dump (file, dbname, host, port):
- C:\WINDOWS\system32> cd\
- C:\> pg_dump --file=arquivo.dmp -F c -v -b --dbname=ema --host=127.0.0.1 --port=5432 --username=postgres
- Senha: senha do banco
- C:\> exit
Definições / Particularidades do PostgreSQL
Serviço/Processo no Windows
Para iniciar o banco de dados deve-se ser iniciado o serviço do postgres no gerenciador de serviços do Windows, ou configurá-lo como automático.
Para cada seção no banco ou thread é criado um registro postgres.exe no gerenciador de tarefas, este comportamento é normal, assim que as seções forem encerradas, o processo também será finalizado.
Cada PID do sistema operacional Windows poderá ser localizado dentro do banco de dados e sua seção monitorada.
Tuplas
Este é o tipo de dado da coluna do sistema, o identificador de tupla é um par (número do bloco, índice da tupla dentro do bloco) que identifica a posição física da linha dentro de sua tabela.
Transações - Locks e Bloqueios
Os Locks podem ser definidos como bloqueios executados em objetos ou dados no banco de dados. Esses bloqueios podem ser gerados automaticamente (em função do gerenciamento Multiversão/Multiusuário (MVCC) do PostgreSQL) e manualmente (com comandos ou operações que necessitem “travar” uma tabela ou alguns de seus registros).
O PostgreSQL trabalha com diversos tipos ou modos de bloqueios diretamente vinculados a ações específicas ao programa para controlar o acesso simultâneo aos dados e tabelas.
Bloqueio | Descrição | Entra em conflito com |
ACCESS SHARE | O comando SELECT obtém um bloqueio deste modo nas tabelas referenciadas. Em geral, qualquer comando que apenas leia a tabela (sem modificá-la) obtém este modo de bloqueio. | ACCESS EXCLUSIVE |
ROW SHARE | O comando SELECT FOR UPDATE obtém o bloqueio neste modo na(s) tabela(s) de destino. | EXCLUSIVE e ACCESS EXCLUSIVE |
ROW EXCLUSIVE | Os comandos UPDATE, DELETE e INSERT obtêm este modo de bloqueio na tabela de destino (além do modo de bloqueio ACCESS SHARE nas outras tabelas referenciadas). Em geral, este modo de bloqueio é obtido por todos os comandos que modificam os dados da tabela. | SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE |
SHARE UPDATE EXCLUSIVE | Obtida pelo comando VACUUM (sem a opção FULL). Protege a tabela contra mudanças simultâneas no esquema durante a execução do comando VACUUM | SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE e ACCESS EXCLUSIVE. |
SHARE | Obtido pelo comando CREATE INDEX. | ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE ROW EXCLUSIVE, EXCLUSIVE e ACCESS EXCLUSIVE. |
SHARE ROW EXCLUSIVE | Este modo de bloqueio não é obtido automaticamente por nenhum comando do PostgreSQL. | ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE e ACCESS EXCLUSIVE |
EXCLUSIVE | Este modo de bloqueio não é obtido automaticamente por nenhum comando do PostgreSQL. | ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE e ACCESS EXCLUSIVE. |
ACCESS EXCLUSIVE | Obtido pelos comandos ALTER TABLE, DROP TABLE e VACUUM FULL. Este é também o modo de bloqueio padrão para o comando LOCK TABLE sem a especificação explícita do modo. | Entra em conflito com todos os modos de bloqueio Este modo garante que a transação que o obteve seja a única que esteja acessando a tabela. |
**Para ver o tipo de deadlock utilize o dashboard do pgAdmin 4 e vá até a coluna locks ou utilize o comando:
SELECT *
FROM PG_LOCKS
Gerar Backup
Neste tópico veremos como gerar o backup via linha de comando ou manualmente de uma base PostgreSQL.
Backup gerado manualmente (PgAdmin)
- Clique com botão direto em cima da base desejada
- Escolha a opção backup
**Não há necessidade de informar os outros campos, apenas o "Filename" com o caminho de onde o backup deve ser salvo, e o nome que deve dar para ele.
- Na tela a seguir, selecione o local e nome do arquivo
- Clique em backup
- Aguarde a geração do arquivo .SQL
Backup via Linha de Comando (CMD)
- Primeiro, acesse o gerenciador de tarefas e siga até a aba de serviços, parando o serviço Ema_Start e reiniciando os serviços do postgres.
- Após reiniciado os serviços do postgreSQL, deve abrir o terminal (cmd), pressionando windows + R e digite cmd ou procure por prompt de comando no windows
- Ao acessar o cmd, digite o seguinte comando: cd /
*** Este comando é responsável em acessar a pasta raiz, no caso fica na pasta C:\
- Após acessar a pasta raiz, digite o seguinte comando: cd Program Files\PostgreSQL\10\bin
- Assim que acessar a pasta bin do postgreSQL iremos executar o seguinte comando parar gerar o arquivo dump:
pg_dump --file=C:\BackupPo
stgreSQL\arquivo.dmp -
F c -v -b --dbname=ema --host=127.0.0.1 --port=5432 --username=postgres
Obs: --file= neste comando é informado o caminho que vai ser salvo o arquivo .dmp, o nome pode ser alterado para outro como por exemplo:
C:\BackupPostgreSQL\backup.dmp
--dbaname= Nome da base cadastrada.
--username= Usuário para acessar o database.
**Caso não seja informado um caminho para o arquivo ele irá criar dentro de C:\
- Após informar todos os parâmetro no comando do pg_dump pressione [Enter] para executar o comando, logo após ele irá pedir a senha da base, basta digitar e confirmar.
***A senha ao digitar não é mostrada, cuidado ao digitar a senha.
- Assim que terminar de digitar a senha e confirmar pressionando [Enter] o pg_dump começará a criar o arquivo na pasta informada no --file :
- Assim que finalizar ele estará na pasta informada, para sair do prompt pasta digitar exit.
- Realizado este procedimento já pode ser iniciado novamente os serviços da Ema.
***Este procedimento não pode ser executado com os serviços da Ema rodando, pois pode corromper o arquivo.
Gerenciar banco de dados (Commit, nova conexão)
Desativar Auto Commit
COMMIT consolida a transação, ou seja, executa os comandos em definitivo, seja um delete, update, etc. Já o ROLLBACK desfaz a transação inteira – nenhuma declaração SQL contida na transação é executada.
É uma ação importante pois imagine que você executa um update sem where e altera muitos dados importantes de forma errônea. Se o auto commit estiver desligado, você não precisa se preocupar pois esse comando não foi executado em definitivo. É possível fazer um commit manual, quando você ja tem certeza que o comando SQL está correto, ou pode escolher deixar automático, sempre que um comando foi executado, automaticamente já está consolidado a transação.
Siga os passos abaixo:
- Escolha o banco desejado
- Clique com o botão direito e vá até Query tool
- Na tela de SQL que sera mostrada, localize o ícone mostrado na imagem abaixo
- Desmarque a opçõa Auto commit ?
- Você deverá fazer esta configuração toda vez que fizer login na ferramenta
- Para desativar o Auto Commit de forma permanente siga os passos da imagem abaixo
Nova conexão:
- Clique com o segundo botão em Servers, e siga para Create > Server...
- Na aba General, insira apenas o nome da conexão, ex. ema
- Vá para a aba connection
- No campo Host, insira o IP do servidor onde está o banco
- Em Maintenance database insira postgres
- Em username insira postgres
- Insira a senha do banco e clique em "Save".
- Todos os bancos de dados do usuário postgres serão mostrados dentro de "Databases"
Identificar índices não utilizados (ou não eficientes)
with
table_scans as (
select
tables.relid as relid,
tables.schemaname as schemaname,
tables.relname as tablename,
tables.idx_scan as table_idx_scan_count,
tables.idx_tup_fetch as table_idx_tup_fetch,
tables.seq_scan as table_seq_scan_count,
tables.seq_tup_read as table_seq_tup_read,
tables.idx_scan + tables.seq_scan as table_sum_all_scans,
tables.n_tup_ins as table_write_insert_count,
tables.n_tup_upd as table_write_update_count,
tables.n_tup_del as table_write_delete_count,
tables.n_tup_ins + tables.n_tup_upd + tables.n_tup_del as table_sum_all_writes,
tables.n_tup_hot_upd as table_tup_hot_upd_count,
tables.n_live_tup as table_live_tup_count,
pg_relation_size(relid) as table_bytes
from
pg_stat_user_tables as tables
),
database_writes as (
select
sum(table_sum_all_writes) as database_sum_all_writes
from
table_scans
),
indexes as (
select
idx_stat.relid as relid,
idx_stat.indexrelid as indexrelid,
idx_stat.schemaname as schemaname,
idx_stat.relname as tablename,
idx_stat.indexrelname as indexname,
idx_stat.idx_scan as index_idx_scan_count,
idx_stat.idx_tup_read as index_idx_tup_read,
idx_stat.idx_tup_fetch as index_idx_tup_fetch,
pg_relation_size(idx_stat.indexrelid) as index_bytes,
indexes.indexdef ~* 'USING btree' as idx_is_btree
from
pg_stat_user_indexes as idx_stat
join pg_index as pg_index
using (indexrelid)
join pg_indexes as indexes
on
idx_stat.schemaname = indexes.schemaname
and idx_stat.relname = indexes.tablename
and idx_stat.indexrelname = indexes.indexname
where
pg_index.indisunique = false
),
index_ratios as (
select
indexes.schemaname as schemaname,
indexes.tablename as tablename,
indexes.indexname as indexname,
indexes.index_idx_scan_count as index_idx_scan_count,
indexes.index_idx_tup_read as index_idx_tup_read,
indexes.index_idx_tup_fetch as index_idx_tup_fetch,
round(case when indexes.index_idx_scan_count = 0 or table_scans.table_live_tup_count = 0
then -1 :: numeric
else indexes.index_idx_tup_fetch :: numeric / indexes.index_idx_scan_count / table_scans.table_live_tup_count * 100 end, 2) as idx_pct_table_fetched,
table_scans.table_idx_scan_count as table_idx_scan_count,
table_scans.table_seq_scan_count as table_seq_scan_count,
table_scans.table_seq_tup_read as table_seq_tup_read,
table_scans.table_sum_all_scans as table_sum_all_scans,
round((case when table_scans.table_sum_all_scans = 0
then -1 :: numeric
else indexes.index_idx_scan_count :: numeric / table_scans.table_sum_all_scans * 100 end), 2) as index_scan_pct,
table_scans.table_write_insert_count as table_write_insert_count,
table_scans.table_write_update_count as table_write_update_count,
table_scans.table_write_delete_count as table_write_delete_count,
table_scans.table_sum_all_writes as table_sum_all_writes,
round((case when table_scans.table_sum_all_writes = 0
then indexes.index_idx_scan_count :: numeric
else indexes.index_idx_scan_count :: numeric / table_scans.table_sum_all_writes end), 2) as scans_per_write,
table_scans.table_tup_hot_upd_count as table_tup_hot_upd_count,
table_scans.table_live_tup_count as table_live_tup_count,
indexes.index_bytes as index_bytes,
pg_size_pretty(indexes.index_bytes) as index_size,
table_scans.table_bytes as table_bytes,
pg_size_pretty(table_scans.table_bytes) as table_size,
indexes.idx_is_btree as idx_is_btree
from
indexes
join table_scans
using (relid)
),
index_groups as (
select
1 as grp,
'Never Used Indexes' as reason,
*
from
index_ratios
where
index_ratios.index_idx_scan_count = 0
and index_ratios.idx_is_btree
union all
select
2 as grp,
'Low Scans, High Writes' as reason,
*
from
index_ratios
where
scans_per_write <= 1
and index_scan_pct < 10
and index_idx_scan_count > 0
and table_sum_all_writes > 100
and idx_is_btree
union all
select
3 as grp,
'Seldom Used Large Indexes' as reason,
*
from
index_ratios
where
index_scan_pct < 5
and scans_per_write > 1
and index_idx_scan_count > 0
and idx_is_btree
and index_bytes > 100000000
union all
select
4 as grp,
'High-Write Large Non-Btree' as reason,
index_ratios.*
from
index_ratios,
database_writes
where
(table_sum_all_writes :: numeric / coalesce(nullif(database_sum_all_writes, 0), 1)) > 0.02
and not idx_is_btree
and index_bytes > 100000000
union all
select
5 as grp,
'(+) Sem Efetividade' as reason,
index_ratios.*
from
index_ratios
where
idx_is_btree
and index_idx_scan_count > 0
and idx_pct_table_fetched > 20
union all
select
6 as grp,
'(+) Índice Médio (100MB a 500MB)' as reason,
index_ratios.*
from
index_ratios
where
index_bytes >= 100000000
and index_bytes < 500000000
union all
select
7 as grp,
'(+) Índice Grande (500MB a 1 GB)' as reason,
index_ratios.*
from
index_ratios
where
index_bytes >= 500000000
and index_bytes < 1000000000
union all
select
8 as grp,
'(+) Índice Enorme (mais de 1 GB)' as reason,
index_ratios.*
from
index_ratios
where
index_bytes >= 1000000000
order by
grp,
index_bytes desc
)
select
reason,
schemaname,
tablename,
indexname,
table_size,
index_size
from
index_groups
Identificar tamanho do banco de dados
Como o PostgreSQL tem uma forma diferente de armazenar as informações, ou seja, não é um arquivo único, o comando abaixo auxilia na identificação do tamanho do banco de dados.
SELECT
table_name nome_tabela,
pg_size_pretty(table_size) || ' (' || CASE WHEN total_size = 0 THEN 0.00 ELSE round(table_size * 100 / total_size) END || ' %)' AS tamanho_dados,
pg_size_pretty(indexes_size) || ' (' || CASE WHEN total_size = 0 THEN 0.00 ELSE round(indexes_size * 100 / total_size) END || ' %)' AS tamanho_indice,
pg_size_pretty(total_size) AS tamanho_total
FROM (
(SELECT
table_name,
pg_table_size(table_name) AS table_size,
pg_indexes_size(table_name) AS indexes_size,
pg_total_relation_size(table_name) AS total_size
FROM (
SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name
FROM information_schema.tables
WHERE NOT table_schema IN ('pg_catalog', 'information_schema')
) AS all_tables
ORDER BY total_size DESC)
UNION ALL
(SELECT
'TOTAL',
sum(pg_table_size(table_name)) AS table_size,
sum(pg_indexes_size(table_name)) AS indexes_size,
sum(pg_total_relation_size(table_name)) AS total_size
FROM (
SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name
FROM information_schema.tables
WHERE NOT table_schema IN ('pg_catalog', 'information_schema')
) AS all_tables)
) AS pretty_sizes;
Lições aprendidas
Aqui documentamos a evolução de aprendizado com a utilização do banco de dados em relação a nossos produtos.
Incidentes na instalação:
Permissões de administrador:
- Para instalar o postgreSQL, tenha certeza que o usuário do servidor possua total permissão de administrador.
- Ele precisa também ser um administrador no domínio, caso cliente utilize o active directory.
- Do contrário, uma mensagem de erro será reportada no momento da instalação na tentativa de criação do banco e do usuário padrão postgres
***OBSERVAÇÃO: Em alguns casos, você deverá instalar o PostgreSQL antes de inserir o servidor no domínio
DLL libpq faltando, ou erro de Firedac
Mensagem: [FireDAC][Phys][PG]-314. Cannot load vendor library [C:\EXE\libpq.dll]. Hint: check it is in the PATH or application EXE directories, and has x86 bitness.
Este erro poderá ser apresentado no momento de clicar em testar conexão no Ema configurador e não necessariamente é relacionado a falta da DLL libpq e sim a ausência do Microsoft Visual C++.
Ele também pode aparecer caso você tenha instalado o PostgreSQL 64bits com o Microsoft Visual C++ incluso.
O Ema Servidor é 32bits então vai precisar do Microsoft Visual C++ 32 bits, basta apenas baixar e instalar o Microsoft Visual C++ 32bits que o Ema Configurador já vai funcionar. Em resumo, você terá instalado:
- Visual c++ 64bits para funcionar o banco e o PgAdmin.
- Visual c++ 32bits para funcionar os sistemas Ema.
- Acesse o site da microsoft
- Baixe a versão 32
- Pra Windows 10, versão 2015
- Para Windows 7, versão 2013
- Instale, feche o ema configurador e abra novamente e repita o teste de conexão
- Confira se a DLL libpq está localizada na pasta SysWow64 ou em Contas ERP
Caso as você faça as etapas acima e mesmo assim continue dando erro de [FireDAC][Phys][PG]-314. Cannot load vendor library [C:\EXE\libpq.dll], copie para a pasta Contas Erp acesse esse link: https://pt.stackoverflow.com/questions/166085/erro-dll-conex%C3%A3o-firedac-com-postgresql
invalid password packet size
Você não efetuou corretamente as configurações recomendadas neste página meu jovem!
Reveja estas configurações.
no pg_hba.conf entry for host
Este erro geralmente apresenta quando colocamos o ip do servidor no Ema configurador e clicamos em testar.
Para resolver:
- Pare o serviço do PostgreSQL
- Edite o arquivo: C:\PostgreSQL\data\pg10\pg_hba.conf
- Logo abaixo de #IPv4 local & Remote connections, insira a linha:
- host all all 0.0.0.0/0 password
- Salve o arquivo, o mesmo deverá ficar igual a imagem abaixo
Inicie o postgreSQL e refaça o teste
application server could not be contacted
Esse erro pode aparecer quando você está iniciando o PgAdmin V4.
Para resolver:
- Deletar a pasta em AppData\Roaming\pgAdmin do seu usuário e executar o PgAdmin 4 como administrador.
- Depois pode iniciar o PgAdmin V4 normalmente.
Manutenção do PostgreSQL
Vacuum/analyze
Para garantir ainda mais performance em nosso banco e retirar toda sujeira de dados ,no momento em que o comando VACUUM é executado, é feita uma varredura em todo o banco a procura de registros inúteis, onde estes são fisicamente removidos diminuindo o tamanho físico do banco.
Mas além de apenas remover os registros, o comando VACUUM encarrega-se de organizar os registros que não foram deletados, garantindo que não fiquem espaços/lacunas em branco após a remoção dos registros inúteis.
**Opções: a função de vacuum possui 3 parâmetros básicos conforme abaixo:
Full
Quando o vacuum é utilizado em conjunto com este parâmetro, então é feita uma limpeza completa de todo o banco, em todas as tabelas e colunas. Este processo geralmente é demorado e evita que qualquer outra operação no banco seja realizada.
Freeze
Força o congelamento de qualquer entrada e saída do banco no momento de rodar o vacuum.
Analyze
Ao usar o ANALYSE junto ao seu comando VACUUM ele irá atualizar as estatística do banco de dados a fim de melhorar a performance das pesquisas.
- Para executar abra o gerenciador de banco pgAdmin3 ou pgAdmin 4;
- Clique com botão direito em cima do banco de dados desejado;
- Escolha maintenance;
- Marque a opção Vacuum;
Escolha a opção (Full, freeze ou analyse) conforme descrição acima. O comando também pode ser usado apenas em uma tabela, ou até uma coluna do banco.
Obter informação sobre o banco de dados PostgreSQL - Tamanho / Enconding / Collate / Versao
Abaixo estamos compartilhando um comando para ter acesso a algumas informações sobre seu PostgreSQL e seu sistema.
Dados retornados:
- Nome do banco
- Tamanho do banco de dados
- Tamanho do banco de dados em MB
- Enconding da base
- Collate da base
- Versão do PostgreSQL
- Versão Software EMA
- Versão do Banco de dados EMA
SELECT DATNAME AS BANCO,
PG_DATABASE_SIZE(DATNAME) AS TAMANHO,
PG_SIZE_PRETTY(PG_DATABASE_SIZE(DATNAME)) AS TAMANHO_MB,
PD."encoding" AS ENCONDING,
PD.DATCOLLATE AS COLLATE,
PD.DATDBA AS VERSAO_PG,
V.VERSAO AS VERSAO_EMA,
V.VERSAODB AS VERSAO_EMADB
FROM PG_DATABASE PD
JOIN VERSAODB V ON 1=1
WHERE UPPER(DATNAME) = 'EMA';
*Lembre-se: O Enconding e o Collate são do banco de dados, seu 'cliente' de banco de dados pode estar configurado com outro Enconding por exemplo, causando problemas com acentuação ou caracteres especiais.
pg_hba.config
Após a instalação do PostgreSQL é necessário configurar o arquivo pg_hba.conf para mudar as opções de md5 para password.
O PostgreSQL, é configurado por padrão para não exigir senha de conexões locais com o banco. Porém devemos alterar para exigir sempre senha para conexão. Caso não façamos isso qualquer pessoa que utilizar a máquina em que o banco está instalado conseguirá acessar o banco sem informar a senha.
Portanto SEMPRE deve-se aplicar esta configuração.
O arquivo estará no caminho C:\Program Files\PostgreSQL\10\data.
- Abra o arquivo:C:\Program Files\PostgreSQL\10\data\pg_hba.conf
- Na coluna "METHOD" substitua "trust" e "MD5" (conexão de confiança) por "password"
- Salve e feche o arquivo novamente.
PostgreSQL - Verificar sessões ativas
O SQL abaixo é utilizado para identificar em banco de dados PostgreSQL todas as sessões que estão ativas no seu banco de dados, que eventualmente podem ocasionar em locks nas suas tabelas, travando assim as operações.
select datname,
procpid,
usename,
application_name,
client_addr,
client_hostname,
backend_start,
query
from pg_stat_activity
**OBSERVAÇÃO: Em versões acima da 9.2, a coluna procpid teve seu nome alterado para pid, basta renomea-la e seu SQL irá rodar corretamente.
Instalar, Criar Banco e Configurar Gerenciador de banco de Dados
Neste documento iremos verificar como se realiza a instalação do banco de dado Postgres e também como criamos e importamos a primeira base e como instalamos e configuramos os gerenciadores de banco de dados para futuras manutenções.
Instalação
ATENÇÃO: Esta instrução é destinada à quem deseja utilizar com a ferramentas Ema Software.
Para fazer a instalação do banco de dados PostgreSQL. A versão que deverá ser baixada é a V.16. Após isso, Executar o instalador e seguir os passos a seguir
Devemos nos atentar com a senha informada e também com a Porta de comunicação do Postgres, sendo geralmente a Porta 5432
Depois de concluir a barra de instalação, basta clicar na opção finalizar
Ferramentas de Gerenciamento de Banco de dados
Dentro da Ema usamos geralmente duas ferramentas de gerenciamento de banco de dados internamente e nos cliente, sendo elas:
Instalando o DBeaver
Para usar a ferramenta Dbeaver, clicamos no link a cima e baixamos o instalador, geralmente clicando na opção "Windows Installer". Após baixarmos, iremos executar o instalador e seguir os passos abaixo:
Instalando o PgAdmin
Clicando no link deixado a cima, vamos baixar e instalar o software do PgAdmin, de acordo com os passos:
Criar Banco de Dados
Após instalar o Postgres, e instalar a ferramenta escolhida para as conexões do banco de dados, vamos seguir com a criação do banco de dados.
Atualmente podemos criar o banco de 2 formas: Pelo prompt de comando ou pela ferramenta de banco de dados.
Criando um Banco de Dados pelo Prompt de comando (CMD) ou usando a Ferramenta de gerenciamento
Para este procedimento iremos seguir os passos abaixo:
- Criar o Banco:
- Abra o Prompt de Comando em modo administrador.
- Execute os comandos abaixo, alterando caso necessário o nome do banco:
- C:\WINDOWS\system32> cd\
- C:\> psql --username=postgres
- Senha para usuário postgres: senha do banco
- postgres=# CREATE DATABASE ema WITH OWNER="postgres" ENCODING="WIN1252" TEMPLATE="template0";
- postgres=# \q
- C:\> exit
- Usando a Ferramenta de gerenciamento PgAdmin
Criação da base de dados:
Depois de informar o nome, vamos para a aba Definition, onde vamos preencher as seguintes informações:
- Encoding: Informar a opção WIN1252.
- Template: Selecionar a opção Template0
- Table Space: Selecionar Pg_Default
- Collation: Informar a opção Portuguese_Brazil.1252
- Character type: Informar a opção Portuguese_Brazil.1252
Depois disso, basta clicar em Salvar, que irá criar a base desejada
- Usando a Ferramenta de gerenciamento Dbeaver
Ao abrir o Dbeaver, vamos clicar com o botão direito na guia "Navegador de banco de dados" -> ir na opção criar -> Conexão
Na tela que será aberta, iremos informar os dados da conexão com o banco que dados que iremos usar:
Usaremos os seguintes campos para estabelecer uma conexão:
- Conectar Usando: Host ou URL: Dentro da Ema, usamos geralmente o host, definindo uma pasta ou ip da rede para conexão, no exemplo a cima, usamos o localhost ou ip 127.0.0.1 para criar um banco de dados na máquina local, caso queira conectar em um banco existente em outra máquina na rede, devemos informar o IP onde está localizado o banco.
- Banco de Dados: Deve ser informado um banco de dados que será conectado (Quando a conexão é feita após a instalação do Postgres e não há outro banco instalado na máquina, o nome do BD deve ser exatamente o nome 'Postgres')
- Autenticação: Usamos a DataBase Native
- nome de usuário: Postgres
- Senha: usamos a senha Padrão utilizada na conexão de banco de dados na Ema.
- Testar Conexão, aqui vamos testar se as configurações inseridas estão corretas, irá abrir uma janela informando se deu erro na conexão com o banco ou não.
Mensagem de Sucesso na conexão!
Mensagem de Sucesso na conexão!
Após criarmos a conexão, clicamos com o botão direito nela -> criar -> banco de dados:
Aqui vamos pode criar um banco limpo, sem nenhuma tabela ou informação:
As informações necessárias são:
- Nome do Banco de Dados: Nas implantações sempre criamos o banco com o nome ema;
- Proprietário: Podemos deixar padrão como Postgres;
- Banco de dados Modelo: Selecionamos o Template0;
- Codificação: Sempre utilizar o tipo WIN1252;
- Tablespace: deixar por padrão a pg_default;
Depois de revisar basta clicar em OK para criar uma base em branco;
Importar/Restaurar bancos de dados
Em implantações ou até mesmo em análises de novas soluções para o cliente, precisamos importar os dados do cliente para que possamos liberar os acessos as tabelas das nossas ferramentas ou ter uma cópia da base de dados para realizarmos testes e modificações, vamos mostrar aqui como restaurar e importar uma base Postgres nos gerenciadores de bancos de dados e também via prompt de comando ou através das ferramentas de gerenciamentos.
Com o usuário já criado, clique com o botão direito no usuário e em seguida na opção de restore. Em “Filename”, clicar no ícone de pasta, e ir até a base que deseja importar. Selecionando a base, ir na opção “Restore” para começar a fazer a importação. Para acompanhar a importação, basta ir na opção de “Processes”, na parte superior do pgAdmin e clicar no ícone de folha de papel, assim poderá acompanhar se ocorreu algum erro na importação de alguma tabela.
A extensão do arquivo de backup do postgres poderá ser: .dmp, .sql ou .backup.
Depois de selecionarmos o arquivo, devemos aguardar até que o processo de importação seja realizado para que o banco seja liberado para utilização. Verificamos o status da importação através da aba process:
Se apresentado o Erro exit code : 1. Podemos considerar como bem sucedido, pois conforme imagem é apenas um aviso sobre o schema do banco já existir.
Criar Backup do banco de dados.
Há algumas maneiras de se criar uma cópia ou backup do banco de dados. A mais comum é através do PgAdmin ou do própro Dbeaver, vamos mostrar agora como se faz:
Backup no PgAdmin
No aplicativo do PGadmin, vamos identificar a base que queremos fazer o backup, clicar com o botão direito do mouse sobre ela e ir até a opção Backup:
A próxima janela que irá abrir é onde iremos definir o caminho de salvamento e o tipo de enconding:
Em filename, precisamos informar o local que iremos salvar o arquivo, e escolher um nome para ele que será criado automaticamente. Depois definimos o Encoding, que deve ser win1252, igual como é na criação do banco de dados. Depois disso, basta clicar no botão Backup e aguardar o processo ser finalizado.
Backup no DBeaver
Dentro do aplicativo Dbeaver, para criarmos o backup, primeiro precisamos acessar a conexão com o banco, navegar até a pasta banco de dados, selecionar o BD desejado, clicar com o botão direito do mouse, ir até a opção ferramentas e depois ir até a opção Backup:
Na próxima janela, devemos selecionar os objetos que serão exportados:
Clicamos em avançar para seguir para a próxima etapa, que são as definições do arquivo de backup. Onde iremos definir o local de saída do arquivo e seu nome, bem como também a codificação como Windos-1252, exatamente como foi criado o banco anteriormente.
Ao finalizar, clicamos no botão iniciar para que o backup seja concluído.
Criando backup por linha de comando:
Há também uma terceira opção para criamos o backup, através de linhas de comando no próprio Windows conforme documentação:
Criando Backup através de linha de comando
Instalação PDV
Ativação do ECF
*** ATENÇÃO: Essa pagina descreve os procedimentos de registro das impressoras fiscais no Site da Receita Estadual. Todas as impressoras fiscais utilizadas em integração com o Ema PDV precisam ser registradas na Receita Estadual, pois entram nas regras do PAF-ECF para os estados que utilizam essas regras e legislação.
Os tópicos a seguir apresentam as formas de ativação e atualização dos dados na Receita Estadual de Santa Catarina.
Ativação de ECF no site da Receita Estadual
Para que os clientes da Ema pertencentes ao estado de Santa Catarina possam utilizar o sistema Ema PDV, é preciso que as impressoras fiscais (ECF) sejam habilitadas para uso com software da Ema. Este procedimento é realizado no site da Receita Estadual.
O Ema PDV é um software credenciado para emissão de cupons fiscais no estado de Santa Catarina. Deste modo, por questões fiscais, é necessário que os equipamentos (impressoras) emissores de cupons fiscais estejam vinculados a um software homologado para sua emissão.
No geral, existem duas situações onde a Ema deve participar durante o processo de habilitação de uso das impressoras:
- Quando o cliente adquire uma nova impressora fiscal;
- Quando um novo cliente, que já emite cupons fiscais, passa a utilizar os sistemas da ema para a sua emissão.
Informações para empresas fornecedoras de ECF
Os dados cadastrais são padrão e podem ser preenchidos diretamente pela empresa que está lacrando a impressora, são os dados abaixo:
Dados cadastrais Ema Software
- Nome do Aplicativo: Ema PDV 11
- Razão Social: Ema Software Ltda ME
- CNPJ: 07.297.774/0001-75
- IE: 255080700
- Contato: Ronan Bitencourt
- Telefone: 3461-2940
- E-mail: suporte@emasoftware.com.br
** ATENÇÃO: Os demais dados da ficha cadastral são de responsabilidade da empresa fornecedora da ECF e do cliente. Não nos responsabilizamos por métodos de pagamentos não cadastrados no ECF
- Se preferir, envie um email com o documento em anexo para suporte@emasoftware.com.br;
Autorização de uso
Após dados acima validados, a empresa autorizada deve enviar para suporte@emasoftware.com.br:
- Número da autorização de uso da impressora;
- Inscrição Estadual do cliente;
Uma tarefa em nome do cliente será aberta e o mesmo será comunicado quando a autorização no SEFAZ for efetuada. Possuímos um processo DOX Registro de ECF's para facilitar a centralização das informações, o mesmo poderá ser executado pelas unidades de negócio e pela Ema matriz.
Instalando PDV / Arquivos utilizados ECF
Este forum tem o intuito de demonstrar como executar a instalação do software do caixa Ema PDV. Siga as instruções abaixo:
- Acessando o drive da Ema (clique aqui) baixe os arquivos da versão atual chamados Ema PDV e Ema Integrador na pasta VERSÕES.
- Efetue a instalação primeiramente do Ema PDV na pasta padrão sugerida e posteriormente o Ema Integrador.
- O PDV possui dois bancos de dados locais funcionando em Firebird, eles são:
Integrador.fdb no caminho C:\Ema Software\Banco de dados\ este guarda as configurações de integração entre PDV e ERP/ERPx.
PAFECF.fdb no caminho C:\Ema Software\PDV\Integra\Dados\ este guarda os cupons emitidos no PDV localmente.
Arquivos utilizadores ECF
Os arquivos utilizados podem depender:
- Modelo da impressora
- Versão Sistema Operacional
- Versão do sistema Ema PDV
Bematech
Todos os arquivos abaixo são usados a partir do caminho: C:\Ema Software\PDV
- BemaFI32.dll
- BemaFI32.ini
- BemaMFD.dll
- BemaMFD2.dll
- BemaMFD3.dll
- Download aqui.
Daruma
Todos os arquivos abaixo são usados a partir do caminho: C:\Ema Software\PDV
- DarumaFramework.xml
- DarumaFramework.dll
- lebin.dll
- LeituraMFDBin.dll
- WS_Framework.dll
- GNE_Framework.dll
- QrCode_DarumaFramework.dll
- Download aqui.
Epson
Todos os arquivos abaixo são usados a partir do caminho: C:\Ema Software\PDV
- InterfaceEpson.dll
- InterfaceEpson.xml
- Download aqui.
Procedimentos para impressoras fiscais (novas / já em uso)
Procedimento para novas impressoras fiscais
Preencher os dados cadastrais
Assim que o cliente adquire uma nova impressora fiscal, inicia-se o processo de lacração do equipamento. Este procedimento é realizado somente por empresas autorizadas para fornecimento e lacre de impressoras fiscais.
Nesta etapa é onde ocorre o primeiro contato com a Ema. A empresa responsável por realizar o lacre da impressora, nos envia um documento para preenchimento de dados cadastrais.
Geralmente a empresa envia o documento diretamente para a Ema, mas também ocorre dela enviar para o cliente, e depois o cliente nos enviar.
No momento não existe um meio padrão para recebimento destas solicitações. Algumas chegam por e-mails, outras por tarefas e algumas por telefone.
De qualquer modo, os dados que devemos preencher no documento que nos é enviado são:
- Nome do Aplicativo: Ema PDV 11
- Razão Social: Ema Software Ltda ME
- CNPJ: 07.297.774/0001-75
- IE: 255080700
- Contato: Ronan Bitencourt
- Telefone: 3461-2940
- E-mail: suporte@emasoftware.com.br
Neste documento existem diversos outros dados, mas devemos preencher somente os dados relacionados a software house. Também é importante destacar para a empresa que solicitou os dados, que os meios de pagamento devem ser obtidos diretamente com o cliente. Os meios de pagamento também são solicitados neste documento que nos é enviado.
Caso, a solicitação seja de um cliente já da Ema (Nova impressora, novo caixa, troca de impressora), ajude o solicitante a conferir e encontrar os meios de pagamento dentro do Ema ERP e ERPx, porém faça-o registrar por e-mail formal a solicitação. Assim que o documento for preenchido, basta enviá-lo para a empresa autorizada ou para o cliente
Habilitar impressora no sistema da receita estadual.
Na segunda etapa nós realizamos a habilitação da impressora fiscal no site da Receita Estadual. Para isso, precisamos de apenas duas informações, que nos são enviadas pela empresa autorizada por meio de um documento chamado Autorização de Uso de ECF:
- Número da autorização de uso da impressora.
- Inscrição Estadual do cliente
Em posse dessas informações, realizamos o acesso ao sistema da Receita Estadual através do seguinte endereço:
- https://tributario.sef.sc.gov.br/tax.NET/Apps.aspx
- Após efetuarmos o login, vamos até a opção CEI - Manutenção e Autorização de Uso de PAF-ECF;
- Em seguida acessamos a opção Incluir Usuário;
- Na próxima atividade devemos informar a Inscrição Estadual e o número da Autorização de uso, e clicar no botão Buscar;
- O sistema irá abrir uma nova tela com os dados cadastrais do cliente e da impressora fiscal;
Nesta tela é onde realizamos a ativação da impressora, informando os seguintes dados:
- Confirmação de PAF-ECF: Sim
- PAF-ECFs: Ema PDV 11
O gif a seguir destaca os campos que devem ser preenchidos:
Para finalizar o processo, basta clicar em Salvar.
A impressora estará habilitada. Por fim, basta retornar o e-mail para a empresa autorizada, comunicando que a impressora está habilitada e pronta para ser instalada. Assim a autorizada irá prosseguir com a instalação da impressora no cliente.
Procedimentos para impressoras fiscais já em uso (Transferência para Ema)
Como conseguir o número de credenciamento:
- Logar na página https://tributario.sef.sc.gov.br com o login (03180295961) e senha (&m4pr09) da Ema;
- Ir na opção de CEI - Manutenção de Autorização de Uso de PAF-ECF;
- Clicar em buscar diretamente, o sistema irá mostrar todas as homologações de PAF feitas pela Ema Matriz;
- Em caso de atualização de dados, o credenciamento do cliente estará feito em uma versão anterior conforme imagem.
- Pesquisar pelo cliente no campo Nome.
- Pegar o número de autorização e preencher no integrador.
OBS: O número da inscrição coletada nesta tela está vinculado a cada CNPJ. Se você possui PDV's com Matriz e filiais, serão números de inscrição diferentes.
Como atualizar o credenciamento do cliente:
- No credenciamento do cliente, clique no icone em formato de lápis para edição do mesmo;
- Na próxima tela, altere os campos;
- Confirmação de de PAF-ECF : SIM
- PAF-ECFs: 1806900014227 - EMA PDV-11
- Clique em Salvar;
- O credenciamento irá irá passar a respeitar a nova homologação do PAF.
Esta segunda etapa também deverá ser realizada quando um novo cliente, que emitia cupons fiscais através de outro sistema, passa a utilizar os sistemas da Ema para emissão de cupons fiscais.
Ou seja, este processo deve ser realizado durante a implantação do Ema PDV em clientes que usavam outros softwares para esta finalidade.
- A habilitação deve ser realizada para cada impressora fiscal que o novo cliente possuir.
- Nem sempre o cliente possui em mãos as informações necessárias (Número da Autorização de Uso e Inscrição Estadual) para que a impressora seja habilitada para uso com o Ema PDV. Neste caso, o cliente poderá obter essas informações juntamente a empresa autorizada que lhe vendeu a impressora fiscal, ou em último caso juntamente de sua contabilidade.
- Cabe aos responsáveis pela implantação do sistema levantar essas informações no cliente e repassá-las para a pessoa responsável na Ema por realizar esta alteração.
Procedimentos em banco Oracle
Lentidão Ao abrir o ERP com mensagem ORA-04030
Em alguns casos onde há presença de lentidão ao efetuarmos login nas aplicações da Ema e apresentar a seguinte mensagem:
“ORA-04030: out of process memory when trying to allocate 600 bytes (kkqctdrvTD: co,ckydef:kkqcscpcky)”
Devemos seguir as seguintes orientações:
- Verificar consumo dos recursos dos servidores (banco de dados e aplicação), abrindo o Gerenciador de Tarefas e conferindo o uso de CPU, Memória, Disco e Rede.
- Tendo um uso alto dos recursos da máquina, identifique o processo que tenha algum consumo em excesso, caso for do nosso sistema finalize e verifique se normalizou.
-
Caso algum outro processo relacionado ao Windows estiver com alto consumo, verifique no Windows Update se não tem alguma atualização disponível para fazer, fazendo as atualizações é necessário reiniciar a máquina.
- Realizar o processo de desfragmentação de disco no servidor
Outros pontos de validação
- Confirmar se foi instalado recentemente algum aplicativo no servidor, que possa acabar impactando no desempenho dos softwares da Ema
- Verificar se há o uso de antivírus, se houver, avaliar se há configuração de exceções para as pastas das aplicações da Ema.
-
Escalonar as máquinas dos usuários para diminuir o consumo dos atalhos que vem direto do servidor.
**Alguns passos podem deixar o cliente temporariamente sem sistema, confirmar antes caso seja em horário comercial!**
Serviços cloud
Fluxos do serviço de Cloud Server
A seguir serão apresentados os fluxos de trabalho referentes ao serviço de Cloud Server, onde a área de Suporte / Infraestrutura possui participação nas atividades.
Contratos
Atualmente a área de TI da Ema é responsável por negociar e manter atualizadas as cláusulas contratuais dos serviços prestados pela Box à Ema. Essa atividade possui apoio da área jurídica da Ema. A negociação é realizada junto a Box tendo como contato o CEO e o gestor financeiro da empresa, além do jurídico da própria Box.
A TI atualmente também é responsável por manter atualizadas as cláusulas contratuais (referentes aos serviços cloud) nos contratos de clientes da Ema.
Comercial
Cotações
O time de Suporte / Infraestrutura pode participar de algumas cotações para o serviço de cloud server. Essa demanda pode surgir da área Comercial ou pelo time de Operações. Essa atividade envolve a definição de escopo para cada projeto, sempre observando o provisionamento adequado de recursos para cada ambiente.
Os seguintes aspectos devem ser levados em consideração:
- Quantidade de servidores locais: Quantos servidores locais o cliente possui? A maioria dos clientes irá possuir um único servidor para uso da aplicação com o banco de dados, no entanto, alguns clientes com configurações mais robustas podem ter dois ou mais servidores. Isso deve ser levado em consideração ao projetar o ambiente na nuvem.
- Tipo e versão do sistema operacional: O padrão que utilizamos hoje é o Windows Server 2022.
- Conectividade de rede: Verificar com o cliente se ele possui algum recurso na rede local que precisará manter a conexão com o servidor em nuvem, para uso de VPN SSL ou IPSec.
- Provisionamento de recursos: CPUs, memória RAM e espaço em disco (atenção especial para o espaço em disco). O provisionamento poderá ser feito de acordo com os planos de venda que já temos definidos, ou para projetos personalizados, a configuração do ambiente deverá ser feita de maneira específica pra atender a demanda.
- Quantidade de licenças de acesso remoto
- Tipo de acesso remoto: TSPlus ou WTS
- Integração com outros sistemas
- Requisitos de segurança do cliente: Backup adicional, redundância, etc.
Vendas
- Precificação: A precificação do serviço de cloud server é realizada junto a Box. A precificação pode mudar de acordo com a política comercial e/ou reajustes realizados pela Box.
- Negociações: Eventualmente o Suporte / Infraestrutura pode participar de uma negociação do serviço de cloud server, com o objetivo de entender a necessidade do cliente, procurar apresentar o ROI do projeto e apoiar o time comercial no processo de venda. Essa atividade pode ser realizada tanto de maneira remota quanto presencial.
- Upsell: O time de Suporte / Infraestrutura pode participar da negociação de upgrades no serviço de cloud server, principalmente quando houver alguma dúvida quanto ao upgrade do servidor ou sistema. É importante lembrar que todo upsell de licenças de nosso ERP, automaticamente gera a necessidade de upgrade de 1 licença no contrato do cloud server.
Tabela de preços
Abaixo encontram-se o link de acesso a planilha de orçamentos, onde temos o valor de cada recurso que compõe o preço de venda de um servidor:
- https://docs.google.com/spreadsheets/d/1zcESvvIx7j1fyvXmYjAr5QYTTLcAoYjUBv6h2GslLYc/edit?usp=sharing
Financeiro
Faturamento
Nos processos que envolvem a área financeira, o time de Suporte / Infraestrutura presta apoio todos os meses na conferência do faturamento realizado pela Box para a Ema. O objetivo é garantir que todos os custos sejam lançados corretamente em nosso sistema interno, desmembrados por cada cliente, assim como garantir que a Box está faturando os valores corretamente de acordo com as últimas vendas, alterações ou cancelamentos.
Essa atividade é realizada em conjunto todos os meses com o setor financeiro para garantir que está tudo certo. Temos uma planilha compartilhada entre as áreas que serve de apoio na conferência de valores de cada cliente: https://docs.google.com/spreadsheets/d/17_BDI-OaAE1Rw-o809Srm5BquzTzyJKeOXv6idYASR4/edit#gid=1005287067
Comissões
É papel da TI garantir que mensalmente as comissões devidas a Ema sejam apuradas e faturadas pela Box. Também é papel da TI negociar possíveis reajustes no comissionamento para a Ema.
Projetos
Solicitação de ativação de novos servidores
A TI é responsável por solicitar a ativação de novos servidores junto a Box. Para essa atividade, temos um grupo específico no WhatsApp onde realizarmos a solicitação dos novos servidores para a Box, de modo que eles possam nos atender com agilidade.
Todo e qualquer servidor vendido, seja por meio de um novo projeto vendido pela área Comercial, ou a venda de um servidor para um cliente atual, deve ter sua ativação solicitada através de grupo.
Os dados abaixo sempre devem ser encaminhados a Box para solicitar a ativação de novos servidores:
-
Nome do cliente
-
CNPJ
-
Fone
-
E-mail
-
Nome para contato:
-
Configurações do ambiente: Quantidade de CPUs, memória RAM e espaço em disco, tipo do disco (SAS ou SSD), tipo de acesso remoto (TSPlus ou WTS), quantidade de licenças de acesso remoto, sistema operacional, entre outras informações adicionais se for necessário.
Procedimentos de ativação
Criação do DNS
Após solicitarmos a ativação do servidor para a Box, um ticket será aberto pela Box e assim que o servidor estiver pronto ele será enviado por e-mail com os dados de acesso.
Com o endereço do servidor encaminhado pela Box, seja um endereço DNS ou um endereço IP, é necessário criar o registro DNS em nome de nosso domínio a Ema em nossa conta no CloudFlare. Os endereços devem ser criados no domínio emasistemas.cloud
O nome do registro deve ser precedido do nome ou abreviação do nome do cliente para criação do sub domínio.
Documentação
Após a ativação de cada cliente, é muito importante documentar informações sobre o ambiente cloud nas Dicas do Cliente, no DOX Estúdio. Além disso, é importante que um padrão de nomenclatura seja seguido ao realizarmos o cadastro da conexão remota do cliente no DOX.
Atualmente o padrão de nomenclatura das conexões remotas tem sido: Servidor (Cloud Box). Isso serve para facilitar a identificação de que aquele servidor está na nuvem da Box.
Informações importantes para serem registradas nas dicas do cliente:
- Informar que o cliente utiliza o serviço de cloud server
- Informar o tipo de acesso remoto que é realizado (TSPlus ou WTS)
- Informar o endereço de acesso ao servidor (caso o cliente use o TSPlus, informar o endereço de acesso via web)
- Informar nome e senha de todos os usuários do servidor (esses usuários são criados pela Box durante a ativação do servidor, mas podem ser alterados posteriormente)