Tutorial Parte 2 - Configurando uma instancia

Versão para impressãoEnviar para amigoVersão PDF

No tutorial anterior foi demonstrado como instalar o Informix, uma instalação simples sem grandes parametrizações. Foi instalado apenas o produto IDS (banco de dados).

Agora iremos ver como configurar uma instancia e coloca-la online, pronta para que possa ser criado o primeiro banco de dados. Este procedimento é chamado de "inicializar" a instancia, o que a grosso modo poderia ser comparavel ao "formatar" .

No Informix a configuração básica da instancia é bem simples , é baseada praticamente em apenas 2 arquivos: um de configuração do banco e outro para configuração de rede.

  1. Definições necessárias para a configuração
    1. Configurando o local de armazenamento da instancia
    2. Definindo os arquivos dos chunks
    3. Configuração de rede
  2. Criando arquivos de configuração
    1. Variáveis de ambiente
    2. ONCONFIG
    3. SQLHOSTS
  3. Iniciando o Informix
    1. Verificando status do banco e logs
    2. Parando a instancia
  4. Fim desta parte

Definições necessárias para a configuração


Antes de iniciar com o arquivo de configuração é preciso saber onde o banco de dados será armazenado, em qual disco, diretório e nome dos arquivos. Se for utilizado conexões TCP/IP para acesso ao banco também será necessário verificar a configuração de rede (mas isto pode ser feito após a inicialização da instancia).
Se você ainda não leu nada sobre a arquitetura do informix, leia este artigo antes de continuar para que possa ter uma noção básica.

Configurando o local de armazenamento da instancia


A menor unidade de alocação de espaço no Informix são os Chunks, portanto a relação é "local X Chunk".
Para cada chunk deve ser definido um path e nome de arquivo/device , por exemplo "/dados/chunk1" .

O local onde um chunk é salvo pode ser um arquivo comum no file system, um block device ou um raw device, em termos de configuração e compatibilidade não há restrições. Para uma mesma instancia pode-se ter chunks armazenados de todos os modos , exemplos:

    Chunk 1 - arquivo      :   /dados/chunk1.dados
    Chunk 2 - block device :   /dev/hda6
    Chunk 3 - raw device   :   /dev/raw/raw1
    
Para informações sobre vantagens/desavantagens de cada modo, leia o artigo sobre a arquitetura do Informix.

Até a versão 7.3 do Informix um chunk pode utilizar no maximo 2 GBytes de espaço, a partir da versão 9.4 este limite foi extendido para até 4 TeraBytes por chunk.

Todo chunk possui duas caracteristicas básicas, seu tamanho e offset. O offset é utilizado principalmente em alocações de block/raw device. Como já deve ter reparado , quando utilizado algum deles o apontamento para onde os dados serão salvos é diretamente para o disco, então veja no exemplo abaixo o porque da necessidade do offset.
Obs.: Não iremos utilizar offset por enquanto, então se desejar pode pular esta explicação.

    Considere dois disco de 40 GBytes configurado com algumas partições da seguinte maneira
    
    Disco A , partição 1 - /dev/hda1 , 10 GB 
      File System Ext3 , Boot do linux
    Disco A , partição 2 - /dev/hda2 , 10 GB 
      File System Ext3 , Root do linux , onde todos os programas estão instalado
    Disco A , partição 3 - /dev/hda3 , 10 GB 
      Sem File System, espaço reservado para utilização do banco de dados
    Disco A , partição 4 - /dev/hda4 , 10 GB 
      Sem File System, espaço reservado para utilização do banco de dados
    
    Disco B , partição 1 - /dev/hdb1 , 20 GB
      Sem File System, espaço reservado para utilização do banco de dados
    Disco B , partição 2 - /dev/hdb2 , 20 GB 
      Sem File System, espaço reservado para utilização do banco de dados
    
    Vamos supor que o banco de dados írá utilizar 55 GBytes de dados.
    Será necessário a criação de no minimo 4 chunks apenas para os dados (um para cada
    partição). Porém você ainda precisa configurar outros chunks com finalidade
    administrativas como área temporária (utilizado em SQLs com sorts , etc) ,
    espaço para o root do banco de dados (que é o local onde fica todas as informações da
    sua instancia) espaço do Logical Log e Physical log, que são espaços utilizados para
    controle de transações, Disaster Recovery e etc.
    
    Desta forma, fica a pegunta, como você administra tantos chunks para apenas 4 devices?
    Para isso utilizamos o offset , onde apontamos mais de um chunk para o mesmo
    device mas separamos seu local de armazenamento através do offset. O offset
    do chunk deve ser um valor em Kbytes de onde o chunk anterior finaliza, veja
    como poderia ficar a alocação do espaço baseado no exemplo de discos já descrito:
    
    Nome Chunk     Device         Tamanho        Offset
    -------------  ------------   -------------  -------------
    root           /dev/hda3      200 MB         0
    logical-log    /dev/hda3      800 MB         200 MB
    physical-log   /dev/hda3      500 MB         1000 MB
    temporario1    /dev/hda3      200 MB         1500 MB
    dados1         /dev/hda3      8200 MB        1800 MB
    temporario2    /dev/hda4      400 MB         0 MB
    dados2         /dev/hda4      9600 MB        400 MB
    temporario3    /dev/hdb1      500 MB         0 MB
    dados3         /dev/hdb1      19500 MB       500 MB
    temporario4    /dev/hdb2      500 MB         0 MB
    dados4         /dev/hdb2      19500 MB       500 MB
    

