quinta-feira, 26 de agosto de 2010

BRIUG - Brazilian Informix Users Group

Ola,

Ja ha algum tempo sem blogar estou aqui novamente, a copa do mundo se foi e o Brasil nao ganhou nada, mas pelo visto meu amigo Cesar trabalhou muito e nao assistiu a copa do mundo.

A novidade de hoje que nasceu oficialmente o BRIUG (Brazilian Informix Users Group), o acesso ao portal do grupo pode ser feito atraves de: http://www.briug.org/

Um dos objetivo do grupo e integrar a comunidade de usuarios Informix em lingua-portuguesa, nossos amigos Fernando Nunes e Sergio Ferreira suportam o BRIUG.

Mas voce deve estar se perguntando "porque o Miguel Carbone nomeou o Grupo em Ingles?"

Eu tenho algumas teorias:

1. Em portugues ficaria horrivel "Grupo Brasileiro de Usuarios Informix"!
2. BRI lembra BRIC!! Talvez um dia o grupo possa incluir usuarios da Russia e da India
3. Talvez tenha sido coisa do Miguel mesmo.

Quanto a mim continuarei blogando no ASKPONTES e tambem no BRIUG, alias estou estudando a tecnologia Flashdrive... (opa ja pensei no proximo post)

Saludos

Vagner

quarta-feira, 26 de maio de 2010

Analisando o Buffer Cache do Informix

Olá,

Hoje vou postar um recurso que hoje em dia é pouco utilizado, como o preço de memória caiu não é mais usual a análise da ocupação do buffer cache no dia a dia do DBA, é feita apenas a valição do PCT de Read/Write, está formula funciona mas não em todos os casos.

Vamos lá, o primeiro passo é executar o onstat -P que irá exibir um output conforme abaixo:

partnum total btree data other resident dirty
0 215 8 158 49 0 58
1048578 2 1 1 0 0 0
1048579 9 5 4 0 0 0
1048584 4 2 2 0 0 0
1048585 2 1 1 0 0 0
1048747 1 1 0 0 0 0
3145776 60 8 52 0 0 0
9437190 177 177 0 0 0 0
10485762 26826 0 26826 0 0 0
.......
Totals: 300000 53097 246852 51 60 3444

Vejam a ultima coluna nomeada como DIRTY, calcule quanto esse coluna representa do total de paginas do buffer cache, se este valor for muito alto para uma tabela isto indica uma aplicação não performatica e deve ser revista.

Outro ponto é a coluna DATA, esta indica a quantidade de paginas de dados alocadas para a tabela , se este valor for igual ao total de paginas alocadas isto indica que ou a tabela sofre sequential scan ou tem alguma aplicação não performática acessando a mesma, causando a HIGH_Priority na LRU mantendo a mesma residente em memória.

A coluna RESIDENT indica que foi executado um comando para forçar a residência da tabela em memória, a sintaxe do comando é:

set table your_table memory_resident/set index your_index memory_resident

Lembre-se que este comando deve ser usado em casos extremos, se você usou se resolveu seu problema já é indicio de que há algo errado, não devemos fazer o uso sem controle deste recurso.

A coluna BTREE indica a quantidade de paginas de indices, para identificarmos o objeto que está alocado no buffer cache devemos pegar a coluna PARTNUM e pesquisar na sysmaster:systabnames conforme abaixo:

select tabname, ti_nrows, ti_nptotal
from sysmaster:systabnames, sysmaster:systabinfo
where partnum=1048585

Lembre-se , indices detachados ou particionados também possuem partnum portanto no onstat -P temos o resumo de utilização de partitions, sendo tabelas e indices.

Há alguns anos desenvolvi um script e postei no Repositório do IIUG, o mesmo está no link:

http://www.iiug.org/software/archive/mon_buffer

By the way, dentro do repositorio do IIUG podemos encontramos muito scripts interessantes, este foram desenvolvidos por DBAS em situações reais do dia-a-dia de um DBA.

