Preparação para o exame 919 de System Administration Certification for Informix 11.70, Parte 3: Monitoramento de atividade do sistema

Neste tutorial, você aprenderá sobre as ferramentas de banco de dados do IBM Informix® , os utilitários para monitorar o banco de dados e como diagnosticar problemas. Saiba como usar a system-monitoring interface (SMI) e a API de administração de SQL. Este tutorial é uma preparação para a Parte 3 do exame 919 de System Administration Certification for Informix v11.70.

Mu Yang, Advisory Software Engineer, I.B.M.

Photo of YangmuYangmu trabalhou na área de Informix por mais de 10 anos. Ele possui experiência em design, implementação, manutenção e ajuste de desempenho de banco de dados com certificações PMP e ITIL. Yangmu ajudou muitos clientes com projetos de atualização, manutenção e otimização do desempenho.



Hedwig Fuchs, Advanced Support Engineer, I.B.M.

Photo of Hedwig FuchsHedwig Fuchs trabalhou no Suporte técnico Informix durante os últimos 14 anos. Antes de fazer parte da Informix, ela trabalhou como consultora e programadora. Na IBM, ela se especializou em mecanismos de banco de dados. Suas responsabilidades incluem a análise de problemas, incluindo reproduções e análise de código.



18/Jan/2012

Antes de iniciar

Sobre esta série

Está pensando em obter uma certificação em System Administration for Informix versão 11.70 (Exame 919)? Se estiver, você está no lugar certo. Esta série de tutoriais de preparação para a certificação de Informix abrange todos os tópicos que você deverá entender antes de ler a primeira pergunta do exame. Mesmo se não estiver procurando certificação imediata, estes tutoriais são uma ótima fonte para começar a aprender sobre o que há de novo no Informix 11.70.

Sobre este tutorial

Neste tutorial, você aprenderá a usar o conjunto de ferramentas de monitoramento do Informix para monitorar e diagnosticar problemas. O material fornecido aborda principalmente os objetivos presentes na Seção 2 do exame, denominada "Monitoramento de atividade do sistema". Os tópicos tratados neste tutorial incluem:

  • Monitoramento e isolamento de problemas usando bancos de dados do sistema
  • Log de mensagens
  • Exibição de informações sobre o servidor de banco de dados com o Informix Utilities
  • Exibição de informações sobre o servidor de banco de dados usando o Planejador e a API de administração de SQL
  • Simultaneidade e bloqueio
  • Ferramentas do sistema operacional

Objetivos

Após a conclusão deste tutorial, você deverá saber:

  • Como usar o banco de dados sysmaster
  • O que encontrar no log de mensagens
  • Como usar os utilitários onstat e oncheck
  • Como usar o utilitário dbschema
  • Como usar o planejador
  • Como usar a API de administração de SQL
  • Os diferentes tipos de bloqueios
  • Como usar as ferramentas do sistema operacional para monitoramento

Pré-requisitos

Para entender o material apresentado neste tutorial, você deve estar familiarizado com:

  • O ambiente do Informix, incluindo o arquivo de configuração, parâmetros, instalação e administração
  • Conceitos e terminologia do Informix, incluindo dbspaces, chunks, log físico, logs lógicos e ponto de verificação

Requisitos do sistema

Não é necessário ter uma cópia do Informix para concluir este tutorial. No entanto, você aproveitará melhor o tutorial se fizer o download da versão de avaliação gratuita do Informix Innovator-C Edition para acompanhar este tutorial.


Monitorando e isolando problemas usando os bancos de dados do sistema

O servidor de banco de dados cria e mantém o banco de dados sysmaster. Ele é semelhante ao catálogo do sistema para bancos de dados, descrito no IBM Informix Guide to SQL: Reference. Assim como um catálogo do sistema para cada banco de dados gerenciado pelo servidor controla os objetos e privilégios, um banco de dados sysmaster controla as informações sobre o servidor de banco de dados para cada servidor.

O banco de dados sysmaster contém as tabelas da system-monitoring interface (SMI). As tabelas SMI fornecem informações sobre o estado do servidor de banco de dados. É possível consultar essas tabelas para identificar gargalos de processamento, determinar o uso de recursos, controlar a atividade da sessão ou do servidor de banco de dados e assim por diante. Este capítulo descreve essas tabelas SMI, que são um pouco diferente das tabelas comuns.

Há muitas tabelas no banco de dados sysmaster. Consulte o manual para obter detalhes. Tablela 1 mostra uma lista das novas tabelas apresentadas na versão 11 do Informix.

Tablela 1. Novas tabelas do sysmaster
Nome da tabelaDescrição
sysbaract_logArquivo de log de atividade de OnBar
syscheckpointInformações sobre o ponto de verificação
sysclusterInformações sobre o cluster de alta disponibilidade
syscmsmslaInformações sobre o Gerenciador de conexão
syscmsmtabInformações sobre o Gerenciador de conexão
syscompdicts_fullInformações sobre o dicionário de compactação
sysdualUma tabela com apenas uma linha
sysenvAmbiente de inicialização do servidor on-line
sysenvsesVariável de ambiente do nível da sessão
sysha_lagtimeEstatísticas de atraso do servidor secundário
sysha_typeInformações sobre servidores conectados
sysha_workload Estatísticas de carga de trabalho do servidor secundário
sysipl Informações de log da página de índice
sysmgminfoInformações do Memory Grant Manager/Parallel Data Query
sysnetclienttypeAtividade de rede do tipo cliente
sysnetglobalInformações globais de rede
sysnetworkioEntrada/saída de rede
sysonlinelogInformações de log on-line
sysprofileInformações sobre o perfil do sistema
sysrsslogInformações sobre o servidor secundário de RS
sysrstcbAperfeiçoamento para visualizar informações de entrada/saída e de bloqueio
sysscblstAperfeiçoamento para visualizar a memória usada pela sessão
syssqlcacheprofInformações do perfil sobre cada cache SQL
syssqltraceInformações sobre a instrução SQL
syssqltrace_infoInformações sobre o sistema de rastreamento de perfil SQL
syssqltrace_iterIteradores da instrução SQL
syssrcrssEstatísticas do servidor secundário de RS
syssrcsdsEstatísticas do servidor secundário de SD
systcblstModificações de tabela existente para adicionar estatísticas de espera
systrgrssEstatísticas do servidor secundário de RS
systrgsdsEstatísticas do servidor secundário de SD

Entendendo as tabelas SMI

Observações importantes de uso

O servidor depende de informações do banco de dados sysmaster. Não altere as tabelas no sysmaster ou os dados dentro delas. Essas alterações podem gerar resultados imprevisíveis e prejudiciais. O servidor cria o banco de dados sysmaster ao inicializar o espaço em disco. O servidor cria o banco de dados por meio da criação de log sem buffer. Não é possível descartar o banco de dados ou qualquer uma das tabelas que ele contém, também é possível desativar a criação de log.

Como usuário informix no UNIX ou membro do grupo Informix-Admin no Windows, você pode criar rotinas SPL no banco de dados sysmaster. (Também é possível criar acionadores nas tabelas do sysmaster, porém o servidor de banco de dados nunca executa esses acionadores.)

Observe que junções de várias tabelas no sysmaster podem retornar resultados inconsistentes, pois o servidor de banco de dados não bloqueia as tabelas durante a junção. É possível unir tabelas do sysmaster com tabelas de outros bancos de dados. No entanto, para unir tabelas do sysmaster com tabelas de um banco de dados sem criação de log, selecione o banco de dados sem criação de log como o banco de dados atual.

Para recriar o banco de dados sysmaster, entre em contato com o suporte técnico para obter orientação para o utilitário $INFORMIXDIR/etc/buildsmi.

O SMI é composto por tabelas e pseudotabelas mantidas automaticamente pelo servidor de banco de dados. Embora as tabelas SMI sejam exibidas para o usuário como tabelas, elas não são gravadas em disco como tabelas normais. Em vez disso, o servidor de banco de dados cria tabelas na memória, sob demanda, com base em informações na memória compartilhada nesse instante. Quando você consulta uma tabela SMI, o servidor de banco de dados lê as informações das estruturas da memória compartilhada. Como o servidor de banco de dados atualiza continuamente os dados na memória compartilhada, as informações fornecidas pelo SMI permitem que você examine o estado atual de seu servidor de banco de dados.

As tabelas SMI fornecem informações sobre os seguintes tópicos:

  • Auditoria
  • Pontos de verificação
  • Entrada/saída de chunk
  • Chunks
  • Status de log do banco de dados
  • Dbspaces
  • Uso do disco
  • Variáveis de ambiente
  • Extensões
  • Bloqueios
  • Redes
  • Estatísticas de cache da instrução SQL
  • Instruções SQL
  • Criação de perfil do sistema
  • Tabelas
  • Criação de perfil do usuário
  • Uso de CPU do processador virtual

Acessando tabelas SMI

É possível usar instruções SELECT em tabelas SMI sempre que for possível usá-las em tabelas comuns (por exemplo, dbaccess, em uma rotina SPL, com Informix ESQL/C etc). Isso não é possível apenas ao fazer referência ao ID da linha enquanto consulta tabelas SMI. Instruções SELECT que usam ID de linha não retornam um erro, mas os resultados são imprevisíveis. Toda sintaxe SQL padrão, incluindo junções entre tabelas, classificação de saída e assim por diante, funciona com tabelas SMI. Por exemplo, se deseja unir uma tabela SMI com uma tabela que não é SMI, nomeie a tabela SMI com a seguinte sintaxe padrão: sysmaster[@dbservername]:[owner.]tablename

Qualquer usuário pode usar instruções SELECT de SQL para consultar uma tabela SMI, mas usuários padrão não podem executar instruções diferentes de SELECT. Os usuários que tentam executar outras instruções recebem erros de permissão. O administrador pode executar outras instruções SQL, mas os resultados dessas instruções são imprevisíveis.