Quando utilizado arquivos, esta configuração de offset ainda funciona porém não existe necessidade de utiliza-lo já que a criação de arquivos para novos chunks é algo dinâmico e fácil de realizar através de linha de comando.

Não "quebre a cabeça" com isso ainda, pois não pretendo utiliza-lo neste momento para não gerar confusão, iremos trabalhar com arquivos.

Portanto prepare um local no seu disco para alocar pelo menos 500 MB de dados, de preferência um path fácil e curto. Aqui irei utilizar o path "/ifmxdados" que é um ponto de montagem para um File System EXT2 com 700 MB.

    # df -h /ifmxdados
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sdb6             695M  728K  659M   1% /ifmxdados
    # mount |grep ifmxdados
    /dev/sdb6 on /ifmxdados type ext2 (rw)
    # ls -ld /ifmxdados
    drwxrwx--- 3 informix informix 4096 2009-06-10 14:44 /ifmxdados
    
Repare que alterei o owner para informix:informix e acertei a permissão para 770. Isto não é obrigatório, mas recomendável.

Definindo os arquivos dos chunks


Como iremos trabalhar com arquivos para alocar o espaço do chunk ,teremos de criar estes arquivos manualmente. Para isso precisamos definir um nome para cada arquivo/chunk, portanto para facilitar pense sempre da seguinte forma para nomea-los:
  • Um chunk sempre irá pertencer a um unico dbspace , portanto , associe o nome do chunk ao dbspace
  • Um dbspace pode possuir mais de um chunk, portanto é preciso numerar os chunks para não ter problema de nome duplicado
Ao criar uma nova instancia , apenas um chunk é necessário, porém esta não é a configuração ideal. Claro que não vamos partir para a configuração ideal aqui, mas já pretendo demonstrar metade do caminho.

A configuração que temos como objetivo agora é focada nos dbspaces basicos necessários, segue uma lista com nomes sugeridos por mim (este nome pode ser qualquer outro de sua preferência).

  • rootdbs: É o dbspace mais critico da instancia, nele é salvo todas as informações da instancia. É o primeiro a ser criado na instancia.
  • llog: É onde os Logical Logs são salvos. É um log circular de todas as transações realizadas na instancia.
  • plog: Chamado de Physical Log, utilizado em conjunto com Logical Log, porém neste é utilizado para os Before Images dos dados e em situações de Recovery
  • temp1: Dbpsace para dados temporários
  • dados1: Para armazenamento dos banco de dados que iremos criar.

