Patrocinadores

Você está aquiLeitor de feeds

Leitor de feeds


System Administration Certification exam 918 for IBM Informix Dynamic Server 11 prep, Part 1– Instalação e Configuração do Informix

AJMoreti - qua, 09/05/2012 - 09:28

Arquivo de configuração

O arquivo de configuração: Unix/Linux

Os parâmetros de configuração do servidor são armazenadas em um arquivo localizado no diretório $INFORMIXDIR/etc.

Especifique o nome do arquivo, definindo a variável de ambiente ONCONFIG. Não especifique o caminho completo, somente o nome do arquivo.

Se a variável de ambiente ONCONFIG não está definido, o nome de arquivo padrão ONCONFIG é usado.

Exemplo:

export ONCONFIG=onconfig.prd

O arquivo de configuração contém muitos parâmetros diferentes que permitem que você configure seu servidor para as suas necessidades específicas. Alguns parâmetros são definidos no momento em que você configura o servidor pela primeira vez e, uma vez que o servidor foi inicializado pela primeira vez, alguns parâmetros não podem ser alterados. A maioria dos parâmetros , no entanto, podem ser modificados após a inicialização do servidor.

Abaixo  os seguintes parâmetros no arquivo de configuração deve ser configurado antes de um servidor ser inicializado porque o root dbspace contém as páginas reservadas, informações sobre todos os bancos de dados no servidor e bancos de dados que armazena suas atividades.

    • Root dbspace
    • Mensagens
    • Informações do Servidor
Root dbspace

Cada servidor deve ter um rootdbspace. Inicialmente, o root dbspace também contem o phyical e logical logs. No entanto, eles devem ser movidos mais tarde para outros dbspaces.

Configurando o root dbspace

ROOTNAME rootdbs #Root dbspace name
ROOTPATH /dev/online_root # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (kilobytes)
ROOTSIZE 300000 # Size of root dbspace (kilobytes)Esses parametros somente podem ser modificados antes de inicializar o servidor pela primeira vez. Não podem ser modificados os espaços alocados para o root dbspace durante a inicialização do servidor.
MensagemConfigurando o caminho das mensagens:
MSGPATH /var/log/idslog/online.log # System message log file path
CONSOLE /dev/console # System console message path

O servidor IDS prove dois destinos diferentes para as mensagens:



  • MSGPATH: este parametro indica o caminho e o nome do arquivo onde todas as mensagens serão gravadas. Este arquivo é criado quando o servidor é inicializado pela primeira vez, se ele não existir.
  • CONSOLE: este é o caminho onde é especificado onde o servidor ira monstrar as mensagens de console. Uma mensagem de console é muito importante para o administrador do servidor onde o banco de dados reside. Por exemplo, backup e restore requer uma troca de fita, essas mensagens são enviadas para a CONSOLE. Por padrão, este parametro é configurado com o dispositivo de conssole do servidor, porem pode ser configurado para enviar as mesagens para um arquivo.

Informação do SERVER

Configurando informação de um servidor especifico:

SERVERNUM #Unique id corresponding to an IDS server
DBSERVERNAME #Name of default database server name
DBSERVERALIASES #Names of additional database server names

Esses parâmetros devem ser definidos para que o servidor possa ser identificado exclusivamente no computador.


Informação dos Logs

LOGBUFF      #Size in kilobytes for the three logical-log buffers in shared memory
LOGFILES     #Number of logical-log files
LOGSIZE      #Size of logical-log files



PHYSBUFF     #Amount of shared memory reserved for the buffers
PHYSFILE     #Size of the initial physical log
PHYSDBS      #Name of the dbspace in which the physical log resides


Logical Logs

Os arquivos de Logical Logs são coleções de paginas contíguas no disco que são usados para armazenar os registros de transações para o servidor. Esses registros de transações são usados para explorar todas as alterações feitas na base de dados que foram criados em modo logging. Todos os bancos de dados compartilham do mesmo conjunto de arquivos de Logical Logs. Cada servidor deve ter no minimo três arquivos de Logical Logs.


Adicionando arquivos de Logical Logs manualmente:


Você pode adicionar arquivos de Logical Logs manualmente pelos seguintes motivos:



  • Para aumentar o espaço alocado em disco para os Logical Logs
  • Para alterar o tamanho dos arquivos de Logical Logs
  • Para completar uma transação aberta
  • Para mover arquivos de Logical Logs para uma dbspace diferente

As duas maneiras que você pode adicionar um arquivo de log lógico são:



  1. Para adicionar arquivos no final da lista usando o comando onparams –a
  2. Após o arquivo de Logical Log atual usando o comando onparams –a –i

O seguinte comando adiciona um arquivo de Logical Log até o fim da lista de arquivos de logs no dbspace dbslog, usando o tamanho de arquivo de log especificado pelo parametros de configuração LOGSIZE:

onparams -a –d dbslog

O seguinte comando adiciona arquivos de Logical Log de 1000KB após o arquivo de log atual no dbspace dbslog:

onparams -a -d logspace -s 1000 -i

Para adicionar um arquivo de Logical Log com um novo tamanho (nesse caso, 250KB), execute o comando abaixo:

onparams -a -d logspace -s 250

Você pode dropar um arquivo de Logical Log usando o seguinte comando:

onparams -d -l lognum -y

Você pode mover os arquivos de Logical Logs para:



  • Eliminar arquivos de Logical Logs do dbspace corrente
  • Adicionar arquivos de Logical Logs para uma nova dbspace

Estratégia para estimar o tamanho e os números de Logical Logs

É mais fácil de gerenciar arquivos de Logical Logs grandes do que muitos arquivos de Logical Logs pequenos.  Se os arquivos de Logical Logs não são suficientes, frequentemente checkpoints serão disparados, isso impacta diretamente na performance. Para aplicações que geram uma pequena quantidade de dados de log, começe com 10 arquivos de logs com o tamanho de 100MB. Se um grande número de objetos em uma blobspace são alterados frequentemente, você necessitara de backups frequentes para liberar espaçoss na blobspace.


A expressão a seguir fornece um exemplo de como calcular a configuração de espaço total para os logs, em kilobytes:

LOGSIZE = (((connections * maxrows) * rowsize) / 1024) / LOGFILES

A politica de Objetivo de Tempo de Recuperação (RTO – Recovery Time Objective) determina a tolerância de perda de dados em caso de uma falha do servidor. Se esta politica é necessária,



  1. Utilize backups automaticos de logs sempre que um arquivo de log encher
  2. Utilize o agendador para criar tarefas que faça backup automatico de logs em determinados intervalos de tempo
  3. Se o espaço de log ficar cheio antes dos logs serem bacapeados, adicione novos arquivos de logs para permitir a continuidade do processamento das transações
  4. Utilize o agendador para adicionar tarefas para detectar a situação acima e adicionar logs automaticamente

Physical Log

O servidor tem um log especial que é utilizado para fins de recuperação automática. Esses registros são chamados de Physical Log. O physical log é uma coleção de paginas contiguas no disco.


Quando uma página é lida em um buffer de memória compartilhada e modificada por um usuário, uma copia dessa pagina em sua condição original é gravada dentro do physical log. Essa copia de paginas é conhecida como “before image” (copia da pagina antes de sua alteração). Apenas a primeira mudança da pagina  em um buffer causa a gravação do before image no pysical log. Quaisquer alterações posteriores na mesma página não gravará novo before image para serem salvas no physical log. Estas imagens são utilizados por um mecanismo automático de recuperação.


Você pode mover a localização e o tamanho do physical log usando o comando onparams.


A seguir o comando move o physical log para o dbspace dbsphyslog e redimenciona para 3000KB:

onparams -p -d dbspace1 -s 3000

Estimando o tamanho do Physical Log


O parametro de configuração PHYSFILE especifica o tamanho do physical log. O tamanho do physical log depende de:



  1. Da taxa de atividades gerada pelas transações do physical log
  2. Da utilização do parametro de configuração RTO_SERVER_RESTART para especificar um valor de tempo de recuperação

Checkpoints são acionados quando 75% do physical log esta cheio e o processamento precisa completar antes que o log fique cheio, para que o servidor de banco de dados não bloqueie todas as transações. A fim de evitar que as transações sejam bloqueadas, verifique se o servidor de banco de dados tem espaço suficiente de physical log para conter todas as atividades de transações durante o processamento do checkpoint.


Se você especificar um valor para o parâmetro de configuração RTO_SERVER_RESTART, o servidor monitora a carga de trabalho e acionamentos de checkpoints para atender a politica RTO. Isso gera algumas atividades de Physical Log. Os registros extras é usado para auxiliar o bufferpool durante o fast recovery de modo que a repetição seja executada de forma otimizada. Se o physical log é considerado grande em relação ao tamanho combinado de todos os buffer pools, paginas descarregadas e paginas com falhas que ocorrem durante um fast recovery. Paginas descarregadas e paginas com falhas reduz substancialmente a performance do fast recovery, e o servidor de banco de dados não pode manter a politica RTO.


Para sistemas com espaço de buffer pool menor que 4GB, o physical log pode ser redimensionado para 110% combinado com todos os buffer pools. Para sistemas com um buffer pool maiores que 4GB monitorar as atividade de checkpoint. Se ocorrer checkpoints com muita frequencia e parecem afetar o desempenho, acrescente mais physical log.


Você pode usar o comando onstat –g ckp para visualizar as configurações recomendadas.


You can use the onstat -g ckp command to display configuration recommendations.


Novos parametros do ONCONFIG na versão 11



Parametros de Configuração
Descrição

RTO_SERVER_RESTART
Permite a utilização RTO (Recovery Time Objective) padrões para definir a quantidade de tempo, em segundos, para que o Dynamic Server terá que se recuperar de um problema depois que você reiniciar o DS e colocar o servidor em modo online ou quiescente.

RAS_PLOG_SPEED
A taxa à qual o physical log pode ser recuperado durante um fast recovery.

RAS_LLOG_SPEED
A taxa à qual o logical log pode ser recuperado durante um fast recovery. Não configuravel. IDS atualiza esses valores para refletir a velocidade de recuperação real. ( As unidades são paginas por segundos).

AUTO_CKPTS
Ativa ou desativa checkpoints automaticos.

AUTO_LRU_TUNING
Ativa ou desativa o ajuste automático de LRU

AUTO_AIOVPS
Ativa ou desativa a capacidade do servidor de banco de dados para aumentar o número de AIO VPs automaticamente e descarrega threads quando o servidor detectar que AIO VPs não estão acompanhando a carga de trabalho.

SQLTRACE
Controla o comportamento padrão, como o numero de instruções SQL para rastrear e o modo de rastreamento do recurso de consulta drill-down.

EXPLAIN_STAT
Ativa ou desativa a inclusão de uma seção de estatísticas de querys no arquivo explain.out que a declaração SET EXPLAIN gerou ou o comando onmode –Y session_id pode mostrar.

USELASTCOMMITTED
Especifica se o servidor de banco de dados usa a ultima dos dados comitados quando ocorre um bloqueio.

SHMVIRT_ALLOCSEG
Especifica um limite no qual o IDS deve alocar a memória do servidor e do nivel de alarme ativado se o servidor não poder alocar o novo segmento de memória.

ENCRYPT_HDR
Ativa ou desativa a criptografia entre os servidores HDR pareados.

LOG_INDEX_BUILDS
Define para 1 (um) para habilitar o log das paginas de indice durante a instrução CREATE INDEX. Obrigatorio no nó primario ao utilizar nós Secundario (RSS).

ENCRYPT_SMX
0. Não utiliza criptografia em conexão SMX
1. Negocia a criptografia em conexão SMX
2. Deve-se utilizar criptografia em conexão SMX

Categorias: Blogs em Português

Informix Warehouse Accelerator: News / Novidades

Informix-Techonology - ter, 08/05/2012 - 12:00

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português


English VersionThis is just a very short note to mention a blog post from Martin Muerderer on his excellent blog dedicated to Informix Warehouse Accelerator. He warns us that recent Linux versions (with libstdc++ 4.6) will cause problems for IWA. At startup (ondwa start) the user will get errors like


An assertion 'str.tellg() > 0' failed. Additional info: Invalid size definition '0' encountered for parameter SEND_QUEUE_SIZE
Some workarounds would work and we would be able to start it, but after that further problems will probably arise. I hit this sometime ago while making some home testing and just recently the issue was discussed in the IIUG mailing list

Currently the only solution is to use a supported OS version. But IBM already is aware of this so it should be solved in future fixpacks. The cause seems to be a change in the tellg() method, but I don't have more details.


Additionaly, on another post, Martin tells us about a new video and a new ebook about Informix Warehouse Accelerator.