Dica: para obter resultados mais previsíveis, consulte as visualizações associadas a cada tabela em vez de consultá-las diretamente.

O Servidor dinâmico inclui as tabelas sysadtinfo e sysaudit. Somente o usuário informix no UNIX ou membros do grupo Informix-Admin no Windows podem consultar tabelas sysadtinfo e sysaudit.

Não é possível usar os utilitários dbschema ou dbexport ou qualquer uma das tabelas no banco de dados sysmaster. Se você o fizer, o servidor de banco de dados irá exibir a seguinte mensagem de erro: Database has pseudo tables - can't build schema

Acionadores e alarmes de evento

É possível criar um acionador em uma tabela SMI, mas ele nunca é executado. Acionadores são ativados somente quando uma instrução INSERT, UPDATE ou DELETE ocorre em uma tabela. As atualizações nos dados SMI ocorrem no servidor de banco de dados, sem o uso de SQL, dessa forma um acionador em uma tabela SMI nunca é ativado.

Para criar um alarme de evento, é possível consultar uma condição específica em intervalos predefinidos e executar uma rotina SPL, caso as condições necessárias para o alarme sejam atendidas.

Tabelas SPL e SMI

É possível acessar tabelas SMI a partir de uma rotina SPL. Ao fazer referência a tabelas SMI, use a mesma sintaxe usada para fazer referência a uma tabela padrão.

Bloqueio e tabelas SMI

As informações nas tabelas SMI mudam com base na atividade do servidor de banco de dados. No entanto, o servidor de banco de dados não atualiza as informações usando instruções SQL. Quando você usa tabelas SMI com um nível de isolamento que bloqueia objetos, outros usuários não conseguem acessar o objeto, mas isso não impede a alteração dos dados. Nesse sentido, todas as tabelas SMI possuem um nível de isolamento permanente de leitura suja.

Exemplo de como usar as tabelas SMI

Talvez você deseje uma lista de usuários com banco de dados aberto e uma lista de quais estações de trabalho eles estão usando para se conectar ao banco de dados. onstat -u indica quais usuários estão conectados ao servidor, mas não quais bancos de dados e estações de trabalho eles estão usando. onstat -g ses indica os usuários e as estações de trabalho, mas não os bancos de dados. onstat -g sql indica os IDs de sessão e os bancos de dados, mas não os nomes de usuário e as estações de trabalho.

Lista 1 mostra um exemplo de consulta.

Lista 1. Consultar as tabelas SMI no sysmaster
SELECT sysdatabases.name database, syssessions.username,
       syssessions.hostname, syslocks.owner sid
FROM syslocks, sysdatabases, outer syssessions
WHERE syslocks.tabname = "sysdatabases"
AND syslocks.rowidlk =sysdatabases.rowid
AND  syslocks.owner  =  syssessions.sid;

Lista 2 mostra a saída resultante.

Lista 2. Resultado da consulta das tabelas SMI no sysmaster
database stores_demo
username informix
hostname istation1
sid 27

database  sysmaster
username  informix
hostname  istation1
sid  29

Exemplo de como usar as tabelas syslocks

Observe a tabela syslocks no banco de dados sysmaster e veja como ela pode ajudar a solucionar problemas de bloqueio. A tabela syslocks controla os bloqueios e é análoga à saída de onstat -k. Lista 3 mostra uma amostra de linha da saída de onstat -k .

Lista 3. Saída de onstat -k
Locks
address          wtlist  owner            lklist  type   tblsnum  rowid    key#/bsiz
700000011aee2a8  0       7000000704d3d30  0         S    100002   204    0
7000000157f72a8  0       7000000704d4568  0     HDR+S    100002   204    0
70000001d2092a8  0       7000000704d34f8  0         S    100002   204    0
 3 active, 2000000 total, 262144 hash buckets, 0 lock table overflows

Há muitos dados aqui, mas não é fácil obter informações significativas.

Exemplo de como consultar as tabelas syslocks no sysmaster

Lista 4 mostra os mesmos bloqueios executando o comando no sysmaster. Observe que a cláusula where é omitida.

Lista 4. Consultando a tabela syslocks no sysmaster
Select * from syslocks

dbsname stores_demo
tabname customer
rowidlk 256
keynum 0
type X
owner 28
waiter

Em vez de um partnum codificado (tblsnum), há um nome de banco de dados real e um nome de tabela. Na prática, isso é mais significativo. Em vez de receber o endereço do proprietário fornecido na saída onstat -k , a instrução SELECT recebe um ID de sessão. Dessa forma, você pode executar onstat-g ses, onstat -g sql e onstat -g stm para descobrir a causa do bloqueio.

Observe que, normalmente, os resultados da consulta do banco de dados sysmaster são fornecidos no formato decimal, enquanto a saída de onstat pode ser fornecida no formato hexadecimal. Isso pode causar alguma confusão se você estiver tentando rastrear um problema usando ambas as modalidades.

Exemplo de pseudotabelas comuns

Há muitas pseudotabelas nomeadas intuitivamente para corresponder ao recurso que está sendo rastreado. Consulte a Tablela 2 para obter algumas pseudotabelas e seus comandos onstat correspondentes.

Tablela 2. Pseudotabelas comuns
Nome da tabelaComando onstat correspondente
sysconfigonstat -c
syschunksonstat -d (parte de chunks)
sysdbspacesonstat -d (parte de dbspaces)
syslogsonstat -l (parte de logs lógicos)
sysprofileonstat -p ?onstat -F
sysptntabonstat -t
sysusersonstat -u
syslocksonstat -k

O script buildsmi

Ao ativar o servidor de banco de dados pela primeira vez, ele executa um script chamado buildsmi, que está no diretório etc. Esse script cria o banco de dados e as tabelas que oferecem suporte ao SMI. O servidor de banco de dados exige aproximadamente 1750 páginas livres de espaço de log lógico para criar o banco de dados sysmaster. Se você receber uma mensagem de erro que o redireciona para a execução do script buildsmi, provavelmente ocorreu um problema enquanto o servidor de banco de dados criava o banco de dados SMI, tabelas e visualizações.

Ao usar o buildsmi, o banco de dados sysmaster existente é descartado e recriado. Esse script precisa ser executado como usuário informix no UNIX ou como membro do grupo Informix-Admin no Windows, depois de assegurar que nenhuma conexão é feita com o banco de dados sysmaster durante a criação do banco de dados. Por exemplo, se uma tarefa do planejador estiver em execução quando o script buildsmi começar, o script falhará quando o planejador tentar acessar qualquer uma das tabelas sysmaster. Erros emitidos durante a execução do script buildsmi são gravados em UNIX no arquivo /tmp/buildsmi.out ou no Windows no arquivo %INFORMIXDIR%\etc\buildsmi_out.%INFORMIXSERVER%, no qual %INFORMIXSERVER% é o nome do servidor de banco de dados Informix.

Script bldutil.sh

O banco de dados sysutils é o local em que o OnBar armazena informações sobre cada backup ou restauração que realiza. As informações de backup sobre cada log de dbspaces e log lógico também são armazenadas aqui. OnBar usa essas tabelas ao realizar restaurações com a instância on-line.

Ao inicializar o servidor de banco de dados pela primeira vez, ele executa um script chamado bldutil.sh no UNIX ou bldutil.bat no Windows. Esse script cria o banco de dados sysutils. Se falhar, o servidor de banco de dados criará um arquivo de saída no diretório tmp. O arquivo de saída é bldutil.process_id no UNIX e bldutil.out no Windows. As mensagens nesse arquivo de saída refletem erros ocorridos durante a execução do script.

Tabelas de interface de monitoramento do sistema

O banco de dados sysmaster contém muitas tabelas que podem ser usadas para monitorar seu sistema. O servidor de banco de dados oferece suporte às seguintes tabelas SMI:

syscheckpoint
A tabela syscheckpoint fornece informações e estatísticas sobre pontos de verificação. O onstat correspondente é onstat -g ckp
syschunks
A tabela syschunks contém uma descrição de cada um dos chunks gerenciados pelo servidor de banco de dados. O onstat correspondente é onstat -d
syslocks
A tabela syslocks fornece informações sobre todos os bloqueios ativos atualmente no servidor de banco de dados. O onstat correspondente é onstat -k
syssqltrace
A tabela syssqltrace fornece informações detalhadas sobre a instrução SQL. O onstat correspondente é onstat -g his
syslogs
A tabela syslogs fornece informações sobre o uso do espaço em arquivos de log lógico. O onstat correspondente é onstat -l
syssessions
A tabela syssessions fornece informações gerais sobre cada usuário conectado ao servidor de banco de dados. O onstat correspondente é onstat -g ses

Usando o log de mensagens

O log de mensagens Informix é um arquivo do sistema operacional. O servidor de banco de dados grava informações sobre o status e erros no arquivo de log de mensagens.

Local

Para especificar o nome do caminho do log de mensagens, defina o parâmetro de configuração MSGPATH. As mudanças no MSGPATH têm efeito após o desligamento e reinicialização do servidor de banco de dados.

Monitorando o log de mensagens

Você deve monitorar o log de mensagens frequentemente a fim de garantir que o servidor de banco de dados esteja executando normalmente e que os eventos estejam sendo registrados conforme o esperado. Use o comando onstat -m para obter o nome do log de mensagens e as últimas 20 linhas do arquivo. Use um editor de texto para ler todo o log de mensagens.

Monitore o tamanho do log de mensagens, pois o servidor de banco de dados anexa novas entradas a esse arquivo. Edite o log conforme o necessário ou faça um backup em fita e o exclua.

Se o servidor de banco de dados enfrentar uma falha, o log de mensagens atuará como uma trilha de auditoria para revisar os eventos que, mais tarde, se tornaram um problema. Frequentemente, o servidor de banco de dados fornece no log de mensagens a natureza exata do problema e a ação corretiva sugerida.

Categorias de mensagens

Há quatro categorias gerais de mensagens não numeradas. Algumas mensagens são classificadas em mais de uma categoria.

  • Informações de rotina
  • Mensagens de falha de afirmação
  • Necessidade de ação administrativa
  • Erro fatal detectado

