Compartilhando conhecimento com o mundo

Com tecnologia do Blogger.

Pesquisa

Download

Blogger Tricks

Blogger Themes

Visitas

Assuntos

11/20/2013

Solução de Problemas e Manutenção de seus Servidores - Informix


Este artigo descreve as estratégias que ajudam você a ajustar e monitorar os servidores de banco de dados Informix. Nele, você vai aprender as tarefas do dia-a-dia que podem ajudar a manter seus sistemas saudáveis ​​por um longo tempo. No caso em que os problemas ocorrem, ele vai ajudar você a entender como resolvê-los. Este capítulo irá ajudá-lo a aprender o seguinte:

- Como realizar o monitoramento do sistema em curso. Existem muitas tarefas básicas que podem ajudá-lo a compreender o que está acontecendo com seu sistema, impedindo que problemas mais tarde e manter o sistema funcionando em seu melhor nível.

- Métodos de ajuste e verificação de seus bancos de dados . Existem diferentes maneiras para ajudar a manter seus sistemas carregados e livre de erros por um longo prazo. Muitas dessas tarefas não precisam ser realizada mais de uma vez por semana, ou até mesmo uma vez por mês.

- Como solucionar problemas. Grande parte da solução de problemas é um processo de aprendizagem. No entanto, pensar as coisas através de procedimentos básicos e seguir irá ajudá-lo mais facilmente chegar ao fundo dos problemas.

Uso do Disco de monitoramento

Configuração de disco muitas vezes pode ser um equilíbrio difícil no Informix Dynamic Server. A meta que prevalece é fazer o uso mais eficiente de seus discos embora não preenchendo-los. Layout do disco deve ser planejada com cuidado, especialmente quando você é primeiro criar a instância Informix. Obviamente, não é possível prever o uso completamente do seu sistema, mas é importante para colocar o máximo que você pode no planejamento de espaço em disco. Se você precisa mudar alguma coisa, você pode adicionar chunks mais tarde. Segue-se a saída do onstat -d , que mostra a dbspaces corrente e pedaços em sua instância Informix:
Dbspaces
address number  flags  fchunk  nchunks flags  owner      name
a28e3e   1          1      1      1       N     informix   rootdbs
a28e4e   2          1      2      1       N     informix   dbspace
a28f2a   3          1      3      1       N T   informix   tempdbs
2 active, 2047 maximum
Chunks
address chk/dbs offset  size  free bpages  flags pathname
a26f220 1   1   0      25000  10000         PO-  /usr/informix/rootdbs
a26f240 2   2   0      60000  45000         PO-  /usr/informix/chunk1
a26f290 3   3   0      50000  49000         PO-  /usr/informix/tempdbs
2 active, 2047 maximum
A saída é dividido em duas partes: informações dbspace e informações de chunk. Em poucas palavras, um dbspace é uma coleção de chunk. Cada chunk representa a totalidade ou parte de uma unidade de disco físico. O dbspaces são exibidos na parte superior da saída seguido pelo chunks que mapeiam a eles. O "number" de campo na seção dbspaces é o número dbspace, que mapeia o "dbs" campo na parte de chunk da tela. Para essa discussão, vamos apenas olhar para o uso chunk.

As colunas que são de interesse particular são "size" (tamanho) e "free" (livre). Estas colunas em páginas definem o tamanho do chunk e quanto ele permanece livre. O tamanho da página pode ser encontrado usando o comando onstat -b . É muito importante o monitoramento da quantidade de páginas disponíveis. Pois ficando sem espaço, sua instância inteira pode ser forçado a ficar Off Line.

Para ver a atividade de certos chunk, use o comando onstat -g iof . A seguir está a saída deste comando:
AIO global files:
gfd    pathname    totalops    dskread    dskwrite    io/s
3    rootdb1    15562    12746    2816    0.0
4    dbspace1    64    64    0    0.0
Se você perceber que uma das partes tem um número elevado de leituras ou gravação quando comparado com outros chunks, que pode estar causando problemas de desempenho. Neste caso você pode considerar a redistribuição dos dados contidos nesse chunks.

Watching VPs

Os processadores virtuais (VPs) ajudar as coisas de forma eficiente processo de Informix. VPs são "CPUs mini" que são na verdade processos operacionais do sistema. Estes VPs lidar com usuário "threads" e fornecer as capacidades multi-threading do Informix. É importante ter bastante VPs e tê-los devidamente configurado.