Versão PortuguesaEsta pequena nota serve apenas para dar conta de um artigo no excelente blog do Martin Fuereder sobre o Informix Warehouse Accelerator. O Martin avisa-nos que as versões mais recentes de Linux (com a versão 4.6 da libstdc++) causam problemas no IWA. No arranque (ondwa start) o utilizador verá erros como:

An assertion 'str.tellg() > 0' failed. Additional info: Invalid size definition '0' encountered for parameter SEND_QUEUE_SIZE

Embora haja forma de contornar o problema e permitir o arranque, é expectável que surgissem outros problemas durante a utilização. Eu tive este problema enquanto fazia alguns testes caseiros e isto foi discutido recentemente na lista de mail do IIUG.


De momento a única solução é usar um SO suportado. Mas a IBM já tem conhecimento do problema e deverá ser resolvido em fixpacks futuros. A causa para isto parece ser uma mudança no método tellg() mas não possúo mais detalhes.

Para além disto, o Martin informa-nos noutro artigo que existe um novo vídeo e um novo ebook sobre o Informix Warehouse Accelerator

Categorias: Blogs em Português

Informix IWA (DBMS em memória) no IEEE Data Engineering Bulletin

InformixBR - seg, 07/05/2012 - 16:56

Tem sido constante no mercado de DBMS notas falando à respeito das bases de dados em memória e baseadas em colunas(columnar-database). 
Um conjunto de artigos do respeitado IEEE Data Engineering Bulleten está disponível aqui.  
Existem artigos sobre vários players de mercado, e sim, o Informix Warehouse Accelerator (Business Analytics in (a) Blink. 9-14) é um deles. É interessante ver que existe atividade acadêmica por detrás de vários produtos que serão lançados agora. É também interessante que apesar de haver muitas diferenças entre estes produtos, existem também muitas raízes similares. Acredito que isto pode ser muito mais que apenas uma onda de marketing, penso que esta nova (nem tanto assim) tecnologia veio mesmo para ficar.
Maiores detalhes sobre o IWA acesse aqui.
* esta nota foi baseada na publicação do nosso colega fnunes

InformixBR

Categorias: Blogs em Português

In memory DBMS / DBMS em memória

Informix-Techonology - sab, 05/05/2012 - 10:44

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English Version:
If you've been paying attention lately to the DBMS market you may have noticed that a lot of new things are hapening around in-memory and column stores databases. A set of papers are available from the IEEE Data Engineering Bulletin here: http://www.informatik.uni-trier.de/~ley/db/journals/debu/debu35.html#BarberBCDHHIKKLLLMMMPQRSSS12
There are articles about several current offers and yes, Informix Warehouse Accelerator is one of them. It's interesting to see that there is academic activity behind several products being release now. And as we would wish and expect Informix is among them. It's also interesting that although there are many differences between the products there are many similar or common roots. I believe this may be much more than a simple marketing wave. I think this new (not so new, really) technology is here to stay.

Versão Portuguesa:
Se tem prestado atenção ao mercado de DBMS terá notado que estão a acontecer muitas coisas em torno das bases de dados em memória e baseadas em colunas. Um conjunto de artigos do IEEE Data Engineering Bulleten está disponível em: http://www.informatik.uni-trier.de/~ley/db/journals/debu/debu35.html#BarberBCDHHIKKLLLMMMPQRSSS12
Existem artigos sobre várias ofertas, e sim, o Informix Warehouse Accelerator é um deles. É interessante ver que existe atividade académica por detrás de vários produtos que estão a ser lançados agora. É também interessante que apesar de haver muitas diferenças entre estes produtos, existem também muitas raízes similares. Acredito que isto pode ser muito mais que apenas uma onda de marketing. Penso que esta nova (não tanto assim) tecnologia veio mesmo para ficar

Categorias: Blogs em Português

Comparativo: Oracle X Informix X DB2

InformixBR - qua, 02/05/2012 - 14:50

Comparativo: Oracle x Informix x DB2
estou disponibilizando aqui acesso a uma publicação isenta(non-IBM/Oracle) sobre comparativo de funcionalidades, empacotamento e comercialização dos Bancos de Dados Oracle, Informix e DB2.Vale a pena dar uma conferida!!! Acesse aqui.
InformixBR

Categorias: Blogs em Português

IIUG 2012 - Como foi o evento...

InformixBR - qua, 02/05/2012 - 13:37

bom ..... com o um pequeno delay aqui vão algumas informações interessantes e importantes sobre o IIUG deste ano.

O evento este ano contou com um numero ainda maior de participantes do que nos outros anos, destacando-se a quantidade de clientes, seguido dos parceiros.

As sessões foram em numero maior do que o ano passado, tendo também conteúdos voltado mais para negócios e ainda soluções complementares ao Banco de Dados tais como Optim e Guardium.Contamos ainda com uma apresentação bastante interessante que tratava de BIG DATA, um conceito moderno que a IBM vem liderando o desenvolvimento desta tecnologia com soluções robustas e completas para tratar realmente grannnnnnnndes volumes de dados. O mais interessante ainda foi ver como o Informix está inserido neste contexto.




No mais realmente foi mais um evento bastante proveitoso e diferenciado, como de costume!
Para finalizar, a imagem do inicio da festa na piscina preparada pelo evento :)



InformixBR

Categorias: Blogs em Português

NEW! Best practices and technical papers to help customers learn about and use DB2 V10 features

Information X - qua, 02/05/2012 - 10:47

Pessoal,
a equipe da IBM do Canadá nos enviou uma série de novos documentos para compartilhar com os clientes sobre as features do DB2 10:

Best practices: Storage optimization with deep compression (Authors: Thomas Fanghaenel and Bill Minor)
http://www.ibm.com/developerworks/data/bestpractices/deepcompression/index.html

Best practices: A practical guide to implementing row and column access control (Author: Walid Rjaibi)
http://www.ibm.com/developerworks/data/bestpractices/rcac/index.html

Best Practices: Temporal data management with DB2 (Author: Matthias Nicola)
http://www.ibm.com/developerworks/data/bestpractices/temporal/index.html

DB2 V10.1 Multi-temperature data management recommendations (Authors: Jim Seeger, Karen McCulloch, Naresh Chainani, Kiran Chinta, Aruna De Silva, Vincent Kulandai Samy, and Tom Hart)
http://www.ibm.com/developerworks/data/library/long/dm-1205multitemp/index.html

DB2 V10.1 Query performance enhancements (Author: David Sky)
http://www.ibm.com/developerworks/data/library/long/dm-1205db210performance/index.html

Boa leitura!
FFO

Categorias: Blogs em Português

Benchmarks: Some thoughts / Alguns pensamentos

Informix-Techonology - seg, 30/04/2012 - 22:04

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:
Disclaimer
Although I have a perfectly clear disclaimer on the right side of the blog, I'd like to start this article by re-enforcing that disclaimer. Everything I'll write here are my own thoughts and in no way represent my employer view or position. It's probable also that the ideas presented here may go against some respectable people's ideas and some established opinions. I'd like to apologize if someone expects something different. Having said this, the ideas presented here are my real belief, based on my work experience, on my readings and many discussions with some very respectable people.

What is a database benchmark?
Database benchmarks are well defined stress tests and usually when we see references to them chances are that it's all about the TPC council published benchmarks. The TPC council is a non-profit organization whose members are database software vendors, hardware makers, and other IT related organizations. The purpose of the TPC (Transaction Processing Council) is to "define transaction processing and database benchmarks and to disseminate objective, verifiable TPC performance data to the industry".
The TPC has defined several specs for benchmarks. The specs have designations like:

  • TPC-C
    OLTP benchmark
  • TPC-D
    Datawarehouse benchmark (deprecated)
  • TPC-H
    Datawarehouse benchmark (current)
  • TPC-DS
    Decision support benchmark (new)
  • TPC-E
    OLTP benchmark created to replace the TPC-C
The benchmark specs are very detailed and include everything that defines the tests. This include the database schema, the queries that are to be run, the several rules that specify what can and can't be used in terms of features, and also what must be used (like referential and check constraints etc.).
The benchmark reports include the measures taken, which are typically specified in number of transactions per time unit (the transactions are well defined in the specs). They also include the total system cost, which should include hardware and software costs including acquisition and support for a well defined period of time (3 years for example)
And these specs have evolved over time, due to several reasons:

  • New hardware and software features turned earlier specs useless (like materialized views which killed TPC-D)
  • New uses of software made some old specs look a bit outdated, meaning that new specs were created to better match the new reality
Personally I have no reason to assume that TPC was not created with good intentions. But for reasons that will be clarified along this article, I give no credit to the benchmarks. They only measure the will of a supplier to win, and how well it can twist the benchmark rules in order to achieve something worth publishing. Please note that although I have some commercial understanding of the market, I'm basically a technician. If you're talking to top management of big companies, they tend to don't understand any technical related argument, and they might, because of that, give some credit to the benchmarks published on TPC.org. But if you're talking to some technically aware person, I believe it's easy to dismantle a benchmark in around 10m (I'll try it for the top TPC-C published as an exercise).
Having said this, running a publishable benchmark represents an enormous technical and economic effort, and I must grant credit to the companies which do it.

The TPC-E mystery...
TCP-E benchmark specification was introduced because TPC-C had a lot of holes that made it unrealistic. You can easily find several opinions stating it's a better benchmark than it's predecessor.
But if you check the results you'll see that only one database vendor, Microsoft, has publish results for this. The mystery is why? Of course, MS supporters say it's because no one can beat them. No one else believes that. Most people who dedicate some time to study this believe that this is a leap frog game and it really depends on the investment. And if it's still done (or was) with TPC-C, a very mature specification, it should be even easier to do with a relatively new benchmark (the tricks are easier to discover and implement while the specs are still new). I've found several references on the Internet speaking about why no one entered the TPC-E "game", but none of them is conclusive (from my perspective). I can leave some references here for your own research:

You can decide for yourself. Personally I think the issue is related to what Mr. Jerry Keesee (IBM Informix database development director) explained in a public webcast (Chat with the labs) on 29 January 2009. More on that later.
But currently for OLTP, the most popular benchmark is TPC-C. TPC-E apparently is being pushed by hardware vendors (including IBM).

Benchmarks and Informix
Informix was a regular leader of benchmarks in the nineties. It used to partner with hardware vendors to achieve several top result in several categories.
The subject of benchmarks is very sensitive within the Informix community. Many people strongly believe that IBM should run official benchmarks using Informix. IBM never did it after acquiring Informix Software Inc. We may understand or not that position, but the reasons were clearly explained by Mr. Jerry Keesee, in a very clear answer to the question "How come IBM doesn't participate in public benchmarks of IDS? Like the TPC.org benchmarks?". The question was asked by a well known (and particularly critical of IBM) participant of the Informix forums at the end of a webcast in 29 January 2009. The reasons presented were:
  1. IBM has been doing TPC-C benchmarks with DB2 for a very long time. If we do one with Informix only two things can happen and they're both bad for IBM:
    1. Informix gets a better number, and the competition and analysts would crush us (IBM and DB2)
    2. Informix gets a worse number, and the competition and analysts would crush us (IBM and Informix)
  2. We could consider TPC-E, but currently there's only one vendor (MS) who published results on this kind of benchmark. Once we publish one (which would be better in absolute numbers or cost, since no one publishes a benchmark that doesn't show an improvement), we would have entered a very expensive race, because the vendor who is surpassed will probably reply and the leap frog game would start. Jerry prefers to invest on new features and product improvements which directly bring benefits to the customers.
You can't ask for something clearer than this. Meanwhile a benchmark on MDM (Meter Data Management) was done and published and Informix got a great result but this is not a standard. So it does not satisfy people who really want TPC results.