Segue abaixo o link:
http://www.iiug.org/software/index_DBA.html

A partir do Informix 11 temos é possivel configurar multiplos buffers, um para cada tamanho de pagina (4K, 8K ,16K), para ambientes OLTP é recomendado o uso de paginas de 8K e para DSS/DW é recomendado o uso de páginas de 16K.

O importante para o DBA é ter o conceito do funcionamento da buffer cache, seguindo este artigo teriamos outras coisas para estudar (LRU, LIGHT SCAN, LIGHT APPEND) mas isto ficará para outro post.

Vagner

terça-feira, 13 de abril de 2010

Monitorando data/hora de último acesso em objetos

Olá a todos,

A carta traduzida do VP da IBM gerou um volume alto de acessos no meu blog, estou postando outro artigo para dar um quebrada no gelo, não é nada novo no Informix porém surgiu de uma necessidade diária de DBAS.

Para uma necessidade especifica elaborei um script para monitorar a data/hora de acesso.

Segue abaixo a estrutura da tabela:

create table dba_tab_stat
(objpartnum integer,
objname varchar(28),
objcreated date,
objlastacc datetime year to second
)

create unique index key001dbatabstat on dba_tab_stat (objpartnum,objname);
create index key002dbatabstat on dba_tab_stat (objname);

O shell script deve ser construido com o codigo abaixo:

vi mon_read.sh

------------------------------------------------------------------------------------

while true
do

dbaccess ibs << FIM


select partnum, tabname, today created
from sysmaster:systabnames a
where not exists (select 1 from dba_tab_stat where objname = a.tabname)
into temp x with no log;


insert into ibs:dba_tab_stat (objpartnum, objname, objcreated, objlastacc)
select *, '' from x
where partnum not in( select dbsnum*1048576 from sysmaster:sysdbspaces
where is_temp=1);

select * from sysmaster:sysptprof into temp prof1 with no log;
!sleep 60
select * from sysmaster:sysptprof into temp prof2 with no log;

create index ix01prof1 on prof1(partnum);
update statistics low for table prof1;

select partnum, tabname, bufreads
from prof2
where not exists (select 1 from prof1 where prof1.partnum=prof2.partnum )
into temp t_buffreads with no log;

insert into t_buffreads
select partnum, tabname, bufreads
from prof2
where exists
(select 1 from prof1 where prof1.partnum=prof2.partnum and prof2.bufreads!=prof1.bufreads);

update ibs:dba_tab_stat set objlastacc=current
where exists (select 1 from t_buffreads
where objpartnum=t_buffreads.partnum
and objname=t_buffreads.tabname)

FIM

done
------------------------------------------------------------------------------------

chmod +x mon_read.sh

./mon_read.sh

O shell ficara executando em loop, para consultar a data/hora de ultimo acesso das tabelas é só executar a query abaixo:

select objpartnum, objname, objlastacc
from dba_tab_stat
where objlastacc is not null

objpartnum objname objlastacc

1048579 tab_1048579 2010-04-13 19:12:02
1048585 tab_1048585 2010-04-13 19:11:13
1048597 tab_1048597 2010-04-13 19:08:58
7340064 tab_7340064 2010-04-13 15:54:35
9437190 tab_9437190 2010-04-13 15:57:39
10485762 tab_10485762 2010-04-13 19:08:58
11534339 tab_11534339 2010-04-13 19:11:13
11534341 tab_11534341 2010-04-13 19:11:13
11534347 tab_11534347 2010-04-13 17:33:57
11534349 tab_11534349 2010-04-13 17:11:13
11534351 tab_11534351 2010-04-13 19:11:13
11534353 tab_11534353 2010-04-13 19:08:58


O Script está porém pode ser melhorado, talvez a data/hora de última gravação no objeto, é possivel usar a mesma logica para ter regsitro de ultimo acesso em procedures.

