Série de artigos sobre Instalação do Oracle RAC:

Instalação do Oracle RAC 10g Release 2 – Parte 1: Pré-requisitos
Instalação do Oracle RAC 10g Release 2 – Parte 2: Criação da VM
Instalação do Oracle RAC 10g Release 2 – Parte 3: Instalação do Linux
Instalação do Oracle RAC 10g Release 2 – Parte 4: Configuração do Linux
Instalação do Oracle RAC 10g Release 2 – Parte 5: Clonagem da VM
Instalação do Oracle RAC 10g Release 2 – Parte 6: Pré-instalação do RAC
Instalação do Oracle RAC 10g Release 2 – Parte 7: Instalação do Oracle Clusterware
Instalação do Oracle RAC 10g Release 2 – Parte 8: Instalação do Patchset 10.2.0.4 no Clusterware
Instalação do Oracle RAC 10g Release 2 – Parte 9: Instalação do Oracle Database
Instalação do Oracle RAC 10g Release 2 – Parte 10: Instalação do Patchset 10.2.0.4 no Oracle Database

===================================

Olá pessoal!

Vimos no último artigo a aplicação do Patchset 10.2.0.4 no Oracle Database.

Veremos hoje como criar o Listener no ambiente clusterizado. Vocês verão que é uma operação bem fácil de ser feita.

Agora, executaremos o assistente para criação do Listener, o netca. Há algumas formas de executar esse assistente:

  • Localmente no servidor, através da VMWare Server Console;
  • Remotamente, através de um software que simule um X-Server (existem diversas opções gratuitas na Internet);
  • Remotamente, através de uma estação Linux/Unix/Mac que tenha a parte gráfica (X) habilitado.

Eu usarei a terceira opção, portanto, a partir da minha estação:

vinicius@Viniciuss-MacBook:~$ ssh -X oracle@172.23.10.11
oracle@172.23.10.11's password:
/usr/bin/xauth:  creating new authority file /home/oracle/.Xauthority

Testando para ver se a parte gráfica está funcionando:

[oracle@mvrac1 ~]$ xclock

O teste funcionou! Vejam:

Pronto!

Vamos executar o netca:

[oracle@mvrac1 ~]$ netca

O netca detectará que a pilha de cluster está em execução, e precisamos selecionar qual será o tipo de configuração que faremos:

  • Configuração de cluster;
  • Configuração de single node.

Manteremos a opção “Cluster configuration” selecionada. Clicar em Next:

Todos os nós estarão selecionados. Caso não estejam, devemos clicar no botão “Select all nodes”. Clicar em Next.

Como faremos a criação do Listener, devemos manter a opção “Listener configuration” selecionada.

Clicar em Next.

A única opção disponível é a “Add”. Clicar em Next.

O nome padrão do Listener é LISTENER. Manteremos esse nome, clicar em Next.

Na tela acima selecionamos quais protocolos o Listener utilizará. Nesse caso, só manteremos o protocolo TCP. Clicar em Next.

Na tela acima, precisamos especificar qual porta será utilizada pelo Listener. Manteremos a porta padrão (1521). Clicar em Next.

Não configuraremos outros Listeners. Manter a opção “No” selecionada e clicar em Next.

A tela acima indica que o Listener foi criado com sucesso. Clicar em Next.

Clicar em Finish.

O Listener foi criado. Como ele faz parte do cluster e foi cadastrado como recurso do mesmo, e o seu status também pode ser visto junto com o status dos outros recursos do cluster:

Name           Type           Target    State     Host
------------------------------------------------------------
ora....C1.lsnr application    ONLINE    ONLINE    mvrac1
ora.mvrac1.gsd application    ONLINE    ONLINE    mvrac1
ora.mvrac1.ons application    ONLINE    ONLINE    mvrac1
ora.mvrac1.vip application    ONLINE    ONLINE    mvrac1
ora....C2.lsnr application    ONLINE    ONLINE    mvrac2
ora.mvrac2.gsd application    ONLINE    ONLINE    mvrac2
ora.mvrac2.ons application    ONLINE    ONLINE    mvrac2
ora.mvrac2.vip application    ONLINE    ONLINE    mvrac2

Observem que temos os recursos lsnr, esses recursos são os Listeners, um em cada nó. No entanto, observem que a leitura da saída do comando crs_stat já não está tão prática, pois alguns recursos estão com o nome cortado.