Very recently you may have noticed that the words "TPC-C" and "Informix" were floating around the social networks and some Informix related sites. That's because Eric Vercelletto decided to pick the TPC-C schema and specifications and run a non-oficial database stress test. While some people were jumping around in happiness others were criticizing him. My position is much more neutral, and I think most of the people talking about it never took the time to make a deep analysis of a TPC-C benchmark result. The opinions tend to be divided between something like "yeah!!! Informix finally has a TPC-C benchmark. Now we can show the performance Informix can achieve" and "Oh... The result is so low. He used the free version. It's useless". Really, if you want to speak about it, let's spend some time to look at some facts:
  • The benchmark run by Eric is not a true TPC-C benchmark. It's not official, it's not audited and yes, the number is very low if you compare it to other official published results (which by the way can't be done for legal and technical reasons)
  • Yes, Eric used the Innovator-C edition, which is a cut down version free of costs. It has limits and lacks some features that could help (only 2GB of RAM, no partitioning etc.)
  • Eric fought against technical problems with the clients sending the transactions. In fact he put the clients and the database on the same machine. Something you'll never see in a true benchmark
  • Eric used 4 hard disks. You can find a published result on TPC.org site with the same number of cores in the database server, that used 200 hard disks. Yes, you read correctly, two hundred hard disks (but for the top results the numbers are on the thousands)
  • The same  published benchmark used 10 cores for the clients and 4 cores for the database server. Compare that to the troubles Eric had with the client programs
  • Eric used 16GB of memory for both the database and the clients. The benchmark I mentioned above used 72GB just for the database server
  • Eric mention his system costs less than 900€. The system that run the above mentioned test was priced at more than $200000
  • Eric mentions he tried a client server configuration, but he could not reach more than 15-20% CPU use on the database server. This of course means he had great problems in the way the benchmark was being done (either not enough CPU power on the clients or other constraints like disk/memory on the DB server). In any case this would never get published if it was a true benchmark until the problems were fixed (in which case the numbers would rise dramatically)
So, given all this, are you assuming I don't appreciate Eric's work? Not so! Eric was a colleague at Informix Portugal around 1999 when I moved from a "4GL guy" onto an "engine guy" and he helped me on that. I know he's technically skilled and I appreciate his effort and his voluntarism to push this issue. What I'm trying to show is that the real TPC-C benchmarks belong to a completely different league. They use an unrealistic amount of hardware including CPUs, memory, disk, caching, Solid State Disks, and also an incredible human power. Every small detail is carefully analyzed and any bottleneck identified is studied to the limit. This sometimes brings real improvements to the products, but many times just creates a "smart scheme" to "fool" the benchmark rules. More on this later.
What Eric did is completely different and I never saw it being done: Take some commodity hardware like the one small customers may use, employ very little human effort, and try to make a stress test. Is it useful? Yes, but mostly for the person doing it, and eventually because it triggers others to do something similar or just talk about it. Is it comparable to the benchmarks you normally see referenced in press releases? No! You can't even start comparing it.
Another situation where I've seen people doing something similar is the Advanced Datatools promoted "fastest Informix DBA" challenge, that usually happens at the IIUG conferences. And it's interesting to see that Lester Knutsen will be showing this soon at Mac Tech. See it for yourself: http://www.youtube.com/watch?v=ScDyRrsI3H4&feature=share

Quick overview of the TPC-C top result
I mentioned earlier that I would go through the top TPC-C result published as of today in TPC.org. This benchmark was run by Oracle with version 11gR2 with RAC and partitioning. It achieved a very respectable result of over 30M tpmC (thirty millions of transactions per minute - type C -). The observations below are taken from the full benchmark disclosure report Let's see the facts:
  • [Page 6] The system cost was roughly $30M  (yes, thirty million dollars). Note that this price is not the price list. It includes a discount of $30M (50%).
  • [Page 4] It used 27 servers (oracle RAC nodes) for the database, each one with 4 Sparc processors. This means 1728 cores total (16 cores for each processor).
  • [Page 4] It used a central storage unit containing over 11000 24GB SSDs (Solid State Disks) and 720 2TB 7.2RPM SAS disks
  • [Page 4] Each one of the 27 nodes had 512GB of RAM, for a total of 13.5TB of RAM for the database servers side
  • [Appendix B] Most of the tables and indexes were partitioned in at least 27 pieces. Yes... 27, the same number of nodes. The why is explained below
  • [Appendix B] 27 UNDO tablespaces were created... yes 27 again.
  • [Page 30/TPC-C Spec] Clause 2.4.1.5 of the current TPC-C specs, define that any "New Order" (one of the five transactions) will refer to a "home warehouse" 99% of the times. So if you setup the clients properly, you split them for 27 RAC nodes. And 99% of the "New Order" transactions will use a "home warehouse". This will all be contained in one of the 27 table partitions. Meaning each database node will essentially work with one of the partitions. Now... The "New Order" transaction represented nearly 45% of all the transactions run in this test. The "Payment" transaction represented around 43%. And for this one, 85% of them used a "home warehouse".
  • What is the problem with RAC? The cache fusion... or in other words the piece of the system that guarantees data consistency across the nodes... It's a well known bottleneck, and Oracle usually says you don't have to change the application, but the fact is, if you don't, it will not scale. And TPC-C allows the system to be configured in a way that the various nodes act almost (99% of 45% and 85% of 43%) as if they were isolated nodes. So it scales... I bet you can imagine what Oracle would have to do to get a higher number...: Just add nodes and partitions... (change the application and keep the affinity)
  • [TPC-C Spec] From the other three transactions ("Stock level", "Order Status" and "Delivery") only one ("Delivery") includes data changes. The other two are read-only.
  • From the 3 later bullets you can understand how unrealistic this is, and the tricks used that take full advantage of it. But we still have one strong point about this benchmark: "Ok, I understand they dumped a ton of hardware and used allowed tricks to push the performance numbers... But what about the cost? It's cost per transaction is better than many previous benchmarks!". True! But once again, we must read everything very carefully. If you browse through several of these benchmarks (and this reflects reality) you'll notice that a very significant part of the cost is for software license and maintenance. The specs require the costs to be calculated for a three years period. And surely, all this hardware should raise the software costs, wouldn't it? Err... Yes, but no! Once again, let me explain... The TPC-C specs just require a calculation for 3 years. So what will a smart vendor do? Simply create a license that instead of perpetual is only for 3 years. As you can see here on the Oracle Price list, a processor license of enterprise version would cost you $47500. On the benchmark result [Page 5] you notice that the value is $23750. Then go back to the price list and notice the small letters on page 9. It states that for a 3 Year term license the cost is 50% of the perpetual license. So this cuts the software costs of the benchmark into 50% (without counting the global 50% discount on all prices). In a real situation it would mean a 75% discount on the software, but of course, after the 3 years period you'd need to uninstall the licenses or just buy new ones
  • Finally, support. The benchmarks mentions [Page 5] $62100 for Oracle Incident Server Support package per year. This is exactly 27 * $2300 which accordingly to the price list [Page 13] entitles you to web based support. I cannot find any item in the benchmark that would entitle you to upgrade your software as is normal when you pay S&S (Service and Support). Again, accordingly to the price list small lettered footer this would be 22% (per year) of the perpetual licenses.
So, I'm sure the above would not take more than 10m to explain to any customer. And in my perspective it shows the benchmark was twisted (in a fully legal and compliant manner of course) to increase the performance numbers and to decrease the cost. But neither the technical scenario nor the budget reflect a real customer scenario. This is why, in my opinion these benchmarks are worthless. And finally, if you ask me, I really prefer to have the money (and it's a lot) invested in the R&D of the product or in other marketing activities.

Having said this, I really think what Eric has done is an interesting exercise that may allow you to train your performance tunning skills. And I believe (no inside info here) that database vendors may use the schemas and queries to regularly test the software. It may allow them to notice positive or negative performance changes while they introduce new functionality and performance optimizations.
As for the published benchmarks? They exist solely for the purpose of getting headlines and press releases.

Versão Portuguesa:

Termo de responsabilidade
Apesar de ter um termo de (des)responsabilização perfeitamente claro no lado direito do blog, gostaria de começar este artigo por reforçar esses mesmos termos. Tudo o que escreverei aqui são as minhas próprias opiniões e ideias e de forma nenhuma refletem o ponto de vista ou posição da minha entidade patronal. É provável que algumas ideias apresentadas aqui vão contra as ideias de gente muito respeitável e algumas opiniões bem estabelecidas. Peço desculpa a quem esperasse algo diferente. Tendo dito isto, as ideias apresentadas são as minhas reais convicções, baseadas na minha experiência de trabalho, nas minhas leituras e em muitas discussões com pessoas que respeito muito.

O que é um benchmark de base de dados?
Os benchmarks de base de dados são testes de stress e habitualmente quando vemos referências a eles, é provável que se refiram aos benchmarks publicados pelo TPC council. O TPC Council é uma organização sem fins lucrativos cujos membros são fornecedores de bases de dados, fornecedores de hardware e outras organizações relacionadas com as tecnologias de informação (TI). O propósito do TPC (Transaction Processing Council) é "define transaction processing and database benchmarks and to disseminate objective, verifiable TPC performance data to the industry". Numa tradução livre seria "definir benchmarks de bases de dados e processamento transacional e disseminar dados de permormance objetivos e verificáveis para o mercado". O TPC definiu várias especificações para os benchmarks. As especificações têm designações como:

  • TPC-C
    Benchmark
    de OLTP
  • TPC-D
    Benchmark de Datawarehouse (descontinuado)
  • TPC-H
    Benchmark
    de Datawarehouse (actual)
  • TPC-DS
    Benchmark de suporte à decisão (novo)
  • TPC-E
    Benchmark de OLTP criado para substituir o TPC-C
As especificações de um benchmark são detalhadas e incluem tudo o que define os testes. Isto incluí o modelo de dados, as queries que devem ser executadas, as várias regras que limitam o que pode e não pode ser usado em termos de funcionalidades e também o que tem de ser usado (como integridade referencial, check constraints etc.)
Os relatórios de benchmark incluem as medidas efetuadas, que são tipicamente especificadas em número de transacções por unidade de tempo (as transações são elas próprias definidas na especificação). Incluem também o custo total dos sistemas, contendo o custo do hardware e software, nomeadamente custo de aquisição e suporte por um período bem definido (3 anos por exemplo)
Estas especificações evoluíram ao longo do tempo por diversas razões:

  • Novas funcionalidades de hardware e software tornaram as especificações antigas inúteis (como as views materializadas que mataram o TPC-D)
  • Novas utilizações do software fazem com que as especificações antigas pareçam ultrapassadas, levando a novas especificações que pretendem refletir melhor a realidade
Pessoalmente não tenho razões para assumir que o TPC não tenha sido criado com boas intenções. Mas pelas razões que irei expôr ao longo deste artigo, não dou crédito aos benchmarks. Estes apenas medem a vontade de um fornecedor em vencer, e quão bem consegue distorcer as regras do benchmark com o objectivo de obter algo que valha a pena publicar. Note-se que apesar de ter algum entendimento comercial do mercado, sou basicamente um técnico. Se tiver uma conversa com a gestão de topo de uma grande empresa, tenderão a não entender qualquer argumento técnico, e poderão por causa disso dar algum crédito aos benchmarks publicados em tpc.org. Mas se estiver a falar com alguma pessoa minimamente técnica, acredito que é fácil "desmontar" um benchmark em cerca de 10m (tentarei fazê-lo como forma de exercício para o resultado TPC-C de topo)
Apesar disto, correr um benchmark publicável representa um enorme esforço técnico e económico, e nesse sentido tenho de dar crédito ás empresas que o fazem.

