Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

Guia do Usuário do IBTransaction Monitor

Dmitry Kuzmenko, 08-Jun-2008

O IBSurgeon Transaction Monitor (IBTM) é um pacote de software projetado para monitorar, visualizar e analisar transações dinâmicas em bancos de dados InterBase e Firebird.

Conteúdo

Guia do Usuário do IBSurgeon Transaction Monitor. {C}{C}{C}{C}1{C}{C}{C}{C}{C}{C}{C}{C}{C}

O que está incluído?. {C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}

Monitor{C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}

O que está sendo registrado?. {C}{C}{C}{C}2{C}{C}{C}{C}{C}{C}{C}{C}{C}

Assistente de Configuração{C}{C}{C}{C}3{C}{C}{C}{C}{C}{C}{C}{C}{C}

Usando o Assistente de Configuração{C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}

Gerenciando o Serviço do Monitor. {C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}

Configurando Servidores. {C}{C}{C}{C}4{C}{C}{C}{C}{C}{C}{C}{C}{C}

Configurando Bancos de Dados. {C}{C}{C}{C}5{C}{C}{C}{C}{C}{C}{C}{C}{C}

Visualizador{C}{C}{C}{C}8{C}{C}{C}{C}{C}{C}{C}{C}{C}

Tipos de visualização de gráficos. {C}{C}{C}{C}13{C}{C}{C}{C}{C}{C}{C}{C}{C}

Suporte técnico{C}{C}{C}{C}16{C}{C}{C}{C}{C}{C}{C}{C}{C}

O pacote IBTM contém três módulos principais:

  • Monitor - Um pequeno programa baseado em serviço Win32 para monitorar e registrar estados de transações de um ou mais bancos de dados.
  • Assistente de Configuração Para configurar as definições do Monitor e do Visualizador.
  • Visualizador Projetado para visualizar e analisar as informações registradas pelo Monitor.

O Monitor é um pequeno programa baseado em serviço Win32 (ibtm.exe), que funciona em Windows NT, 2000, XP e Windows Server 2003 e 2008 (tanto 32 quanto 64 bits). Na inicialização, o Monitor lê as configurações (definidas pelo Assistente de Configuração) e monitora o banco de dados especificado. Durante o monitoramento, ele se conecta ao banco de dados a cada minuto (intervalo padrão recomendado) e lê o estado das transações.

Se o InterBase ou Firebird estiver rodando no Windows, o Monitor pode ser instalado no servidor onde o banco de dados reside. Para servidores baseados em Linux, ele pode ser instalado em qualquer computador Windows com acesso de rede ao servidor InterBase ou Firebird. Você pode instalar o Monitor usando os seguintes métodos:

  • Usando o Assistente de Configuração
  • A partir de uma janela de shell de comando

Importante! Antes de começar a instalar o Monitor, você precisa garantir que está conectado ao Windows com direitos e privilégios de Administrador. O Monitor será instalado como um serviço com inicialização Automática sob a conta de usuário Localsystem.

Como o Monitor apenas se conecta periodicamente ao banco de dados e escreve as informações coletadas em um arquivo de log de texto simples, não há necessidade de aplicar regras adicionais. No entanto, se você quiser proteger a configuração do Monitor e as informações de login do banco de dados, você deve alterar as configurações do serviço do Monitor e o acesso ao seu diretório (e log) conforme necessário, através do Painel de Controle de Serviços do Windows.

Os parâmetros de configuração do Monitor serão discutidos no Assistente de Configuração.

O Monitor verifica periodicamente a página de cabeçalho do banco de dados e, em seguida, armazena as informações de transação do banco de dados no log, da seguinte forma:

  • Hora do log
  • Número da transação mais antiga
  • Número da transação de snapshot mais antiga
  • Número da transação ativa mais antiga
  • Número da próxima transação
  • Contagem de transações ativas (depende da versão do servidor)

Essas informações são armazenadas no arquivo de log e podem ser visualizadas e analisadas usando o Visualizador. Usando as informações visuais do estado das transações, você pode entender por quanto tempo seus aplicativos mantêm transações abertas, quantas transações simultâneas estão em execução, por quanto tempo transações de snapshot estão em execução, quando é o período mais intenso em que os aplicativos iniciam transações, etc.