Baseado nos dbspaces acima iremos criar os arquivos dos chunks. Por questões de segurança todo chunk utilizado pelo Informix obrigatóriamente precisa ter o usuário e grupo como informix e as permissões de leitura e gravação apenas para o usuário e grupo (chmod 660).

    # Aqui, já conectado com o usuário informix (criado no Tutorial Parte 1)
    # iremos criar os chunks. Cada um terá o mesmo nome utilizado pelo dbspace
    # porém com a extenção ".chN" onde o N é o numero do chunk para o dbspace, o
    # que por enquanto , é tudo igual a 1.
    #
    /ifmxdados$ touch rootdbs.ch1 llog.ch1 plog.ch1 temp1.ch1 dados1.ch1
    /ifmxdados$ ls -l *.ch*
    -rw-r----- 1 informix informix 0 2009-06-10 14:44 dados1.ch1
    -rw-r----- 1 informix informix 0 2009-06-10 14:44 llog.ch1
    -rw-r----- 1 informix informix 0 2009-06-10 14:44 plog.ch1
    -rw-r----- 1 informix informix 0 2009-06-10 14:44 rootdbs.ch1
    -rw-r----- 1 informix informix 0 2009-06-10 14:44 temp1.ch1
    /ifmxdados$ chmod 660 *.ch*
    /ifmxdados$ ls -l *.ch*
    -rw-rw---- 1 informix informix 0 2009-06-10 14:44 dados1.ch1
    -rw-rw---- 1 informix informix 0 2009-06-10 14:44 llog.ch1
    -rw-rw---- 1 informix informix 0 2009-06-10 14:44 plog.ch1
    -rw-rw---- 1 informix informix 0 2009-06-10 14:44 rootdbs.ch1
    -rw-rw---- 1 informix informix 0 2009-06-10 14:44 temp1.ch1
    

Pronto, esta parte já está ok.

Configuração de rede


Já iremos coletar as informações para o banco para funcionar através de rede. Isto não é necessário faze-lo agora, mas por ser um proecdimento simples vou aproveitar o momento.

A unica coisa que precisamos é ver qual IP o servidor esta utilizando. Para isso utilize o comando ifconfig .

    $ /sbin/ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:22:15:85:7D:62
              inet addr:172.30.252.207  Bcast:172.30.255.255  Mask:255.255.0.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:248411 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2231 errors:0 dropped:0 overruns:0 carrier:2
              collisions:0 txqueuelen:1000
              RX bytes:16569451 (15.8 Mb)  TX bytes:229730 (224.3 Kb)
              Interrupt:219
    
    eth0:1    Link encap:Ethernet  HWaddr 00:22:15:85:7D:62
              inet addr:172.30.252.210  Bcast:172.30.255.255  Mask:255.255.0.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              Interrupt:219
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:2 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:100 (100.0 b)  TX bytes:100 (100.0 b)
    
No meu caso irei utilizar o IP 172.30.252.207 definido na interface eth0.
Neste momento não recomendo utilizar hostnames porque dependendo de como estiver a configuração da sua maquina você poderá ter problemas de DNS reverso, o que trata-se de configuração de SO. Então para manter as coisas simples vamos trabalhar apenas com IP.

Criando arquivos de configuração


Para o Informix saber onde estão os arquivos de configurações ele utiliza váriaveis de ambiente do SO, lembra que no final do Tutorial Parte 1 o instalador informa quais variáveis devem ser definidas?
Estas variaveis devem ser definidas na sessão antes da execução de qualquer comando do informix, pense nelas como ponteiros para os arquivos de configuração.
Como já foi falado, são apenas dois arquivos a configuração do Informix, estes arquivos são chamado de onconfig e sqlhosts e iremos ver como configura-los a seguir.

Variáveis de ambiente


Neste momento iremos definir manualmente as váriaveis básica. Posteriormente irei demonstrar como automatizar este processo para evitar muita digitação.
Segue lista de variáveis básicas:
  • INFORMIXSERVER: Toda instancia do informix possui um nome principal e é nesta variável que é definido qual instancia será utilizada. Aqui irei utilizar o nome "idstitan"
  • INFORMIXDIR: Diretório onde o produto IDS foi instalado, no meu caso: /dados/IBM/ids1150uc4de
  • ONCONFIG: Nome do arquivo de configuração da instancia.
  • INFORMIXSQLHOSTS: Path e nome do arquivo de configuração de rede
  • PATH: Variavel do Linux, onde deve ser incluido o path do diretório $INFORMIXDIR/bin