O comando onstat-g glo fornece informações sobre todos os processadores atuais virtual, bem como as estatísticas de cada classe de processador virtual (CPU, por exemplo). Você pode usar os resultados deste comando para procurar por certas classes de VPs que poderia ter um enorme quantidade de atividade, fazendo com que você adicione mais VPs.

O comando onstat -g ioq pode ajudar a determinar se você precisa adicionar mais VPs AIO e tem saída como a seguir:
AIO I/O queues:
q name/id     len maxlen totalops dskread dskwrite dskcopy
adt    0    0    0    0    0    0    0
opt    0    0    0    0    0    0    0
msc    0    0    1    1423    0    0    0
aio    0    0    1    2    1    0    0
pio    0    0    1    215    0    215    0
lio    0    0    1    241    0    241    0
Se este comando mostra uma fila de I/O que continua a crescer, talvez seja necessário adicionar mais VPs AIO.

Monitoramento de Memória Compartilhada

A quantidade de memória usada pelo Informix pode variar, dependendo da atividade do seu sistema. Memória é alocado inicialmente como a quantidade de KB dada pelo parâmetro SHMVIRTSIZE no ONCONFIG e pode ser dinamicamente alocados pelo Informix Dynamic Server ™ em chucks KB de SHMADD. Informix Dynamic Server irá abortar se a quantidade de memória atinge o montante em SHMTOTAL. Prestar atenção à quantidade de memória alocada Informix, basta usar o comando onstat - , que rapidamente exibe o montante total utilizado pelo Informix Dynamic Server. Para obter informações sobre os segmentos de memória específicos que foram alocados, use o comando onstat -g seg , que exibe informações como mostra este exemplo de saída:

COMANDO: onstat -g seg
Segment Summary:
(resident segments are not locked)
id    key       addr     size     ovhd  class  blkused  blkfree
0    1387939841  a000000  2392064  848   R      288     4    
1    1387939842  a248000  8192000  720   V      325     675
Quando Informix é inicialmente, há um segmento de memória virtual, que é igual ao tamanho do SHMVIRTSIZE. Se os segmentos mais são adicionados, você vai vê-los na saída acima, com uma classe de "V." Alternativamente, você pode verificar o log da mensagem para mensagens que mencionam "dynamically allocated new shared memory segment (size xx)." Para fazer isso, use onstat -m (para ver últimos 20 entradas no log de ​​mensagens) ou olhar através do registro de mensagem inteiro usando um comando correspondência (grep em UNIX).

Em um ambiente DSS, você também pode definir o DS_TOTAL_MEMORY variável. Esse valor é normalmente definido como uma determinada percentagem de SHMTOTAL. O percentual depende de quantos DSS contra consultas OLTP são executadas. O uso DS_TOTAL_MEMORY é monitorado através onstat -g mgm .

Atividade do Usuário monitoramento

Problemas de desempenho às vezes pode ser totalmente relacionado com o que os usuários estão fazendo. Se as consultas aleatórias são permitidos em um sistema, ou há consultas demais, o desempenho do sistema pode ser bastante reduzido. Para descobrir quais usuários estão usando a instância Informix, utilize o comando onstat -u , que exibe a saída parecida com esta:
Userthreads
address flags    sessid  user   tty   wait tout locks nreads  nwrites
a270010  ---P--D 0       root   -     0    0    0    324     166
a270444  ---P--F 0       root   -     0    0    0    0       0
a270878  ---P--B 4       root   -     0    0    0    0       3
a270cac  ---P--D 0       root   -     0    0    0    0       0
a270cbd  ---P--D 49      ron    -     0    0    0    3224    1423
a270cbd  ---P--D 50      bob    -     0    0    0    7201    1244
6 active, 128 total, 38 maximum concurrent
Uma rápido observação sobre esta saída pode dizer quem tem o maior número de leituras e gravações. Em outs de impressão maior, pode ser mais difícil de monitorar, no entanto. A última linha da saída pode ajudar a decidir se o número de usuários é o problema.

Para acompanhar, através de uma consulta particular, você pode usar o ID da sessão ("sessid") que é exibido aqui. Executar o comando onstat -g ses sesid e ver as informações sobre a sessão particular, incluindo a consulta e informações mais detalhadas. Por exemplo, a seguir mostra parte da saída do comando onstat-g ses 49:
session                         #RSAM   total    used
id    user   tty   pid  hostname threads memory   memory
49    ron    4     9798 sparky   1      65536    55480
                                  