Há um script criado pelo Jeffrey Hunter, guru em Oracle RAC, que formata a saída para melhor leitura:

Clique aqui para baixar esse script.

No servidor mvrac1, como root, criar o seguinte arquivo:

[root@mvrac1 ~]# cd /usr/local/bin
[root@mvrac1 bin]# vi crsstat
#!/bin/ksh

# +----------------------------------------------------------------------------+
# |                          Jeffrey M. Hunter                                 |
# |                      jhunter@idevelopment.info                             |
# |                         www.idevelopment.info                              |
# |----------------------------------------------------------------------------|
# |      Copyright (c) 1998-2009 Jeffrey M. Hunter. All rights reserved.       |
# |----------------------------------------------------------------------------|
# | DATABASE : Oracle                                                          |
# | FILE     : rac_crs_stat                                                    |
# | CLASS    : UNIX Shell Scripts                                              |
# | PURPOSE  : This KSH script will query all CRS resources using the crs_stat |
# |            script. The report will be a formatted version of the           |
# |            crs_stat -t command, but in tabular form with resource name     |
# |            and status. Filtering options are available by passing in a     |
# |            single string parameter to this script. This argument will be   |
# |            used to limit the output to HA resources whose names match      |
# |            that string.                                                    |
# | USAGE    : rac_crs_stat.ksh [RESOURCE_KEY]                                 |
# | NOTE     : This script requires the environment $ORA_CRS_HOME to be set to |
# |            your CRS installation.                                          |
# | NOTE     : As with any code, ensure to test this script in a development   |
# |            environment before attempting to run it in production.          |
# +----------------------------------------------------------------------------+

# +----------------------------------------------------------------------------+
# | GLOBAL VARIABLES                                                           |
# +----------------------------------------------------------------------------+

RSC_KEY=$1
QSTAT=-u
AWK=/usr/bin/awk
ORA_CRS_HOME=/u01/app/oracle/product/10.2.0/crs

# +----------------------------------------------------------------------------+
# | TABLE HEADER                                                               |
# +----------------------------------------------------------------------------+

$AWK \
  'BEGIN {printf "%-50s %-10s %-18s\n", "HA Resource", "Target", "State";
          printf "%-50s %-10s %-18s\n", "-----------", "------", "-----";}'

# +----------------------------------------------------------------------------+
# | TABLE BODY                                                                 |
# +----------------------------------------------------------------------------+

$ORA_CRS_HOME/bin/crs_stat $QSTAT | $AWK \
 'BEGIN { FS="="; state = 0; }
  $1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
  state == 0 {next;}
  $1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
  $1~/STATE/ && state == 2 {appstate = $2; state=3;}
  state == 3 {printf "%-50s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'

Observem que eu incluí a seguinte linha no script:

ORA_CRS_HOME=/u01/app/oracle/product/10.2.0/crs

Com isso, o script poderá ser executado com qualquer usuário no sistema operacional.

Após salvar o script, devemos definir suas permissões para execução:

[root@mvrac1 bin]# chmod 755 crsstat

E agora, devemos copiá-lo para o servidor mvrac2:

[root@mvrac1 bin]# scp -p crsstat mvrac2:`pwd`
root@mvrac2's password:
crsstat                               100% 3195     3.1KB/s   00:00

Vamos testar o script?

[oracle@mvrac1 ~]$ crsstat
HA Resource                                        Target     State
-----------                                        ------     -----
ora.mvrac1.LISTENER_MVRAC1.lsnr                    ONLINE     ONLINE on mvrac1
ora.mvrac1.gsd                                     ONLINE     ONLINE on mvrac1
ora.mvrac1.ons                                     ONLINE     ONLINE on mvrac1
ora.mvrac1.vip                                     ONLINE     ONLINE on mvrac1
ora.mvrac2.LISTENER_MVRAC2.lsnr                    ONLINE     ONLINE on mvrac2
ora.mvrac2.gsd                                     ONLINE     ONLINE on mvrac2
ora.mvrac2.ons                                     ONLINE     ONLINE on mvrac2
ora.mvrac2.vip                                     ONLINE     ONLINE on mvrac2

Observem que está mais legível do que com o comando “crs_stat -t”.

Pronto pessoal!

Criamos o Listener e configuramos um script para melhor leitura do comando “crs_stat -t”.

No próximo artigo veremos como criar e configurar a instância ASM no cluster.

Um abraço!

Vinicius