Espero que este tipo de informação faça parte do catálogo do Informix na versão Panther.

Frequentemente ouço queixas dos DBAS SQL Server de algumas informações que o Informix não possue, no caso do Informix o produto foi criado para que os dbas criem suas próprias ferramentas.

Em uma nova versão do script seria interessante converte para a versão 11 do Informix e usar as funções task() e sensor() mas isto vai dar um trabalho e deixo a cargo do Cesar , meu camarada de Jundiai).

Vagner

quarta-feira, 31 de março de 2010

Carta ao Missionários

Abaixo segue carta em portugues do Vice-President de Information Management da IBM:

http://www.iiug.org/Insider/RThomas_Letter_Portuguese.pdf


À Nossa Comunidade Informix e Clientes:

Eu gostaria de iniciar esta carta escrevendo sobre George Dantzig. Eu não o
conheço pessoalmente a nunca tive a chance de encontrá-lo, mas sua historia é
muito interessante. George Dantzig era um estudante na Universidade de
Stanford. Como muitos de nós, George não sabia exatamente o que gostaria de
fazer após sua vida acadêmica, mas estava motivado e inspirado a fazer algo
extraordinário.

Finalmente, ele decidiu iniciar com um cargo na Faculdade de Stanford. Para conseguir esta posição era requerido que ele fosse aprovado nas provas finais.

Na manhã do teste, ele foi acordado pelo barulho de seus companheiros de quarto. Ele não tinha ouvido seu despertador, e ainda estava na cama, 20 minutos após sua prova começar. Ele correu pelo campus, com as mesmas roupas utilizadas na noite anterior, chegando no local do exame muito atrasado.

Quando se sentou, percebeu que faria um teste com seis questões escritas, mais duas questões que estavam escritas na lousa. Ele resolveu os seis problemas escritos e estava muito satisfeito em relação ao seu desempenho ate o momento. Contudo, quando ele foi para os problemas da lousa, ele percebeu que estava em um beco sem saída. Uma vez que todos terminavam e entregavam seus testes, ele pediu ao professor que lhe
concedesse mais tempo para os dois problemas, que lhe concedeu até a meia noite. Chegando a meia noite, desanimado, ele entregou seu teste, e havia resolvido apenas uma das duas ultimas questões.

Na manhã seguinte George foi acordado com um telefonema de seu professor, cumprimentando George pelo seu incrível desempenho. Ele havia resolvido 1 dos dois problemas escritos pelo professor na lousa. O que George não sabia era que quando o professor passou os problemas para a turma, ele havia mencionado que os dois problemas, que não tinham solução até o momento (“nem mesmo Einstein havia resolvido estes problemas”).

George não tinha o conhecimento (nem a noção) do que era possível acontecer no dia que ele entrou na sala de aula. Dizendo de maneira diferente, ele não foi influenciado pelos o que os tão chamados experts acreditavam ser possível ou não. George apenas acreditava, e realizou com bilhantismo.

Assim como ao escrever esta primeira carta para a Comunidade Informix (nossos Clientes, Parceiros e usuários), eu me encontrei numa situação similar a de George. Eu não tenho a pretensão de ser um expert em Informix ou de ter uma longa experiência nesta tecnologia (eu não tenho!). E não fui influenciado pelo o que deveria ter acontecido, ou deveria ter sido no decorrer da historia do Informix (Eu já havia lido sobre isto).

Contudo, Eu tenho o otimismo de uma pessoa, avaliando esta historia por uma nova perspectiva. Eu acredito no futuro do Informix, como tecnologia e negócio. Eu, juntamente com a IBM, estamos comprometidos com o sucesso do Informix. Se você esta disposto a investir alguns minutos lendo esta carta, vou compartilhar com você como nós planejamos investir para garantir o crescimento desta tecnologia.
***

Assim como eu gastei alguns meses pesquisando, aprendendo e conversando
com muitas pessoas sobre o status do Informix, uma coisa me impressionou:

uma paixão permanente que sempre existiu ao redor desta tecnologia.

Clientes a adoram, parceiros a adoram, usuários a adoram. Todo mundo adora
o Informix!! Juntamente com esta paixão sem igual, eu levantei algumas
questões. Muitas delas quando confrontadas eram válidas.

Informix é estratégico para a IBM?
Como podemos aumentar a capacitação ao redor do Informix?
Por que a IBM não fala do Informix publicamente?
Qual é o posicionamento do informix no mercado?


Todas estas questões são justas. Nós estamos focados em garantir que cada
uma destas questões sejam respondidas com ações, ao invés de meras
palavras. Na verdade, nossas respostas a estas e outras questões, irão vir na
forma de uma estratégia de 3 anos para o Informix que será descrita aqui.
Informix tem um histórico que fala por si mesmo. Ao longo dos anos, o
informix foi classificado como o #1 em satisfação do cliente por duas vezes
(2008/2009 pela VendorRate) e premiado com 56 patentes por inovações. Nós
estamos orgulhosos de ter recebidos estes prêmios e elogios e isto é uma
comprovação da paixão mencionada anteriormente.

Isto levanta uma importante questão a todos: Dada à paixão pelo Informix, sua história, seu sucesso atual, e os inúmeros clientes que continuam a optar pelo Informix, o que a IBM, e a Comunidade Informix pode fazer para impulsionar o sucesso do Informix no Mercado?
***
Informix vai continuar a crescer, como tem acontecido nos últimos 5 anos, em primeiro lugar, vamos preservar o que o tornou grande, enquanto também expandimos para novas áreas, tendo uma abordagem mais agressiva em vendas, marketing e tecnologia. Existem 4 pontos que serão nossas diretrizes para o futuro:

Encantando a Base InstaladaComo mencionado acima, O Informix continua a impressionar pela perspectiva de satisfação do cliente. Nossa grandeza esta baseada e construída ao redor e pelos nossos clientes e, nós iremos enfatiza isto, em todas nossas atividades daqui para frente.

Isto se inicia ouvindo, e muito mais importante que isto, compreendendo o que é critico para nossos clientes. Recebemos pedidos de ofertas de suporte estendido e flexível, suporte abrangente às aplicações e inovação contínua.

Nós concordamos com estes pedidos e já iniciamos a executar cada um deles.

Construir uma estratégia diferenciada
Nós acreditamos que é importante esclarecer como e onde o informix esta posicionado na indústria de software.

Primeiramente ele esta posicionado em sua base instalada. Em outras palavras, não é simplesmente econômico (ou não apropriado gerencia de risco) que os usuários atuais considerem alternativas.

De fato, Eu desafiei a todos a me provar o ROI por detrás de uma mudança de plataforma para alguém que esta usando Informix atualmente.

Em segundo lugar, Informix continuará o ter foco na indústria ao qual é dominante hoje em dia (telecomunicações e varejo) e expandira onde já temos uma forte presença entretenimento e saúde).

Em terceiro lugar, Informix irá a continuar a ser a base de dados escolhida para as
aplicações embarcadas. O número de eletrônicos, empresas de saúde e empresas de rede que continuam a mudar para informix é impressionante. O problema é que a maioria do mercado não sabe disso pois o informix é leve e invisível.

Em quarto lugar, iremos continuar a focar o Informix para o “middle-market”. Empresas que necessitam de infraestutura que “simplesmente funcione”, com administração-nula, Informix é a grande solução.

Criar uma cultura Pró ativaTemos que re-energizar a Comunidade Informix, dentro e fora da IBM. Novas
ofertas com uma clara diferenciação são ambos passos para a direção correta.
Contudo, para darmos um passo mais longe, temos que focar em capacitação
técnica, laboratórios hands-on, comprometimento dos nossos laboratórios,
centros de excelência, benchmarks competitivos e uma maior consciência.