tid   name     rstcb    flags  curstk  status        
412   sqlexec   a271514  Y--P--- 1872    cond wait(netnorm)  
                                  
Memory pools  count 1                      
name       class addr    totalsize  freesize  #allocfrag  #freefrag
374        V     a42a010 65536      10056     156        8
...
Sess SQL        Current      Iso  Lock     SQL  ISAM  F.E.
Id   Stmt type   Database     Lvl Mode      ERR  ERR  Vers
374  SELECT      stores7      NL  Not Wait  0    0    7.14
                                  
Current statement name : slctcur                  
                                  
Current SQL statement :                        
select * from customer                      
                                  
Last parsed SQL statement :                      
select * from customer
Há vários campos úteis na saída deste comando, incluindo a consulta, a memória do usuário, e outras informações. Você pode obter uma parte menor da mesma informação usando o comando onstat -g sql sesid . Para obter informações para uma determinada linha dentro da sessão, o comando onstat -g tpf tid onde tid é o valor mostrado na saída do comando acima.

Você também pode usar onstat -g wai para encontrar segmentos que estão aguardando para serem processados ​​pelo Informix. Usando onstat -g rea mostra tópicos que estão prontos para ser executado.

Usando Utilitários para Monitoramento de Desempenho

Outra forma de monitorar o desempenho e a saúde de seus sistemas é através de ferramentas de monitoramento. Estas ferramentas são projetados para monitorar coisas como uso de CPU, uso de memória, e possíveis problemas. Algumas ferramentas fornecem suporte para assistir o desempenho do banco de dados, incluindo o monitoramento de consulta, uso do dbspace, e muito mais. Escolher uma ferramenta automatizada como este pode salvar um monte de etapas manuais que já foi mencionado anteriormente. Estas ferramentas são feitas para automatizar estas tarefas e pode simplificar muito a vida de um administrador.

Há muitas opções nessas ferramentas e mais se tornando disponíveis. Algumas das ferramentas fornecidas pelo Informix incluem onperf, oncockpit, and Informix Enterprise Command Center (IECC). IECC. O IECC é uma ferramenta baseada em GUI que simplifica as operações administrativas e de controle. Além disso, existem várias ferramentas de terceiros, como ferramentas da Compuware ECO e BMC Patrol.

Usando o banco de dados sysmaster

O banco de dados sysmaster é criado na shared memory (memória compartilhada) quando você inicia o Informix Dynamic Server. Ele fornece uma boa parte da informação fornecida pelo comando "on". Usando o banco sysmaster ele permite que você construa suas próprias consultas e programas que fazem monitoramento. Por exemplo, você pode criar um programa que irá acompanhar grande parte das informações fornecidas pelo comando onstat -p (perfil do sistema). Isso permitirá que você criar suas próprias condições de alarme e processá-los em conformidade. Para uma descrição completa de como usar sysmaster, consulte o artigo "SMI and the sysmaster Database" por Lester Knutsen que apareceu em notas técnicas Tech Notes Volume 8, Issue 4, 1998 (posted on TechInfo Center).

Monitorando o Sistema Operacional e da Rede

É claro, problemas de desempenho pode ocorrer em muitos níveis diferentes. Se você está tendo tempo de resposta extremamente lento, por exemplo, o problema pode residir na rede. Da mesma forma, se a instância Informix está começando a ter problemas para acessar alguns dos drives de disco, você pode estar tendo erros de hardware. Finalmente, se o sistema está com falta de memória ou processador, você pode olhar para outras coisas que estão em execução no sistema operacional. Lembre-se que o Informix é o compartilhamento de disco, memória e CPU com o sistema operacional, que necessita de seus próprios recursos. Tenha em mente, porém, que eles não estão disponíveis em todos os sistemas UNIX. Se eles não estiverem disponíveis, descobrir quais utilitários do seu sistema oferece. Você pode obter informações que você precisa usando os comandos UNIX.

Estes comandos podem dar-lhe informações que você pode usar em conjunto com as informações que você recebe do Informix. Entre os dois, você deve ter uma boa idéia se o problema é um problema de configuração Informix ou apenas falta de recursos (como CPU).

A maioria dos sistemas operacionais possuem seus próprios arquivos de log. Esses arquivos podem mostrar erros que mais tarde poderiam afetar Informix (I / O erro, por exemplo). Eles também devem ser regularmente monitorada.

