| Cliente | Razão social / CNPJ | Contato | Conexão Oracle | Monitor | Última exportação |
|---|
(escolha um objeto à esquerda)
| Job | Agenda | Estado | Exec. |
|---|
| Executável | Tipo | Título / área | Descrição | SQLs | Execuções | Conex. 7d |
|---|
O agente lê o log do listener na máquina do cliente e manda só o agregado por hora: todo programa que conectou, de qual máquina, com qual usuário do sistema e se conseguiu. Diferente do monitor de SQL (uma amostra), aqui aparece até a integração que entra e sai em um segundo.
| Programa | Conexões | Falhas | Máquinas | Usuários do SO | Serviço | Última |
|---|
(escolha um arquivo à esquerda)
Relacionamentos
Cruza os metadados extraídos com o SQL que o banco realmente executou. Ex.: quem grava na tabela PCPEDC, o que o package FATURAMENTO faz, quais rotinas mexem em estoque.
O Oracle guarda o SQL recente em V$SQL, um cache que se perde
com o tempo. O monitor lê esse cache de tempos em tempos e acumula tudo
aqui, com o executável e a linha que emitiu cada comando.
Exige que o usuário da conexão enxergue as views V$
(SELECT_CATALOG_ROLE).
MODULE da sessão. Versões do mesmo executável
aparecem agrupadas. "SQL direto" = comandos enviados pelo programa
sem passar por rotina PL/SQL.documentacao_do_sistema).
Usado pela tela Pesquisar para redigir a resposta em cima do que a busca encontrou. A chave fica guardada neste servidor. Sem ela, a pesquisa continua funcionando — apenas sem o texto corrido.
deepseek-chat responde direto; deepseek-reasoner
raciocina mais antes de responder, custando mais tempo e tokens.
O Claude Code se conecta neste sistema por MCP e consulta os metadados extraídos enquanto você desenvolve: estrutura de tabelas, código PL/SQL, relações entre objetos e busca no código. Copie os comandos abaixo e execute no terminal da máquina onde o Claude Code roda.
claude-mcp, sem senha —
acessa a API apenas por token e pode ser revogado sem afetar seu login.
claude mcp list
vsystems-extrator: ... - ✔ Connected.
O agente é um serviço pequeno (um único arquivo Python) que roda na rede do cliente, junto ao
Oracle do ERP. Ele só faz conexão de saída HTTPS para este servidor: recebe as consultas de
leitura (dicionário de dados, fontes PL/SQL, DDL, V$SQL), executa no banco e devolve as
linhas. Nenhuma porta é aberta no cliente e a senha do Oracle nunca sai de lá.
[ rede do cliente ] [ ext.vsystems.com.br ]
Oracle do ERP <—— agente.py —— HTTPS (saída) ——> servidor do extrator
(somente leitura) heartbeat 60 s, fila de comandos, exportação, monitor, IA
linhas em lotes, auto-update
- Pausa a consulta quando o load da máquina ou do Oracle (
V$OSSTAT) passa do teto e retoma sozinho. - Respiro entre lotes de linhas, teto de memória, prioridade baixa de CPU e disco, limites do systemd.
- Os limites são ajustáveis por cliente (bloco Limites de carga abaixo).
- Só executa
SELECT,ALTER SESSION SETe o ajuste doDBMS_METADATA. Qualquer outro comando é recusado.
- Linux ou Windows que enxergue o Oracle (de preferência o próprio servidor do banco).
- Python 3.7+ (Linux: o instalador instala; Windows: python.org, marque "Add to PATH").
- Saída HTTPS para
ext.vsystems.com.br(porta 443). - Usuário Oracle
vsextratorsomente leitura — script na tela Instalação. - Oracle 11g: o agente ativa o modo thick sozinho usando as bibliotecas do próprio Oracle da máquina.
- Cadastre o cliente com o modo Agente instalado no cliente.
- Escolha o cliente abaixo e baixe o instalador pronto (Linux ou Windows).
- Na máquina do cliente, rode o instalador informando usuário e senha do Oracle.
- Em até 1 minuto o cliente aparece online. Clique em Exportar na ficha e ligue o Monitor.
Linux vsextrator-agente status # serviço + configuração vsextrator-agente testar # conecta no Oracle e mostra a versão vsextrator-agente logs # log ao vivo vsextrator-agente descobrir # redescobre o DSN do Oracle vsextrator-agente restart Windows (PowerShell como administrador) python C:\ProgramData\vsextrator-agente\agente.py --status python C:\ProgramData\vsextrator-agente\agente.py --testar schtasks /Run /TN vsextrator-agente type C:\ProgramData\vsextrator-agente\agent.log
/opt/vsextrator-agente (Linux) ou
C:\ProgramData\vsextrator-agente (Windows). O config.json guarda a senha (permissão só do administrador).| Cliente offline | O serviço não está rodando ou não alcança o servidor. vsextrator-agente status; confira saída HTTPS para ext.vsystems.com.br (proxy/firewall). |
| chave inválida (403) | A chave foi regenerada na ficha ou o instalador é de outro cliente. Baixe o instalador de novo e reinstale. |
| Oracle inacessível: ORA-12541 | Listener não responde no DSN configurado. vsextrator-agente descobrir ou reinstale com --dsn host:1521/SERVICO (ou host:1521:SID em Winthor antigo). |
| ORA-01017 | Usuário ou senha errados. Reinstale com a senha certa (o instalador só regrava o config.json). |
| ORA-00942 / ORA-01031 | Falta grant. Rode o script da tela Instalação (SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE e SELECT ANY TABLE). |
| DPY-3010 | Oracle 11g com driver thin. O agente tenta o modo thick com as bibliotecas locais; se não achar, instale o Instant Client ou cx_Oracle na máquina. |
| pausado por carga | Normal: o servidor do cliente está ocupado e o agente espera baixar. Ajuste os limites na ficha se for restritivo demais. |
| Python não encontrado | Windows: instale o Python 3 com "Add to PATH" e rode o instalador de novo. |
vsextrator no Oracle
O extrator conecta no Oracle do cliente com um usuário somente leitura. Ele não cria
objetos nem altera dados: lê o dicionário (tabelas, colunas, constraints, índices,
fontes PL/SQL, DDL) e o cache de SQL (V$SQL, V$SQL_PLAN, V$SESSION)
para o monitor. Peça ao DBA do cliente para executar o script abaixo como SYS ou SYSTEM.
-- Extrator de Metadados VSystems - usuario de leitura (VSEXTRATOR)
-- Troque a senha antes de executar. Em Oracle 12c+ multitenant,
-- execute conectado no PDB do Winthor (ALTER SESSION SET CONTAINER = nome_do_pdb).
CREATE USER vsextrator IDENTIFIED BY "TroqueEstaSenha#2026"
DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP
QUOTA 0 ON USERS;
-- entrar no banco
GRANT CREATE SESSION TO vsextrator;
-- dicionario de dados completo (DBA_TABLES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS,
-- DBA_INDEXES, DBA_SOURCE, DBA_DEPENDENCIES...)
GRANT SELECT ANY DICTIONARY TO vsextrator;
-- views de desempenho (V$SQL, V$SQLAREA, V$SQL_PLAN, V$SESSION, V$VERSION)
-- e DBMS_METADATA.GET_DDL de objetos de outros schemas
GRANT SELECT_CATALOG_ROLE TO vsextrator;
-- leitura das tabelas de todos os schemas (consultas de diagnostico e
-- investigacao sobre os dados; continua sem nenhum privilegio de escrita)
GRANT SELECT ANY TABLE TO vsextrator;
-- a senha nao pode expirar: o monitor coleta sozinho, 24h por dia
CREATE PROFILE vsextrator_perfil LIMIT
PASSWORD_LIFE_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED;
ALTER USER vsextrator PROFILE vsextrator_perfil;
-- caso o usuario ja exista e esteja bloqueado/expirado:
-- ALTER USER vsextrator ACCOUNT UNLOCK;
-- ALTER USER vsextrator IDENTIFIED BY "TroqueEstaSenha#2026";
-- cada consulta deve devolver um numero, sem ORA-00942
SELECT COUNT(*) FROM dba_objects;
SELECT COUNT(*) FROM dba_source;
SELECT COUNT(*) FROM v$sql;
SELECT COUNT(*) FROM v$sql_plan;
SELECT COUNT(*) FROM v$session;
SELECT DBMS_METADATA.GET_DDL('TABLE', 'PCPEDC', 'WINT') FROM dual;
SELECT COUNT(*) FROM WINT.PCPEDC; -- SELECT ANY TABLE
CREATE SESSION | conectar no banco |
SELECT ANY DICTIONARY | dicionário DBA_*: estrutura, comentários, fontes PL/SQL, dependências |
SELECT_CATALOG_ROLE | views V$ (SQL executado, planos, sessões) e DDL via DBMS_METADATA |
SELECT ANY TABLE | leitura das tabelas de todos os schemas, para consultas de diagnóstico sobre os dados |
QUOTA 0 | garante que o usuário não grava nada |
PASSWORD_LIFE_TIME UNLIMITED | evita a coleta parar por senha expirada (ORA-28001) |
ext.vsystems.com.br. O servidor manda as consultas
de leitura, o agente executa no banco e devolve as linhas. Nenhuma porta é aberta no cliente e a senha
do Oracle fica só lá.- Cadastre o cliente com o modo Agente instalado no cliente.
- Na tela Agente (ou na ficha do cliente), baixe o instalador pronto (Linux ou Windows).
- Na máquina do cliente, rode o instalador informando usuário e senha do Oracle. O agente descobre o banco sozinho e aparece online na ficha em até 1 minuto.
- Cadastre o cliente em Clientes → Novo cliente (usuário
vsextrator) e teste. - Na ficha do cliente, clique em Exportar para a primeira extração da estrutura do banco.
- Ligue o Monitor para começar a capturar os SQLs executados.