Nota: O Monitor registra as informações do estado das transações no arquivo de log local. Ele não envia essas ou quaisquer outras informações pela rede.

O Assistente de Configuração (ibtmconfig.exe) é usado para definir os parâmetros de configuração do Monitor e do Visualizador. Ele salva os parâmetros de configuração no arquivo ibtm.ini.

! No Windows Vista ou Windows 7, você precisa executar o Assistente de Configuração com privilégios administrativos (clique com o botão direito do mouse), caso contrário, ele não conseguirá gerenciar o serviço IBTM (Erro 5, acesso negado).

Dica! O IBTM não usa o Registro para armazenar parâmetros de configuração, então você pode preparar uma configuração em um computador e depois mover o ibtm.ini para outro computador onde o Monitor está instalado (O serviço do Monitor precisa ser reiniciado para ler uma nova configuração).

O Monitor e o Assistente de Configuração são colocados pelo instalador do IBTM no mesmo diretório, para que o Monitor e o Assistente de Configuração compartilhem o mesmo arquivo de configuração (ibtm.ini).

Descrição: E:\IBSurgeon\IBTM\ibtmconfig.gif

O Assistente de Configuração ajuda você a

  • Gerenciar o serviço do Monitor - instalar, desinstalar, iniciar, parar, pausar e reiniciar.
  • Especificar os servidores InterBase ou Firebird que possuem bancos de dados que precisam ser monitorados
  • Especificar bancos de dados e opções de monitoramento/agendamento para um banco de dados específico

Descrição: E:\IBSurgeon\IBTM\ibtmconfig1.gif

Quando o Assistente de Configuração inicia, ele determina o estado do serviço do Monitor no Sistema.

Instalando o Monitor - se o serviço do Monitor não estiver instalado, você verá uma mensagem “não instalado” no rótulo de estado do IBTM no canto superior esquerdo. Para instalar o Monitor, pressione o botão Instalar no lado direito da janela. Observe que o serviço do Monitor usará o valor da caixa de seleção Tipo de inicialização (automática ou manual). Se a instalação do serviço do Monitor for bem-sucedida, você verá o estado do IBTM mudar para “parado” e o botão “Executar serviço” será habilitado.

Você precisa reiniciar o serviço do Monitor sempre que alterar qualquer parâmetro de configuração do banco de dados.

O IBTM usa o protocolo de conexão TCP/IP para acessar o(s) banco(s) de dados para monitoramento. Portanto, se você instalou o Monitor no mesmo computador em que o servidor está, você precisa adicionar o servidor como localhost ou o nome do host do servidor. Uma vez feito isso, você poderá adicionar os bancos de dados que serão monitorados neste servidor.

Com esta versão do IBTM, você pode monitorar apenas um único banco de dados por vez. Licenças adicionais são necessárias para monitorar um ou mais bancos de dados simultaneamente. Entre em contato conosco para obter detalhes ( www.ibphoenix.com).

No entanto, você pode configurar vários servidores e bancos de dados e alternar entre eles para selecionar o banco de dados a ser monitorado (o banco de dados ativo será destacado em negrito). Com licenças adicionais, você poderá monitorar vários bancos de dados simultaneamente.

Use os botões Adicionar Servidor e Adicionar Banco de Dados no lado esquerdo da lista de Bancos de Dados.

Cada registro de banco de dados pode ser configurado com os seguintes parâmetros:

Método de obtenção de estatísticas. Isso depende da versão do servidor e suporta diferentes capacidades. Cada método é descrito com seus prós e contras:

Services API Firebird API Tabelas TMP$
InterBase 4.x/5.x Não Não Não
InterBase 6.0 Classic Não Não Não
Firebird Classic -
1.0, 1.5.0, 1.5.1, 1.5.2
Não Sim Não
InterBase 6.x SuperServer Sim Não Não
InterBase 7.x/2007 Sim Não Sim
Firebird Classic e SuperServer: 1.5.3, 1.5.4 /2.0 Sim Sim Não

Diferenças entre Services API, Firebird API e tabelas TMP$:

Método Prós Defeitos
Services API
API pública introduzida no InterBase 6.0 SuperServer
- Método universal, funciona com todas as versões do InterBase e Firebird
- Não afeta a próxima transação
- Não tem a capacidade de encontrar a contagem real de transações ativas
- Pode mostrar informações desatualizadas se o servidor raramente salva a página de cabeçalho do banco de dados no disco (InterBase V7.1/V7.5)
Firebird API
O Firebird desde a V1.0 tem parâmetros estendidos para a chamada isc_database_info, que permite o retorno de informações do estado das transações.
Permite obter informações da contagem de transações ativas (não mais que 4676 transações ativas) - Não suportado por nenhuma versão do InterBase
- Internamente incrementa a Próxima transação. O Monitor incrementará a Próxima transação em +1 cada vez que se conectar ao banco de dados. Se não houver atividade de transação no banco de dados neste momento, os números da Transação Ativa Mais Antiga, Snapshot Mais Antigo e Transação Mais Antiga permanecerão inalterados.


Se não houver nenhuma atividade no banco de dados, o próprio Monitor incrementará a Próxima transação para +1440 em 24 horas, se estiver configurado para verificar o banco de dados a cada (1) minuto.


(A Firebird API em si não tem esse efeito. O comportamento descrito é específico do método isc_database_info)
Tabelas TMP$
Foi introduzido no InterBase 7.0 para permitir o monitoramento do estado do servidor
- Permite a recuperação do estado real das transações do InterBase V7.x/V2007, incluindo a contagem de transações ativas.
- Para obter as informações do estado das transações, o Monitor inicia uma transação com parâmetros read_only read_committed rec_version. Tal transação não é tratada como ativa para fins de contabilidade de transações e não afeta o desempenho do servidor ou do banco de dados.
- Suportado apenas pelo InterBase V7.0/V7.1/V7.5/V2007
- Assim como a Firebird API, incrementa o número da Próxima transação, porque a leitura de dados das tabelas TMP$ precisa ser feita dentro de uma transação.
- O tempo de acesso é um pouco maior do que usar a Services API (< 0,5 segundos).

Se você escolheu um método de estatísticas incompatível com o seu servidor, nada será escrito no log de transações do Monitor. Verifique a aba Log de Erros no Assistente de Configuração para ver erros que podem ocorrer durante o monitoramento do banco de dados.

Intervalo de Verificação. Isso determina com que frequência o Monitor coleta as informações de transação de um banco de dados. 1 minuto é o intervalo mínimo. Você pode definir 1, 3, 5, 10, 20, 30 minutos, ou até mesmo um intervalo de 1 hora, mas o intervalo mais informativo é de 1 ou 3 minutos.

Usando o intervalo de 1 minuto, o Monitor verificará o estado das transações do banco de dados 1440 vezes a cada 24 horas. O tamanho do arquivo de log será de ~150 Kilobytes.

Hora de Início e Hora de Término. Se não for definido, o Monitor coletará estatísticas do banco de dados especificado durante todo o tempo em que estiver funcionando. Se o limite de tempo for definido, o Monitor operará apenas por um período de tempo especificado.

Nome de usuário e Senha. O nome de usuário e a senha da conta que será usada para monitorar o estado das transações do banco de dados. Você pode usar o login SYSDBA ou qualquer outro login de usuário que desejar. Se um login não-SYSDBA for usado, para os métodos Services API e Firebird API não é necessário conceder privilégios adicionais para essa conta de usuário. Você pode criar um usuário como ‘TM’, e o Monitor funcionará com sucesso.

Para Tabelas Temporárias do Sistema (IB V7.1, V7.5, V2007), o login do usuário deve ter direitos de acesso de leitura nas tabelas TMP$TRANSACTIONS e TMP$DATABASES. Se você usar Autenticação de Usuário Embutida no seu banco de dados InterBase V7.5/V2007, você precisa criar um login e conceder esses direitos de acesso explicitamente para esse banco de dados.

Botão Testar Conexão do Servidor.

data-cke-213- data-cke-saved-src=/images/ibtm/ibtmconfig2.gif src=/images/ibtm/ibtmconfig2.gif

Permite verificar o servidor especificado para o melhor método de monitoramento de transações. Você também pode usar este botão para verificar se o método selecionado funciona para o servidor especificado.

O Visualizador pode visualizar as informações de transação coletadas pelo Monitor. O diretório base para os arquivos .tmd é obtido das configurações do Assistente de Configuração.

data-cke-213- data-cke-saved-src=/images/ibtm/ibtmv001.gif src=/images/ibtm/ibtmv001.gif