Não se esqueça que as aplicações podem estar causando os problemas. Seguindo alguns dos métodos indicados para acompanhar as sessões do usuário, você pode rastrear o SQL original que estava sendo executado pelo usuário. Se você encontrar usuários que estão fazendo certas consultas (varredura seqüencial, por exemplo), você pode querer sugerir índices ou alterações em suas aplicações.

Watching the Operating System and Network

Alguns comandos de manutenção em curso devem ser realizadas, mas não tão frequentemente como muitos dos comandos que já discutimos. Estes comandos podem ser melhor executadas em um trabalho em lotes que executa em uma programação regular. Esta próxima seção desribes alguns desses comandos.

Update Statistic

As estatísticas de seu banco de dados Informix ajuda o trabalho otimizador de consultas de forma mais eficaz. As estatísticas dizem ao Informix que tipo de dados está no banco de dados e que os seus valores aproximados. Esta informação ajuda o otimizador de consultas encontrar a melhor maneira de fazer consultas. Algumas estatísticas comuns comandos de atualização são:
    update statistics medium distributions only;
    update statistics low for table customer;
    update statistics high for table customer(cust_nbr);
A estratégia para atualizar suas estatísticas devem ser escolhidos com cuidado. O "Informix Performance Guide", explica a estratégia adequada.

Verificando suas tabelas e índices

Às vezes no Informix as tabela e os dados de índice podem ser danificados. Se os dado danificado não são acessados, ninguém pode tornar-se ciente do problema, até mais dano ocorreu. Ambos os casos não é bom. Uma maneira de evitar isso é para verificar regularmente suas tabelas e índices, emitindo os seguintes comandos:
oncheck -cD (nome_do_banco)   -- checks data pages and answers no to questions
oncheck -cI (nome_do_banco)   -- checks index pages and answers no to questions
Observe o "n" fornecido para cada comando. Isto instrui oncheck a ignorar qualquer pergunta sobre a tentativa de corrigir os dados se um erro for encontrado. Se você achar que você precisa para corrigir os erros, você pode executar oncheck novamente e atender manualmente ou executar o comando com "y" em vez de "n" no final.

Dica: Em alguns casos, pode ser difícil ou impossível para oncheck para corrigir os problemas. Se o problema é um índice, que pode ser possível dar um drop e recriar. Se for páginas de dados, você pode tentar descarregar os dados, mas pode não ser capaz de descarregar todos os seus dados.

Verificação de informações do sistema

Cada instância Informix tem informações importantes que está contido em suas "reserved pages" (páginas reservadas). Estas páginas são um roteiro para os dados na instância Informix, incluindo informações sobre cada chuck, checkpoints, arquivos, configuração de instância em geral (deve corresponder ONCONFIG), e outras estatísticas. Se as páginas reservadas são danificados, o Informix pode ter sérios problemas. Para validar e, possivelmente, corrigir problemas, use o comando oncheck -cr . Apenas para mostrar as páginas reservadas, use oncheck -pr.

Cada banco de dados tem um conjunto de catálogos do sistema que contém informações sobre suas tabelas, índices e outros itens no banco de dados. Esses catálogos são tabelas que começam com "sys". É crucial que esses catálogos têm a informação apropriada, se danificadas, podem fazer um banco de dados inteiro inacessível. Para verificar os catálogos, execute o comando SQL "update statistics" em cada banco de dados na instância e, em seguida, executar o comando oncheck -cc.

Revisando a Estrutura de Tabelas: Extents and Otherwise

Durante um período de tempo, os dados em tabelas podem ser distribuídos por várias unidades de disco/ ou misturar com dados de várias outras tabelas. A maneira de evitar isso é para criar o espaço adequado extensões disco dedicado a algumas tabelas.

Tabelas com as extensões demais podem ter um impacto negativo sobre os tempos de resposta desde que os dados Informix está espalhado em muitas partes diferentes do disco. Um bom número máximo de extensões é de 10. Você pode evitar esse problema através da criação de extensões que são grandes o suficiente para manter os seus dados. A extensão pode ser criado com o quadro ou acrescentado mais tarde com a tabela nas declarações de create table ou alter table. Para monitorar a quantidade de extensões, tente executar o comando oncheck -pe, que irá exibir uma saída semelhante ao seguinte:
... Disk usage for Chunk 1                Start    Length
        ----------------------------      -------  ----------
      stores7:customer                    1000     13
      stores7:item                        1250     12
      stores7:customer                    3000     2500