Exemplo de informações de rotina

Lista 5 mostra um exemplo das mensagens classificadas na categoria de informações de rotina.

Lista 5. Exemplo de mensagens de informações de rotina
15:52:27  Maximum server connections 0
15:52:27  Checkpoint Statistics - Avg. Txn Block Time 0.000, # Txns blocked 0,
         Plog used 20, Llog used 12
15:52:27  Level 0 Archive started on rootdbs
15:52:28  Archive on rootdbs Completed.
15:53:07  Checkpoint Completed:  duration was 0 seconds.
15:53:07  Fri Apr  8 - loguniq 6, logpos 0xdfa018, timestamp: 0xa24db Interval: 21

Exemplo de falha de afirmação

Lista 6 mostra um exemplo das mensagens classificadas na categoria de falha de afirmação.

Lista 6. Exemplo de mensagens de falha de afirmação
18:39:07  Assert Failed: No Exception Handler
18:39:07   Who: Session(176, informix@testdb, 7263, c000000011012ef0)
		Thread(6457, xchg_3.0, c000000010feab00, 3)
		File: mtex.c Line: 491
18:39:07   Results: Exception Caught. Type: MT_EX_OS, Context: mem
18:39:07   Action: Please notify IBM Informix Technical Support.
18:39:07   See Also: /home/dump/af.1d21d84a, shmem.1d21d84a.0

Exemplo de mensagens de necessidade de ação administrativa

Lista 7 mostra um exemplo das mensagens classificadas na categoria de necessidade de ação administrativa.

Lista 7. Exemplo de mensagens de necessidade de ação administrativa
11:05:49  Maximum  server  connections  4
11:08:05  Logical  Log  Files  are  Full  --  Backup  is  Needed

Exemplo de mensagens de erro fatal

Lista 8 mostra um exemplo das mensagens classificadas na categoria de erro fatal.

Lista 8. Exemplo de mensagens de erro fatal
20:29:19  Assert Failed: Unexpected virtual processor termination, pid = 25504, exit = 0x9

20:29:19  IBM Informix Dynamic Server Version 11.70.FC1
20:29:19   Who: Session(2, informix@, 0, 0)
                Thread(9, soctcppoll, 0, 1)
                File: mt.c Line: 14549
20:29:19  stack trace for pid 25503 written to /home/informix/1170/tmp/af.3f1739e
20:29:19   See Also: /home/informix/1170/tmp/af.3f1739e
20:29:24  mt.c, line 14549, thread 9, proc id 25503,
                  Unexpected virtual processor termination,
                  pid = 25504, exit = 0x9
.
20:29:24  The Master Daemon Died
20:29:24  PANIC: Attempting to bring system down

Alarmes de evento

O servidor de banco de dados fornece um mecanismo para o acionamento automático de ações administrativas com base em um evento que ocorre no ambiente do servidor de banco de dados. Os eventos podem ser informativos, como a conclusão de um backup, ou podem indicar uma condição de erro que exige sua atenção, como a impossibilidade de alocar memória. Para usar o recurso de alarme de evento, defina o parâmetro de configuração ALARMPROGRAM com o nome de caminho completo de um arquivo executável que realiza as ações administrativas necessárias.

O servidor de banco de dados pode executar um programa que opera sempre que ocorre algum alarme de evento notável ou um alarme de evento. Alarmes de evento notáveis incluem a falha de um banco de dados; tabela, índice, chunk ou dbspace colocado no modo off-line; falha interna do subsistema; falha de inicialização e detecção de uma transação longa. É possível receber a notificação de um alarme de evento por email ou pagermail.

Os parâmetros de configuração a seguir são específicos aos alarmes de evento.

ALRM_ALL_EVENTS
Especifica se ALARMPROGRAM é executado para todos os eventos registrados no MSGPATH ou somente para eventos dignos de nota especificados
ALARMPROGRAM
Especifica o local de um arquivo executado quando um alarme de evento ocorre

Personalizando os scripts ALARMPROGRAM

Execute estas etapas para personalizar o script alarmprogram.[sh|bat]. É possível usar alarmprogram.[sh|bat] em vez de log_full.[sh|bat] para automatizar os backups de log.

  1. Mude o valor de ADMINMAIL para o endereço de email do administrador do servidor de banco de dados.
  2. Mude o valor de PAGERMAIL para o endereço de email do serviço de pager.
  3. Defina o valor do parâmetro MAILUTILITY com /usr/bin/mail para UNIX e $INFORMIXDIR/bin/ntmail.exe para Windows.
  4. Para fazer automaticamente o backup dos logs lógicos à medida que são preenchidos, mude BACKUP para yes. Para interromper os backups automáticos de log, mude BACKUP para qualquer outro valor que não seja yes.
  5. No arquivo ONCONFIG, defina ALARMPROGRAM como o nome de caminho completo de alarmprogram.[sh|bat].
  6. Reinicie o servidor de banco de dados.

Alarmes com gravidade 1 ou 2 não gravam mensagens no log de mensagens e ou enviam email. Alarmes com gravidade 3 ou maior enviam email ao administrador de banco de dados. Alarmes com gravidade 4 e 5 também notificam um pager via email.

Precauções para operações em primeiro plano em scripts de alarme

Para garantir a disponibilidade contínua do servidor, não execute determinadas operações em primeiro plano em um script de alarme. Quando o servidor invoca um script de alarme, às vezes ele aguarda a conclusão do script antes de prosseguir. Por exemplo:

  • Quando um alarme é invocado devido a um erro fatal, o servidor espera o script terminar de gravar informações no log de erro. Em determinadas situações, os eventos de alarme 5 e 6 são executados em primeiro plano.
  • Alguns alarmes de evento de replicação corporativa são executados em primeiro plano, como os alarmes de evento 31, 34, 37 e 39.

Talvez o servidor tenha que aguardar a conclusão do script do programa de alarme, por isso, não execute as seguintes operações em primeiro plano em um script de alarme:

  • Um comando onmode que força a desativação de conexões do usuário do servidor, como onmode -u ou onmode -yuk. Esses tipos de comandos onmode podem causar um conflito entre o servidor e o script de alarme, pois o servidor pode esperar até que o script de alarme seja concluído enquanto o script de alarme que executou o comando onmode aguarda o desligamento das sessões de usuário e uma dessas sessões está executando o script de alarme.
  • Operações que possam demorar muito para serem concluídas ou com um tempo de execução altamente variável. Operações que demoram muito para serem concluídas podem fazer com que o servidor pareça não estar respondendo durante a execução da operação.

Se você precisar executar as operações acima em um script de alarme, execute-as em segundo plano usando um dos seguintes utilitários do sistema operacional:

  • No UNIX, o utilitário nohup com nohup onmode -yuk & instrui o nohup a continuar a execução do comando mesmo se seu pai for encerrado. O e comercial, &, executa o comando em segundo plano de modo que ele não bloqueie a execução do próprio script de programa do alarme.
  • No Windows, use o utilitário start com o sinalizador /B, como start /B onmode -yuk.

Interpretando as mensagens do alarme de evento

Alguns dos eventos informados pelo servidor de banco de dados ao log de mensagens também fazem com que ele invoque o programa de alarme. As mensagens de classe indicam os eventos informados pelo servidor de banco de dados. O servidor de banco de dados informa um código de saída diferente de zero no log de mensagens. No programa do alarme, defina a variável EXIT_STATUS como 0 para a conclusão bem-sucedida e defina a variável como outro número para o caso de uma falha. Por exemplo, se um encadeamento tentar adquirir um bloqueio, mas o número máximo de bloqueios já tiver sido atingido, o servidor de banco de dados gravará uma mensagem no log de mensagens, como mostra a Lista 9.

Lista 9. Exemplo de mensagem de erro no log de mensagens
10:37:22 Checkpoint Completed: duration was 0 seconds.
10:51:08 Lock table overflow - user id 30032, rstcb 10132264
10:51:10 Lock table overflow - user id 30032, rstcb 10132264
10:51:12 Checkpoint Completed: duration was 1 seconds.

Eventos na tabela ph_alert

Todos os alarmes de evento gerados são inseridos na tabela ph_alert no banco de dados do sistema. É possível consultar a tabela ph_alert no servidor local ou remoto a fim de visualizar os alarmes de evento recentes para esse servidor. É possível gravar scripts SQL com base na tabela ph_alert a fim de lidar com alarmes de evento em vez de usar os scripts controlados pelo parâmetro de configuração ALARMPROGRAM. Por padrão, os alertas permanecem na tabela ph_alert por 15 dias antes de serem excluídos.

Lista 10 mostra um alarme de evento na tabela ph_alert:

Lista 10. Consultando a tabela ph_alerts no sysadmin
SELECT * FROM ph_alerts WHERE alert_object_type=ALARM;

Lista 11 mostra a saída resultante.

Lista 11. Saída da consulta da tabela ph_alerts no sysadmin
id 34
alert_task_id 18
alert_task_seq 10
alert_type INFO
alert_color YELLOW
alert_time 2010-03-08 12:05:48
alert_state NEW
alert_state_chang+ 2010-03-08 12:05:48
alert_object_type ALARM
alert_object_name 23
alert_message Logical Log 12 Complete, timestamp: 0x8e6a1.
alert_action_dbs sysadmin
alert_action
alert_object_info 23001

Usando os utilitários Informix para visualizar informações sobre o servidor de banco de dados

Esta seção descreve os utilitários para coleta de informações sobre a atividade do servidor de banco de dados.

O utilitário onstat

O utilitário onstat fornece uma forma de monitorar a memória compartilhada do servidor de banco de dados a partir da linha de comando. O utilitário onstat lê dados da memória compartilhada e reporta estatísticas precisas para o instante em que o comando é executado. Onstat fornece informações sobre a sessão, usuário, bloqueios, perfis de tabela, buffers e muito mais.