Com usuário informix , para ambiente com bash/ksh/sh shell, defina as variáveis da seguinte forma:
    $ export INFORMIXSERVER=idstitan
    $ export INFORMIXDIR=/dados/IBM/ids1150uc4de
    $ export INFORMIXSQLHOSTS=/dados/IBM/ids1150uc4de/etc/sqlhosts.idstitan
    $ export ONCONFIG=onconfig.idstitan
    $ export PATH=$PATH:$INFORMIXDIR/bin
    

ONCONFIG


No arquivo onconfig é definido toda configuraçao do Informix. Sua localização é fixa no sub-diretório "etc" de onde o produto foi instalado, no nosso caso: $INFORMIXDIR/etc , /dados/IBM/ids1150uc4de/etc
No diretório "etc" já deverá existir um arquivo chamado onconfig.std que serve como modelo. Nele há todas as opções definidas com valores padrão . Nunca apague este arquivo e nunca altere os valores nele (a não ser que você saiba o que está fazendo).
O nosso arquivo de configuração será uma copia do onconfig.std e nesta cópia iremos alterar apenas os valores que são necessários.
    $ cd $INFORMIXDIR/etc
    $ cp -v onconfig.std $ONCONFIG
    `onconfig.std' -> `onconfig.idstitan'
    
Para editar o arquivo , utilize o editor de sua preferência (pico, joe, jpico, vim, vi, kwrite ).
Segue abaixo os unicos parametros que iremos alterar com seus novos valores.
    # Este parametro define o chunk do dbspace root da instancia
    ROOTPATH /ifmxdados/rootdbs.ch1
    # Define path para salvar backup, o que por enquanto deve ser descartado (null)
    TAPEDEV /dev/null
    LTAPEDEV /dev/null
    # Toda instancia do Informix deve possuir um código unico (na mesma maquina/rede)
    SERVERNUM 1
    # Define o nome da instancia
    DBSERVERNAME idstitan
    # Define configurações de conectividade
    NETTYPE soctcp,1,50,NET
    
De modificações, apenas isso por enquanto.
Aproveite para observar os valores dos parametros MSGPATH, CONSOLE, LOGFILES, LOGSIZE, PHYFILE e DBSPACETEMP. Estes paramêtros podem ser ou serão modificados posteriormente.
Observe também que neste arquivo existem comentários explicando com um bom nivel de detalhe cada paramêtro.

SQLHOSTS


O arquivo sqlhosts faz o relacionamento entre instancia e interface de comunicação. Ele também é utilizado pela aplicação cliente para que ela saiba como acessar o banco de dados.
O local onde o arquivo é salvo é por padrão no diretório "etc" do produto, porém não é uma regra, assim este arquivo pode ser salvo em qualquer outro diretório da maquina , por exemplo o "/etc" .
No diretório $INFORMIXDIR/etc também existe um sqlhosts.std que pode servir de modelo para o novo arquivo

Crie o novo sqlhosts

    $ cp -v sqlhosts.std  $INFORMIXSQLHOSTS
    `sqlhosts.std' -> `/dados/IBM/ids1150uc4de/etc/sqlhosts.idstitan'
    

Edite o novo sqlhosts com o editor de sua preferencia e incluia uma linha como essa

    idstitan onsoctcp    172.30.252.207 9088
    
O conteúdo do sqlhosts possui uma formatação fixa de 5 campos por linha, separados por espaços ou tabulações:
    [nome_instancia] [protocolo]  [hostname]  [porta]  [opções]
    
Como deve ter reparado , apesar de ter 5 campos, informamos apenas os 4 primeiros. O ultimo campo são opções utilizadas para tunning ou outros motivos administrativos, neste momento não há necessidade de defini-los.

Uma Observação, no exemplo aqui utilizei o valor númerico 9088 para espeficiar a porta do Informix, isso funciona, porém o modo correto de se configurar isso em um ambiente é utilizando o arquivo /etc/services onde adicionariamos no arquivo uma linha com o conteúdo similar a este:

    ifx_port1 9088/tcp # Informix port 1
    
Então no arquivo SQLHOSTS ao invés de informar o número 9088, informamos a porta "ifx_port1" :
    idstitan onsoctcp    172.30.252.207 ifx_port1
    

Iniciando o Informix


Pronto! toda configuração básica foi realizada .
Mas antes de continuar, de apenas mais uma conferida:
  • Os arquivos dos chunks foram criados e estão com as permissões corretas?
  • As variaveis de ambiente estão definidas?
  • O arquivo $ONCONFIG foi alterado ?
  • O arquivo $INFORMIXSQLHOSTS foi alterado ?