O mistério do TPC-E...
A especificação de benchmark TCP-E foi introduzida porque o TPC-C tinha uma série de falhas que o tornavam irrealista. É fácil encontrar opiniões que afirma que é um melhor benchmark que o anterior.
Mas se procurarmos os resultados vemos que apenas um vendedor de base de dados, a Microsoft, publicou resultados com esta especificação. O mistério é porquê?. Naturalmente os apoiantes da MS dizem que é porque ninguém os consegue bater. Mais ninguém acredita nisto. A maioria das pessoas que dedicaram algum tempo ao estudo destes benchmarks afirmam que se tornam numa "corrida de rãs" e que realmente dependem do investimento. E se ainda é feito (ou era) com o TPC-C, uma especificação muito madura, deveria ser ainda mais fácil de fazer com um benchmark relativamente novo (os truques são mais fáceis de descobrir e implementar enquanto os benchmarks são novos. Encontrei várias referências na Internet sobre o porquê de ainda ninguém ter entrado no "jogo" do TPC-E, mas nenhuma absolutamente conclusiva (na minha perspetiva). Posso deixar algumas referências para a sua própria pesquisa:

Pode decidir por si mesmo. Pessoalmente penso que o assunto está mais relacionado com o que o Sr. Jerry Keesee (director de desenvolvimento de IBM Informix) explicou num webcast público (Chat with the labs) em 29 de Janeiro de2009. Mais sobre isto adiante
Mas atualmente, para OLTP o benchmark mais popular é o TPC-C. Aparentemente o TPC-E está a ser publicado por vendedores de hardware (incluindo a IBM).

Benchmarks e Informix
A Informix era um líder regular dos benchmarks nos anos noventa. Costumava colaborar com parceiros de hardware para alcançar vários resultados de topo em diversas categorias.
O tema dos benchmarks é muito sensível dentro da comunidade internacional de Informix. Muitas pessoas acreditam fortemente que a IBM devia executar benchmarks oficiais com o Informix. A IBM nunca o fez desde que adquiriu a Informix Software Inc. em 2001. Podemos ou não entender essa postura, mas as razões foram claramente explicadas pelo Sr. Jerry Keesee, numa resposta muito clara à questão "Como é que a IBM não participa em benchmarks públicos de Informix? Como os benchmarks TPC.org?". A questão foi colocada por um participante muito conhecido (e particularmente critico da IBM) dos fóruns de Informix, no final de um webcast em 29 de Janeiro de 2009. As razões apresentadas foram:
  1. A IBM tem feito benchmarks TPC-C com o DB2 desde há longo tempo. Se fôr feito um com Informix apenas duas coisas podem acontecer, e são ambas más para a IBM:
    1. O Informix obtém números melhores e a concorrência e os analistas cairiam em cima da IBM (e do DB2)
    2. O Informix obtém números piores e a concorrência e os analistas cairiam em cima da IBM (e do Informix)
  2. Poder-se-ia considerar o TPC-E, mas atualmente apenas existem resultados publicados de um vendedor de bases de dados (MS). Após a hipotética publicação de resultados com Informix (que seria necessariamente melhor sob alguma perspetiva, dado que ninguém publica números piores) dava-se inicio a uma corrida muito cara, dado que o vendedor ultrapassado tentaria responder e a "corrida de rãs" começaria. E o Jerry prefere investir em novas funcionalidades e melhorias do produto que trazem benefícios diretos aos clientes
Não se pode pedir algo mais claro que isto. Entretanto um benchmark sobre MDM (Meter Data Management) foi executado e publicado, tendo o Informix obtido um excelente resultado. Mas não é considerado um benchmark standard. Portanto não satisfaz quem realmente anseia por um resultado TPC.

Muito recentemente pode ter notado qeu as palavras "TPC-C" e "Informix" andavam a ecoar pelas redes sociais e em alguns websites relacionados com Informix. Isto deveu-se ao Eric Vercelletto ter decidido pegar no modelo de dados TPC-C e nas especificações e ter executado um teste de stress de base de dados não oficial. Enquanto algumas pessoas davam saltos de contentamento outros criticavam-no. A minha posição é bastante mais neutral, e penso que a maioria das pessoas que falam sobre o assunto nunca tiraram um tempo para fazer uma análise profunda de um resultado de um  benchmark TPC-C. As opiniões tendiam a dividir-se entre algo como "Sim!!! Finalmente o Informix tem um benchmark TPC-C. Agora podemos mostrar a performance que o Informix pode atingir" e no extremo oposto "Ehc... O resultado é muito baixo. Ele usou a versão grátis. É inútil". Haja paciência. Se alguém quer falar sobre isto, então passemos algum tempo a ver alguns factos:
  • O benchmark executado pelo Eric não é um verdadeiro benchmark TPC-C. Não é oficial, não é auditado e sim, o número é baixo se o compararmos com os resultados oficiais publicados (o que por sinal não se pode fazer devido a questões legais e técnicas)
  • Sim, o Eric usou a edição Innovator-C, que é uma versão limitada e grátis. Tem limites e falta de funcionalidades que poderiam ajudar (apenas 2GB de RAM, não tem particionamento etc.)
  • O Eric lutou contra problemas técnicos com os clientes que enviam as transações. Na verdade ele colocou os clientes e a base de dados no mesmo sistema. Algo que nunca se vê num benchmark oficial
  • O Eric usou 4 discos rígidos. Podem encontrar-se benchmarks publicados no TPC.org, com o mesmo número de cores no servidor de base de dados usado pelo Eric, que usaram 200 discos rígidos. Sim, leu corretamente, duzentos discos rígidos (mas para os resultados de topo este número é em milhares)
  • O mesmo benchmark que referi acima usou 10 cores para os clientes e 4 cores para o servidor de base de dados. Compare-se isto com os problemas sentidos pelo Eric com os programas cliente
  • O Eric usou 16GB de memória para colocar a base de dados e os clientes. O benchmark referido usou 72GB apenas para a base de dados
  • O Eric menciona que o custo do sistema é menos de 900€. O sistema onde correu o benchmark referido custava mais de $200000
  • O Eric mencionou que tentou uma configuração cliente/servidor, mas não conseguiu atingir mais que 15-20% de utilização de CPU no servidor de base de dados. Isto evidencia grandes problemas na forma como o benchmark estava a ser feito (ou falta de poder de CPU nos clientes ou outros constrangimentos no lado da base de dados como disco ou memória). Em qualquer caso estes números nunca seriam publicados se fosse um verdadeiro benchmark até que os problemas fossem identificados e resolvidos (situação em que os números subiriam dramaticamente)
Dado tudo isto, se está a assumir que não aprecio o trabalho do Eric, está enganado. O Eric foi um colega na Informix Portugal por volta de 1999, altura em que passei de "um tipo do 4GL" para "um tipo do motor" e ele ajudou-me nisso. Sei que é tecnicamente muito bom e aprecio o esforço e voluntarismo ao pegar neste tema. O que estou a fazer é apenas tentar mostrar que os verdadeiros benchmarks TCP-C pertencem a uma categoria completamente diferente. Usam quantidades irreais de hardware incluindo CPUs, memória, disco, cache, solid state disks e também uma capacidade humana incrível. Todo e qualquer detalhe é cuidadosamente analisado e estudado até ao limite. Isto por vezes trás melhorias reais aos produtos, mas outras apenas cria "esquemas" para "enganar" as regras dos benchmarks. Mais sobre isto adiante.
O que o Eric fez é completamente diferente e nunca vi isso ser feito antes: Pegar em hardware banal, semelhante ao que qualquer pequeno cliente pode usar, empregar um mínimo de esforço humano e executar um teste de stress. É útil? Sim, mas principalmente para quem o faz, e eventualmente porque leva outros a fazer algo semelhante ou apenas falar sobre isso. É comparável com os benchmarks que normalmente vemos referenciados em notas de imprensa, blogs, e outros artigos na Internet? Não! Nem podemos começar a comparar.
Uma outra situação onde vi alguém fazer algo semelhante são os concursos fastest Informix DBA promovidos pela Advanced Datatools que decorrem normalmente durante as conferências do IIUG.
E é interessante verificar que o Lester Knutsen vai mostrar isto brevemente na Mac Tech. Veja por si mesmo: http://www.youtube.com/watch?v=ScDyRrsI3H4&feature=share




Revisão rápida do resultado TPC-C de topo
Mencionei antes que iria rever o resultado TPC-C de topo conforme publicação actual em TPC.org.
Este benchmark foi efetuado pela Oracle com a versão 11gR2 com RAC e particionamento. Alcançou um resultado muito respeitável de 30M tpmC (trinta milhões de transações por minuto - tipo C - ). As observações abaixo foram baseadas no relatório completo sobre o benchmark Vejamos os factos:
  • [Página 6] O sistema custa grosso modo $30M (sim, trinta milhões de dólares). Note-se que o preço não é o de tabela. Incluí um desconto de $30M (50%)
  • [Página 4] Usou 27 servidores (nós de RAC) para a base de dados, cada um com 4 processadores SPARC. Isto traduz-se num total de 1728 cores (16 cores por processador)
  • [Página 4] Usou uma unidade central de armazenamento com  mais de 11000 24GB SSDs (Solid State Disks) e 720 discos de 2TB 7.2RPM SAS
  • [Página 4] Cada um dos 27 nós de base de dados tinha 512GB de RAM, para um total de 13.5TB de RAM para o conjunto dos servidores de bases de dados
  • [Apendéce B] A maioria das tabelas e índices foi particionada em pelo menos 27 partições. Sim... 27, o mesmo número de nós. A razão é explicada adiante
  • [Apendíce B] Foram criados 27 UNDO tablespaces... sim, novamente 27
  • [Página  30/Especificação TPC-C] A cláusula 2.4.1.5 da especificação actual do TPC-C define que qualquer transacção "New Order" (uma das cinco transações) se deverá referir a um "home warehouse" em 99% das vezes que é executada. Assim, se configurar os clientes corretamente, divide-os pelos 27 nós de RAC. E 99% das transações "New Order" irão usar um "home warehouse", ou seja dados contidos em apenas uma das 27 partições das tabelas.. Mais... a transação "New Order" representa 45% de todas as transações de todo o teste. A transação "Payment" representa cerca de 43%. E para esta, 85% usam um "home warehouse".
  • Qual é o problema com o RAC? O cache fusion... ou por outras palavras o componente do sistema que garante a consistência da informação entre os nós... é um ponto de contenção reconhecido, e habitualmente a Oracle diz que não é necessário mudar a aplicação, mas o facto é que se não o fizermos não escala. E o TPC-C permite que o sistema seja configurado de uma forma que os vários nós atuam quase (99% em 45% das transações e 85% noutros 43%) como se fossem nós isolados. E logo escala muito melhor... Aposto que consegue imaginar o que a Oracle teria de fazer para obter um número maior... Adicionar nós e partições... (mudar a aplicação e manter a afinidade)
  • [Especificação TPC-C] Das restantes três transações ("Stock level", "Order Status" e "Delivery") apenas uma ("Delivery") incluí alteração de dados. As outras duas são apenas de leitura
  • Dos últimos 3 pontos pode entender-se o quão irrealista isto é e quais os truques para tirar proveito disso. Mas mesmo assim ainda resta um ponto muito forte relativamente a este benchmark: "Ok, compreendo que tenham despejado toneladas de hardware e usado todos os truques permitidos para empurrar os números da performance... Mas e sobre o custo? O custo por transação apresentado é menor que muitos benchmarks anteriores!". Verdade. Mas mais uma vez temos de ler tudo com muita atenção. Se folhear alguns destes benchmarks verificará que uma parte significativa dos custos é para o licenciamento e manutenção (e isto reflete a realidade). As especificações requerem que os custos sejam calculados para um período de três anos. E com certeza que todo este hardware deveria ter feito aumentar os custos de software, certo?! Err... Sim, mas não! Vamos à explicação. Se a especificação requer um custo a 3 anos, o que é que um fornecedor esperto fará? Basta criar uma licença que em vez de perpétua é apenas por 3 anos. Como pode ver na lista de preços da Oracle, uma licença de processador da edição Enterprise custaria $47500. No relatório do benchmark [Página 5] notará que o valor é $23750. Volte agora à lista de preços e repare nas letras pequenas na página 9. Informa que para uma licença com termo de 3 anos, o custo será 50% da licença perpétua. Assim isto corta o custo da base de dados em 50% (não incluindo o desconto global de 50%). Numa situação real isto significaria um desconto de 75% no software, mas claro que ao fim de 3 anos teria de desinstalar o produto ou simplesmente adquirir novamente as licenças
  • Finalmente, o suporte. O benchmark menciona [Página 5] $62100 para o pacote Oracle Incident Server Support, por ano. Isto é exatamente 27 * $2300, o que de acordo com a lista de preços [Página 13]  o habilita apenas a suporte via web. Não consigo encontrar em lado nenhum no benchmark algo que o habilitasse a efetuar upgrades de software como é normal quando se paga S&S (serviço e suporte). Novamente segundo as letras pequenas no rodapé da  lista de preços isto representaria mais 22% (por ano) da licença perpétua
Portanto, tenho a certeza que o exposto acima não demorará mais que 10m a explicar a um cliente. E na minha perspetiva mostra que os benchmarks são distorcidos (de forma completamente legal e dentro das regras claro) para aumentar os números de performance e reduzir os de custo. Mas nem o cenário técnico nem o de orçamento refletem um cenário real. É por isso que, na minha opinião, estes benchmarks são inúteis. Finalmente, se me perguntarem, realmente prefiro ver o dinheiro (e é muito) investido em I&D do produto ou em outras atividades de marketing.

Após tudo isto, penso sinceramente que o Eric fez um exercício interessante que poderá ajudar-nos a treinar as nossas capacidades de performance tunning. E acredito (sem informação privilegiada aqui) que os vendedores de bases de dados podem usar os modelos de dados e queries para testarem regularmente o seu software. Poderá ajudá-los a detetarem alterações positivas ou negativas na performance à medida que introduzem novas funcionalidades e otimizações.
Quanto aos benchmarks publicados? Existem apenas com o propósito de se conseguir cabeçalhos e notas de imprensa

Categorias: Blogs em Português

Best practices survey / Inquérito sobre boas práticas

Informix-Techonology - sex, 27/04/2012 - 21:23

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:The Informix Documentation Team has just setup another survey. This time the subject is best practices. They want to know how and where would you expect and wish to find these and the subjects you'd be more interested in. The survey takes no more than 5m, so it's a great way to tell them what you'd like to see covered in the future. The survey is here: https://www.ibm.com/survey/oid/wsb.dll/s/ag460 and the original announcement here: https://www.ibm.com/developerworks/mydeveloperworks/blogs/idsdoc/entry/informix_best_practices44?lang=en_us

Versão Portuguesa:A equipa de documentação Informix anunciou um novo inquérito. Desta feita o assunto é as melhores práticas. Desejam saber como e onde é que espera e gostaria de encontrar informação sobre o tema e quais os assuntos em que estaria mais interessado. O inquérito não demora mais de 5m a preencher, por isso é uma excelente forma de lhes dizer o que gostaria de ver tratado no futuro. O inquérito pode ser preenchido aqui: https://www.ibm.com/survey/oid/wsb.dll/s/ag460 e o anúncio original está em:: https://www.ibm.com/developerworks/mydeveloperworks/blogs/idsdoc/entry/informix_best_practices44?lang=en_us

Categorias: Blogs em Português

IIUG 2012: Presentations / Apresentações

Informix-Techonology - qui, 26/04/2012 - 21:39

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:
The 2012 IIUG conference has just taken place this week in San Diego. The echos around the net and social media are very positive. And as usual, the IIUG made available for download the presentations of this year's conference. You can find them in the IIUG member area on the IIUG website. There are more than 100 presentations so you'll have plenty of material to study. From a brief overview I've found interesting that there are a lot of presentations made by customers and partners (as you'd expect and wish for a user conference) and also that the kind of the presentations is very diverse. You can find some "light weight" presentations, several case studies and also some very deep technical ones covering a lot of subjects. I can assure you that just by browsing a few of them I've learn at least a couple of things. So make sure you're a member of IIUG and access it on the member reserved area on the site