As tabelas system-monitoring interface (SMI) também fornecem informações sobre a memória compartilhada do servidor de banco de dados.

Monitorar o status do servidor de banco de dados

O título da saída de onstat indica o status do servidor de banco de dados. Toda saída de onstat inclui um cabeçalho. A opção onstat - exibe somente o cabeçalho da saída e é útil para a verificação do modo do servidor de banco de dados. O formato do cabeçalho está exibido na Lista 12.

Lista 12. Formato do cabeçalho
version--mode (Type)--(Checkpnt)--Up uptime--shmem_size Kbytes

Lista 13 mostra um exemplo de cabeçalho.

Lista 13. Exemplo de formato de cabeçalho
IBM Informix Dynamic Server Version 11.70.FC1 -- On-Line -- Up 01:44:23 -- 3040  Kbytes

Tablela 3 mostra as opções mais comuns de onstat.

Tablela 3. Opções mais comuns de onstat
OpçãoPropósito
-- Imprimir o texto de ajuda
-b Imprimir os buffers
-B Imprimir todos os buffers
-c Imprimir o arquivo de configuração
-C Imprimir as solicitações de scanner de árvore B
-d Imprimir espaços e chunks
-D Imprimir espaços e estatísticas detalhadas de chunk
-F Imprimir flushers de página
-g <option > Imprimir a opção de monitoramento
-G Imprimir os IDs globais de transação
-k Imprimir os bloqueios
-l Imprimir a criação de log
-m Imprimir o log de mensagens
-p Imprimir o perfil
-P Imprimir o resumo de partição do buffer
-R Imprimir filas de LRU
-s Imprimir travas
-t Imprimir TBLspaces
-T Imprimir informações de espaço de tabela
-u Imprimir encadeamentos de usuário
-x Imprimir transações
-X Imprimir toda a lista de compartilhadores e espera para os buffers
-z Zerar os contadores de perfis
-a Interpretado como onstat -mcuxskbPFhRtdGflLpO; onstat -g all; onstat -XC

Lendo as estatísticas de um arquivo de origem

O utilitário onstat pode ler a partir de um arquivo de origem em vez da memória compartilhada. Esse arquivo precisa incluir um segmento de memória compartilhada criado com o comando onstat -o.

Salve uma cópia dos segmentos de memória compartilhada no dmpfile usando $> onstat -o dmpfile. Imprima bloqueios a partir do dmpfile usando $> onstat -k dmpfile.

Execução interativa

Para colocar o utilitário onstat no modo interativo, use a opção -i. O modo interativo permite que você insira diversas opções sem sair do programa.

Execução contínua do comando onstat

Use a opção onstat -r combinada com outras opções onstat para fazer com que as outras opções executem repetidamente com base em um intervalo especificado.

Onstat quando o servidor está off-line

Se o servidor estiver off-line, você poderá executar o comando onstat listado na Tablela 4.

Tablela 4. Comandos Onstat que podem ser executados quando o servidor estiver off-line
Comando onstatPropósito
onstat -c Exibe o arquivo ONCONFIG
onstat -m Exibe as 20 linhas mais recentes do log de mensagens do servidor de banco de dados
onstat -g dis Exibe uma lista dos servidores de banco de dados em um computador
onstat -g osi Exibe informações sobre os recursos e parâmetros de seu sistema operacional

O utilitário oncheck

O utilitário oncheck exibe informações sobre a configuração e uso de disco do banco de dados, como o número de páginas usadas para uma tabela, o conteúdo das páginas reservadas e o número de extensões em uma tabela. O utilitário oncheck pode detectar inconsistências nas estruturas do disco e pode reparar algumas dessas inconsistências.

Tablela 5 mostra as opções de oncheck.

Tablela 5. Lista de opções de oncheck
OpçãoPropósito
- cr Verifica as páginas reservadas
- cR Verifica as páginas reservadas, incluindo os logs lógico e físico
- ce Verifica as extensões
- cc Verifica os catálogos de banco de dados
- ci Verifica os índices de tabela
- cI Verifica os índices de tabela e os IDs de linha
- cd Verifica as linhas de dados TBLspace, incluindo bitmaps
- cD Verifica as linhas de dados de TBLspace, incluindo bitmaps, páginas de lembrete e BLOBs
- cs Verifica as partições de metadados de SBLOBspace
- cS Verifica as partições de metadados de SBLOBspace e extensões de LO
- pr Imprime as páginas reservadas
- pR Imprime as páginas reservadas, incluindo os logs lógico e físico
- pe Imprime o relatório de extensões
- pc Imprime o relatório de catálogo
- pk Imprime as chaves no índice
- pK Imprime chaves e IDs de linha no índice
- pl Imprime somente as chaves de nó folha
- pL Imprime as chaves e IDs de linha do nó folha
- pd Imprime linhas de dados de TBLspace
- pD Imprime as linhas de dados de TBLspace, incluindo bitmaps, páginas de lembrete e BLOBs
- pt Imprime o relatório ide TBLspace
- pT Imprime o relatório de utilização de disco do TBLspace
- pp Imprime a página de despejo para a tabela especificada
- pP Imprime a página de despejo para o número de chunk e o número de página especificados
- pB Imprime a utilização do BLOBspace
- ps Imprime as partições de metadados SBLOBspace
- pS Imprime as partições de metadados de SBLOBspace e as extensões de LO

Verificação e reparo do oncheck

O utilitário oncheck pode reparar os seguintes tipos de estrutura de disco:

  • Estatísticas da página de partição
  • Páginas de bitmap
  • Blobpages de partição
  • Blobpages de blobspace
  • Índices
  • Páginas de sbspace
  • Partições de metadados para sbspaces

Use a opção -y para instruir o oncheck a realizar reparos automaticamente. Se você não usar a opção -y, o oncheck o questionará quando encontrar uma inconsistência e permitirá a solicitação de um reparo. Se você especificar a opção -n, o oncheck não realizará os reparos.

Oncheck e bloqueio

O utilitário oncheck coloca um bloqueio compartilhado em uma tabela durante as seguintes operações, de modo que nenhum outro usuário possa realizar atualizações, inserções ou exclusões até que a verificação tenha sido concluída:

  • Ao verificar dados
  • Ao verificar ou imprimir índices e quando a tabela usa bloqueio de página
  • Ao verificar ou imprimir índices e quando a tabela usa bloqueio de linha e você especifica a opção -x

Se a tabela não usar o bloqueio de página, o servidor de banco de dados não colocará um bloqueio compartilhado na tabela ao verificar um índice com as opções -ci, -cI, -pk, -pK, -pl ou -pL de oncheck. Quando não houver um bloqueio compartilhado na tabela durante uma verificação de índice, outros usuários poderão atualizar as linhas durante a verificação.

Talvez o utilitário oncheck não seja tão preciso na verificação do índice quando a tabela usar o bloqueio no nível da linha e quando um bloqueio compartilhado for colocado durante as verificações de índice. Para obter uma garantia total de uma verificação completa de índice, é possível executar o oncheck com a opção -x. Com a opção -x, o oncheck coloca um bloqueio compartilhado na tabela e nenhum outro usuário poderá realizar atualizações, inserções ou exclusões até que a verificação tenha sido concluída.

Oncheck quando o servidor está off-line

Tablela 6 mostra os comandos de oncheck que podem ser executados quando o servidor está off-line.

Tablela 6. Lista de comandos oncheck que podem ser executados quando o servidor está off-line
Comando oncheckPropósito
oncheck -pr Exibe as informações de página reservada à medida que verifica as páginas reservadas
oncheck -cr Verifica cada uma das páginas reservadas de dbspace raiz com relação a várias condições
oncheck -pP Exibe o conteúdo de uma página, exige um número de chunk e um número de página
oncheck -pp Exibe o conteúdo de uma página lógica, exige um número TBLspace (número de partição) e um número de página

Por exemplo, o comando $ oncheck -pp 0x200560 3 gera os resultados da Lista 14.

Lista 14. Imprimir página três de TBLspace 0x200560
$ oncheck -pp 0x200560 3

shared memory not initialized for INFORMIXSERVER 'ids1170uc1shm'
addr             stamp    chksum nslots flag type  frptr frcnt next   prev
2:253535         13554146 f72    12     801  DATA  1563  433   0      0

        slot ptr   len   flg
        1    24    127   0
        2    151   128   0
        3    279   128   0
        4    407   128   0
        5    535   128   0
        6    663   126   0
        7    789   126   0
        8    915   127   0
        9    1042  129   0
        10   1171  129   0
        11   1300  132   0
        12   1432  131   0