O comando para iniciar é o oninit . Porém por se tratar de uma inicialização da instancia, precisamos usa-lo com o parâmetro -i . Opcionalmente podemos utilizar o parâmetro -v , que é o verbose mode , modo mais descritivo, onde exibe cada passo que o banco está realizando, com este parâmetro se ocorrer algum problema será mais facil de identificar a origem.
Repare que listei o arquivo de chunk do root antes e depois de inicializar , antes o arquivo estava zerado e depois já tinha um tamanho de 200MB , alocado pelo informix.

    $ ls -oh /ifmxdados/rootdbs.ch1
    -rw-rw---- 1 informix 0 2009-06-10 14:44 /ifmxdados/rootdbs.ch1
    $ oninit -iv
    # !!! SECURITY PROBLEM !!!
    # /dados/IBM/ids1150uc4de (path is not trusted)
    # Analysis:
    # User           Group          Mode Type Secure Name
    # 0     root     0     root     0755 DIR    YES  /
    # 0     root     0     root     0777 DIR    NO   /dados
    # 1001  informix 1000  informix 0775 DIR    NO   /dados/IBM
    # 1001  informix 1000  informix 0755 DIR    NO   /dados/IBM/ids1150uc4de
    # Name: /dados
    # Problem: the permissions 0777 include public write access
    
Ooooooops! Conforme já citei na parte 1 do tutorial, na versão 11.50 UC4 foi incluido novas validações de segurança. Caso o ambiente não passe pela validação, você terá duas opções, ignorar ou corrigir. No meu caso o diretório /dados onde instalei o produto não é seguro mas eu não quero mudar a permissão dele pois tenho outros arquivos pessoais neste diretório. Então vou configurar para ignorar estas validações para este diretório.
Nesta pagina do Information Center da IBM você terá informações sobre todos os pré-requisitos de segurança e nesta pagina terá as informações especificas sobre o método que irei utilizar para ignorar esta situaçãp.

    $ su
    Password:
    # echo "/dados" > /etc/informix/trusted.insecure.directories
    # chmod 444 /etc/informix/trusted.insecure.directories
    # exit
    exit
    
    $ oninit -iv
    
    This action will initialize IBM Informix Dynamic Server;
    any existing IBM Informix Dynamic Server databases will NOT be accessible -
    Do you wish to continue (y/n)? y 
    
    Checking group membership to determine server run mode...succeeded
    Reading configuration file '/dados/IBM/ids1150uc4de/etc/onconfig.idstitan'...succeeded
    Creating /INFORMIXTMP/.infxdirs...succeeded
    Creating infos file "/dados/IBM/ids1150uc4de/etc/.infos.idstitan"...succeeded
    Linking conf file "/dados/IBM/ids1150uc4de/etc/.conf.idstitan"...succeeded
    Checking config parameters...succeeded
    Writing to infos file...succeeded
    Allocating and attaching to shared memory...succeeded
    Creating resident pool 10572 kbytes...succeeded
    Allocating 100016 kbytes for buffer pool of 2K page size...succeeded
    Initializing rhead structure...succeeded
    Initialization of Encryption...succeeded
    Initializing ASF...succeeded
    Initializing Dictionary Cache and SPL Routine Cache...succeeded
    Bringing up ADM VP...succeeded
    Creating VP classes...succeeded
    Onlining 0 additional cpu vps...succeeded
    Onlining 2 IO vps...succeeded
    Forking main_loop thread...succeeded
    Initializing DR structures...succeeded
    Forking 1 'soctcp' listener threads...succeeded
    Starting tracing...succeeded
    Initializing 8 flushers...succeeded
    Initializing log/checkpoint information...succeeded
    Initializing dbspaces...succeeded
    Opening primary chunks...succeeded
    Opening mirror chunks...succeeded
    Validating chunks...succeeded
    Creating database partition...succeeded
    Initialize Async Log Flusher...succeeded
    Starting B-tree Scanner...succeeded
    Initializing DBSPACETEMP list...succeeded
    Checking database partition index...succeeded
    Initializing dataskip structure...succeeded
    Checking for temporary tables to drop...succeeded
    Forking onmode_mon thread...succeeded
    Creating periodic thread...succeeded
    Starting scheduling system...succeeded
    Verbose output complete: mode = 5
    
    $ ls -oh /ifmxdados/rootdbs.ch1
    -rw-rw---- 1 informix 196M 2009-06-11 15:42 /ifmxdados/rootdbs.ch1
    