Versão Portuguesa:
A conferência de utilizadores de 2012 do IIUG teve lugar esta semana em San Diego. Os relatos espalhados na net e nas redes sociais são bastante positivos. E como habitualmente o IIUG disponibilizou as apresentações efetuadas na conferência deste ano. Pode encontrá-las na área de membros do website do IIUG. São mais de 100 apresentações, portanto terá muito material para estudo. De uma rápida vista de olhos achei interessante que um número grande de apresentações tenham sido feitas por clientes e parceiros (como seria de esperar e desejar de uma conferência de utilizadores), e também que o tipo das apresentações tenha sido muito diverso. Pode encontrar algumas apresentações "leves", vários casos de estudo e algumas muito técnicas cobrindo uma grande variedade de assuntos. Posso garantir que com uma olhadela em algumas já me permitiu aprender um par de coisas.
Por isso garanta que já é (ou se inscreve) membro do IIUG e aceda às apresentações na área do site reservada a membros.

Categorias: Blogs em Português

Script para AFs (Assert Faileds)

IMartins - qui, 26/04/2012 - 08:05

Quando ocorre algo muito grave no banco de dados é gerado um arquivo de "dump" chamado Assert Failed (AF), que faz uma foto da situação do banco no momento que ocorreu o problema.
Este AF pode ser gerado de modo forçado também (veja aqui como).

Categorias: Blogs em Português

System Administration Certification exam 918 for IBM Informix Dynamic Server 11 prep, Part 1– Instalação e Configuração do Informix

AJMoreti - qua, 25/04/2012 - 15:31

Configurando a Conectividade

Existem três metodos disponiveis para a configuração da conectividade entre client-server e o sistema on-line:

  1. Através de uma conexão de memória compartilhada. Quando a aplicação cliente o e servidor de banco de dados estão no mesmo computador, este é o método preferido de comunicação. Aplicação e o servidor de banco de dados trabalha no mesmo segmento de memória compartilhada.
  2. Através de uma conexão TCP/IP, usando SOCKETS ou uma interface de programação TLI. TCP/IP pode ser usado em ambas comunicações,locais e remoto.
  3. Através  de uma conexão “stram pipe”. Isso é uma conexão local, metodo de comunicacao que o UNIX utiliza.
arquivo sqlhosts

Quando um aplicativo tenta uma conexão com um servidor de banco de dados, há algumas informações basicas que necessitam ser configuradas para fazer a conexão. Essas informações  estão armazenadas em $INFORMIXDIR/etc/sqlhosts, um arquivo que deve ficar no diretorio $INFORMIXDIR/etc. Para alterar o local do arquivo slqhosts, utilize a variavel de ambiente INFORMIXSQLHOSTS. Cada servidor que hospeda um banco de dados ou um cliente deve ter um arquivo sqlhosts.