Se você ver uma tabela que mostra muitas vezes esta saída, você pode considerar fazer o backup, dropping, e re-criando em uma tabela com o um bom tamanho de extensão inicial e no próximo.

O comando oncheck -pt irá mostrar as informações resumidas de todas as tabelas. Esta informação pode dizer quantas extensões cada tabela tem, como no exemplo a seguir:
TBLspace sysmaster:informix.syscolumns
  Physical Address    100011  
  Creation date    07/01/97 12:15:13
  TBLspace Flags    2    Row Locking
  Maximum row size    48    
  Number of special columns    0    
  Number of keys    1    
  Number of extents    7    
  Current serial value    1    
  First extent size    8    
  Next extent size    8    
  Number of pages allocated    64    
  Number of pages used    61    
  Number of data pages    34    
  Number of rows    1700  
  Partition partnum    1048580
Note que "Number of extents" é sete, ainda um número aceitável.

A última maneira de descobrir todos os tamanhos de extensão é a consulta a banco de dados sysmaster.

Correção e Resolução de Problemas

Você já aprendeu várias maneiras de monitorar seus servidores, observando o desempenho e prevenir problemas. Mas às vezes o problema é que virá, não importa o que você faz. É inevitável: as coisas vão mal . Aqui vamos discutir como abordar e corrigir alguns problemas comuns.

Há muitos erros que fará com que Informix pare imediatamente e fique off line, possivelmente causando danos aos seus dados e bases de dados. Possíveis problemas incluem:

- Problemas de hardware como disco e CPU.
- Erros internos Informix: páginas corrompidas, etc
- Erros de memória.
- Falhas no sistema operacional.
- Programas do usuário com erro gritantes.

Como administrador, você precisa estar preparado para lidar com qualquer um desses erros. Regra número um de um administrador é:

NÃO ENTRE EM PÂNICO;

Um bom número de falhas do sistema não causam danos aos dados e são recuperados através do sistema de recuperação de Informix poderoso.

Verificando o Log das Mensagens

Por exemplo se o seu banco Informix fica Off Line, você deve primeiro verificar o log das ​​mensagens para ver o que aconteceu. Para exibir as últimas 20 linhas do log da mensagem, escreva onstat-m . Se você precisa ver mais do registo de mensagens, você pode usar um editor de texto ou outro comando.

Dica: As mensagens no log de ​​mensagens são listadas no guia do Informix Dynamic Server Administrator's guide.

Muitos detalhes sobre o erro são incluídas no registo de mensagens. Por exemplo, a menção de um "I/O error" é uma boa indicação de um problema com hardware.

Manipulação de falhas

A mensagem comum para falhas Informix indica uma "assertion failure". Uma falha de declaração é simplesmente uma mensagem do Informix afirmando que não poderia realizar uma operação necessária e precisou ficar Off. Esses erros muitas vezes exigem uma parada simples e de inicialização da instância, mas ainda deve ser investigado.

A partir da versão 7.30, Informix tenta capturar falhas de declaração e matar apenas que a sessão Informix, automaticamente salvando as informações de depuração necessário. Isso deve impedir de deixar de funcionar durante o Informix falhas de declaração. A falha, naturalmente, ser documentada no registro de mensagens para essa instância Informix.

Uma falha de declaração quase sempre cria um ou mais arquivos que dão informações completas sobre o erro. O arquivo mais comum é AF.nnn onde nnn é um número hexadecimal único. Outros arquivos possíveis são um arquivo de memória compartilhada (shm. nnn), um dump de memória de processos VP (gcore. nnn ), e um core dump regular. Os dados nestes arquivos podem não significar nada para você, mas eles são muito importantes para o suporte técnico do Informix.

Nota: Você pode configurar o que acontece durante uma falha de declaração através da definição de certos parâmetros no arquivo de ONCONFIG. Estes parâmetros começam com a palavra DUMP e incluem DUMPCORE, DUMPSHMEM, DUMPDIR e DUMPCNT. Definição desses parâmetros permite que as informações sobre a falha.

Se você definir a variável de ambiente AFDEBUG antes de inicializar Informix, o engine irá suspender o processamento, em vez de acidente durante muitos erros. Isso é útil porque permite que você execute certos comandos de diagnóstico como oncheck e onstat antes de levar o engine para down. Aqui está um exemplo de como fazer isso ao inicializar Informix:

AFEDEBUG=1; export AFDEBUG
oninit