Observe também que o informix irá pedir uma confirmação da execução do comando, isso se deve ao parâmetro -i. Este parâmetro seria como uma formatação da instancia, ou seja, se você executar este comando em uma instancia que contem dados reais, estes dados serão perdidos.

Pronto , aqui já temos a instancia no ar.
Neste momento se quiser você já até pode utiliza-la , criar um banco de dados . Mas faça isso apenas se for pequenos testes, pois devido ela estar com as configurações padrões , está limitada de várias formas.

Verificando status do banco e logs


Para verificar o status dela utilize onstat -
    $ onstat -
    
    IBM Informix Dynamic Server Version 11.50.UC4DE -- On-Line -- Up 00:00:10 -- 144144 Kbytes
    
O local onde o arquivo de log é gerado é definido no arquivo onconfig, parâmetro MSGPATH. Ele pode ser visualizado manualmente ou através do comando onstat -m (mas este exibe apenas as ultimas linhas).
    $ onstat -m
    
    IBM Informix Dynamic Server Version 11.50.UC4DE -- On-Line -- Up 00:00:43 -- 144144 Kbytes
    
    Message Log File: /dados/IBM/ids1150uc4de/tmp/online.log
    09:52:45  DR: ENCRYPT_HDR is 0 (HDR encryption Disabled)
    09:52:45  Event notification facility epoll enabled.
    09:52:45  IBM Informix Dynamic Server Version 11.50.UC4DE Software Serial Number AAA#B000000
    09:53:12  IBM Informix Dynamic Server Initialized -- Complete Disk Initialized.
    09:53:12  Started 1 B-tree scanners.
    09:53:12  B-tree scanner threshold set at 5000.
    09:53:12  B-tree scanner range scan size set to -1.
    09:53:12  B-tree scanner ALICE mode set to 6.
    09:53:12  B-tree scanner index compression level set to med.
    09:53:12  Dataskip is now OFF for all dbspaces
    09:53:12  Checkpoint Completed:  duration was 0 seconds.
    09:53:12  Fri Jun 12 - loguniq 1, logpos 0xe8, timestamp: 0xc2 Interval: 2
    
    09:53:12  Maximum server connections 0
    09:53:12  Checkpoint Statistics - Avg. Txn Block Time 0.000, # Txns blocked 1, Plog used 6, Llog used 2
    
    09:53:12  On-Line Mode
    09:53:12  Building 'sysmaster' database ...
    09:53:25  Booting Language <spl> from module <>
    09:53:25  Loading Module <SPLNULL>
    
    $ grep MSGPATH $INFORMIXDIR/etc/$ONCONFIG
    # MSGPATH      - The path of the IDS message log file
    MSGPATH $INFORMIXDIR/tmp/online.log
    

Parando a instancia


Para realizar o shutdown da instancia utilize o comando onmode -ky.
    $ onstat -
    
    IBM Informix Dynamic Server Version 11.50.UC4DE -- On-Line -- Up 00:00:10 -- 144144 Kbytes
    
    $ onmode -ky
    $ onstat -
    shared memory not initialized for INFORMIXSERVER 'idstitan'
    

Fim desta parte


Como esta parte do tutorial ficou muito extensa decidi quebrar em duas, onde na próxima irei mostrar como acertar a configuração do banco para um modo mais perto do ideal de se trabalhar.

Para acessar os dados, criar tabelas, executar SQLs e outra coisas, utilize o comando dbaccess, para mais informações sobre ele, leia o artigo Quais os parametros uteis do dbaccess e modo de utilização?.

5
Média: 5 (4 votos)
Sua avaliação: Nenhum

Ajuda

Sou novato e desesperado por ajuda: Após dar o comando oninit -v e depois onstat - , me retornado a mensagem: "shared memory not initialized for INFORMIXSERVER 'novobanco' Como devo proceder ?

RES: Ajuda