Vamos aumentar o volume e necessitamos de nossa comunidade de parceiros,
clientes e usuários para ajudar.

Construir um fluxo de Novas Receitas
Como em qualquer outro negócio, nada é mais importante do que seus clientes atuais. Contudo, para continuar a crescer e prosperar temos que avançar em novas áreas.

Alinhado ao posicionamento descrito acima, a IBM irá apostar em cada uma destas áreas. Assim como direcionamos nosso foco ao suporte à aplicações, iremos iniciar com os muitos produtos que a IBM adquiriu ao longo dos anos, e alguns deles ainda não suportam Informix.

Isto por si só, abre um novo cenário de negócios para o Informix e para novas oportunidades e inovações em nossos clientes. Por último, vamos garantir que iremos triplicar o investimento e nosso trabalho em clientes no mercado embarcado. Como
mencionado anteriormente, é um mercado fértil, onde só a IBM pode juntar a tecnologia (Informix) e os sistemas aos sistemas de arquitetura que os clientes demandam.

Por último, iremos garantir que os Produtos Informix sejam empacotados corretamente, para garantir as necessidades de nossos desenvolvedores, clientes sejam eles pequenos, médios ou grandes corporações.

Executar estes 4 prontos não é um evento mas sim um processo que será executado ao longo de 3 anos, e além. Nós acreditamos que estas medidas são passos acertados para garantir o futuro e capitalizar o crescimento gerado nos últimos 5 anos. Tomaremos uma atitude disciplinada para garantir que estas ações sejam executadas, da maneira mais rápida possível, sem sacrificar a qualidade ou foco em tudo o que fizermos.
***
Estamos orgulhosos do Informx e gratos por nossa leal comunidade. Nós nem sempre fomos perfeitos em nossos atos no passado, mas os negócios continuaram crescendo. Eu sei que ainda há alguns que duvidam, mas peço que mantenham a mente aberta. Eu acredito no que estamos fazendo e confiante que estes passos estão certos.