Nota: Devido às melhorias para lidar com falha na afirmação de 7.3x, a definição AFDEBUG não é realmente necessário; Informix continuará executando e captura de erros de qualquer maneira. Nos casos raros, quando uma falha de declaração falhas Informix, no entanto, AFDEBUG ainda funcionará para suspender Informix processamento. Isso permite que você capture informações de erro antes de trazer para baixo o motor Informix.

Informix dá um monte de informações durante uma falha de declaração, muitas vezes, incluindo uma possível solução para o problema ("Ação: Rode 'oncheck CDI-6449916"). Certifique-se de analisar cuidadosamente esta informação para descobrir o que causou o problema, e se for o caso, tente a ação corretiva. Quando ocorre uma falha de declaração, você deve:

1 - Verifique o arquivo de log para encontrar o processo que causou a falha de declaração.

2 - Se a instância é suspenso, ou ainda on line, você pode executar certos comandos para recolher mais informações (em 7.3x, o engine deve permanecer online). A saída desses comandos devem ser guardados em um diretório criado para esta finalidade. Você pode usar estes para a sua própria história e para Informix suporte técnico. Alguns dos comandos recomendadas incluem:
onstat -u
onstat -g ses session_id_that_caused
onstat -g stk thread_id_within_session
onstat -g sts
onstat -g glo
onstat -g seg
onstat -g mem
3 - Olhar através do histórico do sistema falhas por um erro semelhante. Se for encontrado, observe o que a causou e como foi resolvido.

Dica: Se uma falha de declaração certos ocorre muitas vezes, há uma boa chance de que é por causa de um defeito na versão do Informix você está usando. Isso significa que algo em suas aplicações está a provocar o erro. Se este for o caso, tente ligar Informix suporte técnico ou obter uma versão atualizada do seu software Informix.

4 - Tentar determinar a causa do erro. Se você não conseguir determinar a causa, que poderia ser melhor acionar o suporte técnico do Informix neste momento. Se o seu engine está suspenso (via AFDEBUG ou não), o Informix pode executar diferentes comandos onstat e oncheck.

5 - Verifique se a instância Informix ainda está on-line, executando o comando onstat - na linha de comando UNIX. Se o status indica "On-Line", a instância ainda está em execução, se não, execute as seguintes três etapas.

6 - Tirar o banco/colocar no ar com o comandos onmode-ky . Às vezes isto não trazer Informix off-line. Se isso não acontecer, você terá que rodar o utilitario onclean - que tira/retorno no ar o banco do ar - quando ocorre esta situação do banco (não sair com o comando normal).
onclean -k -y
Rodando este comando
informix@informixva[demo_on]:/opt/IBM/informix/etc$ onclean -k -y
onclean: Cleaning up processes and resources for 'demo_on'...
- Looking for the master daemon process: 25945
- Looking for semaphore ID: 819201
- Looking for the shmem key: 52564801
- Looking for the shmem key: 52564802

informix@informixva[demo_on]:/opt/IBM/informix/etc$ onstat -
shared memory not initialized for INFORMIXSERVER 'demo_on'

informix@informixva[demo_on]:/opt/IBM/informix/etc$ oninit -v
Reading configuration file '/opt/IBM/informix/etc/onconfig.demo_on'...succeeded
Creating /INFORMIXTMP/.infxdirs...succeeded
Checking config parameters...succeeded
Allocating and attaching to shared memory...succeeded
Creating resident pool 10584 kbytes...succeeded
Allocating 100016 kbytes for buffer pool of 2K page size...succeeded
Creating infos file "/opt/IBM/informix/etc/.infos.demo_on"...succeeded
Linking conf file "/opt/IBM/informix/etc/.conf.demo_on"...succeeded
Initializing rhead structure...succeeded
Writing to infos file...succeeded
Initialization of Encryption...succeeded
Initializing ASF...succeeded
Initializing Dictionary Cache and SPL Routine Cache...succeeded
Bringing up ADM VP...succeeded
Creating VP classes...succeeded
Onlining 0 additional cpu vps...succeeded
Onlining 2 IO vps...succeeded
Forking main_loop thread...succeeded
Initializing DR structures...succeeded
Forking 1 'soctcp' listener threads...succeeded
Forking 1 'soctcp' listener threads...succeeded
Starting tracing...succeeded
Initializing 8 flushers...succeeded
Initializing SDS Server network connections...succeeded
Initializing log/checkpoint information...succeeded
Initializing dbspaces...succeeded
Opening primary chunks...succeeded
Opening mirror chunks...succeeded
Validating chunks...succeeded
Initialize Async Log Flusher...succeeded
Starting B-tree Scanner...succeeded
Initializing DBSPACETEMP list...succeeded
Checking database partition index...succeeded
Initializing dataskip structure...succeeded
Checking for temporary tables to drop...succeeded
Updating Global Row Counter...
Forking onmode_mon thread...succeeded
Creating periodic thread...succeeded
Starting scheduling system...succeeded
Verbose output complete: mode = 5