Olá Helio,
Isso quer dizer que o seu oninit -v não funcionou.
Quando você executa o oninit -v (com -v) , se ele finaliza com uma mensagem "mode = 5" , apenas se o banco subiu com sucesso .
Se não tiver isso é porque algo errado já aconteceu antes.
Para descobrir o problema tem que verificar qual mensagem o comando oninit -v exibiu e/ou olhar o log , através do comando onstat -m .
Neste comando ele mostra apenas as ultimas linhas do log, mas no inicio ele mostra onde está o arquivo de log , que você pode abrir com qualquer editor e visualizar as mensagens.
Desconfio que esta conversa vai longe , se puder poste esta sua mensagem no grupo do IIUG : http://www.iiug.org/forums/iiug-por/ , lá temos outros DBAs que também podem ajudar (caso eu não consiga responder prontamente).
O que eu puder eu também respondo por lá.
Mas se preferir, pode faze-lo por aqui também.
Abraço
Cesar

RES: Ajuda

Tentei analisar mas não consegui identificar o erro. Já fiz o upload do log http://www.sendspace.com/file/g1h36z vou ver se posto lá no fórum!

RES: Ajuda

Helio,

Baixei o arquivo , mas o log está incompleto. Ele para em "Wed Mar 28 00:00:07 2012" .
Não tem log de data recente.

Tem certeza que pegou ele inteiro?
Se sim, verifique seu servidor se tem espaço em disco (File System) pois talvez ele não esteja conseguindo gravar as mensagens mais recentes no log.

Elogio e ajuda

Boa tarde, primeiro gostaria de parabenizar pelo site, e pelo conteúdo, difícil encontrar documentação INFORMIX na net com esta qualidade. Gostaria de tirar uma dúvida quando vou iniciar a instância, o sistema retorna a mensagem que não consegue acessar o arquivo onconfig.ol_ , porém a minha instãncia tem o nome de ol_treino, criei o arquivo onconfig.ol_treino . Poderia me auxiliar nesse problema ? OBS: Como tem muito tempo, espero que você veja essa mensagem.

RES: Ajuda

Olá Luiz,
Obrigado pelo elogio. Eu gostaria de manter o site mais atualizado, mas ultimamente está dificil. Então tenho mantido apenas ele no ar por enquanto.
Bom, o onconfig é identificado pela variável ONCONFIG , verifique se ela está com o valor correto : echo $ONCONFIG , se estiver, garanta que ela foi exportada : export ONCONFIG.
Isso deve ser o suficiente, não tem segredo. Se isso não funcionar, tem mais alguma coisa errada no ambiente , ai você precisaria copiar aqui o output dos comandos:
$ echo $INFORMIXDIR ;
$ ls -l $INFORMIXDIR/etc/onconfig.*
$ ls -l $INFORMIXDIR/etc/$ONCONFIG
E então vemos se há algo mais errado no ambiente.

Instalação do IDS

ótimo artigo Cesar. Estou trabalhando em uma empresa que usa o Informix e estou começando a mexer com ele agora. Todos os seus artigos estão sendo muito uteis. Obrigado..

Obrigado!

Obrigado Emerson!
Apenas lembrando que se tiver duvidas, utilize o fórum do IIUG : http://www.iiug.org/forums/iiug-por/

Instalação do IDS

César, ótimo artigo, explicou em detalhes o objetivo cada passo para a instalação e configuração. Apenas uma dúvida, no tópico "Criando arquivos de configuração" > "Variáveis de ambiente", a definição da variável para o arquivo sqlhosts.idstitan não seria: export INFORMIXSQLHOSTS=/dados/IBM/ids1150uc4de/etc/sqlhosts.idstitan (sem o "DIR")? []s Herlandro

RE: Instalação do IDS

Olá Herlandro,

Sim, realmente estava errado! Obrigado pela observação e pelo elogio!
Qualquer duvida é só falar! Ou postar no fórum do IIUG em português!
Abraço
César

Comentar

O conteúdo deste campo é privado não será exibido ao público.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Você pode usar tags BBCode no texto.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Mais informações sobre as opções de formatação

CAPTCHA
Este teste é para bloquear programas automatizados e previnir spams
CAPTCHA de Imagem
Digite o texto exibido na imagem.