slot   1:
    0:  9 73 79 73 74 61 62 6c 65 73 69 6e 66 6f 72 6d   .systablesinform
   16: 69 78 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ix
   32: 20 20 20 20 20 20 20 20 20 20  0 20  5 60  0  0             . .`..
   48:  0  1  1 f4  0 1a  0  2  0  0  0  0  0 40 50 40   ...t.........@P@
.......

Códigos de retorno de oncheck

O utilitário oncheck retorna um código na saída, como mostra a Tablela 7.

Tablela 7. Lista de códigos de retorno de oncheck na saída
Código de retornoSignificado do código de retorno
-1Falhas de GLS
1Erro de conexão com o servidor de banco de dados
2Erro de acesso de onconfig
2Configurações de onconfig inválidas
2Argumentos inválidos para oncheck
2Erro detectado por oncheck
0Nenhum erro detectado por oncheck
1Não foi instalado apropriadamente (erro exclusivo do Windows)
2Erro de autenticação (erro exclusivo do Windows)

O utilitário dbschema

O utilitário dbschema exibe informações sobre os objetos de banco de dados em um banco de dados (o esquema) em linguagem SQL. Ele também gera comandos para reprodução de espaços de armazenamento, chunks, logs lógicos e logs físicos. É possível usar o utilitário dbschema para as seguintes finalidades:

  • Exibir a distribuição criada pela instrução UPDATE STATISTICS.
  • Exibir o esquema para a criação de objetos como bancos de dados, tabelas, visualizações, sequências, sinônimos, procedimentos, funções e privilégios.
  • Exibir os comandos para criação de espaços de armazenamento, chunks e logs.
  • Exibir informações sobre tipos de dados definidos por usuário e tipos de linha.

Veja a seguir alguns exemplos de opções de dbschema.

Lista 15. Exibição do esquema de um banco de dados sem especificar um proprietário
$> dbschema -d h1 -nw
Lista 16. Exibição dos comandos para criação de espaços de armazenamento
$> dbschema -d h1 -c

--  Dbspace 1 -- Chunk 1
--  EXECUTE FUNCTION TASK
 ('create dbspace', 'rootdbs', '/dbspaces/rootdbs', '200000', '0', '2', '500', '400');

--  Dbspace 2 -- Chunk 2
EXECUTE FUNCTION TASK
 ('create dbspace', 'dbs1', '/dbspaces/c1', '200000', '0', '2', '100', '100');

--  Physical Log
EXECUTE FUNCTION TASK
 ('alter plog', 'dbs1', '50000');
Lista 17. Exibição da distribuição criada pela instrução UPDATE STATISTICS HIGH
$> dbschema -hd customer -d stores7

Distribution for informix.customer.fname
Constructed on 2011-10-14 08:29:25.00000
High Mode, 0.500000 Resolution
--- DISTRIBUTION ---
     (          Alfred          )
  1: (  1,   1, Alfred          )
  2: (  1,   1, Anthony         )
  3: (  1,   1, Arnold          )
  4: (  1,   1, Bob             )
  5: (  1,   1, Carole          )
Lista 18. Exibição de informações específicas ao servidor
$> dbschema -d h1 -ss

create table "informix".tab1
  (
    c1 integer,
    c2 char(20)
  )
  fragment by round robin in dbs1 , dbs2 , dbs3
  extent size 16 next size 16 lock mode page;

Usando o planejador e a API de administração de SQL para visualizar informações sobre o servidor de banco de dados

É possível usar o planejador e a API de administração de SQL para gerenciar a manutenção automática e monitorar as tarefas administrativas. Esses componentes do Informix Dynamic Server permitem que você simplifique a coleção de informações e de manutenção do servidor em sistemas complexos.

O planejador

O planejador pode executar tarefas administrativas e de manutenção ou pode coletar informações em períodos predefinidos. É possível usar as tarefas e sensores integrados ou escrever suas próprias tarefas e sensores a fim de customizar suas tarefas de manutenção automáticas. O planejador é controlado por um conjunto de tabelas e um conjunto de procedimentos armazenados no banco de dados sysadmin. Para visualizar, modificar componentes do planejador ou adicionar novos componentes, você precisa estar conectado ao banco de dados sysadmin como usuário informix ou outro usuário autorizado.

O planejador tem quatro tipos de tarefa diferentes:

Tarefa
Executa uma ação em um período e frequência específicos.
Sensor
Coleta e salva informações em um período e frequência específicos. Cria uma tabela de resultados para armazenar as informações.
Tarefa de inicialização
Define uma tarefa que será executada somente quando o servidor de banco de dados mudar do modo quiescente para o modo on-line.
Sensor de inicialização
Define um sensor que será executado somente quando o servidor de banco de dados mudar do modo quiescente para o modo on-line.

Tarefas e sensores integrados

O planejador contém tarefas e sensores integrados que são executados automaticamente, como mostra a Tablela 8.

Tablela 8. Tarefas e sensores integrados
Tarefa ou sensor DescriçãoAtivado por padrão?
alert cleanupEssa tarefa remove todas as entradas de alerta da tabela ph_alert mais antigas do que o limite de 15 dias.Sim
auto_crsdEssa tarefa compacta, reduz, compacta novamente e desfragmenta tabelas e fragmentos.Não
autoreg exeEssa tarefa registra as extensões de banco de dados quando eles são usados pela primeira vez.Não
autoreg vpEssa tarefa cria um processador virtual especializado para uma extensão de banco de dados, conforme o necessário.Não
auto_tune_cpu_vpsEssa tarefa adiciona automaticamente processadores virtuais de CPU se o número de processadores virtuais alocados for menor do que a metade do número de processadores de CPU no computador.Não
auto update statistics evaluationEssa tarefa analisa todas as tabelas em todos os bancos de dados registrados, identifica as tabelas cuja distribuição precisa ser atualizada e gera instruções UPDATE STATISTICS para essas tabelas.Sim
auto update statistics refreshEssa tarefa executa as instruções UPDATE STATISTICS geradas pela tarefa auto update statistics evaluation.Sim
bad_index_alertEssa tarefa verifica a existência de índices corrompidos.Não
check_backupEssa tarefa se certifica de que os backups foram executados desde o período especificado pelos limites.Sim
check_for_ipaEssa tarefa verifica as tabelas em busca de operações de alteração no local pendentes.Não
idle_user_timeoutEssa tarefa finaliza as sessões do usuário que estão ociosas por mais de 60 minutos.Não
mon_checkpointEsse sensor salva as informações sobre os pontos de verificação.Sim
mon_command_historyEssa tarefa exclui as linhas da tabela command_history mais antigas do que o limite de 30 dias.Sim
mon_configEsse sensor salva o valor mais recente para cada parâmetro de configuração no arquivo onconfig.Sim
mon_config_startupEsse sensor salva o valor de cada parâmetro de configuração no arquivo onconfig quando o servidor inicia.Sim
mon_low_storageEssa tarefa verifica a lista de dbspaces para encontrar espaços que estejam abaixo do limite especificado pelo parâmetro de configuração SP_THRESHOLD. Em seguida, a tarefa expande os espaços ampliando ou adicionando chunks.Sim
mon_memory_systemEsse sensor coleta as informações sobre o consumo de memória do servidor.Sim
mon_profileEsse sensor salva informações sobre o perfil do servidor.Sim
mon_sysenvEsse sensor de inicialização salva o ambiente de inicialização do servidor de banco de dados.Sim
mon_table_namesEsse sensor salva os nomes de tabela junto com seus horários de criação.Sim
mon_table_profileEsse sensor salva informações de perfil de tabela.Sim
mon_usersEsse sensor salva informações de perfil sobre cada usuário.Sim
mon_vpsEsse sensor coleta informações de processador virtual.Sim
online_log_rotate Essa tarefa gira o arquivo de log de mensagens on-line especificado no parâmetro de configuração MSGPATH.Não
post_alarm_messageEssa tarefa posta alertas.Sim

É possível alterar as propriedades da tarefa e do sensor integrados ao atualizar a tabela ph_task. É possível ativar ou desativar tarefas ao atualizar o campo tk_enable na tabela ph_task do banco de dados sysadmin. Lista 19 mostra um exemplo de atualização da tabela ph_task que mostra como ativar a tarefa check_for_ipa a fim de verificar a existência de operações de alteração no local pendentes.

Lista 19. Ativação da tarefa check_for_ipa a fim de verificar a existência de operações de alteração no local pendentes
UPDATE ph_task set tk_enable = "t" where tk_name = "check_for_ipa"

Lista 20 mostra como configurar a tarefa mon_profile para execução a cada 10 horas (em vez de executar a cada quatro horas) e para exclusão de dados mais antigos do que 20 dias (em vez de excluir dados mais antigos do que 30 dias) na tabela resultante.

Lista 20. Configuração da tarefa mon_profile
UPDATE ph_task
set (tk_frequency,  tk_delete) =
          (INTERVAL (10) HOUR to HOUR,  INTERVAL (20) DAY TO DAY)
where tk_name = "mon_profile"

Criação de uma nova tarefa ou um novo sensor

Cada tarefa exige o seguinte:

  • Um nome para a tarefa
  • Uma descrição para a tarefa
  • Uma ação executada pela tarefa, que pode ser uma função definida pelo usuário ou uma instrução SQL

Cada sensor exige o seguinte:

  • Um nome para o sensor
  • Uma descrição para o sensor
  • Uma ação executada pelo sensor, que pode ser uma função definida pelo usuário ou uma instrução SQL
  • Um nome de uma tabela que armazenará os dados resultantes
  • Uma instrução CREATE TABLE para a tabela que armazenará os dados resultantes

Para criar uma tarefa ou um sensor, use a instrução INSERT para adicionar uma nova linha à tabela ph_task. Por exemplo, Lista 21 mostra como criar uma tarefa que tenta liberar a memória todos os dias às 10h.

Lista 21. Criação de uma tarefa que tenta liberar a memória compartilhada todos os dias às 10h
insert into ph_task (tk_name, tk_description, tk_type, tk_execute, tk_start_time)
values
("Free Memory",
"free unused shared memory segments",
"TASK",
"EXECUTE FUNCTION task ('onmode', 'F');",
DATETIME (10) HOUR TO HOUR);

Crie um limite

Um valor limite pode ser comparado a um valor atual a fim de determinar se uma tarefa ou um sensor deve ser executado. Para criar um limite, use a instrução INSERT para adicionar uma nova linha à tabela ph_threshold. Grave a ação da tarefa ou de um sensor para usar o limite.

Crie um alerta

Para criar um alerta, use a instrução INSERT para adicionar uma nova linha à tabela ph_alert. Grave a ação da tarefa ou de um sensor para criar um alerta.

Crie um grupo

É possível usar grupos para organizar tarefas e sensores do planejador. Para criar um grupo, use a instrução INSERT para adicionar uma nova linha à tabela ph_group.

Modifique o planejador

É possível modificar as propriedades de tarefas, sensores, alertas, grupos ou limites do planejador. É possível modificar as propriedades integradas e as adicionadas por você. Para modificar as propriedades, use a instrução UPDATE para a tabela apropriada do planejador.

Monitore o planejador

O planejador tem os dois tipos de encadeamento abaixo:

  • dbWorker está executando tarefas e sensores planejados
  • dbScheduler está preparando a próxima tarefa ou sensor planejado para execução

É possível visualizar tarefas e sensores executados simultaneamente com o comando onstat -g dbc. Lista 22 mostra um exemplo da saída resultante.

Lista 22. Saída de onstat -g dbc
    	Worker Thread(0)    46fa6f80
=====================================
Task:                4729fc18
Task Name:           mon_sysenv
Task ID:             4
Task Type:           STARTUP SENSOR
Task Execution:      insert into mon_sysenv select 1, env_name, env_value FROM
                     sysmaster:sysenv


WORKER PROFILE
    Total Jobs Executed             3
    Sensors Executed                2
    Tasks Executed                  1
    Purge Requests                  2
    Rows Purged                     0


Scheduler Thread    46fa6f80
=====================================
Run Queue
    Empty
Run Queue Size        0
Next Task             7
Next Task Waittime    57

É possível visualizar informações sobre as tarefas e sensores concluídos consultando a tabela ph_run, como mostra a Lista 23.

Lista 23. Consulte o horário da última execução e o código de retorno da tarefa Free Memory
select ph_task.tk_name, ph_run.run_retcode, ph_run.run_time
from ph_run, ph_task
where ph_task.tk_name = "Free Memory"
and ph_run.run_task_id = ph_task.tk_id;

A saída resultante é exibida na Lista 24.

Lista 24. Consulte o horário da última execução e o código de retorno da tarefa Free Memory
tk_name             run_retcode run_time
Free Memory                   0 2011-04-05 10:40:19
1 row(s) retrieved.

Inicie e pare o planejador

Use a API de administração de SQL para iniciar e parar o planejador. Inicie o planejador usando a tarefa EXECUTE FUNCTION ("scheduler start");. Pare o planejador usando a tarefa EXECUTE FUNCTION ("scheduler stop");.

Otimizando automaticamente o armazenamento de dados

A tarefa integrada auto_crsd permite que você faça compactação, redução, reembalagem e desfragmentação automática das tabelas e extensões. Essa tarefa está desativada por padrão. Para ativar essa tarefa, atualize a tabela ph_task e defina tk_enable como t.

É possível controlar essa tarefa atualizando as linhas na tabela ph_threshold. Atualize as linhas para o controle AUTOCOMPRESS_ENABLED, AUTOREPACK_ENABLED, AUTOSHRINK_ENABLED e AUTODEFRAG_ENABLED se essa tarefa estiver realizando uma compactação, reembalagem, redução e ou desfragmentação.

Por exemplo, se você quiser que a tarefa realize uma compactação e desfragmentação, mas não reembalagem e redução, use UPDATE na tabela ph_threshold, como mostra a Lista 25.

Lista 25. Instruções de UPDATE
UPDATE ph_threshold
  SET value = 'T'
  WHERE name = 'AUTOCOMPRESS_ENABLED';
UPDATE ph_threshold
  SET value = 'F'
  WHERE name = 'AUTOREPACK_ENABLED';
UPDATE ph_threshold
  SET value = 'F'
  WHERE name = 'AUTOSHRINK_ENABLED';
UPDATE ph_threshold
  SET value = 'T'
  WHERE name = 'AUTODEFRAG_ENABLED';

As linhas a seguir são limites para quando ocorrer uma compactação, reembalagem, redução ou desfragmentação:

  • AUTOCOMPRESS_ROWS é o número de linhas descompactadas em uma tabela.
  • AUTOREPACK_SPACE é a porcentagem de espaço não contíguo em uma tabela.
  • AUTOSHRINK_UNUSED é a porcentagem de espaço não usado e alocado em uma tabela ou fragmento.
  • AUTODEFRAG_EXTENTS é o número de extensões de uma tabela ou fragmento.

Gerenciamento de espaço automático

A tarefa integrada mon_low_storage permite a adição automática de mais espaço de armazenamento quando isso é necessário. Essa tarefa está ativada por padrão. Essa tarefa usa informações do conjunto de armazenamento a fim de expandir automaticamente um dbspace existente, um dbspace temporário, sbspace, sbspace temporário ou blobspace.

É possível controlar a tarefa alterando os parâmetros onconfig SP_AUTOEXPAND e SP_THRESHOLD. Defina SP_AUTOEXPAND como 0 ou SP_THRESHOLD como 0 para desativar a expansão automática de espaços de armazenamento. Defina SP_THRESHOLD como um valor para definir a quantidade mínima de espaço livre que pode existir em um espaço de armazenamento antes de a tarefa expandir o espaço.

API de administração de SQL

A API de administração de SQL permite que você execute a administração remota usando a função de SQL em ferramentas clientes. É possível executar tarefas administrativas como atualizar os parâmetros de configuração, verificar os dados e configurar os espaços de armazenamento. Também é possível completar muitas das tarefas usando os diversos utilitários administrativos do Informix.

A API de administração de SQL é composta por duas funções integradas: admin() e task(), que são definidas no banco de dados sysadmin e invocadas com a instrução EXECUTE FUNCTION. Você precisa estar conectado ao banco de dados sysadmin para executar essas funções.

Essas funções usam um ou mais argumentos para definir a operação, como mostra a Tablela 9.

Tablela 9. Tarefas administrativas que podem ser executadas com a API de administração de SQL
Tarefa administrativa Utilitário
Compactar dados e otimizar o armazenamentoNenhum
Atualizar os parâmetros de configuraçãoonmode
Gerenciar dados, partições e extensõesonmode, oncheck -c, oncheck -p, onspaces
Gerenciar a replicação corporativa cdr
Gerenciar a replicação de alta disponibilidadeonmode -d,ontape
Controlar os encadeamentos de escutaonmode -P
Gerenciar os logs lógicos e físicosonparams, ondblog
Gerenciar a memóriaonmode, onparams
Gerenciar o espelhamentoonspaces
Gerenciar PDQonmode
Alterar o modo do servidoronmode
Gerenciar os espaços de armazenamentoonspaces
Gerenciar os espaços de armazenamento de um pool de armazenamentoNenhum
Gerenciar o cache da instrução SQLonmode
Gerenciar o rastreamento de SQL Parâmetro SQLTRACE onconfig
Gerenciar o rastreamento de SQL para um usuário, uma sessão ou um banco de dadosNenhum

Veja a seguir exemplos de como usar a API de administração de SQL.

Lista 26 mostra a instrução SQL que verificar as extensões. Isso é equivalente ao comando oncheck -ce.

Lista 26. Instrução SQL que verifica as extensões
EXECUTE  FUNCTION  admin("check  extents");

Lista 27 mostra a instrução SQL que cria um log físico no dbspace physdbs com um tamanho de 100 MB. Isso é equivalente ao comando onparams -p.

Lista 27. Instrução SQL que cria um log físico no dbspace physdbs com um tamanho de 100 MB.
EXECUTE FUNCTION task ("alter plog","physdbs","100 M");

Lista 28 mostra a instrução SQL que alterna o arquivo de log lógico atual para o próximo arquivo de log lógico. Isso é equivalente ao comando onmode -l.

Lista 28. Instrução SQL que alterna o arquivo de log lógico atual para o próximo arquivo de log lógico.
EXECUTE FUNCTION task ("onmode", "l");

Tabela de históricos de comandos

A tabela command_history no banco de dados sysadmin contém informações sobre todos os comandos da API de administração de SQL executados neste servidor. A tabela command_history mostra cada função da API de administração de SQL executada e exibe informações sobre o usuário que executou a função, o horário de execução da função, os argumentos principais da função e a mensagem retornada após a conclusão de execução da função pelo servidor de banco de dados.

Lista 29 mostra as informações da tabela command_history sobre o comando onmode executado na tarefa Free Memory.

Lista 29. Informações da tabela command_history
cmd_number      110
cmd_exec_time   2011-04-05 10:40:19
cmd_user        informix
cmd_hostname    NA
cmd_executed    onmode
cmd_ret_status  0
cmd_ret_msg     OK

A tarefa integrada mon_command_history controla o tamanho da tabela. Essa tarefa está ativada por padrão e exclui as linhas da tabela que são mais antigas do que 30 dias. É possível atualizar a tabela ph_threshold para reduzir esse período.

Lista 30 mostra como atualizar a tabela ph_threshold a fim de excluir todas as linhas mais antigas do que 20 dias.

Lista 30. Atualizando a tabela ph_threshold a fim de excluir todas as linhas mais antigas do que 20 dias
UPDATE ph_threshold
SET value = "20"
WHERE name = "COMMAND HISTORY RETENTION";

Banco de dados Sysadmin

O banco de dados sysadmin contém as tabelas que contêm e organizam as tarefas e sensores do planejador, armazenam dados coletados pelos sensores e registram os resultados das tarefas do planejador e das funções da API de administração de SQL.

O banco de dados sysadmin contém o seguinte:

  • As tabelas do planejador
  • As tabelas de resultado
  • A tabela de conjuntos de armazenamento
  • A tabela command_history
  • A função task() integrada
  • A função admin() integrada

Tablela 10 mostra as tabelas no banco de dados sysadmin e descreve seus propósitos.

Tablela 10. Tabelas no banco de dados sysadmin
TabelaDescrição
ph_alertContém uma lista de erros, avisos ou mensagens informativas associadas às tarefas que precisam ser monitoradas.
ph_groupContém uma lista de nomes de grupo.
ph_runContém informações sobre como e quando cada tarefa e cada sensor foram executados.
ph_taskLista as tarefas e sensores e contém informações sobre como e quando o servidor de banco de dados os executará.
ph_thresholdContém uma lista de limites associados às tarefas e sensores.
result tablesOferece várias tabelas que contêm dados históricos coletados por sensores. A estrutura dessas tabelas é determinada pela instrução CREATE TABLE na definição do sensor na tabela ph_task.
storagepoolContém informações sobre todas as entradas no conjunto de armazenamento. Cada entrada representa um espaço livre que o servidor pode usar ao expandir automaticamente um espaço de armazenamento.
command_historyContém a lista e os resultados de todas as funções da API de administração de SQL que foram executadas.

As tabelas e tabelas de resultados de sensor do planejador podem consumir quantias consideráveis de espaço em disco. É possível mover o banco de dados sysadmin de seu local dbspace raiz padrão para um dbspace diferente usando a API de administração de SQL, como mostra a Lista 31. A mudança do banco de dados sysadmin redefine o banco de dados de volta ao seu estado original de criação, o que significa que todos os dados, histórico de comandos, tabelas de resultados e tarefas definidas pelo usuário são perdidos.

Lista 31. Mova o banco de dados sysadmin para o dbspaces dbs1
EXECUTE FUNCTION task("reset sysadmin","dbs1");

Entendendo a simultaneidade e bloqueio

Ao usar um encadeamento diverso ou uma arquitetura de processos diversos, a simultaneidade é importante. O acesso dos dados por encadeamento único causa gargalos, uma vez que os processos ou encadeamentos precisam aguardar recursos. Isso pode reduzir o processamento drasticamente. É mais eficiente ter diversos aplicativos se conectando paralelamente ao banco de dados.

O servidor de banco de dados impõe um sistema de bloqueios. Um bloqueio é uma solicitação, ou reserva, que um programa pode aplicar sobre uma parte de dados. O servidor de banco de dados garante que, contanto que os dados estejam bloqueados, nenhum outro programa possa modificá-lo. Quando outro programa solicita os dados, o servidor de banco de dados faz o programa aguardar ou retorna com um erro.

Tablela 11 mostra os tipos de bloqueios suportados pelos servidores de banco de dados Informix para diferentes situações.

Tablela 11. Tipos de bloqueio e seus usos
Tipo de bloqueioUso
CompartilhadoUm bloqueio compartilhado reserva seu objeto somente para leitura. Ele impede que o objeto mude enquanto o bloqueio existir. Mais de um programa pode aplicar um bloqueio compartilhado no mesmo objeto. Mais de um objeto pode ler o registro enquanto ele estiver bloqueado no modo compartilhado.
ExclusivoUm bloqueio exclusivo reserva seu objeto para o uso de um único programa. Esse bloqueio é usado quando o programa pretende alterar o objeto. Não é possível aplicar um bloqueio exclusivo quando outro tipo de bloqueio existir. Depois de aplicar um bloqueio exclusivo, não é possível aplicar outro bloqueio no mesmo objeto.
Com promoção (ou atualização)Um bloqueio com promoção (ou atualização) estabelece a intenção de atualizar. É possível aplicá-lo somente quando nenhum outro bloqueio com promoção ou exclusivo existir. É possível aplicar bloqueios com promoção em registros que já têm bloqueios compartilhados. Quando o programa está preste a alterar o objeto bloqueado, é possível mudar o bloqueio com promoção para um bloqueio exclusivo, mas somente se nenhum outro bloqueio, incluindo bloqueios compartilhados, existir no registro no momento de alteração do bloqueio com promoção para exclusivo. Se houver um bloqueio compartilhado no registro quando o bloqueio com promoção tiver sido definido, será necessário descartar o bloqueio compartilhado antes de o bloqueio com promoção poder ser mudado para um bloqueio exclusivo.

Nível de isolamento

O número e duração de bloqueios aplicados nos dados durante uma instrução SELECT dependem do nível de isolamento definido pelo usuário. O tipo de isolamento pode afetar o desempenho geral, pois ele afeta a simultaneidade. Tablela 12 lista os tipos de nível de isolamento e seu uso.

Tablela 12. Tipos de nível de isolamento
Tipo de nível de isolamentoUso
Isolamento de leitura suja O nível de isolamento de leitura suja (ou leitura ANSI não confirmada) não aplica bloqueios sobre qualquer linha obtida durante uma instrução SELECT. O isolamento de leitura suja é apropriado para tabelas estáticas usadas para consultas.
Isolamento de leitura confirmada Um leitor com o nível de isolamento de leitura confirmada (ou leitura ANSI confirmada) verifica a existência de bloqueios antes de retornar uma linha. Ao verificar os bloqueios, o leitor não pode retornar linhas não confirmadas.
Isolamento de estabilidade do cursor Um leitor com o isolamento de estabilidade do cursor adquire um bloqueio compartilhado na linha obtida atualmente. Essa ação garante que nenhum outro usuário possa atualizar a linha até que o usuário obtenha uma nova linha.
Isolamento de leitura repetida O isolamento de leitura repetida (leitura ANSI serializável e ANSI repetida) é o nível de isolamento mais rigoroso. Com a leitura repetida, o servidor de banco de dados bloqueia todas as linhas examinadas (não apenas obtidas) durante a transação.

Usando WITH CONCURRENT TRANSACTION

A cláusula WITH CONCURRENT TRANSACTION permite que você alterne para uma conexão diferente enquanto uma transação ainda está ativa na conexão atual. Para alternar para outro banco de dados enquanto uma transação ainda está ativa, você precisa ter a cláusula WITH CONCURRENT TRANSACTION. Sem essa cláusula, não será possível mudar para uma conexão diferente se uma transação estiver ativa; a instrução CONNECT ou SET CONNECTION falha e retorna um erro. A transação atual continua ativa na conexão ativa.

A cláusula WITH CONCURRENT TRANSACTION oferece suporte ao conceito de diversas transações simultâneas. Dessa forma, cada conexão poderá ter sua própria transação. As instruções COMMIT WORK e ROLLBACK WORK afetam somente a conexão atual. As transações globais, nas quais uma transação engloba vários bancos de dados em diversas conexões, não são suportadas pela cláusula WITH CONCURRENT TRANSACTION. As instruções COMMIT WORK e ROLLBACK WORK não agem nos bancos de dados em diversas conexões.

Simultaneidade e bloqueios

Sempre há a possibilidade de que, enquanto um cliente está modificando os dados, outro cliente leia ou tente modificar os mesmos dados. Dois ou mais clientes tentando acessar os dados é chamado de simultaneidade. Um sistema de bancos de dados multiusuário exige um alto nível de simultaneidade. A simultaneidade pode causar diversos problemas se não houver algum tipo de metodologia para controlar o acesso a esses dados. Um cliente poderia ler dados que foram modificados ou possivelmente excluídos ou uma atualização poderia ser perdida na confusão.

Dependendo da configuração SET LOCK MODE, se outro cliente solicitar os dados, o servidor de banco de dados fará o outro cliente esperar ou informará ao cliente que o recurso não está disponível, gerando um erro. Para controlar o efeito que os bloqueios têm sobre seu acesso aos dados, use uma combinação de instruções SQL, SET LOCK MODE e SET ISOLATION ou SET TRANSACTION.

Leitura confirmada com o nível de isolamento confirmado pela última vez

Se o nível de isolamento for COMMITTED READ (e SET LOCK MODE não estiver definido como WAIT), os bloqueios mantidos por outras sessões poderão causar a falha das operações SQL, caso a sessão atual não possa adquirir um bloqueio. Outra situação na qual até mesmo a configuração de SET LOCK MODE para WAIT não ajudará é um conflito. Um conflito ocorre quando dois usuários usam bloqueios que os outros desejam. A opção de palavra-chave LAST COMMITTED na instrução SET ISOLATION COMMITTED READ de SQL reduz o risco de conflitos de bloqueio. Essa sintaxe instrui o servidor a retornar a versão confirmada mais recente das linhas, mesmo se outra sessão simultânea usar um bloqueio exclusivo. É possível usar a opção de palavra-chave LAST COMMITTED para os índices de árvore B, índices funcionais, tabelas registradas em log e tabelas que não têm bloqueio de nível de página ou bloqueios exclusivos.

USELASTCOMMITTED ONCONFIG PARAMETER

USELASTCOMMITTED especifica o nível de isolamento para o qual o recurso LAST COMMITTED do nível de isolamento COMMITTED READ está implicitamente em vigor Veja a seguir os valores para USELASTCOMMITTED:

Nenhum
Nenhum nível de isolamento identificado
Leitura confirmada
Todas as transações de um nível de isolamento de leitura confirmada
Leitura suja
Todas as transações de um nível de isolamento de leitura suja
Todos
Os níveis de isolamento de leitura confirmada e suja

Assim como ocorre com um parâmetro onconfig, a mudança de seu valor só terá efeito ao reinicializar a memória compartilhada.

Usando o onmode para afetar o nível de isolamento

Quando o servidor de banco de dados está no modo on-line, é possível usar as opções onmode -wm e onmode -wf para alterar os valores do parâmetro de configuração USELASTCOMMITTED. Para especificar um novo valor para o parâmetro de configuração da sessão atual, use onmode -wm USELASTCOMMITTED=value.

Para alterar o valor do parâmetro de configuração no arquivo ONCONFIG, use onmode -wf USELASTCOMMITTED=value.

Instrução SQL SET ENVIRONMENT

A instrução de SQL SET ENVIRONMENT pode especificar opções no tempo de execução que afetam as consultas subsequentes enviadas na mesma rotina. Essa é uma extensão ao padrão ANSI/ISO para SQL. Veja a seguir as configurações para USELASTCOMMITTED que correspondem aos parâmetros onconfig:

Nenhum
Nenhum nível de isolamento identificado
Leitura confirmada
Todas as transações de um nível de isolamento de leitura confirmada
Leitura suja
Todas as transações de um nível de isolamento de leitura suja
Todos
Os níveis de isolamento de leitura confirmada e suja

Nível de isolamento leitura confirmada e leitura confirmada pela última vez nos servidores secundários

Os níveis de isolamento leitura confirmada e leitura confirmada pela última vez são suportados em todos os tipos de servidores secundários. Os servidores secundários nos quais o isolamento de leitura confirmada é definido podem ler dados confirmados localmente. Também podem ler dados confirmados no servidor principal quando esses são disponibilizados e confirmados no servidor secundário.

Se o parâmetro de configuração UPDATABLE_SECONDARY estiver desativado, um servidor de replicação de dados secundário será somente leitura. Nesse caso, os níveis de isolamento leitura confirmada e leitura confirmada pela última vez não ficam disponíveis nos servidores secundários.


Explorando ferramentas específicas a cada sistema operacional

Ferramentas para UNIX

Esta seção descreve as ferramentas disponíveis somente para o sistema operacional UNIX.

System activity reporter (sar)

O comando sar é útil para monitorar a utilização da CPU, a atividade em disco e a utilização da memória. O exemplo na Lista 32 monitora a utilização da CPU em intervalos de três segundos durante 10 iterações.

Lista 32. Exemplo de sar
sar -u 3 10

SunOS IFXSUN 5.10 Generic_118833-36 sun4u    04/08/2011

16:42:06    %usr    %sys    %wio   %idle
16:42:09      27      26       0      47
16:42:12      26      25       0      49
16:42:15      26      24       0      50
16:42:18      30      29       0      41

Para identificar gargalos ou problemas de desempenho possíveis ou reais, é necessário monitorar continuamente seu sistema e capturar esses pontos de dados durante um período estendido de tempo. O comando sar para UNIX é particularmente útil para a criação e manutenção de históricos de desempenho de longo prazo.

sar está disponível em todas as plataformas de hardware suportadas pelo IBM Informix. Ao ser executado com um arquivo de saída nomeado, um único arquivo codificado de forma binária é criado e a partir dele todos os relatórios de sar podem ser gerados posteriormente.

time ou timex

Os comandos time e timex permitem identificar horários na execução de um processo. time e timex informam o horário real e também o horário do usuário e do CPU do sistema.

ps

O comando process status (ps) é uma boa fonte de informações instantâneas sobre os processos do sistema em execução no momento, como mostra a Lista 33.

Lista 33. Process status (ps)
ps -el

 F S    UID   PID  PPID   C PRI NI     ADDR     SZ    WCHAN TTY         TIME CMD
 1 T      0     0     0   0   0 SY        ?      0          ?           0:39 sched
 0 S      0     1     0   0  40 20        ?    300        ? ?           0:27 init
 1 S      0     2     0   0   0 SY        ?      0        ? ?           0:00 pageout
 1 S      0     3     0   0   0 SY        ?      0        ? ?         975:53 fsflush
 0 S      0   107     1   0  40 20        ?   1452        ? ?           1:20 snmpd
 0 S      0     7     1   0  40 20        ?   1575        ? ?           1:44 vc.star
 0 S      0     9     1   0  40 20        ?   1286        ? ?           1:51 vc.conf
 0 S      1   245     1   0  40 20        ?    332        ? ?           0:00 statd
 0 S      0  6244  6228   0  40 20        ?   7729        ? ?           0:52 oninit

iostat

O comando iostat fornece medições altamente precisas do rendimento, utilização, tamanho de filas, taxas de transação e tempos de serviço, como mostra a Lista 34.

Lista 34. O comando iostat
iostat -x 5 1
                  extended device statistics
device       r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b
sd1          0.0    1.1    0.4    1.4  0.0  0.0   34.6   0   1
sd2          0.0    0.9    0.6    9.8  0.0  0.0   19.4   0   1
sd3          0.0    0.0    0.0    0.0  0.0  0.0   20.0   0   0
sd4          0.0    0.0    0.2    0.7  0.0  0.0    7.3   0   0
sd5          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
nfs1         0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0

vmstat

O comando vmstat fornece informações sobre o status dos processos, utilização da memória, estatísticas de paginação, atividade do sistema e uso de CPU, como mostra na Lista 35.

Lista 35. O comando iostat
vmstat 3 5
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr s1 s2 s3 s4   in   sy   cs us sy id
 0 0 0 19930448 5681776 519 718 1 1 1 0  0  1  1  0  0  361 527535 598 10 10 80
 0 0 0 17964488 4777560 1 10 0  0  0  0  0  0  0  0  0  457 1597198 836 26 24 49
 0 0 0 17964488 4777560 0 0  0  0  0  0  0  0  0  0  0  451 1596260 824 26 24 49
 0 0 0 17955984 4773040 1698 2593 0 0 0 0 0 1  0  0  0  477 1598837 901 30 29 41
 0 0 0 17964488 4777560 0 0  0  0  0  0  0  0  1  0  0  461 1594752 823 26 25 49

Ferramentas para Windows

Esta seção descreve as ferramentas disponíveis somente para o sistema operacional Windows.

Visualizador de eventos do Windows

O visualizador de eventos mostra mensagens informativas, de aviso e de erro para o sistema operacional, outros aplicativos e para o servidor de banco de dados. Para exibir as mensagens do servidor de banco de dados no Windows, faça o seguinte:

  1. Escolha Ferramentas Administrativas > Visualizador de Eventos.
  2. Escolha Log > Segurança.
  3. Clique duas vezes em qualquer evento para obter uma mensagem mais detalhada.

Os utilitários Informix abaixo simplificam a administração do servidor de banco de dados no Windows.

ixpasswd.exe

O utilitário ixpasswd.exe muda a senha de logon para todos os serviços que efetuam logon como usuário informix. É possível alterar a senha de forma interativa ou na linha de comando, usando a opção -y: ixpasswd [-y new_password]. Esse utilitário descarta a necessidade de alterar manualmente a senha para cada serviço, sempre que você alterar a senha do informix.

Se você tiver efetuado o logon localmente e executar o ixpasswd, ele mudará a senha para os serviços que efetuam logon como o usuário informix local. Se você tiver efetuado o logon no domínio e executar o ixpasswd, ele mudará a senha para os serviços que efetuam logon como domínio/informix.

ixsu.exe

O utilitário ixsu.exe inicia uma janela de linha de comando que executa como o usuário especificado. O usuário é um usuário local, a menos que você especifique um nome de domínio no formato ixsu [[domain\]username]. Se você não especificar um nome de usuário, o usuário padrão será informix. Não é mais necessário efetuar o logoff como o usuário atual e efetuar o logon como informix para realizar tarefas de administração de banco de dados que precisam ser executadas como informix. O utilitário ixsu exige direitos de usuário avançados para agir como parte do sistema operacional.

Para configurar os direitos de usuário avançados no Windows NT, faça o seguinte:

  1. Selecione Gerenciador de Usuário > Políticas > Direitos de Usuário.
  2. Marque a opção Direitos de Usuário Avançados.

Observe que se você alterar os direitos de usuário avançados para o usuário atual, será necessário efetuar o logoff e o logon novamente para que os novos direitos entrem em vigor.

O utilitário ixsu é equivalente ao comando runas do Windows 2000. Para usar o runas a fim de executar um shell de comando como outro usuário, use runas /user:username cmd

ntchname.exe

O utilitário ntchname.exe muda as entradas do registro para o Informix Dynamic Server do nome de host antigo para o novo nome de host. Execute ntchname após a alteração do nome de host. Esse utilitário não muda as variáveis de ambiente do usuário. Depois de você executar ntchname, edite o arquivo %INFORMIXDIR%\%INFORMIXSERVER%.cmd e mude a entrada INFORMIXSQLHOSTS para o novo nome de host, usando o formato ntchname old_name new_name.


Conclusão

Este tutorial apresentou o conjunto de ferramentas de monitoramento disponíveis com o Informix 11.70. Você aprendeu como cada ferramenta é usada para monitorar um sistema de banco de dados. O monitoramento de banco de dados é uma atividade vital que, executada regularmente, fornece feedback contínuo sobre a integridade de um sistema de banco de dados.

A API de administração de SQL permite que você realize a administração remota usando diversos comandos SQL específicos para tarefas como gerenciamento de espaços, gerenciamento de configuração, execução de tarefas de rotina e validação do sistema.

O planejador gerencia e executa a manutenção planejada, executa o monitoramento e realiza tarefas de administração. Essa ferramenta permite que você monitore atividades, incluindo o gerenciamento de espaço e backup automático de quaisquer dados de log novos em intervalos definidos desde o último backup de log e permite a criação de ações corretivas executadas automaticamente.

As tabelas system-monitoring interface (SMI) são tabelas especiais gerenciados pelo servidor de banco de dados e contêm informações dinâmicas sobre o estado do servidor de banco de dados. É possível usar instruções SELECT sobre elas para determinar quase tudo que você queira saber sobre seu servidor de banco de dados.

O utilitário onstat fornece uma forma de monitorar a memória compartilhada do servidor de banco de dados a partir da linha de comando. O utilitário onstat lê dados da memória compartilhada e reporta estatísticas precisas para o instante em que o comando é executado. Ou seja, onstat fornece informações que mudam dinamicamente durante o processamento, incluindo alterações em buffers, bloqueios, índices e usuários.

O utilitário oncheck exibe informações sobre a configuração e uso de disco do banco de dados, como o número de páginas usadas para uma tabela, o conteúdo das páginas reservadas e o número de extensões em uma tabela.

O log de mensagens do servidor de banco de dados é um arquivo do sistema operacional. É possível er o log de mensagens do servidor de banco de dados a fim de obter um relatório de cada minuto do processamento do servidor de banco de dados e identificar eventos antes da evolução de um problema.

O recurso de alarme de evento é o mecanismo para acionamento automático de ações administrativas com base em um evento que ocorre no ambiente do servidor de banco de dados.

Este tutorial descreve o nível de isolamento, a simultaneidade e como ajustá-los, o que é útil em um ambiente com diversos bancos de dados e servidores de banco de dados.

Recursos

Aprender

Obter produtos e tecnologias

  • Faça o download do software gratuito, incluindo o Informix Innovator-C Edition para produções pequenas e uma versão de avaliação do Informix Ultimate Edition.
  • Crie seu próximo projeto de desenvolvimento com Versão de teste do software IBM, disponível para download diretamente no developerWorks.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=785361
ArticleTitle=Preparação para o exame 919 de System Administration Certification for Informix 11.70, Parte 3: Monitoramento de atividade do sistema
publish-date=01182012