informix@informixva[demo_on]:/opt/IBM/informix/etc$ onstat -

IBM Informix Dynamic Server Version 11.70.UC2DE -- On-Line -- Up 00:00:14 -- 177036 Kbytes
7 - Na tentativa de trazer de volta o Informix online com o seu método usual (incluindo oninit). Se Informix vai direto de volta para o modo de erro, provavelmente é hora de chamar suporte técnico do Informix.

Dicas Importantes - Arquivos que o suporte técnico vai pedir;

7.1 - Se tiver arquivos de AF peque eles para enviar (AF + AFxxxxxs.rawstk)
[s106:informix]$/opt/informix/tmp> ls -la
total 130276
drwxrwx---  3 informix informix    4096 Sep 26 12:07 .
drwxr-xr-x 27 informix informix    4096 Sep 23 10:42 ..
drwxrwx---  2 root     informix    4096 Jun 27 21:11 0
-rw-rw----  1 informix informix 2873763 Sep 26 10:03 af.ad7a8476
-rw-rw----  1 informix informix  633636 Sep 26 09:56 af.ad7a8476.rawstk
7.2 - Pegar no log a data do dia do erro do online.log -- MSGPATH
[s343:informix]$/export/home/informix> cat $INFORMIXDIR/etc/onconfig | grep MSGPATH
# MSGPATH      - The path of the IDS message log file
MSGPATH         /export/home/informix/online.log 
7.3 - Dar o comando onstat -a e mande para um arquivo para enviar.
[s357:informix]$/export/home/informix> onstat -a > onstat_a
[s357:informix]$/export/home/informix>
Display do arquivo
[s357:informix]$/export/home/informix> ls -la onstat*
-rw-r--r-- 1 informix informix 1653631 Sep 26 12:49 onstat_a
[s357:informix]$/export/home/informix>
8 - Se o log de ​​mensagens sugeriu uma ação corretiva (oncheck -cDI, por exemplo), tente executar esse comando antes de permitir que os usuários on-line.

Na maioria das vezes, um dos três passos passos acima serão suficiente para trazer de volta Informix on-line e você não terá que levá-la ainda mais. Se não, você vai precisar para aplicar as habilidades de alguns administrador reais.

Usando o que você sabe: Senso Comum e Conhecimento de Trabalho

Depois de um tempo, os administradores do Informix desenvolvem um sexto sentido sobre os problemas. Através da experiência, você será capaz de reconhecer erros intuitivamente e saber como corrigi-los. Estes são o tipo de coisas que são difíceis de ensinar em um livro, pois eles vêm naturalmente. Mas é uma maneira de pensar.

Realmente considerar o que aconteceu e o que poderia ter causado. Pensar logicamente através das mensagens e das condições do sistema e tentar eliminar o óbvio. Considere o que aconteceu com o seu sistema no passado. Executar vários comandos Informix para tentar rastrear problemas. Lembre-se que alguns acidentes são causados ​​por problemas com a liberação no Informix atuais e suas aplicações. Mais uma vez, não entre em pânico e logicamente verifique o que possa ter ocorrido.

Segue-se uma anedota interessante de Clem Akins, engenheiro e Suporte Técnico do Informix. Observe como Clem seguiu os passos lógicos, mas teve que realmente improvisar para encontrar o problema:

"The error was from an Assert Fail due to a memory Segmentation Violation. The engine was given an address that was out of bounds, and it crashed. After one week of all-day-long, on-site effort we proved that the fault was with a part of the hard drive that was used for temp storage. Informix would write one address there, and retrieve another. The internal bounds checking is good enough to find the fault and bail out before corrupting any data. As the customer was a financial institution, they appreciated that, even after the hard time they gave us at first. We ran oncheck as it says to do, but found no errors. We examined the stack trace, and compared it to the optimizer source code that was running when it crashed. We sent the core dumps and .af files to Informix Advanced Support for further analysis. We reproduced the error using the stores7 database (though we had to make some of the tables several times bigger to see the error). Advanced Support finally built a machine exactly like the customer's, ran the exact query on the same data, and had no errors. Given that, we gave some heavy thought and long, thorough analysis and found the bad disk."