No lado esquerdo, você pode ver a lista de arquivos de estatísticas. Por padrão, o Viewer procura na pasta Log, que fica na pasta de instalação base. Você pode alterar essa pasta usando o Configuration Assistant, ou abrir a pasta desejada através da opção de menu do Viewer.

Clique no arquivo de estatísticas - ele será exibido no gráfico imediatamente. Você pode verificar várias estatísticas ao mesmo tempo pressionando as teclas Ctrl ou Shift e clicando nos arquivos de estatísticas:

data-cke-213- data-cke-saved-src=

No canto inferior esquerdo, você pode ativar ou desativar diferentes linhas do gráfico (Next, Oldest…). Por exemplo, se você deseja visualizar a dinâmica de transações, ative a opção Next dynamic - ela mostrará quantas novas transações foram iniciadas entre as leituras do IBTM no banco de dados:

data-cke-213- data-cke-saved-src=

Nos lados direito, esquerdo, superior e inferior do gráfico, há linhas especiais que você pode arrastar (usando o mouse) para verificar quando um evento ocorreu e qual valor ele possui. Observe a linha vertical azul no meio do gráfico e a linha horizontal marrom. Quando você move essas linhas, os rótulos correspondentes são alterados - as linhas verticais permitem apontar para um horário específico, e as linhas horizontais permitem apontar para números de transação específicos:

data-cke-213- data-cke-saved-src=

Você também pode ampliar ou reduzir o intervalo horizontalmente, verticalmente ou em ambas as direções. Para retornar o gráfico ao seu estado inicial, pressione o botão Reset Zoom (ou aplique zoom com o mouse na direção oposta).

data-cke-213- data-cke-saved-src=

Importante! Se os dados de estatísticas do IBTM foram coletados usando métodos de acesso do Firebird ou InterBase 7.x, você pode visualizar a contagem real de transações ativas.

data-cke-213- data-cke-saved-src=/images/ibtm/ibtmv008.gif src=/images/ibtm/ibtmv008.gif

Este gráfico mostra que em 10 de novembro de 2005 havia entre 65 e 105 transações ativas, abertas por aplicativos. E pode-se observar que durante o horário de almoço (das 13:00 às 14:00) ainda havia cerca de 80 transações ativas. Isso significa que:

  • os usuários não fecham os aplicativos quando vão almoçar
  • os aplicativos possuem transações abertas e ativas

Usando essas informações, você pode tomar decisões sobre o que pode estar errado na forma como os aplicativos funcionam. Isso dependerá de quantas transações são gerenciadas diretamente pelos aplicativos.

Existem três botões que alteram a visualização do gráfico:

Relative (oldest). Calculado subtraindo a transação Oldest ou o snapshot Oldest (o que for menor) dos números das transações Next e Oldest Active. Permite visualizar a lacuna de transações semi-ativas observando a legenda no lado esquerdo do gráfico. Aqui está um exemplo do gráfico anterior com o botão Relative ativado:

data-cke-213- data-cke-saved-src=/images/ibtm/ibtmv006.gif src=/images/ibtm/ibtmv006.gif

AutoMin. Por padrão, quando você abre qualquer arquivo de estatísticas do IBTM, o número de transação mais baixo é automaticamente tratado como “0”. Normalmente, essa seria a transação Oldest (interessante) ou o snapshot Oldest.

data-cke-213- data-cke-saved-src=/images/ibtm/ibtmv001-1.gif src=/images/ibtm/ibtmv001-1.gif

Abs. Permite visualizar o fluxo do número de transações e a diferença para números de transação grandes. Nas imagens anteriores, o número de transação mais baixo era cerca de 7 milhões, dificultando a compreensão da diferença, por exemplo, entre as transações Oldest e Next. Aqui podemos ver que, para essas estatísticas, a diferença de dados não era superior a 18.000 transações.

data-cke-213- data-cke-saved-src=/images/ibtm/ibtmv007.gif src=/images/ibtm/ibtmv007.gif

Se você deseja uma explicação profissional do comportamento das transações do seu banco de dados, talvez queira contratar nosso suporte técnico. Leia mais sobre nossos serviços aqui.

Também fique à vontade para entrar em contato conosco com qualquer dúvida pelo e-mail [email protected].