Vou manter contato com vocês regularmente, mas se quiserem atualizações freqüentes de nosso progresso, os incentivo a visitar o blog de Bruce Weed’s (http://bruceweed.wordpress.com/ ).

Eu realmente incentivo a todos a visitarem http://iiug.org/president e compartilhar comigo suas duvidas e comentários. Nestes primeiros meses de trabalho temos nos esforçado para manter a transparência e a abertura.

Qualquer coisa que desejar compartilhar será de grande valia para mim e para
toda a comunidade Continuamos comprometidos com o Informix e focados em liderar, ou orientar cada um dos pontos que identifiquei.

Não podemos fazer nada disto sem o apoio e o suporte da comunidade Informix: nossos clientes, parceiros e usuários.

A Comunidade Informix não pode ser um espectador nesta jornada, necessitamos de sua ajuda e orientação em cada um destes pontos.

Agradecemos a sua fidelidade e lealdade e esperamos que compartilhem de nosso otimismo para com o futuro. Estou ansioso para encontrá-los em Abril na Conferência do IIUG.

Sincerely,

Robert D. Thomas
Vice President, Information Management
IBM Software Group
Translated to Portuguese by Miguel Carbone (IIUG Board of Directors
)

quinta-feira, 11 de março de 2010

Informix Visionary

Olá,

Nesta ultima semana estive em uma palestra de um fornecedor e assisti a um show de dashboards, era indicador e graficos para todo igual, era a visão dos sonhos de um executivo.

Durante a apresentacao lembrei de alguns projetos que eu havia participado e nao tive como nao lembrar do Informix Visionary.

Para quem nunca ouviu falar deste produto ele foi desenvolvido pela Informix na gestão do Dr Michael StoneBracker quando o mesmo foi CTO da Informix Corp.

Enfim , em meados do ano 2000, apenas um ano antes da aquisiçao da Informix, eu estava eu aqui na America do Sul fazendo pré-venda desse produto, coisa de louco, alias a única pessoa que conheci que trabalhou com este produto foi a Roseli da própria Informix Brasil, alias tenho que falar do Dirceu que era o cliente neste projeto, vou arriscar dizer que ele foi um dos primeiros DBAs Informix no Brasil. o cara é bom.

Lembro que na época a dificuldade era muito grande de divulgar o Visionary, faltava a cultura de dashboards por parte da empresas brasileiras, o que eu mais via eram gráficos gerados por planilhas excel e colados na parede.

Atualmente quando visito alguma empresa logo me mostram um televisor de LCD ou uma imagem projetada na parede com Dashboards coloridos.

Resolvi fazr uma pesquisa no google para saber o qoe aconteceu com o Informix Visionary e para minha supresa o produto ainda existe.

Vejam o link abaixo:
http://www.rocketsoftware.com/category/business-intelligence

Em meados de 2004 a Rocket Software (Business Partner IBM) comprou o Visionary da IBM, e não parou por ai, recentemente a Rocket Software comprou a tecnologia U2.

Então a IBM vendeu parte de sua tecnologia?

Sim, e não parou por ai, dpois de um tempo a IBM fez a doação de parte do código fonte do CloudScape para Fundação Apache e ai surgiu o Derby DB.

Em apenas um artigo citei 3 tecnologias da Informix que ainda estão vivas e em pleno funcionamento.

Acreditem ainda suporto o Informix 7.31.FD9 !!! Vai bem e obrigado!!!

Quem sabe qual será o destino final do Informix?

Num mundo globalizado e cheio de incertezas tudo é possivel, vamos aguardar.

Vagner

quinta-feira, 7 de janeiro de 2010

Restart de Listener

Nihao,

Ja está disponivel o Release FC6 do Informix 11, neste veio embutida uma feature muita simples mas com grande impacto para o DBA.

Em ambientes de missão critica com servidores de aplicações distribuidos é preciso planejar as portas de banco por onde essas aplicações irão se conectar, recomenda-se distribuir as portas de forma que quando um ambiente pare o outro continue no ar.

Caso algum aplicação (por exemplo uma aplicação Web) estoure o limite de conexções de uma porta do banco e simule um DOS (Denyal of Services) antigamente era necessário fazer um stop/start do banco para que o Listener voltasse a responder.

Após o Informix 9.40 foram embutidas 2 novos parametros:

LISTEN_TIMEOUT - determina o timeout da abertura da conexão TCP/IP, mesmo com a conexão em estado established e o thread alocado na instância isto não quer dizer que a conexão já foi estabelecida.

MAX_INCOMPLETE_CONNECTIONS - determina a quantidade de threads em status de abertua de conexão que serão permitidos antes do Informix comecar a descartar as conexões.

Antes desta implementação o Informix possuia apenas um listener thread (thread responsavel pela abertura de conexões), agora existem multiplos listener threads
(listen_authenticate).

Mais informações sobre o assunto pesquisar em:
http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.admin.doc/admin210.htm


Após um cenário onde uma aplicação causa estouro de requisições no listener muitas vezes podemos recuperar o ambiente apenas desligando a aplicação causadora e depois fazendo um restart no listener.

Agora no Informix 11.50.FC6 temos uma opção no onmode que permite manipular o status das portas (listener) sem a necessidade de parar toda a instancia.

>>-onmode-- -P--+-start---+--server_name-----------------------><
+-stop----+
'-restart-'


Esta feature tambem é util quando temos multiplas interfaces de rede no servidor, quando é necessário fazer a manutenção em apenas uma podemos indisponibilizar somente as aplicações que acessam esta interface.

Como falei anteriormente, esta é uma feature que poucos usam, porém em grandes ambientes de missão critica é muito importante, é mais um sinal que o Informix não é um banco de dados para Appliances ou ambientes pequenos, a cada release possui mais e mais features para manutenção online sem causar indisponibilidade de ambiente.

Saludos