Oracle Goldengate 11.2.1.0.3 disponível para Linux
October 10, 2012

Hoje procurando pelo download do Oracle Goldengate 11g, eis que sem querer descubro que um novo release foi liberado para Linux x86-64:

Oracle Linux 6.3
July 2, 2012

Pessoal, saiu na última sexta feira o Update 3 do Oracle Linux 6.

O download está disponível aqui no site Under-Linux.Org.

Para quem esperava que o update 3 iria demorar, quebrou a cara … mais uma vez a Oracle nos surpreendendo.

Checando o Asynchronous I/O no Linux
June 19, 2012

Asynchronous I/O é uma maneira diferente de processar os dados de input/output. Utilizando Async I/O permite que outros processos continue antes da transmissão ter sido concluída, fornecendo assim grande ganho de performance para operações de IO.

Para verificar se está característica está habilitado checamos através do slabinfo. O slabinfo mantém todas as estatísticas sobre os objetos em memória, assim podemos verificar as operações de AIO já que ele trata os objetos na memória virtual.

cat /proc/slabinfo | grep kio

Caso o seu ASYNC IO esteja habilitado o retorno do comando acima deve parecer assim:

kioctx                 188       244        128 9       9 1 : 252 126
kiocb                  43010 43010      96  1652 1652 1 : 252 126

Agora, se o seu AIO não está habilitado o kiocb deve estar seguido de dois 0 (zeros).

kioctx                28     60    192   20    1 : tunables  120   60    8 : slabdata      3      3      0
kiocb                  0 0    128   30    1 : tunables  120   60    8 : slabdata      0      0      0

Com o a utilizando do ASMLib, esse comportamento não pode ser seguido já que o ASMLib não utiliza as funções POSIX aio_*(), então nunca vamos ver o kiocb em ação.

Quando o ASMLib é utilizado podemos simplesmente checar através do parâmetro disk_asynch_io na instância ASM, você pode inclusive habilitar e desabilitar o AIO apenas definindo o parâmetro disk_asynch_io para TRUE ou FALSE.

Public YUM no Oracle Linux
January 25, 2012

O yum é uma ferramente extremamente importante que economiza tempo de configuração e instalação.

Para quem não conhece, YUM (Yellow dog Updater, Modified) é uma ferramenta para gerenciar, instalar e remover pacotes (rpm) de instalações linux e o melhor, ele faz um calculo eficaz e resolve aquelas dependências de pacotes que gastamos um tempão para resolver.

Para configurar o PUBLIC YUM (repositório publico yum oracle) no Oracle Linux, além de ter habilitado a internet no servidor é somente preciso algumas poucas configurações. Para configurar o public YUM no Oracle Linux 5, faça:

cd /etc/yum.repos.d
wget http://public-yum.oracle.com/public-yum-el5.repo

Feito isso, um arquivo será criado no diretório /etc/yum.repos.d. Edite o arquivo e habilite qual repositório você precisa, no meu caso eu quero habilitar o repositório do Oracle Linux 5 64bits, então eu mudo o ol5_u5_base de enable=0 para enable=1 e pronto seu yum está instalado.

[ol5_u5_base]
name=Oracle Linux $releasever - U5 - x86_64 - base
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/5/base/x86_64/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1

Para utilizar o YUM é mais simples do que configurar. Vamos a um exemplo, estou instalado o Oracle 11gR2 no Oracle Linux e preciso instalar o pacote rpm libaio x86_64, seja como instalar pelo YUM.

# yum search libaio

...
============================= N/S Matched: libaio ==============================

libaio.i686 : Linux-native asynchronous I/O access library
libaio.x86_64 : Linux-native asynchronous I/O access library
libaio-devel.i686 : Development files for Linux-native asynchronous I/O accesslibaio-devel.x86_64 : Development files for Linux-native asynchronous I/O access

Com encontramos nosso pacote através do search do yum, vamos instalar. Basta executar.

yum install libaio.x86_64

Pronto, seu pacote instalado.

Facilitando a vida do DBA com o uso de alias
January 4, 2012

O tempo é preciso ainda mais para o DBA, então … Porque perder tempo digitando aquele comando enorme sendo que você pode cortar caminho?

Quer um exemplo simples? Vamos supor que você é um DBA que sempre segue a convenção de diretório OFA (espero que sim) que tenha instalado um Oracle 11g e que gostaria de visualizar o arquivo de log do banco de dados dbtst. O caminho comum seria o seguinte:

cd $ORACLE_BASE/diag/rdbms/dbtst/dbtst/trace/
tail -100 alert_dbtst.log
...
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Mon Jan 02 11:39:29 2012
Stopping background process VKTM:
Mon Jan 02 11:39:31 2012
Instance shutdown complete

Que tal agora, realizar todos os passos acimas com apenas um comando? Essa é a facilidade que trás o comando alias, veja o exemplo como ficaria apenas executando o alias showalert as últimas 100 linhas do log de alerta do banco é visualizado na tela:

alias showalert='tail -100 /u01/app/oracle/diag/rdbms/dbtst/dbtst/trace/alert_dbtst.log'
showalert
...
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Mon Jan 02 11:39:29 2012
Stopping background process VKTM:
Mon Jan 02 11:39:31 2012
Instance shutdown complete

Já deu para ver as vantagens, não é mesmo? Para que então digitar echo $ORACLE_SID somente para poder ver qual é o valor da variável de ambiente ORACLE_SID, vamos definir um alias para ela:

[oracle@oracle11gR1 ~]$ echo $ORACLE_SID
dbtst
[oracle@oracle11gR1 ~]$ alias es='echo $ORACLE_SID'
[oracle@oracle11gR1 ~]$ es
dbtst

Para remover um alias já definido, utilize apenas o comando unalias seguido do nome do alias desejado para remover:

unalias es

O alias perde sua configuração caso você efetue um logout do usuário Linux/Unix conectado. Para que esses alias permaneçam em cada login feito pelo usuário basta colocar os alias no arquivo ~/.bashrc do usuário. No meu caso, costumo sempre customizar esse arquivo (~/.bashrc) com os alias que vou utilizar. Segue alguns desses alias que já se tornaram inseparáveis em ambiente que vou trabalhar, facilitando e economizando meu tempo.

alias sqlp='sqlplus "/ as sysdba"'
alias asmcmd='asmcmd -p'
alias rmn='rman target /'
alias esid='echo $ORACLE_SID'
alias cbase='cd $ORACLE_BASE'
alias chome='cd $ORACLE_HOME'
alias bdump='cd $ORACLE_BASE/admin/$ORACLE_SID/bdump'
alias cdiag='cd $ORACLE_SID/diag'
alias l='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias tns='cd $ORACLE_HOME/network/admin'

Caso tenha criado seus próprios alias, compartilhe aqui …

Um grande abraço !