Alterando configurações do ONCONFIG "on-fly" (task/admin, onmode)

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

Até a versão 10 o Informix tinha um péssimo defeito de que para alterar 99% dos parâmetros de configuração do banco (onconfig/sqlhosts) era necessário parar e reiniciar a instancia. Isso é uma tremenda dor de cabeça para o DBA, ainda mario se o sistema trabalha 24x7 .
Na versão 11 foi adicionado o recurso de alterar certos parâmetros com a instancia online, o que algumas pessoas chamam de alterações 'on-fly' (alterações em voo).


  1. Parâmetros possíveis de alterar
  2. Alterações via onmode
  3. Alterações via SQLADMIN (task/admin)
  4. Exemplos


Parâmetros possíveis de alterar


Não são todos os parâmetros que são possíveis alterar com a instancia on-line, porém com o "andar da carruagem" dos releases apresentados pela IBM nos dois ultimos anos, acredito que logo boa parte destes parâmetros possam ser alterados.
Alguns parâmetros já podiam ser alterados na memória desde versões anteriores como :
  • SHMADD : onmode -a
  • MAX_PDQPRIORITY : onmode -D
  • DS_TOTAL_MEMORY : onmode -M
  • DS_MAX_QUERIES : onmode -Q
  • DS_MAX_SCANS : onmode -S
  • RESIDENT : onmode -n / -r
  • ONDBSPACEDOWN : onmode -O
  • VPCLASS : onmode -p

Na versão 11 passou a ser possível alterar os seguintes parâmetros:
Lista do Release 11.50 xC6

  • ADMIN_MODE_USERS
  • AUTO_AIOVPS
  • AUTO_CKPTS
  • BATCHEDREAD_TABLE
  • DELAY_APPLY
  • DS_MAX_QUERIES
  • DS_MAX_SCANS
  • DS_NONPDQ_QUERY_MEM
  • DS_TOTAL_MEMORY
  • DUMPCNT
  • DUMPSHMEM
  • DYNAMIC_LOGS
  • EXPLAIN_STAT
  • LIMITNUMSESSIONS
  • LISTEN_TIMEOUT
  • LOG_INDEX_BUILDS
  • LOG_STAGING_DIR
  • LTXEHWM
  • LTXHWM
  • MAX_INCOMPLETE_CONNECTIONS
  • MAX_PDQPRIORITY
  • MSG_DATE
  • ONLIDX_MAXMEM
  • RESIDENT
  • RTO_SERVER_RESTART
  • SBSPACENAME
  • SBSPACETEMP
  • SDS_TIMEOUT
  • STOP_APPLY
  • TEMPTAB_NOLOG
  • USELASTCOMMITTED
  • VP_MEMORY_CACHE_KB
A cada release liberado novos parâmetros são adicionados a esta lista.
Veja no manual a lista atualizada

Observe que nestes parâmetros não estão sendo consideradas alterações nos listeners. Até o release 11.50 xC5 isso não era possível de faze-lo dinamicamente, porém no release 11.50 xC6 este recurso foi adicionado, leia o post do Vagner sobre o assunto: http://askpontes.blogspot.com/2010/01/restart-de-listener.html


Alterações via onmode


As alterações de configuração do Informix através do onmode podem ser feitas através de dois parâmetros:
  onmode -wm [parametro]=[valor]
  onmode -wf [parametro]=[valor]

  # -wm = Write Memory , altera o parâmetro apenas memória. Desta forma quando o 
          banco for reinicializado os valores definidos serão recarregados conforme o ONCONFIG
  # -wf = Write File , altera o parâmetro na memória e no arquivo ONCONFIG


Alterações via SQLADMIN (task/admin)


Funcionam praticamente igual ao onmode, onde a execução do comando é através das funções task() e admin() do SQLADMIN
Veja no manual sobre o onmode wf e onmode wm.
Para maiores informações sobre o esta funções leia o artigo Como funciona admin() e task()...
Mas não deixe de conferir os exemplos mais abaixo.

Exemplos


Não há segredo em utilizar estes recursos, portanto os exemplos são simples:
# Aqui vamos alterar o parâmetro ADMIN_MODE_USERS, onde em uma ocasião onde seja
# necessário dar temporáriamente a permissão de administração a um usuário.

# Abaixo exibimos a configuração atual válida no ONCONFIG
$ onstat -c |grep ^ADMIN_MODE
ADMIN_MODE_USERS ix_dbsa
# Alteramos a configuração apenas na memória para o usuário "cmartins"
# onde esta alteração tem efeito imediato
$ onmode -wm ADMIN_MODE_USERS=cmartins
Value of ADMIN_MODE_USERS has been changed to cmartins.
# Não há alterações no ONCONFIG
$ onstat -c |grep ^ADMIN_MODE
ADMIN_MODE_USERS ix_dbsa
# Para persistir a configuração, utilizamos a opção WF
$ onmode -wf ADMIN_MODE_USERS=cmartins
Value of ADMIN_MODE_USERS has been changed to cmartins.
# Desta vez o ONCONFIG também foi alterado
$ onstat -c |grep ^ADMIN_MODE
ADMIN_MODE_USERS cmartins

# Para realizar a alteração via SQL, basta utilizar o 
# comando "onmode" do SQLADMIN
EXECUTE FUNCTION task("onmode","wf","DYNAMIC_LOGS=2");
EXECUTE FUNCTION task("onmode","wm","ADMIN_MODE_USERS=cmartins");

0
Ainda não votado
Sua avaliação: Nenhum

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.