Essa história demonstra uma época em que o óbvio não resolveu o problema e levou improvisação real. Se algo simplesmente não faz sentido, começar a pensar em outras coisas que poderia ter causado o problema.

Chamando o Suporte Técnico Informix

Informix oferece excelente suporte técnico. Em alguns casos, ou você tem esgotado todas as suas idéias ou o problema não pode ser fixado por você. Isto é, quando você deve ligar para o suporte técnico. Certifique-se de que suas informações juntos antes de ligar. Mais uma vez, dar uma olhada as opiniões de Clem Akins.

"A coisa mais importante a fazer é tomar o ponto de vista do engenheiro de suporte Esta visão inclui coisas como.:

- Posso reproduzir o problema à vontade?
- Já pensei sobre o porquê de esse problema ocorre?
- Quais são as possíveis causas?
- Posso isolá-los e testá-los individualmente?
- O que mudou que causou o problema? (Sistema, rede, banco de dados de alterações, a aplicação?)


É o caso de teste o mais simples possível que irá reproduzir o problema? Será que se reproduzem no banco de dados stores7?

Será que se reproduzem apenas com SQL simples em vez de exigir código personalizado complexos ou aplicativos ou tabelas?

Tenho um contrato de dial-up no lugar com suporte Informix? (Gee, eu gostaria de ter pensado nisso durante o horário comercial ...) O que é o número do meu contrato de suporte (ou número de série do produto) e que tipo de apoio que eu tenho? É toda a minha informação de suporte pronto para fornecer a Informix?

Quando falo com o engenheiro de suporte vou soar como um profissional de TI que tem tomado todas as medidas razoáveis ​​para resolver o problema? Melhor ainda, como uma pessoa que também tem de suportar código e que pensa sobre a pobre alma que está tentando ajudar-me do outro lado de um telefone! "

Restauração de um backup

Certos erros serão simplesmente irrecuperável. Nestes tempos, você pode ver o temido "restaurar a partir de um arquivo" erro. Neste ponto, o administrador vai olhar como um herói se tivesse implementado um backup forte e plano de recuperação (que é claro que todos nós fazemos!).

Atenção: Às vezes, uma mensagem de erro Informix irá sugerir "restauração de um backup." Isso nem sempre é uma afirmação verdadeira! Muitas vezes, é apenas uma questão de o engine Informix temporariamente confuso sobre o que está acontecendo. Mesmo quando a "restaurar a partir de uma mensagem de backup" é exibida, eu sugiro fortemente a passar por todas as etapas para tentar obter a instância de volta na linha. Se isso não funcionar, tente chamar o suporte técnico antes de fazer a restauração, o que poderia causar uma grande perda de dados.

Existem dois tipos de restaurações (quentes e frias). O tipo que você escolher depende do seu erro. Consulte a documentação do Informix para a estratégia de backup que você está usando ( onbar , ontape , onarchive , etc.)

A quantidade de dados de restaurar vai depender do seu nível de backup. De um modo geral, o processo é:

- Restaurar o backup no nível 0-passado.
- Restaurar todos os backups de nível 1 e nível 2 desde o nível 0, se houver.
- Restaurar todos os logs lógica apropriada, se houver.
- Se você não estiver usando o log, você só pode ir tão longe como o passo 2. O ponto de restauração depende de sua agenda de backup. Se você precisa chegar tão perto quanto possível do ponto-in-time do banco de dados, você precisa ter implementado bancos de dados registrados e devidamente backup de todos os logs lógicos.


Sumário

Este capítulo descreveu o processo em curso de manutenção de seus servidores Informix. Você aprendeu vários comandos que pode ser feito em uma base contínua para assistir seus servidores para possíveis problemas ou gargalos. E você aprendeu o melhor método para contatar o suporte Informix em tempos para baixo.

Este artigo é um excerto de um capítulo nos próximos Informix Handbook deve sair ainda este ano. O Manual Informix promete ser uma solução global, guia de referência deve ter a produtos Informix. O livro fornece informações bastante detalhadas e informações de referência sobre vários produtos e assuntos.

Creditos - Troubleshooting and Maintaining Your Servers

0 comentários:

Enviar um comentário