Cada entrada (cada linha) do arquivo sqlhosts contem as informações para um banco de dados. Utilize espaços em brancos (espaços, tabulação ou ambos) para separar os campos. Não inclua espaços em branco ou tabulação dentro de um campo. Para colocar comentarios no arquivo sqlhosts, inicie a linha com um caracter (#). Você também pode deixar linhas totalmente me branco para facilitar a leitura.  Regras de sintaxe adicionais para cada um dos campos serão fornecidos nas postagens seguintes, que descrevem as entradas no arquivo sqlhosts. Use um editor de texto padrão para inserir as informações no arquivo sqlhots.

Exemplo de um arquivo sqlhosts dbservername nettype hostname servicename tst onipcshm isis tst tstsoc onsoctcp isis tstsrv prdsoc onsoctcp vishnu prdsrv

dbserver corresponde à variavel de ambiente INFORMIXSERVER e DBSERVERNAME ou DBSERVERALIASES no arquivo ONCONFIG.

A coluna nettype contém informações cruciais sobre tipo de servidor de banco de dados e como as conexões vão ser feitas. O nettype consiste em oito letras dividas em três categorias.

As duas primeiras letras representam o produto do banco de dados. As proximas três letras referem-se a interface de programação usado para a conexão. As três ultimas letras referem-se ao protocolo especifico ou mecanismo IPC.

onde:

d = produto,
i = interface,
p = protocolo

ddiiippp

on – Dynamic Server
se – Standard Engine

ipc – Conexão IPC
tli – Conexão TLI
soc – Conexão socket

shm – Shared memory
str – Stream pipes
tcp – Protocolo TCP/IP
spx – Protocolo IPX/SPX

Hostname  é o nome do servidor que esta armazenado o banco de dados.

Todos os nomes de serviços é necessario estar no /etc/services.

Exemplo de um arquivo /etc/services

tstsrv 1550/tcp prdsrv 1540/tcp

Categorias: Blogs em Português

Re: onstat -g ses (DUVIDA)

Forum Informix em Português do IIUG - qua, 25/04/2012 - 11:26

Obrigado pela resposta e pelo script Cesar Inacio Martins; Cesar o seu site pra mim é uma referencia em informix, obrigado por compartilhar o seu conhecimento nele, o seu site me ajudou em muito a entender o informix. ******************************************************************************* To post a response via email (IIUG members only): 1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [208] *******************************************************************************

Categorias: Forums de Informix em Português

Re: onstat -g ses (DUVIDA)

Forum Informix em Português do IIUG - qua, 25/04/2012 - 11:01

É em bytes. meios de monitora-lo: onstat -g ses | sort -nk7 onsstat -g ses | awk 'NF == 9 && $7 ~/[0-9]+/{x=x+$7} END {printf "total: %10.2f MB\n",x/1024/1024}' On 25/4/2012 10:46, LONDONMS LONDONMS wrote: > Procurei na documentação e não consegui encontrar algo que tire esta minha > duvida, o comando ONSTAT -G SES tem dois parametro lá chamados TOTAL MEMORY e > USED MEMORY - a minha duvida é o valor que esta lá é em Kb, Mb ou Gb ? > > Na documentação fala assim; > > total memory - The amount of memory allocated for this session > used memory - The amount of memory actually used by this session > > Londonms > São Paulo/SP > > > > > ******************************************************************************* To post a response via email (IIUG members only): 1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [207] *******************************************************************************

Categorias: Forums de Informix em Português

onstat -g ses (DUVIDA)

Forum Informix em Português do IIUG - qua, 25/04/2012 - 10:46

Procurei na documentação e não consegui encontrar algo que tire esta minha duvida, o comando ONSTAT -G SES tem dois parametro lá chamados TOTAL MEMORY e USED MEMORY - a minha duvida é o valor que esta lá é em Kb, Mb ou Gb ? Na documentação fala assim; total memory - The amount of memory allocated for this session used memory - The amount of memory actually used by this session Londonms São Paulo/SP ******************************************************************************* To post a response via email (IIUG members only): 1. Address it to iiug-por@iiug.org 2. Include the bracketed message number in the subject line: [206] *******************************************************************************

Categorias: Forums de Informix em Português

Planejamento para um cluster de alta disponibilidade em Informix

AJMoreti - ter, 24/04/2012 - 14:27

Antes de você iniciar  a configuração dos servidores e banco de dados para usar com um cluster de alta disponibilidade, você pode querer fazer um planejamento inicial. A lista a seguir contem as tarefas a realizar:

  • Escolher e adquirir hardware apropriados;
  • Se você estiver usando mais de um servidor de banco de dados para armazenar dados que você deseja replicar, migrar dados e redistribuir, veja se existe a possibilidade de ser gerenciado por um unico servidor de dados.
  • Assegurar que todos os banco de dados que você deseja replicar esteja em modo “transaction loggin”.
  • Desenvolver aplicativos para fazer uso de ambos os servidores de banco de dados de replicação.
  • Criar uma programação para iniciar o HDR pela primeira vez.
  • Projetar um espaço de armazenamento e programação dos backups de logical logs para o servidor de banco de dados primario.
  • Produzir um plano de como lidar com falhas de um servidor de banco de dados e como reiniciar o HDR após uma falha.
Configurando Clusters

Para configurar seu sistema como um cluster de alta disponibilidade, você deve tomar as seguintes ações:

  • Conheça os requisitos de hardware e sistema operacional;
  • Atender aos requisitos dos dados de banco de dados;
  • Atender aos requisitos de configuração do banco de dados;
  • Configurar a conectividade.

Vamos explanar cada item acima.

Você pode configurar seu sistema para usar o Secure Sockets Layer (SSL), um protocolo de comunicação que garante a privacidade e integridade dos dados transmitidos através da rede, para a comunicação do HDR. Você pode usar o protocolo SSL para conexões entre os servidor primario e secundario e para conexões com servidores secundarios Remote Standalone(RS) e Shared Disk(SD) em uma configuração de alta disponibilidade.

Requisitos de Hardware e Sistema Operacional

Para um cluster de alta disponibilidade funcionar, o hardware deve atender a certos requisitos.

O hardware deve atender aos seguintes requisitos:

  • Os servidores primario e secundario deve ser capaz de executar  a mesma imagem do IBM Informix, mesmo que eles  não tenham Hardware e Sistemas Operacionais identicos. Por exemplo, você pode usar servidores com diferentes Sistemas Operacionais Linux 32-bit porque nesses Sistemas Operacionais a imagem do Informix poderá ser executada. Nesta situação, você não pode  adicionar um Servidor com Sistema Operacional Linux 64-bit porque nesse Sistema Operacional é exigida uma outra imagem do Informix, (Informix 64-bit). Verifique o arquivo “machine notes”: você poderá utilizar alguma combinação de hardware e Sistemas Operacionais suportados no mesmo arquivo “machine notes”.
  • Os Hardwares que executa os servidores primario e secundario devem suportar conectividade com redes.
  • A quantidade de espaço em disco alocado para os dbspaces secundario devem ser identicos ao servidor primario. O tipo de espaço em disco  é irrelevante; você pode usar uma mistura de raw devices com cooked files nos dois servidores.
  • Os chunks nos dois servidores devem estar no mesmo caminho. Os links simbólicos são permitidos em plataformas UNIXs, mas não na plataforma Windows.
Requisitos dos dados e banco de dados

Os dados e banco de dados deve atender aos seguintes requisitos:

  • Todos os dados devem ser “logged”.

    Todos os banco de dados que você quer replicar deve estar em modo “transaction logging”.

    Este requisito é importante porque o servidor de banco de dados secundario utiliza os registros de logical logs do servidor primario para se auto atualizar. Se o banco de dados primario não utiliza o logical logs, não será capaz de gerar os logical logs para atualizar os outros servidores. Os registros podem ser “buffered” ou “unbuffered”.
  • Os dados deve estar localizado no mesmo dbspace ou sbspaces

    Se o servidor primario tem “simple large objects” armazenados em blobspaces, modificações nos dados dentro dessa blobspace não são replicados como parte do processamento normal do HDR. No entanto,  dados “simple large objects” são replicados.

    ”Smart large objects”, que são armazenados em sbspaces, são replicados. O sbspace deve estar em “logged”. “User-defined types” (UDTs) são replicados, a menos que eles estejam armazenados no Sistma Operacional.
  • Os servidores secundarios não deve usar compressão de disco.

    Se você utilizar o recurso de compressão de disco do Informix, dados que é comprimido na tabela de origem é comprimido na tabela de destino. Você não pode executar operações de compactação em um servidor HDR secundario., RS secundario ou SD secundario, porque o servidor HDR de destino deve ter os mesmos dados e layout físico com o servidor de origem.
Requisitos de configuração do servidor de banco de dados

Para os servidores de alta disponibilidade do cluster funcionar, você deve configurar completamente cada um dos servidores de banco de dados.

Estes tópicos descrevem as considerações de configuração para os pares de cluster de servidor de banco de dados:

  • Versão do servidor de banco de dados
  • Configuração do dbspace e chunk
  • Tamanhos de paginas em ambientes HDR
  • Espelhamento
  • Configuração do Physical-log
  • Dbspace e dispositivos de backup para  logical-log
  • Configuração dos Logical-logs
  • Configuração dos parametros do HDR
Versão do servidor de banco de dados

A versão do servidor de banco de dados no servidor primario e secundario deve ser identicas.

Configuração do dbspace e chunk

O numero de dbspaces, o numero de chunks, os seus tamanhos, os nomes de caminhos, e seus offsets devem ser identicos nos servidores,  primario e secundarios. Além disso, a configuração deve conter pelo menos um dbspace temporário se o HDR secundario for usado para gerar atividades de relatorios.

somente UNIX:

Você deve usar links simbolicos para os chunks criados em raw devices.

Importante: Se você não usar links simbolicos para os nomes do caminho dos chunks, você não poderá mudar o nome do caminho de um chunk facilmente.

Os seguintes parâmetros do ONCONFIG devem ter o mesmo valor em cada um dos servidores HDR:

  • ROOTNAME
  • ROOTOFFSET
  • ROOTPATH
  • ROOTSIZE
Tamanhos de paginas em ambientes HDR

O tamanho de paginas de um dbspace, e e as especificações do buffer pool são propagadas automaticamente do servidor primario para o servidor secundario. Embora o servidor primario e os secundarios devem ter os mesmos buffer pools, os números de buffers em buffer bool não são obrigatórios.

Espelhamento

Você não é obrigado a definir o parametro MIRROR para o mesmo valor nos dois servidores de banco de dados; você pode habilitar o espelhamento em um servidor de banco de dados e desabilitar no outro servidor. Entretanto, se você especificar um chunk espelhado para o rootdbs do servidor primario, você tera que especificar um chunk espelhado também para o servidor secundario. Portanto, os seguintes parametros do ONCONFIG deve ser definido para o mesmo valor em ambos os servidores de banco de dados:

  • MIRROROFFSET
  • MIRRORPATH
Configuração do Physical-log

O physical log deve ser identico em ambos os servidores. A seguir os parametros do ONCONFIG que devem ser os mesmos valores em cada servidor:

  • PHYSBUFF
  • PHYSFILE
Dbspace e dispositivos de backup para logical-log

Você pode especificar diferentes  dispositivos de fitas para os servidores primario e secundario.

Se você usa o ON-Bar, configure os parametros de configuração do ON-Bar com os mesmos valores em ambos os servidores.

Se você utiliza o ontape, o tamanho do dispositivo e o bloco do dispositivo para o dispositivo de armazenamento e logical-log devem ser identicos.   A seguir os parametros do ONCONFIG que devem ter os mesmos valores em ambos os servidores:

  • LTAPEBLK
  • LTAPESIZE
  • TAPEBLK
  • TAPESIZE
Configuração dos Logical-logs

Todos os registros de logical-logs são replicados para o servidor secundario. Você deve configurar os numeros de arquivos de logical-log e o tamanho dos logical-log com valores iguais em ambos os servidores. Abaixo segue parametros do ONCONFIG que devem ter os mesmos valores:

  • LOGBUFF
  • LOGFILES
  • LOGSIZE
  • DYNAMIC_LOGS
Configuração dos parametros do HDR

A seguir os parametros de configuração do HDR que devem conter o mesmo valor em ambos os servidores:

  • DRAUTO
  • DRINTERVAL
  • DRTIMEOUT

Categorias: Blogs em Português

System Administration Certification exam 918 for IBM Informix Dynamic Server 11 prep, Part 1– Instalação e Configuração do Informix

AJMoreti - seg, 23/04/2012 - 09:11

Gerenciando espaço em disco

O servidor de banco de dados utiliza as seguintes físicas para gerenciar disco:

  • Chunk
  • Page
  • Extent
  • Blobpage
  • Sbpage

Chunk

Chunk é uma unidade de disco ou um espaço físico atribuído para o servidor. Um chunk pode ser um raw device (device de character especial) ou arquivo UNIX (cooked file). Quando atribuir chunk para o server, você precisa especificar os três valores seguintes:

  1. Pathname: o caminho do arquivo ou o nome do raw device a ser utilizado para o chunk.
  2. Offset: a distância física, especificado em KB a partir do início do dispositivo onde a leitura e escrita do dispositivo começa. Se você criar chunks usando cooked files, use o offset como zero; o offset maior que zero é somente usado com raw devices.
  3. Size: é o tamanho do espaço criado em KB, atribuido para ser utilizado com raw device a partir do offset ou o tamanho do arquivo UNIX usado para o chunk.

O server tem um limite lógico de 32.767 chunks. No entando, o Kernel do UNIX pode ter limitações para o numero de arquivos de um processo.

Page

É a unidade basica que o server utiliza para I/O é paginas. Começando pela versão 10 do IDS, o tamanho da pagina não é mais corrigido com base na plataforma do produto. Qualquer chunk/dbspaces criado após o root dbspace pode ter tamanhos de paginas entre 2K à 16K. Usando multiplos de tamanho de paginas como padrão. Um conjunto de buffers  é criado se não existir paginas do tamanho especificado.

Extent

Coleção de paginas fisicas continuas em um disco. Tamanhos das extents da tabela são especificados no momento da criação da tabela.

Blobpage

Blobpage é a unidade básica de armazenamento para os dados tipos blobs armazenados em blobspaces. O tamanho da blobpage pode ser configurado para ser múltipo do tamanho de paginas do sistema.

Sbpage

Um sbpage é um tipo de pagina que o server usa para armazenar objetos grandes (smart large objects) dentro de um sbspace. Ao contrario dos blobpages, sbpages não são configuraveis. Sbpage é do mesmo tamanho das paginas do servidor de banco de dados.

Unidades Lógicas

O servidor de banco de dados armazena as dados nas seguintes unidades lógicas:

  • Dbspace
  • Blobspace
  • Sbspace
  • Tblspace

Dbspace

Dbspace é uma coleção lógica de um ou mais chunks usados para armazenar bando de dados e tabelas. Cada dbspace deve ter pelo menos um chunk atribuido a ele.

Blobspace

Um blobspace é uma unidade lógica de armazenamento composto de um ou mais chunks que armazena somente dados TEXT e BYTE. O servidor de banco de dados gravados em blobspaces diretamente em discos. Estes dados não passam pela shared memory residente.

Sbspace

Um sbspace é um unidade lógica de armazenamento composto de um ou mais chunks que armazena os “smart large objects”, isso incluem BLOB, CLOB e UDTs (user-defined data type).

Tblspace

Tblspace é uma coleção de todos os extents alocados para armazenar informações  para uma detrminada tabela ou índice em um único dbspace. Espaço representado por uma tblspace não são continuas necessáriamente, mas o espaço representado por qualquer uma das extents são continuos.

Criando dbspace com onspaces

onspaces
-c
-d <dbspace>
-k <pagesize>
-m <mpathname moffset>
-o <offset>
-p <pathname>
-s <size>
-t <tempspace>


onde

spacename é o nome da dbspace a ser criada.
pagesize é o tamanho das paginas a ser criada para o novo dbspace.
mpathname é o pathname do mirror
moffset é o offset do mirror
offset é offset dentro do dispositivo em KB.
pathname é o caminho para inicializar o chunk.
-t indica que o dbspace criado é temporario.

Exemplo: Para criar um dbspace espelhado de 1 milhão de KB chamado de dbspace1 com offset de 200.000 KB para inicializar um chunk primario e um offset de 450.000 para o chunk espelhado.

onspaces –c –d dbspace1 –p /dev/rdsk/device1 –o 200000 –s 1000000 –m /dev/rdsk/device2 450000

Criando blobspace

onspaces
-c
-b <spacename>
-g <blobpagesize>
-m <mpathname moffset>
-o <offset>
-p <pathname>
-s <size>

Exemplo: Para criar um blobspace espelhado de 1 milhão de KB chamado de blobsp1 com offset de 200.000 KB para inicializar ambos chunks (primario) e um chunk espelhado e um blobpage de 100 KB (2K tamanho da pagina do sistema).

onspaces –c –b blobsp1 –g 50 –p /dev/rdsk/device8 –o 200000 –s 1000000 –m /dev/rsdk/device9 200000

Criando um sbspace

-c
-S <spacename>
-m <mpathname moffset>
-o <offset>
-p <pathname>
-s <size>
-t
-Ms <metasize>
-Mo <metaoffset>
-Df <options>

onde

spacename é o nome do blobspace a ser criado.
blobpagesize é o tamanho do blobpage em número de páginas em disco.
mpathname é o pathname do espelhamento
moffset é o offset do mirror
pathname é o caminho do chunk.
size é o tamanho do chunk em KB.
-t indica se o dbspace criado é temporario
metasize é o tamanho da área do sbspace em KB
metaoffset é o tamanho da área do offset do sbspace em KB.

Exemplo: Para criar um sbspace espelhado de 1 milhão de KB chamado de sbspace1 com um offset de 200.000 KB para inizializar ambos chunks (primario) e um chunk espelhado , com um metadado no tamanho de 7500 KB com 10000 KB de offset e uma expectativa média  de smart blobsize de 32KB.

onspaces –c –S sbspace1 –p /dev/rdsk/device5 –o 200000 –s 1000000 –m /dev/rdsk/device6 200000 –Ms 7500 –Mo 10000 –Df “AVG_LO_SIZE=32”

Eliminando Espaços

O utilitario onspaces pode ser usado para eliminar um dbspace, blobspace ou sbspace via linha de comando do sistema. Antes de um dbspace ser eliminado, todos os bancos e tabelas criados nesse dbspace deve ser eliminado.

Antes de um blobspace ser eliminado, todas as tabelas que possuem coluna TEXT/BYTE do blobspace tem que ser eliminado.

Exemplo:

onspaces –d dbspace1

Adicionando um chunk para um dbspace ou blobspace

O utilitario onspaces pode ser usado para adicionar um chunk num dbspaces ou blobspaces.

onspaces
-a <spacename>
-m <mpathname moffset>
-o <offset>
-p <pathname>
-s <size>

Exemplo: Para adicionar um chunk espelhado de 500.000 KB para o dbspace dbspace2 com 100.000 KB de offset.

onspaces –a dbspace2 –p /dev/rdsk/device4 –o 100000 –s 500000

Adicionando um chunk para um sbspace

o utilitario onspace pode ser usado para adicionar chunk para um sbspace.

Exemplo: Para adicionar um chunk espelhado de 100.000KB a um sbspace (sbspace1) com um offset de 20.000 KB para inicializar ambos chunks e metadado de 750 KB e 1000 KB de offset.

onspaces –a sbspace1 –p /dev/rdsk/chunk6 –o 20000 –s 100000 –m /dev/rdsk/chunk7 –Ms 750 –Mo 1000

SQL admin API

Você pode usar  as nova função SQL de administração para funções API para realizar  tarefas administrativas remotamente através do EXECUTE FUNCTION de SQL. Eles são as funções ADMIN e TASK. Estes fornecem uma interface SQL para administração como uma linha de comandos.  Só podem ser chamado pelo usuário informix e são definidos no banco de dados sysadmin.

As funções ADMIN  e TASK executa uma tarefa especifica o que equivale a um utilitário administrativo, insere uma nova linha dos historicos de comandos na tabela command_history do banco de dados sysadmin.

Criando um dbspace usando a função TASK()

EXECUTE FUNCTION TASK (‘create dbspace’, ‘dbs1’, ‘/dev/rdsk/device1’,’200000’,’1000000’);
Output: (expression) Space ‘dbs1’ added.

Eliminando um dbspace usando a função TASK()

EXECUTE FUNCTION TASK (‘drop dbspace’,’dbs1’);
Output (expression) Space ‘dbs1’ dropped.
** WARNING ** A level 0 archive will need to be done before any chunks from
DBspace dbs1 can be reused (see Dynamic Server Administrator’s manual).

Adicionando espelhamento para o dbspace acima usando a função TASK()

EXECUTE FUNCTION TASK (‘add mirror’, ‘dbs1’,’/dev/rdsk/device1’,’200000’,’/dev/rdsk/device2’,’450000’);
Output: (expression) Mirror chunk ‘/dev/rdsk/device2’ added to space ‘dbs1’

Criando um blobspace usando a função TASK()

EXECUTE FUNCTION TASK (‘create blobspace’, ‘blobsp1’, ‘/dev/rdsk/device8’, ‘50’,’200000’,’1000000’);
Output: (expression) Space ‘blobsp1’ added.

Categorias: Blogs em Português

OAT survey / Inquérito OAT

Informix-Techonology - qua, 18/04/2012 - 21:54

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:
I've just noticed that the Informix documentation team has just publish a blog entry announcing a very interesting initiative at the 2012 IIUG conference. Users will be able to preview some product (OAT and IWA) enhancements as well as comment about how they use and how they'd like to use Informix, with a special focus on the documentation. The same article references an Informix Administration Survey.
It focus on OAT and how we administer Informix, and it's a great way to influence the future versions.
The survey takes around 5 minutes to complete... so if you can spare the time don't hesitate!


Versão Portuguesa:
Reparei que a equipa de documentação do Informix publicou uma entrada no seu blog anunciando uma iniciativa muito interessante na conferência do IIUG de 2012. Os utilizadores poderão antever algumas novas funcionalidades de dois produtos - OAT e IWA - , bem como comentar a forma como usam e como gostariam de usar o Informix, como um foco especial na documentação. O mesmo artigo refere um inquérito sobre administração Informix. Este inquérito foca-se no OAT e na forma como administramos o Informix, e é uma excelente forma de influenciar as versões futuras.
O inquérito demora cerca de 5 minutos a preencher... se puder despender esse tempo não hesite!

Categorias: Blogs em Português

Guia do Iniciante para HDR no IDS 11.50

AJMoreti - qua, 18/04/2012 - 16:54

Conceitos e Beneficios do HDR

  • HDR permite  que todos os dados em uma instancia IDS seja copiada em um outro servidor em uma rede;
  • É uma “instace level”, tecnologia de replicação para fornecer copias de seus dados para outros servidores Informix.
  • Não tem restrições, como exigir chaves primarias em suas tabelas, etc. Exige que seus bancos de dados sejam “logged”,  no entento, sua tecnologia é baseada nos registros de logs. Isso não replica dados BLOBspaces.
  • Sistemas Operacionais subjacentes e versão do IDS deve ser identica nos servidores envolvidos o HDR.
  • Beneficios em caso de desastres: Servidores e Dados são redundantes minimizando o downtime
  • Pode-se criar um Servidor de relatorios com o servidor secundario, tendo o beneficio da performance: descarregamentos de algumas atividades, queries no servidor secundario. Melhor performance.
  • Dados locais para usuarios remotos, melhor performance.

HDR antes da versão 11

  • Primario: Este é o servidor que os usuários normalmente se conectam. Permite atualizações de dados, como de costume.  Este é a fonte de dados copiado para o secundario.
  • Secundario: Um servidor de backup somente leitura que recebe atualizações do primario.

HDR (IDS 11.50)

  • Primario: Este é o servidor que os usuários normalmente se concectam. Permite atualizações de dados  como de costume. Este é a fonte de dados copiado para o secundario.
    Uma das melhorias mais importantes em HDR a partir da versão 11.10 é que agora você pode ter multiplos servidores secundarios, ates você estava limitado a somente um servidor secundario. Alem disso, existem diferentes tipos de servidores secundarios que lhe permite uma configuração adequada para suas necessidades empresarias.
  • Secundario: Servidor de backup que recebe os dados do servidor primario. Ele também permite UPDATEs usando o “redirect writes” (ex, as atualizações  são realmente enviadas para o servidor primario e, em seguida recebidos através de replicação.
  • Checkpoints entre o servidor Primario e o HDR secundario são sempre sincronizados.
  • Commits entre o servidor Primario e o servidor secundario pode ou não ser sincronizados (depende da sua configuração).
  • Servidor secundario Standalone remoto (RSS): Um novo tipo  de servidor secundario foi introduzido na versão 11.10 o que é atualizado em modo assincrono e tem mais conectividade mais flexivel com o servidor primário.
  • Adequado para usar como um servidor de relatorios e tambem locais distantes geograficamente e em redes de baixa velocidade, para fazer balanceamento de CPU, memoria, e tambem como um rápido  e facil failover se o servidor primario falhar.
  • Requer indexação em paginas de logging.
  • Shared Disk Secondary (SDS): Um novo tipo de servidor secundario introduzido na versão 11.10. Tal como o nome implica, ele não tem sua própria  copia separada do espaços de disco. Discos compartilhados com o servidor primario.
  • Normalmente usado com arrays de discos ou SAN

HDR no IDS 11.50

  • Os servidores que participam do HDR são servidores IDS regulares, colocado em um papel especifico ( primario, HDR, secundario, RSS, SDS) usando o comando onmode.
  • Pode haver um servidor primario, zero ou um HDR secundario, e zero, um multiplos servidores RSS e SDS em um clauster MACH 11 ( MACH = Multi node Active Cluster for High availability)
  • Servidores RSS/SDS pode ser seus unicos servidores secundarios, ou eles podem ser utilizados com um HDR secundario.
  • HDR é inicialmente configurado com um backup nivel zero e um physical restore (execto para servidores SDS).
  • Após a configuração inicial, os dados entre os servidores são mantidos em sincronia usando os logical logs.

  • DRINTERVAL – parametro onconfig que controla se a replicação ocorre de maneira assincrona ou sincrona.
  • DRINTERVAL –1 – (sincrono, ex. servidor primario aguarda por notificação vindo do servidor secundario antes de descarregar o logical-log buffer, como um commit)
  • DRINTERVAL outro valor exeto –1 ( assincrono – exemplo 30 segundos)
  • HDR Threads
    • drprsend: (primario) envia buffers
    • drsecrecv: (secundario) recebe buffers
    • drprping: (primario) checa a conectividade
    • drsecping: (secundario) checa a conectividade
    • drsecapply: (secundario) recepção da copia do buffer para o recuperação do buffer
    • logrecvr: (secundario) recuperação logica – atualização dos dbspaces
    • RSS_send: usa uma comunicação full duplex ( ex. sem aguardar o recebimento de uma notificação), esse thread envia paginas de logs para um servidor RSS. (roda no servidor primario)
    • RSS_recv: recebe paginas de logs vinda do servidor primario. (roda no servidor RSS)
    • RSS_apply: copia o conteudo do buffer de recepção para o buffer de recuperação. (roda no RSS server)
  • Atualizando o servidor secundario através do Redirected Writes
    • uma das melhorias mais significantes na versão HDR 11.50
    • Servidores secundarios (todos os tipos) agora permitem atualizações de dados.
    • As atualizações são transferidas para o servidor primario e então propagadas de volta para o servidor secundario
    • Inserts, updates e deletes para a maioria dos tipos de dados são suportados.
    • Usando as novas caracteristicas de controle de versões do IDS faz escritas redirecionadas  trabalhando com maior eficiencia.
  • Gerencimaneto de conectividade
    • Novo componente de software que gerencia os pedidos de conexões a partir das aplicações clientes.
    • Permite você definir niveis de serviços (SLAs) e configuração automatica failover.
    • Monitora todos os servidores dentro do clauster.
    • Pode decidir sobre o servidor mais adequado para a conexão da aplicação cliente.
  • Planejar um servidor HDR é obrigação
  • Requisitos de negocios ( ex. planejamento de recuperação de desastre, capacidade adicional de comunicação, dados locais) conduz a configuração técnica.
  • Com base nos requisitos de negocios, hardware/software disponiveis e redes disponiveis, você decidira sobre o tipo  e o numero de secundários.
  • Sistema Operacional e versão do Informix tem que ser identica.
  • Layouts dos chunks deve ser identico ( mas espelhamentos de chunks não há necessidade)
  • Banco de dados devem ser logged.

Planejamento e configuração do HDR

DRAUTO

0 (OFF) – significa não mudar automaticamente o tipo de servidor.
1 (RETAIN_TYPE) – significa mudar automaticamente do secundario para o padrao se a replicação falhar, volta para o secundario  quando o HDR reinicializar.
2 (REVERSE_TYPE) – significa mudar automaticamente do secundario para o padrao numa falha, para o primario quando o HDR reinicializar.

DRIDXAUTO

0 (off) significa que não há replicação automatica de indices para o secundario caso esteja corrompido.
1 (on) significa replicação automatica dos indices  para o servidor secundario se os indices estiverem corrompidos.  A configuração habilitada é requerida para servidores RSS.

DRINTERVAL

Interalo maximo, em segundos, entre a descarga do buffer de replição.
Valores aceitos –1, 0 e valores positivos inteiros
Valor padrão é de 30 segundos o que significa que se pode levar até 30 segundos para que as alterações do servidores primarios seja replicado para o servidor secundario.
-1 – significa configuração sincrona.

DRLOSTFOUND

Caminho para os arquivos lost&found da replicação.
Quando a replicação assincrona é utilizada e em caso de falha, isso possibilita que algumas transações sejam comitadas no servidor primario mas não no servidor secundario. Essas transações são armazenadas em um arquivo em lost&found.

DRTIMEOUT

Periodo de tempo, em segundos, que o servidor primario aguarda para receber uma notificação vinda do servidor secundario.
Após este periodo de tempo decorrido e sem notificação de recebimento, o Informix reconhece que houve uma falha.
Default é 30 segundos.

Passo a passo:

Requisitos e planejamento são completos e seguindo um cenário tipico é selecionado:

Primeiro passo:

Assegurar que todos os servidores tem o TCP/IP necessário configurados como por exemplo /etc/hosts.

vishnu server

vishnu:~ # cat /etc/hosts
#
# hosts         This file describes a number of hostname-to-address
#               mappings for the TCP/IP subsystem.  It is mostly
#               used at boot time, when no name servers are running.
#               On small systems, this file can be used instead of a
#               "named" name server.
# Syntax:
#
# IP-Address  Full-Qualified-Hostname  Short-Hostname
#

127.0.0.1       localhost


10.0.1.5        vishnu.ajmsolutions vishnu
10.0.1.9        isis.ajmsolutions isis
vishnu:~ #

isis server

isis:~ # cat /etc/hosts
#
# hosts         This file describes a number of hostname-to-address
#               mappings for the TCP/IP subsystem.  It is mostly
#               used at boot time, when no name servers are running.
#               On small systems, this file can be used instead of a
#               "named" name server.
# Syntax:
#
# IP-Address  Full-Qualified-Hostname  Short-Hostname
#

127.0.0.1       localhost

10.0.1.9        isis.ajmsolutions isis
10.0.1.5        vishnu.ajmsolutions vishnu
127.0.0.2      isis.ajmsolutions isis
isis:~ #

Segundo passo:

Assegurar que todos os servidores estão em modo de confiança entre si (“trust mode”) -  /etc/hosts.equiv

vishnu server

vishnu:~ # cat /etc/hosts.equiv
#
# hosts.equiv   This file describes the names of the hosts which are
#               to be considered "equivalent", i.e. which are to be
#               trusted enough for allowing rsh(1) commands.
#
# hostname
isis
vishnu:~ #

isis server

isis:~ # cat /etc/hosts.equiv
#
# hosts.equiv   This file describes the names of the hosts which are
#               to be considered "equivalent", i.e. which are to be
#               trusted enough for allowing rsh(1) commands.
#
# hostname

vishnu
isis:~ #

Terceiro Passo:

Verifique se o serviço do informix (ports) de cada servidor não esta bloqueado e esta sendo reconhecido em cada servidor (/etc/services)

vishnu server

vishnu:~ # cat /etc/services |egrep "prdsrv|tstsrv"
prdsrv          1540/tcp
tstsrv           1550/tcp
vishnu:~ #

isis server

isis:~ # cat /etc/services |egrep "prdsrv|tstsrv"
prdsrv          1540/tcp
tstsrv          1550/tcp
isis:~ #

Quarto Passo:

Garantir que cada servidor tem entradas dos outros servidores em seus arquivos sqlhosts do Informix. Você deve usar uma conexão TCP/IP e não conexões de memorias compartilhadas  para configuração do HDR.

vishnu server

informix@vishnu:/> cat $INFORMIXDIR/etc/sqlhosts
#**************************************************************************
#
#  Licensed Material - Property Of IBM
#
#  "Restricted Materials of IBM"
#
#  IBM Informix Dynamic Server
#  (c) Copyright IBM Corporation 1996, 2004 All rights reserved.
#
#   Title:      sqlhosts.demo
#   Description:
#               Default sqlhosts file for running demos.
#
#**************************************************************************
# IANA (www.iana.org) assigned port number/service names for Informix:
# sqlexec 9088/tcp
# sqlexec-ssl 9089/tcp

prd        onipcshm     vishnu    prd
prdsoc  onsoctcp       vishnu   prdsrv
tstsoc   onsoctcp       isis         tstsrv

informix@vishnu:/>

isis server

informix@isis:~> cat $INFORMIXDIR/etc/sqlhosts
#**************************************************************************
#
#  Licensed Material - Property Of IBM
#
#  "Restricted Materials of IBM"
#
#  IBM Informix Dynamic Server
#  Copyright IBM Corporation 1996, 2009
#
#   Title:           sqlhosts.demo
#   Description:     Default sqlhosts file for running demos.
#
#**************************************************************************
# The connectivity information for each database server includes four fields
# of required information and one optional field. You can also configure
# database server groups.
#
# The format for the five fields of connectivity information for a database
# server is one line in the UNIX  sqlhosts file, as follows:
#
# <dbservename> <nettype> <hostname> <servicename> <options>
#
# dbservername is the name of a database server on the network.
#
# nettype is an 8-character string specifying the protocol in this format:
#
# ddiiippp
#
# where
#   dd  =  Database product [|ol|on|dr]
#   iii =  Interface type [ipc|soc|tli|sql]
#   ppp =  Protocol [imc|nmp|shm|spx|str|tcp|ssl|mux]
#
# hostname is the name of the computer where the database server resides.
#
# servicename is a service name entry from the services file.
#
# options in the fifth field:

#
#   b=<connection buffer size>
#   c=<connection redirection>
#   g=<group name>
#   i=<group identifier>
#   e=<end of group>
#   m=<multiplexed connection>
#   k=<keep alive setting>
#   r=<client security setting>
#   s=<server security setting>
#   csm=<communication support module>
#
# To create an entry for a group, put a group name in the dbservername field,
# the word group in the nettype field, a hyphen in both the hostname and the
# servicename fileds, and i=<group identifier> in the options field.
#
# For additional information on the parameters, see the IBM Informix
# Administrator's Guide.
#**************************************************************************
# IANA (www.iana.org) assigned port number/service names for Informix:
# sqlexec 9088/tcp
# sqlexec-ssl 9089/tcp


tst         onipcshm        isis               tst
tstsoc   onsoctcp          isis               tstsrv
prdsoc  onsoctcp          vishnu          prdsrv
informix@isis:~>

Quinto Passo:

Assegure-se que os seguintes valores do ONCONFIG estejam identicos entre os servidores.

ROOTNAME, ROOTPATH, ROOTOFFSET, ROOTSIZE
PHYSDBS, PHYSFILE
TAPEBLK, TAPESIZE, LTAPEBLK, LTAPESIZE
LOGFILES, LOGSIZE
DRAUTO, DRINTERVAL, DRTIMEOUT

Sexto Passo:

Pegue um archive nivel 0 do servidor primario (vamos utilizar mais adiante)

Setima Passo:

Configurar o servidor primario para iniciar como um primario ligando ao servidor secundario

informix@vishnu:~/etc> onmode -d primary tstsoc

Oitavo Passo

Restaurar o archive nivel 0 como uma restauração fisica no HDR secundario.

informix@isis:~> ontape -p
Restore will use level 0 archive file /ontapeDir/archiveDir/isis_0_L0. Press Return to continue ...


Archive Tape Information

Tape type:      Archive Backup Tape
Online version: IBM Informix Dynamic Server Version 11.50.FC8GE
Archive date:   Wed Apr 18 11:58:18 2012
User id:        informix
Terminal id:    /dev/pts/0
Archive level:  0
Tape device:    /ontapeDir/archiveDir/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1

Spaces to restore:1 [rootdbs                                                                                                                         ]
2 [dbsphyslog                                                                                                                      ]
3 [dbslog                                                                                                                          ]
4 [dbsnfe                                                                                                                          ]
5 [prd                                                                                                                             ]
6 [dbscrm                                                                                                                          ]

Archive Information

IBM Informix Dynamic Server Copyright 2001, 2010  IBM Corporation.
Initialization Time       07/17/2011 00:47:09
System Page Size          2048
Version                   18
Index Page Logging        OFF
Archive CheckPoint Time   04/18/2012 11:58:17

Dbspaces
number   flags    fchunk   nchunks  flags    owner                            name
1        40001    1        1        N  B     informix                         rootdbs                                                        
2        40001    2        1        N  B     informix                         dbsphyslog                                                     
3        40001    3        1        N  B     informix                         dbslog                                                         
4        42001    4        1        N TB     informix                         dbstmp1                                                        
5        42001    5        1        N TB     informix                         dbstmp2                                                        
6        42001    6        1        N TB     informix                         dbstmp3                                                        
7        40001    7        1        N  B     informix                         dbsnfe                                                         
8        40001    8        8        N  B     informix                         prd                                                            
9        40001    16       1        N  B     informix                         dbscrm         

Chunks
chk/dbs offset   size     free     bpages   flags pathname
1   1   0        150000   114833            PO-B  /dbroot/rootdbs
2   2   0        500053   0                 PO-B  /dblogs/physlog/dbsphyslog
3   3   0        1750053  0                 PO-B  /dblogs/logs/dbslog
4   4   0        200053   199527            PO-B  /dbtmp/dbstmp.1
5   5   0        200053   199750            PO-B  /dbtmp/dbstmp.2
6   6   0        200053   199644            PO-B  /dbtmp/dbstmp.3
7   7   0        1500053  1145313           PO-B  /dbnfe/dbsnfe
8   8   0        1500053  63                PO-B  /dblogix/prd.1
9   8   0        1500003  16                PO-B  /dblogix/prd.2
10  8   0        1500003  18                PO-B  /dblogix/prd.3
11  8   0        1500003  175               PO-B  /dblogix/prd.4
12  8   0        1500003  284               PO-B  /dblogix/prd.5
13  8   0        1500003  86187             PO-B  /dblogix/prd.6
14  8   0        1500003  1500000           PO-B  /dblogix/prd.7
15  8   0        1500003  1500000           PO-B  /dblogix/prd.8
16  9   0        1000053  697460            PO-B  /dblogix/crm.1

Continue restore? (y/n)y
Do you want to back up the logs? (y/n)y
File created: /ontapeDir/logicalLogs/isis_0_Log0000000007
File created: /ontapeDir/logicalLogs/isis_0_Log0000000008
Log salvage is complete, continuing restore of archive.
Restore a level 1 archive (y/n) n

Nono Passo:

Configure o servidor HDR secundario para inicializar como secundario ligando ao servidor primario

informix@isis:~/etc> onmode –d secondary prdsoc

Décimo Passo:

Verifique se agora você tem um HDR pariado

vishnu server

informix@vishnu:~> onstat -g dri

IBM Informix Dynamic Server Version 11.50.FC8GE -- On-Line (Prim) -- Up 03:04:24 -- 2857436 Kbytes

Data Replication at 0xd4caf028:
  Type           State        Paired server        Last DR CKPT (id/pg)    Supports Proxy Writes
  primary        on          tstsoc                       -1 / -1         NA

  DRINTERVAL   30
  DRTIMEOUT    30
  DRAUTO       0
  DRLOSTFOUND  /usr/informix/etc/dr.lostfound
  DRIDXAUTO    0
  ENCRYPT_HDR  0
  Backlog      0

informix@vishnu:~>

isis server

informix@isis:~> onstat -g dri

IBM Informix Dynamic Server Version 11.50.FC8GE -- Fast Recovery (Sec) -- Up 01:03:41 -- 2889780 Kbytes

Data Replication at 0xf320f028:
  Type           State        Paired server        Last DR CKPT (id/pg)    Supports Proxy Writes
  HDR Secondary  on          prdsoc                       -1 / -1         N

  DRINTERVAL   30
  DRTIMEOUT    30
  DRAUTO       0
  DRLOSTFOUND  /usr/informix/etc/dr.lostfound
  DRIDXAUTO    0
  ENCRYPT_HDR  0
  Backlog      0

informix@isis:~>

Categorias: Blogs em Português

A Fábrica do Futuro

AJMoreti - ter, 17/04/2012 - 17:01

A fábrica do futuro caracteriza-se por outros aspectos, além de uma instalação repleta de robôs e um elevado grau de automação, e está devidamente organizada em torno da tecnologia, do computador, que integra, por softwares especialmente desenvolvidos, praticamente todas as atividades. Nela, há o uso generalizado de ferramentas como CAD, MRP II, ERP, EDI, e acima de tudo, destaca-se a presença do trabalhador do conhecimento ( o knowledge worker,  o colaborador que usa a cabeça, o saber, mais do que as mãos). Podemos dizer que a fábrica do futuro apresenta as seguintes características:

  • Organização da produção: focada na alta produtividade. As atividades que não agregam valor são eliminadas. A filosofia de fazer certo desde a primeira vez é levada a extremos. Os refugos e retrabalhos não são admitidos. Os métodos de trabalho têm mecanismos para a prevenção de problemas. Os níveis de estoques são baixíssimos, poís o just-in-time esta em toda parte, e os componentes são entregues diretamente nas linhas de fabricação e/ou montagem. As fabricas são extremamente limpas e organizadas, em decorrência da aplicação sistemática do housekeeping. Os colaboradores são treinados em várias funções, desde a operação, preparação e manutenção até projetos de novos produtos e/ou processos produtivos, são todos controlados por computadores por meio de software integrados.
    Hoje já existem muitas fábricas do futuro em plena operação, a exemplo dos sistemas denominados produção enxuta, que surgiram no Japão e estão se espalhando por todo o mundo.
    A autoridade do colaborador, no que se refere à qualidade do produto, é praticamente ilimitada. Ele pode, a qualquer instante, parar a linha de produção, uma vez constatada uma não-conformidade já ocorrida ou latente. O espirito de grupo e de compromisso mútuo está presente. Todos os outros colaboradores procuram ajudar na solução do problema para que a linha volte à normalidade o mais rápido possível. Metodologias de identificação e solução de problemas são amplamente difundidas e incorporadas à cultura de todos os colaboradores. A gestão dos processos é feita pela utilização de indicadores de desempenho amplamente discutidos e aceitos por todos os colaboradores que estiverem intimamente ligados aos objetivos estratégicos e táticos da empresa;
  • Projeto dos produtos e dos processos: os projetos dos produtos  são desenvolvidos juntamente com os processos onde serão fabricados. A engenharia simultânea é aplicada em larga escala, passando a ser lugar-comum em todas as empresas. A atenção aos objetivos dos clientes guia o projeto, e a utilização de técnicas como o desdobramento da função qualidade (QFD) e  a análise de falhas (FMEA) assegura maior qualidade e confiabilidade aos produtos. Os produtos têm um menor número de componentes, o que diminui os riscos de falhas e os custos, sem que se perca a flexibilidade, pois os produtos são modulados.
  • Layout: é o elemento determinante da fábrica do futuro. As fábricas grandes até então tidas como padrão são divididas em várias pequenas unidades dentro da fábrica original, devidamente focalizadas, organizadas em células de produção, com elevado grau de automação. Os novos projetos contemplam áreas reduzidas para estoques de matérias-primas e produtos acabados, e não há previsão de áreas para retrabalho. Até mesmo as áreas  reservadas para os produtos em processos são reduzidas, pois as linhas são balanceadas de forma a permitir um fluxo contínuo e sem acúmulo em determinados pontos de processo. Esse processo de mudança permite que possa se dobrar a produção utilizando-se a metade da área até então usada.
  • Comunicação visual: as informações sobre produção, produtividade, objetivos atingidos e a atingir, porcentagem de refugos, etc., estão dispostas em quadros espalhados por todas as instalações, para serem lidos, analisados e criticados por todos os colaboradores. A era dos gerentes que guardam informações para deter o poder esta chegando ao fim.  Na fábrica do futuro as informações são disponibilizadas em tempo real, como a utilização de painéis eletrônicos conectados a vários terminais de entrada de dados. A utilização de cores é explorada ao máximo, com cartões kanban, contêineres, bancadas, etc., coloridos de forma a transmitir uma ou mais informações sobre o andamento dos processos.
  • posto de trabalho:  o posto de trabalho é projetado tendo em vista  os conceitos de ergonomia, procurando o conforto, bem-estar e segurança dos colaboradores. Além disso, a fábrica do futuro é ecologicamente correta. isto é, não é poluidora. São certificadas nos termos da ISO 14000 ou normas correspondentes. A preocupação em trabalhar com materiais recicláveis está presente em todas elas.

Fonte: Martins, P. G.; Laugeni, F. P. (2006). Administração da Produção. São Paulo. Saraiva.

Categorias: Blogs em Português