Archive for March, 2010

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
Instalação do Oracle RAC 10g Release 2 – Parte 11: Criação do Listener no Cluster

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

Olá pessoal!

Vimos no último artigo a criação do Listener no Cluster.

Veremos hoje como criar e configurar o ASM 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 ASM, o dbca. 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!

Agora, vamos criar os diretórios de trace da instância ASM nos servidores mvrac1 e mvrac2, com o usuário oracle.

mvrac1:

[oracle@mvrac1 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/bdump
[oracle@mvrac1 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/cdump
[oracle@mvrac1 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/hdump
[oracle@mvrac1 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/pfile

mvrac2:

[oracle@mvrac2 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/bdump
[oracle@mvrac2 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/cdump
[oracle@mvrac2 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/hdump
[oracle@mvrac2 ~]$ mkdir -p /u01/app/oracle/admin/+ASM/pfile

Vamos executar o dbca:

[oracle@mvrac1 ~]$ dbca

O dbca detectará que a pilha de cluster está em execução, e precisamos selecionar qual será o tipo de ambiente que será configurado:

  • Oracle Real Application Clusters database;
  • Oracle single instance database.

Manteremos a opção Oracle Real Application Clusters database selecionada e clicar em Next.

Clicar na opção “Configure Automatic Storage Management” e depois clicar em Next.

Somente o nó mvrac1 estará selecionado pois foi de onde partiu a execução do dbca. Clicar em “Select All”:

Clicar em Next.

Na tela acima deveremos especificar a senha do usuário SYS para a instância ASM. Como estamos utilizando o Standard Edition, não é possível utilizar um SPFILE para o ASM, já que a premissa é que não importa quantos nós (e consequentemente, quantas instâncias) teremos no cluster, quando se usa o SPFILE, esse arquivo deverá ficar armazenado num local compartilhado entre os nós do cluster. No nosso caso, usaremos o arquivo PFILE (init.ora). Portanto, clicar na opção “Create initialization parameter file (IFILE). Clicar em Next.

A janela acima será exibida informando que o DBCA irá criar a instância ASM, e que depois que a instância ASM for criada, poderemos criar os nossos disk groups. Clicar em OK.

A tela acima exibe que a instância ASM está sendo criada.

A tela acima será exibida. Precisamos criar um Disk Group para poder armazenar o banco de dados que criaremos brevemente. Para criar um novo disk group, basta clicar em “Create New”.

Na tela acima, deveremos definir os valores de alguns campos:

  • Disk Group Name: DG_DADOS;
  • Redundancy: External;
  • No campo Select Disk Members, devemos selecionar todos os discos.

Clicar em OK.

A tela acima exibe que o DG está sendo criado.

Podemos ver que o DG_DADOS foi criado e está montado nas duas instâncias ASM (uma em cada nó).

Clicar em Finish.

Clicar em Yes.

Vamos verificar e ver se a instância ASM foi criada e se os recursos do cluster foram alterados?

mvrac1:

[oracle@mvrac1 ~]$ ps -ef |grep pmon
oracle   14645     1  0 19:41 ?        00:00:00 asm_pmon_+ASM1

mvrac2:

[oracle@mvrac2 ~]$ ps -ef |grep pmon
oracle   26486     1  0 19:42 ?        00:00:00 asm_pmon_+ASM2

Pudemos ver que a instância ASM está em execução nos 2 servidores.

Para verificar o status dos recursos do cluster:

[oracle@mvrac1 ~]$ crsstat
HA Resource                                        Target     State
-----------                                        ------     -----
ora.mvrac1.ASM1.asm                                ONLINE     ONLINE on mvrac1
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.ASM2.asm                                ONLINE     ONLINE on mvrac2
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

Pronto!

Pudemos ver que foi registrado no cluster uma instância ASM para cada nó!

No próximo artigo veremos como criar o banco de dados RAC.

Um abraço!

Vinicius







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

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







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

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

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

Olá pessoal!

Nesse artigo instalaremos o Patchset 10.2.0.4 no Oracle Database.

Bom, vamos lá?

Precisamos verificar se o CD-ROM está montado.

Se estiver, aparecerá da seguinte forma

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Se não estiver, deveremos montá-lo:

Na tela da VMWare Server Console, deveremos clicar duas vezes no ícone do CD-ROM (identificado pela seta vermelha).

Eu fiz uma imagem ISO com alguns softwares Oracle, portanto, na tela acima, deveremos manter a opção “Use ISO image:” marcada, e clicar em Browse, para escolhermos a mídia do Oracle:

Basta selecionar a imagem ISO, e clicar em Open.

Agora, precisamos montar esse CD no servidor. Como root no servidor mvrac1:

[root@mvrac1 ~]# mount /dev/hdc /media
mount: block device /dev/hdc is write-protected, mounting read-only

Para verificar se o disco foi montado:

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Com o disco montado, precisamos acessá-lo:

[root@mvrac1 ~]# cd /media/Ora10.2.0.4

Vamos ver o conteúdo do disco:

[root@mvrac1 Ora10.2.0.4]# ls -l
total 177
dr-xr-xr-x 5 root root   2048 May 21  2008 p6810189
-r--r--r-- 1 root root 178473 Feb 25  2008 README.html

Agora copiaremos o diretório p6810189 para o diretório /home/oracle:

[root@mvrac1 Ora10.2.0.4]# cp -rp p6810189/ /home/oracle/

Agora precisamos acertar as permissões, pois o diretório foi copiado como root:

[root@mvrac1 ~]# chown -R oracle:oinstall /home/oracle/*

Agora, iniciaremos a instalação. Há algumas formas de realizar a instalação:

  • 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 iniciar a instalação:

[oracle@mvrac1 ~]$ cd p6810189/
[oracle@mvrac1 p6810189]$ ls -l
total 1784
-r--r--r--  1 oracle oinstall 1620786 Feb 21  2008 10204_buglist.htm
dr-xr-xr-x  4 oracle oinstall    4096 May 21  2008 install
-r--r--r--  1 oracle oinstall  178465 Feb 22  2008 patch_note.htm
dr-xr-xr-x  2 oracle oinstall    4096 May 21  2008 response
-r-xr-xr-x  1 oracle oinstall    1756 Feb 17  2008 runInstaller
dr-xr-xr-x 10 oracle oinstall    4096 May 21  2008 stage
[oracle@mvrac1 p6810189]$ ./runInstaller

Na tela inicial do Patchset, devemos clicar em Next.

Na tela acima devemos especificar o Oracle Home do Banco de Dados. No entanto, esse Oracle já está selecionado automaticamente. Basta clicar em Next.

Não tem como mudarmos os itens da janela acima, pois o OUI já detectou que o Oracle Home selecionado foi instalado na arquitetura de cluster, e por isso, os 2 nós já foram selecionados automaticamente. Clicar em Next.

Os pré-requisitos serão verificados. Clicar em Next.

No Patchset 10.2.0.4, é possível habilitar o Oracle Configuration Manager, que auxiliará na aplicação de patches automaticamente baixados pelo Metalink. Por enquanto, não configuraremos esse item. Clicar em Next.

Um resumo sobre a instalação será exibido. Clicar em Install.

Uma janela com o progresso será exibida. Aguardar.

Uma janela será exibida solicitando executarmos 1 script como root nos 2 nós do cluster.

Vamos à execução do script /u01/app/oracle/product/10.2.0/db_1/root.sh no nó mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

Após a conclusão do script no servidor mvrac1, vamos executá-lo no servidor mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

Clicar em OK.

Clicar em Exit.

Clicar em Yes.

Pronto!

Nesse artigo vimos como instalar o Patchset 10.2.0.4 no Oracle Database.

No próximo artigo veremos como criar o Listener no ambiente clusterizado.

Um abraço!

Vinicius







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

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

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

Olá pessoal!

Nesse artigo instalaremos software do banco de dados Oracle 10.2.0.1.

Bom, vamos lá?

Precisamos verificar se o CD-ROM está montado.

Se estiver, aparecerá da seguinte forma

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Se não estiver, deveremos montá-lo:

Na tela da VMWare Server Console, deveremos clicar duas vezes no ícone do CD-ROM (identificado pela seta vermelha).

Eu fiz uma imagem ISO com alguns softwares Oracle, portanto, na tela acima, deveremos manter a opção “Use ISO image:” marcada, e clicar em Browse, para escolhermos a mídia do Oracle:

Basta selecionar a imagem ISO, e clicar em Open.

Agora, precisamos montar esse CD no servidor. Como root no servidor mvrac1:

[root@mvrac1 ~]# mount /dev/hdc /media
mount: block device /dev/hdc is write-protected, mounting read-only

Para verificar se o disco foi montado:

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Com o disco montado, precisamos acessá-lo:

[root@mvrac1 ~]# cd /media/Ora10.2.0.1

Vamos ver o conteúdo do disco:

[root@mvrac1 Ora10.2.0.1]# ls -l
total 8
dr-xr-xr-x 6 root root 2048 May 21  2008 client
dr-xr-xr-x 9 root root 2048 May 21  2008 clusterware
dr-xr-xr-x 6 root root 2048 May 21  2008 companion
dr-xr-xr-x 6 root root 2048 May 21  2008 database

Agora copiaremos o diretório clusterware para o diretório /home/oracle:

[root@mvrac1 Ora10.2.0.1]# cp -rp database/ /home/oracle/

Agora precisamos acertar as permissões, pois o diretório foi copiado como root:

[root@mvrac1 ~]# chown -R oracle:oinstall /home/oracle/*

Agora, iniciaremos a instalação. Há algumas formas de realizar a instalação:

  • 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 iniciar a instalação:

[oracle@mvrac1 ~]$ cd database/
[oracle@mvrac1 database]$ ls -l
total 28
dr-xr-xr-x 9 oracle oinstall 4096 May 21  2008 doc
dr-xr-xr-x 5 oracle oinstall 4096 May 21  2008 install
dr-xr-xr-x 2 oracle oinstall 4096 May 21  2008 response
-r-xr-xr-x 1 oracle oinstall 1327 Jul  2  2005 runInstaller
dr-xr-xr-x 9 oracle oinstall 4096 May 21  2008 stage
-r-xr-xr-x 1 oracle oinstall 5213 Jul  2  2005 welcome.html

Como estamos usando o RHEL5/OEL5, quando o produto 10.2.0.1 foi lançado, essa versão de sistema operacional ainda não estava disponível no mercado, precisaremos executar a instalação informando que a verificação de pré-requisitos deverá ser ignorada:

[oracle@mvrac1 database]$ ./runInstaller -ignoreSysPreReqs

Clicar em Next.

A edição que instalaremos será a Standard Edition, portanto, selecione essa edição na tela e clique em Next.

Na tela acima devemos especificar o nome do Oracle Home do Banco de Dados, assim como a sua localização. Os valores sugeridos são:

  • Para o nome do Oracle Home do Banco de Dados: OraDb10g_home1;
  • Para a localização do Oracle Home do Banco de Dados: /u01/app/oracle/product/10.2.0/db_1.

Clicar em Next.

Nessa tela podemos escolher entre realizar uma instalação Local (para bancos de dados single instance, sem RAC), ou uma instalação de Cluster. O tipo escolhido é a instalação de Cluster. Clicar no botão Select All para selecionar todos os nós:

Clicar em Next.

O OUI reclamará de pouca memória e parâmetros de kernel, isso acontece pois é o RHEL5, bastará clicar na caixa de seleção onde está escrito “Warning na coluna de Status:

Após ter clicado na caixa, observem que o status passará para o valor “User Verified”. Clicar em Next:

Por enquanto, instalaremos apenas o software. Portanto, clicar na opção “Install database Software only”:

Um resumo sobre a instalação será exibido. Clicar em Install.

A janela com o progresso da instalação será exibida. Aguardar.

Uma janela aparecerá solicitando executarmos 1 script como root nos 2 nós do cluster.

Vamos à execução do script /u01/app/oracle/product/10.2.0/db_1/root.sh no nó mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

Após a conclusão desse script, vamos executá-lo no servidor mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

Clicar em OK.

Clicar em Exit.

Clicar em Yes.

Pronto!

Nesse artigo vimos como instalar o software de banco de dados Oracle 10.2.0.1.

No próximo artigo veremos como instalar o Patchset 10.2.0.4 no software de banco de dados.

Um abraço!

Vinicius







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

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

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

Olá pessoal!

Nesse artigo instalaremos o Patchset 10.2.0.4 no Oracle Clusterware.

Bom, vamos lá?

Precisamos verificar se o CD-ROM está montado.

Se estiver, aparecerá da seguinte forma

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Se não estiver, deveremos montá-lo:

Na tela da VMWare Server Console, deveremos clicar duas vezes no ícone do CD-ROM (identificado pela seta vermelha).

Eu fiz uma imagem ISO com alguns softwares Oracle, portanto, na tela acima, deveremos manter a opção “Use ISO image:” marcada, e clicar em Browse, para escolhermos a mídia do Oracle:

Basta selecionar a imagem ISO, e clicar em Open.

Agora, precisamos montar esse CD no servidor. Como root no servidor mvrac1:

[root@mvrac1 ~]# mount /dev/hdc /media
mount: block device /dev/hdc is write-protected, mounting read-only

Para verificar se o disco foi montado:

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Com o disco montado, precisamos acessá-lo:

[root@mvrac1 ~]# cd /media/Ora10.2.0.4

Vamos ver o conteúdo do disco:

[root@mvrac1 Ora10.2.0.4]# ls -l
total 177
dr-xr-xr-x 5 root root   2048 May 21  2008 p6810189
-r--r--r-- 1 root root 178473 Feb 25  2008 README.html

Agora copiaremos o diretório p6810189 para o diretório /home/oracle:

[root@mvrac1 Ora10.2.0.4]# cp -rp p6810189/ /home/oracle/

Agora precisamos acertar as permissões, pois o diretório foi copiado como root:

[root@mvrac1 ~]# chown -R oracle:oinstall /home/oracle/*

Agora, iniciaremos a instalação. Há algumas formas de realizar a instalação:

  • 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 iniciar a instalação:

[oracle@mvrac1 ~]$ cd p6810189/
[oracle@mvrac1 p6810189]$ ls -l
total 1784
-r--r--r--  1 oracle oinstall 1620786 Feb 21  2008 10204_buglist.htm
dr-xr-xr-x  4 oracle oinstall    4096 May 21  2008 install
-r--r--r--  1 oracle oinstall  178465 Feb 22  2008 patch_note.htm
dr-xr-xr-x  2 oracle oinstall    4096 May 21  2008 response
-r-xr-xr-x  1 oracle oinstall    1756 Feb 17  2008 runInstaller
dr-xr-xr-x 10 oracle oinstall    4096 May 21  2008 stage
[oracle@mvrac1 p6810189]$ ./runInstaller

Na tela inicial do Patchset, devemos clicar em Next.

Como as variáveis de ambiente já estão definidas, o OUI “encontra” um Oracle Home de BD ainda não existente. Basta clicar no combo “Name” e escolher o Oracle Home do Clusterware:

Com o Oracle Home do Clusterware definido, clicar em Next.

Automaticamente será selecionado o item “Cluster Installation” e todos os nós do cluster (mvrac1 e mvrac2) serão selecionados. Clicar em Next.

Os pré-requisitos serão verificados. Clicar em Next.

Um resumo será exibido. Clicar em Install.

Uma janela com o progresso será exibida.

Será solicitado executar 1 script como root nos 2 nós. Sendo que antes temos que parar os serviços do Clusterware, e em seguida, executar o script. Atenção: o script deverá ser executado em um nó por vez. Não podendo ser executado em paralelo!

Vamos executar o procedimento no servidor mvrac1, como root. Vamos primeiro parar os serviços do Clusterware:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.

Agora, precisamos executar o script que aplicará o Patchset no servidor mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/install/root102.sh
Creating pre-patch directory for saving pre-patch clusterware files
Completed patching clusterware files to /u01/app/oracle/product/10.2.0/crs
Relinking some shared libraries.
Relinking of patched files is complete.
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
Preparing to recopy patched init and RC scripts.
Recopying init and RC scripts.
Startup will be queued to init within 30 seconds.
Starting up the CRS daemons.
Waiting for the patched CRS daemons to start.
  This may take a while on some systems.
.
.
10204 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node : <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: mvrac1 mvrac1-priv mvrac1
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
clscfg -upgrade completed successfully

Agora precisamos fazer isso também no servidor mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.

Agora, precisamos executar o script que aplicará o Patchset no servidor mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/crs/install/root102.sh
Creating pre-patch directory for saving pre-patch clusterware files
Completed patching clusterware files to /u01/app/oracle/product/10.2.0/crs
Relinking some shared libraries.
Relinking of patched files is complete.
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
Preparing to recopy patched init and RC scripts.
Recopying init and RC scripts.
Startup will be queued to init within 30 seconds.
Starting up the CRS daemons.
Waiting for the patched CRS daemons to start.
  This may take a while on some systems.
.
.
10204 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node : <nodenumber>: <nodename> <private interconnect name> <hostname>
node 2: mvrac2 mvrac2-priv mvrac2
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
clscfg -upgrade completed successfully

Pronto! Agora precisamos voltar para a tela do OUI:

Clicar em Exit.

Clicar em Yes para confirmar a saída!

Vamos verificar se os recursos do Clusterware subiram?

Como oracle:

[oracle@mvrac1 ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.mvrac1.gsd application    ONLINE    ONLINE    mvrac1
ora.mvrac1.ons application    ONLINE    ONLINE    mvrac1
ora.mvrac1.vip application    ONLINE    ONLINE    mvrac1
ora.mvrac2.gsd application    ONLINE    ONLINE    mvrac2
ora.mvrac2.ons application    ONLINE    ONLINE    mvrac2
ora.mvrac2.vip application    ONLINE    ONLINE    mvrac2

Patchset aplicado com sucesso!

Agora faremos a mudança dos Voting Disks para os block devices.

Como vocês sabem, tivemos que instalar o Clusterware com o Voting Disk e o OCR em raw devices por limitações do OUI. Após aplicado o Patchset, precisamos alterar os arquivos do cluster para os block devices.

Para alterarmos os Voting Disks para os block devices, precisamos interromper os serviços do cluster nos 2 nós. O procedimento deverá ser executado como root nos 2 nós.

mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

Agora, a partir do nó mvrac1, vamos consultar os Voting Disks existentes:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl query css votedisk
 0.     0    /dev/raw/raw1
 1.     0    /dev/raw/raw3
 2.     0    /dev/raw/raw5

located 3 votedisk(s).

Vamos agora adicionar os 3 Voting Disks que usam block devices. Precisamos usar o flag force:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl add css votedisk /dev/voting1 -force
Now formatting voting disk: /dev/voting1
successful addition of votedisk /dev/voting1.
[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl add css votedisk /dev/voting2 -force
Now formatting voting disk: /dev/voting2
successful addition of votedisk /dev/voting2.
[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl add css votedisk /dev/voting3 -force
Now formatting voting disk: /dev/voting3
successful addition of votedisk /dev/voting3.

Agora precisamos eliminar os 3 Voting Disks que usam raw devices. Precisamos usar também o flag force:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl delete css votedisk /dev/raw/raw1 -force
successful deletion of votedisk /dev/raw/raw1.
[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl delete css votedisk /dev/raw/raw3 -force
successful deletion of votedisk /dev/raw/raw3.
[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl delete css votedisk /dev/raw/raw5 -force
successful deletion of votedisk /dev/raw/raw5.

Os Voting Disks foram trocados para os block devices. Vamos agora subir os recursos do Clusterware nos nós mvrac1 e mvrac2.

mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

Vamos ver se os recursos do cluster estão online.

Como oracle:

[oracle@mvrac1 ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.mvrac1.gsd application    ONLINE    ONLINE    mvrac1
ora.mvrac1.ons application    ONLINE    ONLINE    mvrac1
ora.mvrac1.vip application    ONLINE    ONLINE    mvrac1
ora.mvrac2.gsd application    ONLINE    ONLINE    mvrac2
ora.mvrac2.ons application    ONLINE    ONLINE    mvrac2
ora.mvrac2.vip application    ONLINE    ONLINE    mvrac2

Agora, precisamos alterar os OCR para os block devices.

Vamos primeiro verificar os OCR existentes.

Como oracle:

[oracle@mvrac1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
	 Version                  :          2
	 Total space (kbytes)     :     256788
	 Used space (kbytes)      :       2016
	 Available space (kbytes) :     254772
	 ID                       :  382969207
	 Device/File Name         : /dev/raw/raw2
                                    Device/File integrity check succeeded
	 Device/File Name         : /dev/raw/raw4
                                    Device/File integrity check succeeded

	 Cluster registry integrity check succeeded

Observamos que os devices de OCR são /dev/raw/raw2 e /dev/raw/raw4, e a integridade dos dois devices está perfeita.

Vamos agora alterar o OCR para os block devices. O procedimento deve ser executado como root nos 2 nós.

mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/ocrconfig -replace ocr /dev/ocr1
[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/ocrconfig -replace ocrmirror /dev/ocr2

Vamos verificar novamente a integridade dos devices do OCR.

Como oracle:

[oracle@mvrac1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
	 Version                  :          2
	 Total space (kbytes)     :     256788
	 Used space (kbytes)      :       2016
	 Available space (kbytes) :     254772
	 ID                       :  382969207
	 Device/File Name         :  /dev/ocr1
                                    Device/File integrity check succeeded
	 Device/File Name         :  /dev/ocr2
                                    Device/File integrity check succeeded

	 Cluster registry integrity check succeeded

Pudemos observar que agora os devices são /dev/ocr1 e /dev/ocr2 e o teste de integridade foi bem sucedido!

Bom, nesse post vimos como instalar o Patchset 10.2.0.4 no Oracle Clusterware. Também vimos como mudar os Voting Disks e o OCR para os block devices.

No próximo artigo, veremos como instalar o software do Oracle Database 10.2.0.1 no nosso ambiente clusterizado.

Um abraço!

Vinicius







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

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

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

Olá pessoal!

Nesse artigo instalaremos o Oracle Clusterware 10.2.0.1. Com isso, já subiremos no sistema operacional dos servidores mvrac1 e mvrac2 a camada de cluster necessária para a criação de um banco de dados Oracle RAC. Alguns pontos importantes:

  • A instalação do Oracle Home será local, ou seja, cada servidor terá uma cópia do Oracle Home;
  • Cada servidor precisa de pelo menos duas placas de rede:
    • Rede Pública: para subir o endereço IP Virtual, o chamado VIP;
    • Rede Privada: para subir o endereço IP da rede privada entre os nós, o chamado InterConnect.
  • Precisamos de discos compartilhados entre os servidores:
    • Armazenamento do OCR;
    • Armazenamento do Voting Disk;
    • Discos ASM.
  • Os usuários oracle de cada servidor precisarão ter equivalência de usuário entre si.

Bom, vamos lá?

Na tela da VMWare Server Console, deveremos clicar duas vezes no ícone do CD-ROM (identificado pela seta vermelha).

Eu fiz uma imagem ISO com alguns softwares Oracle, portanto, na tela acima, deveremos manter a opção “Use ISO image:” marcada, e clicar em Browse, para escolhermos a mídia do Oracle:

Basta selecionar a imagem ISO, e clicar em Open.

Agora, precisamos montar esse CD no servidor. Como root no servidor mvrac1:

[root@mvrac1 ~]# mount /dev/hdc /media
mount: block device /dev/hdc is write-protected, mounting read-only

Para verificar se o disco foi montado:

[root@mvrac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.4G  7.8G  24% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              3.1G  3.1G     0 100% /media

Com o disco montado, precisamos acessá-lo:

[root@mvrac1 ~]# cd /media/Ora10.2.0.1

Vamos ver o conteúdo do disco:

[root@mvrac1 Ora10.2.0.1]# ls -l
total 8
dr-xr-xr-x 6 root root 2048 May 21  2008 client
dr-xr-xr-x 9 root root 2048 May 21  2008 clusterware
dr-xr-xr-x 6 root root 2048 May 21  2008 companion
dr-xr-xr-x 6 root root 2048 May 21  2008 database

Agora copiaremos o diretório clusterware para o diretório /home/oracle:

[root@mvrac1 Ora10.2.0.1]# cp -rp clusterware/ /home/oracle/

Agora precisamos acertar as permissões, pois o diretório foi copiado como root:

[root@mvrac1 ~]# chown -R oracle:oinstall /home/oracle/*

Agora, iniciaremos a instalação. Há algumas formas de realizar a instalação:

  • 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:

Bom, apenas para facilitar a instalação, vamos definir algumas variáveis de ambiente, já colocando-as no arquivo .bash_profile:

[oracle@mvrac1 ~]$ vi .bash_profile

O conteúdo do arquivo deverá ter o seguinte:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

export ORACLE_BASE=/u01/app/oracle
export ORA_CRS_HOME=${ORACLE_BASE}/product/10.2.0/crs
export ORACLE_HOME=${ORACLE_BASE}/product/10.2.0/db_1
export PATH=${ORA_CRS_HOME}/bin:${ORACLE_HOME}/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/sbin:/sbin

Com o arquivo configurado, devemos fechar o vi e salvá-lo.

Após isso, devemos carregar as variáveis de ambiente:

[oracle@mvrac1 ~]$ . .bash_profile

Para confirmar se as variáveis foram carregadas:

[oracle@mvrac1 ~]$ env |grep ORA
ORA_CRS_HOME=/u01/app/oracle/product/10.2.0/crs
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

Pronto!

Vamos iniciar a instalação:

[oracle@mvrac1 ~]$ cd clusterware/
[oracle@mvrac1 clusterware]$ ls -l
total 36
dr-xr-xr-x 2 oracle oinstall 4096 May 21  2008 cluvfy
dr-xr-xr-x 6 oracle oinstall 4096 May 21  2008 doc
dr-xr-xr-x 4 oracle oinstall 4096 May 21  2008 install
dr-xr-xr-x 2 oracle oinstall 4096 May 21  2008 response
dr-xr-xr-x 2 oracle oinstall 4096 May 21  2008 rpm
-r-xr-xr-x 1 oracle oinstall 1328 Jul  2  2005 runInstaller
dr-xr-xr-x 9 oracle oinstall 4096 May 21  2008 stage
dr-xr-xr-x 2 oracle oinstall 4096 May 21  2008 upgrade
-r--r--r-- 1 oracle oinstall 3445 Jul  2  2005 welcome.html

Como estamos usando o RHEL5/OEL5, quando o produto 10.2.0.1 foi lançado, essa versão de sistema operacional ainda não estava disponível no mercado, precisaremos executar a instalação informando que a verificação de pré-requisitos deverá ser ignorada:

[oracle@mvrac1 clusterware]$ ./runInstaller -ignoreSysPreReqs

A tela acima é a tela inicial. Devemos clicar em Next:

A tela acima solicita definirmos a localização do inventário e qual será o grupo no sistema operacional que será o dono do inventário. Os valores sugeridos serão:

  • Para a localização do inventário: /u01/app/oracle/oraInventory;
  • Para o grupo do sistema operacional: oinstall.

Clicar em Next:

Na tela acima devemos especificar o nome do Oracle Home do Clusterware, assim como a sua localização. Os valores sugeridos são:

  • Para o nome do Oracle Home do Clusterware: OraCrs10g_home;
  • Para a localização do Oracle Home do Clusterware: /u01/app/oracle/product/10.2.0/crs.

Clicar em Next:

O OUI reclamará de pouca memória, bastará clicar na caixa de seleção onde está escrito “Warning” na coluna de Status:

Após ter clicado na caixa, observem que o status passará para o valor “User Verified”. Clicar em Next:

Na tela acima, devemos especificar a configuração do cluster. O campo “Cluster Name” deve ter valor único na rede corporativa. O nome default é “crs”. Eu alterei o valor para “crs_mv”. Observem que no campo “Cluster Nodes” as informações de “Public Node Name”,”Private Node Name” e “Virtual Host Name” já aparecerão para o host mvrac1, já que a instalação foi iniciada a partir desse host. Como o cluster terá 2 nós, precisamos adicionar mais um nó na configuração do cluster. Basta clicar no botão “Add”:

Deveremos preencher os campos “Public Node Name”, “Private Node Name” e “Virtual Host Name”. Os valores sugeridos são:

  • Para o “Public Node Name”: mvrac2.viniciusdba.com.br;
  • Para o “Private Node Name”: mvrac2-priv.viniciusdba.com.br;
  • Para o “Virtual Node Name”: mvrac2-vip.viniciusdba.com.br.

Clicar em OK:

Observem que agora na tela são exibidos os 2 nós. Ao clicar em Next, o OUI verificará 2 itens:

  • Se os hostnames informados existem no arquivo /etc/hosts;
  • Se há equivalência de usuário entre os nós especificados para o usuário oracle.

Apenas para lembrarmos do /etc/hosts:

# ============================================================
# Arquivo /etc/hosts configurado para utilizacao do Oracle RAC
# Configurado por Marcus Vinicius
# 18/02/2010
# ============================================================

# Localhost
127.0.0.1         localhost.localdomain      localhost

# Oracle RAC 10g
#-----------------

# Rede Publica
172.23.10.11   mvrac1.viniciusdba.com.br       mvrac1
172.23.10.12   mvrac2.viniciusdba.com.br       mvrac2

# InterConnect - Conexao Privada
10.0.0.11      mvrac1-priv.viniciusdba.com.br  mvrac1-priv
10.0.0.12      mvrac2-priv.viniciusdba.com.br  mvrac2-priv

# Virtual IP's
172.23.10.21   mvrac1-vip.viniciusdba.com.br   mvrac1-vip
172.23.10.22   mvrac2-vip.viniciusdba.com.br   mvrac2-vip

Clicar em Next:

Na tela acima serão exibidas TODAS as interfaces de rede existentes no servidor. A regra que utilizaremos será:

  • eth0: Pública;
  • eth1: Privada.

Mas, observem que as duas interfaces aparecem como Privadas. Nesse caso, deveremos selecionar a interface eth0 e clicar no botão Edit:

Basta clicar na opção “Option” e depois clicar em OK. Caso tivéssemos mais de duas placas de rede, deveríamos selecionar a placa que não seria usada no cluster, e selecionar a opção “Do not use”.

Após editarmos a placa de rede eth0, agora sim observaremos que as duas placas estão com as configurações adequadas. Clicar em Next:

Na tela acima, deveremos especificar o tipo de redundância para o OCR: normal (2 locais), externa (1 local). O tipo de redundância escolhido foi a normal. Após isso, deveremos especificar 2 locais para armazenar o OCR. Lembram que eu comentei que o OUI do Clusterware 10.2.0.1 não consegue determinar se os block devices estão compartilhados entre os nós do cluster? Pois bem, eu simulei o erro e especifiquei um local apontando para um block device, e outro apontando para um raw device:

  • OCR Location: /dev/ocr1 (block device);
  • OCR Mirror Location: /dev/raw/raw4 (raw device).

Clicar em Next:

A tela acima será exibida com a mensagem informando que a localização /dev/ocr1 não está compartilhada entre os nós do cluster. Isso é descrito na Nota do Metalink número 401132.1. Clicar em OK:

Devemos corrigir o valor para o campo “Specify OCR Location”. Os dois campos deverão estar preenchidos da seguinte forma:

  • OCR Location: /dev/raw/raw2;
  • OCR Mirror Location: /dev/raw/raw4.

Clicar em Next:

Na tela acima, deveremos especificar o tipo de redundância e localização do voting disk. O tipo de redundância escolhido foi o normal. A localização dos voting disks deverá ser o seguinte:

  • Voting Disk Location: /dev/raw/raw1;
  • Additional Voting Disk 1 Location: /dev/raw/raw3;
  • Additional Voting Disk 2 Location: /dev/raw/raw5.

Clicar em Next:

Um resumo sobre a instalação será exibido. Clicar em Install:

A janela com o progresso da instalação será exibida. Observem que há um item chamado “Remote operations pending”. É nesse item que o Oracle Home será copiado para o outro nó.

Uma janela aparecerá solicitando executarmos scripts como root nos 2 nós do cluster. Não podemos executar os scripts em paralelo!! Devemos executar os scripts no primeiro nó, e depois, no segundo nó.

Vamos à execução do script /u01/app/oracle/oraInventory/orainstRoot.sh no nó mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete

Agora, vamos executar o script /u01/app/oracle/product/10.2.0/crs/root.sh no nó mvrac1:

[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/root.sh
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.

Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
assigning default hostname mvrac1 for node 1.
assigning default hostname mvrac2 for node 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node : 

node 1: mvrac1 mvrac1-priv mvrac1
node 2: mvrac2 mvrac2-priv mvrac2
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Now formatting voting device: /dev/raw/raw1
Now formatting voting device: /dev/raw/raw3
Now formatting voting device: /dev/raw/raw5
Format of 3 voting devices complete.
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
	mvrac1
CSS is inactive on these nodes.
	mvrac2
Local node checking complete.
Run root.sh on remaining nodes to start CRS daemons.

Após a conclusão desse script, vamos executar o script /u01/app/oraInventory/orainstRoot.sh no nó mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete

Em seguida, devemos executar o script /u01/app/oracle/product/10.2.0/crs/root.sh no nó mvrac2:

[root@mvrac2 ~]# /u01/app/oracle/product/10.2.0/crs/root.sh
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.

Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
assigning default hostname mvrac1 for node 1.
assigning default hostname mvrac2 for node 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node : 

node 1: mvrac1 mvrac1-priv mvrac1
node 2: mvrac2 mvrac2-priv mvrac2
clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry for cluster has already been initialized
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
	mvrac1
	mvrac2
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
/u01/app/oracle/product/10.2.0/crs/jdk/jre//bin/java: error while
loading shared libraries: libpthread.so.0: cannot open shared
object file: No such file or directory

Terminamos de executar o script, mas observem que pegamos um erro na execução do último script no nó mvrac2:

Running vipca(silent) for configuring nodeapps
/u01/app/oracle/product/10.2.0/crs/jdk/jre//bin/java: error while
loading shared libraries: libpthread.so.0: cannot open shared
object file: No such file or directory

Esse erro é normal no Red Hat Enterprise Linux 5 e sempre acontecerá nessa versão e é descrito pela Nota do Metalink número 414163.1. Deveremos editar 2 arquivos para corrigir esse problema. Primeiro, precisamos ir para ao diretório $ORA_CRS_HOME com o usuário oracle:

[oracle@mvrac1 clusterware]$ cd $ORA_CRS_HOME/bin

Em seguida, editaremos o arquivo srvctl:

[oracle@mvrac1 bin]$ vi srvctl

Aproximadamente da linha 166, haverá a seguinte string:

#Remove this workaround when the bug 3937317 is fixed
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL

Devemos acrescentar o seguinte conteúdo abaixo da última linha da string:

unset LD_ASSUME_KERNEL

Deverá ficar da seguinte forma:

#Remove this workaround when the bug 3937317 is fixed
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL

Agora, editaremos o arquivo vipca:

[oracle@mvrac1 bin]$ vi vipca

Aproximadamente da linha 121, haverá a seguinte string:

#Remove this workaround when the bug 3937317 is fixed
       arch=`uname -m`
       if [ "$arch" = "i686" -o "$arch" = "ia64" ]
       then
            LD_ASSUME_KERNEL=2.4.19
            export LD_ASSUME_KERNEL
       fi
       #End workaround

Devemos acrescentar o seguinte conteúdo abaixo da linha que tenha a string “export LD_ASSUME_KERNEL”:

unset LD_ASSUME_KERNEL

Deverá ficar da seguinte forma:

#Remove this workaround when the bug 3937317 is fixed
       arch=`uname -m`
       if [ "$arch" = "i686" -o "$arch" = "ia64" ]
       then
            LD_ASSUME_KERNEL=2.4.19
            export LD_ASSUME_KERNEL
            unset LD_ASSUME_KERNEL
       fi
       #End workaround

Feito isso, deveremos copiar esses dois arquivos para o servidor mvrac2:

[oracle@mvrac1 bin]$ scp -rp srvctl mvrac2:`pwd`
srvctl                                             100% 5577     5.5KB/s   00:00
[oracle@mvrac1 bin]$ scp -rp vipca mvrac2:`pwd`
vipca                                              100% 5038     4.9KB/s   00:00

Podemos agora voltar para tela de instalação e clicar no botão OK:

Uma janela será exibida com a execução automática de assistentes de configuração:

No último assistente (Oracle Cluster Verification Utility), teremos um erro:

Erro erro é comum e não devemos nos preocupar. Clicar em OK:

Será exibido na janela que o último assistente falhou. Clicar em Next. Aparecerá uma mensagem informando que um assistente falhou:

Clicar em OK:

Clicar em Exit:

Clicar em Yes.

Estamos quase finalizando a instalação do Clusterware. Lembrem-se que na execução do último script no servidor mvrac2, obtivemos um erro:

Running vipca(silent) for configuring nodeapps
/u01/app/oracle/product/10.2.0/crs/jdk/jre//bin/java: error while
loading shared libraries: libpthread.so.0: cannot open shared
object file: No such file or directory

Pois bem, o assistente VIPCA, responsável por criar os recursos de IP virtuais (os VIP’s), nos servidores, falhou. Agora que corrigimos o problema editando os arquivos srvctl e vipca, agora precisamos executar o assistente vipca para criarmos os IP’s virtuais. No entanto, como se trata de iniciar um endereço IP no sistema operacional, só é possível executar o vipca com o usuário root (e com display gráfico):

vinicius@Viniciuss-MacBook:~$ ssh -X root@172.23.10.11
root@172.23.10.11's password:
Last login: Sun Feb 21 09:35:58 2010 from 172.23.10.100
[root@mvrac1 ~]# /u01/app/oracle/product/10.2.0/crs/bin/vipca

A tela inicial do VIPCA será exibida. Clicar em Next:

A interface de rede eth0 será exibida. Foi essa interface que definimos como interface de rede pública na instalação do Oracle Clusterware. Clicar em Next:

A janela acima será exibida. Precisamos definir o “IP Alias Name” para os servidores. Basta preencher o valor para o servidor mvrac1:

  • mvrac1-vip.viniciusdba.com.br

Pressionar [TAB] e o valor para o servidor mvrac2 será preenchido automaticamente, através da leitura do arquivo /etc/hosts:

Clicar em Next:

Um resumo sobre a configuração será exibido. Clicar em Finish.

Uma janela com o progresso da operação será exibido. Aguardar.

Quando o processo terminar, clicar no botão OK.

Uma janela com o resultado da configuração será exibido. Nesse momento, os endereços IP virtuais estarão online em cada servidor. Clicar em Exit.

Com o usuário oracle mesmo, podemos verificar quais são os endereços IP que estão online no servidor mvrac1:

[oracle@mvrac1 ~]$ ifconfig |grep inet | grep -v fe | grep -v 127.0. | grep -v ::1/128
          inet addr:172.23.10.11  Bcast:172.23.10.255  Mask:255.255.255.0
          inet addr:172.23.10.21  Bcast:172.23.10.255  Mask:255.255.255.0
          inet addr:10.0.0.11  Bcast:10.255.255.255  Mask:255.0.0.0

Ou seja:

  • 172.23.10.11: IP público físico;
  • 172.23.10.21: IP público virtual;
  • 10.0.0.11: IP privado físico, InterConnect.

Vamos ver agora no servidor mvrac2:

[oracle@mvrac2 ~]$ ifconfig |grep inet | grep -v fe | grep -v 127.0. | grep -v ::1/128
          inet addr:172.23.10.12  Bcast:172.23.10.255  Mask:255.255.255.0
          inet addr:172.23.10.22  Bcast:172.23.10.255  Mask:255.255.255.0
          inet addr:10.0.0.12  Bcast:10.255.255.255  Mask:255.0.0.0

Ou seja:

  • 172.23.10.12: IP público físico;
  • 172.23.10.22: IP público virtual;
  • 10.0.0.12: IP privado físico, InterConnect.

Caso o servidor mvrac1 sofra algum problema de hardware ou software e seja desligado, o seu IP virtual, 172.23.10.21 será transferido automaticamente para o servidor mvrac2.
Para verificarmos o status dos recursos do cluster, com o usuário oracle:

[oracle@mvrac1 ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.mvrac1.gsd application    ONLINE    ONLINE    mvrac1
ora.mvrac1.ons application    ONLINE    ONLINE    mvrac1
ora.mvrac1.vip application    ONLINE    ONLINE    mvrac1
ora.mvrac2.gsd application    ONLINE    ONLINE    mvrac2
ora.mvrac2.ons application    ONLINE    ONLINE    mvrac2
ora.mvrac2.vip application    ONLINE    ONLINE    mvrac2

Num artigo conveniente, veremos o que é cada um desses recursos. O que importa por enquanto, é que todos estão online.
Pessoal, por enquanto é isso!

No próximo artigo veremos como aplicar o patchset 10.2.0.4 no Clusterware, e também como migrar o OCR e Voting Disk para os block devices.

Um abraço!

Vinicius







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

Melhoria

Olá pessoal!

Nesta sexta-feira encontrei problemas com o meu provedor de hospedagem.

Não sei mensurar por quanto tempo foi, mas a partir do momento que verifiquei, o blog ficou indisponível por 2 horas.

Isso me fez procurar um outro provedor de serviços.

Gostaria de informá-los que já estamos operando no novo provedor de serviços: KingHost.

Não estou fazendo merchan ainda, mas, é claro que é muito cedo para avaliar, porém, tudo começa por um bom atendimento, e encontrei isso nesse provedor. Não que não tenha encontrado no outro. Mas eu não gostei muito do Blog ter ficado fora por tanto tempo sem aviso prévio. Parece-me que o diretório /var desse provedor estourou, pelo menos quando vi o status do servidor pelo Painel de Controle (cpanel), o /var estava com 97% de uso. Não vou citar o nome do outro provedor pois sempre foram muito corretos comigo e não acho justo queimá-los, a mudança para outro provedor foi simplesmente pensando em melhorar o nível de serviço do meu Blog.

Em pouco menos de 2 horas, já estava com o banco de dados MySQL e toda a estrutura de arquivos do blog migrada para esse novo provedor, e esse trabalho foi feito por eles, gratuitamente.

Espero não encontrar mais problemas com o serviço do blog, eu considero que qualquer serviço na Web tem que ficar o maior tempo disponível para todos.

Pelo que pude perceber, parece que o tempo de acesso ao blog também melhorou. Enfim, espero continuar oferecendo para todos que acessarem o meu Blog uma ótima experiência: seja no conteúdo encontrado, seja na navegação.

Abraços!

Vinicius







----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.

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

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

Olá pessoal!

Falta pouco para que iniciemos a instalação dos softwares Oracle que criarão o nosso ambiente Oracle RAC!

Neste artigo de hoje, veremos os seguintes itens:

  • Criação de equivalência de usuários para acesso SSH;
  • Particionamento dos discos do storage;
  • Marcação das partições dos discos do storage como discos ASM;
  • Criação de raw devices;
  • Criação de block devices.

Vamos lá!

Existem duas formas de se instalar o Oracle Clusterware e o Oracle Database num ambiente clusterizado:

  • Instalação dos binários (Oracle Home’s) em file system clusterizado;
  • Instalação dos binários (Oracle Home’s) em file system local.

Eu particularmente não gosto de instalar os Oracle Home’s em file system clusterizado. Isso porque para a aplicação de patches, incidência de bugs no produto de clusterização de file systems, ou qualquer problema que fuja às mãos do DBA, afeterá TODOS os nós do cluster, já que o Oracle Home enxergado por um nó será o mesmo enxergado pelos outros. Isso acontece porque fisicamente só há um Oracle Home, armazenado num file system clusterizado onde é permitido montar esse mesmo file system em diversos nós com estado de read/write.

Eu sempre faço a instalação dos Oracle Home’s em file systems locais. Motivo: a aplicação de patches se torna individualizada, se o patch for do tipo “rolling”, apenas um nó será interrompido na aplicação do patch, ou seja, o ambiente de banco de dados RAC continuará disponível para os usuários através dos outros nós. Mas não é só pela aplicação dos patches que eu escolho a instalação local. O principal motivo é que cada máquina terá sua cópia de Oracle Home, desta forma, se uma máquina sofrer algum tipo de problema de hardware ou software, o cluster continuará ativo com outros nós. Já que cada nó enxergará o seu Oracle Home.

Pois bem, no entanto, como é feita a instalação dos produtos em file systems locais?

É simples! A instalação dos produtos Oracle serão disparadas a partir de um único nó. O Oracle Universal Installer (OUI) criará o Oracle Home com seus arquivos e subdiretórios necessários, após o “relink” dos binários, o próprio OUI disparará uma cópia desse Oracle Home para os outros nós. Para que isso aconteça, é necessário que o usuário oracle do primeiro servidor, consiga copiar os arquivos para o segundo servidor sem a necessidade de informar senha (já que isso é feito automaticamente). Para que isso seja realizado, criamos o que chamamos de “equivalência de usuário”, onde, o usuário oracle do servidor mvrac1 poderá copiar qualquer arquivo para o servidor mvrac2, considerando que o usuário oracle no servidor mvrac2 tenha os privilégios necessários nos diretórios de destino da cópia, e vice-versa. Quando a equivalência de usuários está criada, qualquer ação de cópia ou login remoto, é feita sem a solicitação de senha pelo sistema operacional.

Bom, a equivalência de usuário poderá ocorrer através de duas maneiras:

  • rsh/rcp;
  • ssh/scp.

A configuração por rsh/rcp é mais simples de ser feita, no entanto, não é a recomendada, já que não é segura. Já no ssh/scp, os dados são enviados pela rede de forma criptografada, o que aumenta a segurança. Inclusive, em muitas empresas, as portas utilizadas em rsh/rcp nem são liberadas no firewall por motivos de segurança. A configuração do ssh/scp é um pouco mais chata, mas é a que veremos aqui por ser a mais segura.

Para realizar a configuração da equivalência de usuários para acesso via SSH, é necessário criar as chaves SSH de acesso ao usuário. Os passos são esses:

  • Criação das chaves do usuário oracle do servidor mvrac1;
  • Criação das chaves do usuário oracle do servidor mvrac2;
  • Criação de um arquivo de chaves autorizadas a acesso, contendo as chaves dos usuários oracle dos servidores mvrac1 e mvrac2. Esse arquivo será utilizado nos dois servidores;
  • Inclusão dos servidores mvrac1 e mvrac2 num arquivo de hosts conhecidos para não mais confirmar o acesso via SSH e isso ser feito automaticamente.

Então, vamos para o primeiro passo, criar as chaves do usuário oracle dos servidores mvrac1 e mvrac2. Com o usuário oracle a partir do servidor mvrac1:

[oracle@mvrac1 ~]$ cd /home/oracle
[oracle@mvrac1 ~]$ mkdir .ssh
[oracle@mvrac1 ~]$ cd .ssh
[oracle@mvrac1 .ssh]$ ssh-keygen -t dsa

Pressionar [ENTER] até voltar para o shell.

[oracle@mvrac1 .ssh]$ ssh-keygen -t rsa

Pressionar [ENTER] até voltar para o shell.

O mesmo precisa ser feito com o usuário oracle no servidor mvrac2:

[oracle@mvrac2 ~]$ cd /home/oracle
[oracle@mvrac2 ~]$ mkdir .ssh
[oracle@mvrac2 ~]$ cd .ssh
[oracle@mvrac2 .ssh]$ ssh-keygen -t dsa

Pressionar [ENTER] até voltar para o shell.

[oracle@mvrac2 .ssh]$ ssh-keygen -t rsa

Pressionar [ENTER] até voltar para o shell.

Agora vamos criar o arquivo com as chaves SSH autorizadas a acessar os servidores. Dentro desse arquivo, haverá o conteúdo das chaves públicas. Começando com o usuário oracle no servidor mvrac1:

[oracle@mvrac1 .ssh]$ cat *.pub >> authorized_keys
[oracle@mvrac1 .ssh]$ ls -l authorized_keys
-rw-r--r-- 1 oracle oinstall 1036 Feb 20 10:24 authorized_keys

Observem que o arquivo authorized_keys tem 1036 bytes de tamanho, e, por enquanto, só existe no servidor mvrac1. Agora, colocaremos dentro desse mesmo arquivo, o conteúdo das chaves públicas do usuário oracle do servidor mvrac2:

[oracle@mvrac1 .ssh]$ ssh mvrac2 cat /home/oracle/.ssh/*.pub >> authorized_keys
The authenticity of host 'mvrac2 (172.23.10.12)' can't be established.
RSA key fingerprint is ee:df:af:11:67:a9:b5:0a:e0:8f:3d:69:2a:3f:ef:6e.
Are you sure you want to continue connecting (yes/no)? yes

Observem que eu tive que confirmar com yes e em seguida, terei que colocar a senha do usuário oracle do servidor mvrac2:

oracle@mvrac2's password:

Vamos verificar o tamanho do arquivo?

[oracle@mvrac1 .ssh]$ ls -l authorized_keys
-rw-r--r-- 1 oracle oinstall 2072 Feb 20 10:26 authorized_keys

Ele agora tem 2072 bytes. Mas, ainda existe somente no servidor mvrac1. Devemos copiá-lo para o servidor mvrac2, nesse mesmo diretório, /home/oracle/.ssh, e, como a equivalência de usuários ainda não existe nos dois servidores (pela falta do arquivo authorized_keys no servidor mvrac2), terei que fornecer a senha do usuário oracle mais uma vez:

[oracle@mvrac1 .ssh]$ scp -p authorized_keys mvrac2:`pwd`
oracle@mvrac2's password:
authorized_keys                                                                                              100% 2072     2.0KB/s   00:00

Bom, como no servidor mvrac1 eu estava no diretório /home/oracle/.ssh. E o arquivo authorized_keys tem que ir para o mesmo diretório no servidor mvrac2, observem que eu usei um comando do Linux dentro do comando scp. O comando foi o pwd. E sempre que quisermos usar um comando dentro de outro comando, deveremos colocá-lo entre crases: `pwd`. Dessa forma, ele executará o comando pwd no servidor mvrac1 e com base na saída do comando (/home/oracle/.ssh), jogará o arquivo dentro desse diretório no outro servidor. Se o diretório não existisse, teríamos um erro.

Vamos testar para ver se a equivalência de usuários está funcionando?

The authenticity of host 'mvrac2.viniciusdba.com.br (172.23.10.12)' can't be established.
RSA key fingerprint is ee:df:af:11:67:a9:b5:0a:e0:8f:3d:69:2a:3f:ef:6e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mvrac2.viniciusdba.com.br' (RSA) to the list of known hosts.
Fri Feb 19 11:37:38 BRST 2010

Observem que eu tive que digitar yes. Mas não precisei mais digitar a senha. Porque?

Não precisei digitar mais a senha porque a equivalência de usuários funcionou. Mas, o host mvrac2.viniciusdba.com.br ainda não é um host conhecido para o SSH. Dessa forma, no servidor mvrac1, com o usuário oracle, deveremos fazer o seguinte:

ssh mvrac1 date
ssh mvrac1-priv date
ssh mvrac1.viniciusdba.com.br date
ssh mvrac1-priv.viniciusdba.com.br date
ssh mvrac2 date
ssh mvrac2-priv date
ssh mvrac2.viniciusdba.com.br date
ssh mvrac2-priv.viniciusdba.com.br date

Em todos as saídas, deveremos sempre confirmar com yes:

Are you sure you want to continue connecting (yes/no)? yes

Vocês viram que mesmo estando no servidor mvrac1, eu preciso fazer o ssh para ele mesmo. Isso é necessário porque quando o Oracle Universal Installer for confirmar se a equivalência de usuário está funcionando, ele fará isso também.

Quando fizer isso em todos os servidores, para confirmar se está tudo OK, basta refazer o comando:

ssh mvrac1 date
ssh mvrac1-priv date
ssh mvrac1.viniciusdba.com.br date
ssh mvrac1-priv.viniciusdba.com.br date
ssh mvrac2 date
ssh mvrac2-priv date
ssh mvrac2.viniciusdba.com.br date
ssh mvrac2-priv.viniciusdba.com.br date

Ele não deverá mais pedir confirmação para nenhum host:

[oracle@mvrac1 .ssh]$ ssh mvrac1 date
Sat Feb 20 11:38:59 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac1-priv date
Sat Feb 20 11:39:00 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac1.viniciusdba.com.br date
Sat Feb 20 11:39:00 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac1-priv.viniciusdba.com.br date
Sat Feb 20 11:39:01 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac2 date
Sat Feb 20 11:39:01 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac2-priv date
Sat Feb 20 11:39:02 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac2.viniciusdba.com.br date
Sat Feb 20 11:39:02 BRST 2010
[oracle@mvrac1 .ssh]$ ssh mvrac2-priv.viniciusdba.com.br date
Sat Feb 20 11:39:03 BRST 2010

Isso criará no servidor mvrac1, dentro do diretório corrente, /home/oracle/.ssh, o arquivo known_hosts (hosts conhecidos):

[oracle@mvrac1 .ssh]$ ls -l known_hosts
-rw-r--r-- 1 oracle oinstall 3246 Feb 20 10:33 known_hosts

Agora basta copiar esse arquivo para o outro servidor:

[oracle@mvrac1 .ssh]$ scp -p known_hosts mvrac2:`pwd`
known_hosts                                                                                                  100% 3246     3.2KB/s   00:00

Pronto! Equivalência de usuários devidamente configurada!

Agora iremos para o particionamento de discos.

Como vocês se lembram, temos 4 discos disponibilizados:

  • 1 disco de 12GB (disco local);
  • 3 discos de 5GB (discos storage).

Não mexeremos nas partições do disco local, pois essas já foram configuradas durante a instalação do Linux.

Temos 3 discos de 5GB. Para instalarmos o Oracle RAC precisamos do seguinte:

  • 3 partições para armazenar Voting Disk;
  • 2 partições para armazenar OCR;
  • 3 partições que serão os discos ASM.

Entrarei em mais detalhes sobre o Voting Disk e o OCR no artigo apropriado.

Até o Red Hat Enterprise Linux 4, geralmente se usava raw devices para o Voting Disk e o OCR. Os raw devices, são dispositivos brutos de caracter e não são buferizados. Porém, no kernel 2.6 o raw device foi depreciado, e no Red Hat Enterprise Linux 5 o serviço rawdevices nem existe mais. Por esse motivo, é necessário que o OCR e o Voting Disk deixem de usar raw devices e passem a usar block devices. Os block devices são dispositivos brutos de nível de acesso a blocos. Além disso, são buferizados. Porém, não há diferenças em desempenho (Metalink Note: 401132.1 – How to install Oracle Clusterware with shared storage on block devices).

Mas, o Oracle Universal Installer do Oracle Clusterware 10.2.0.1 não consegue determinar se os block devices estão compartilhados entre os nós (premissa para que se tenha um ambiente clusterizado), isso acontece porque quando o produto Clusterware 10.2.0.1 foi lançado, ainda não se usava block devices para esse fim. Sendo assim, a instalação precisa ser feita apontando para os dispositivos raw devices, e somente após a aplicação do patchset, que reaponteramos para os block devices. Mas, se eu comentei que os raw devices foram depreciados, como é que instalaremos utilizando esse tipo de dispositivo?

Usaremos um workaround para criar os dispositivos raw devices no RHEL5. Porém, como se trata de um workaround, devemos partir para a solução definitiva o quanto antes, a fim de evitar uma possível incidência de bugs envolvendo a utilização de raw devices. Até mesmo se encontrarmos algum bug envolvendo raw devices, tanto a Oracle quanto a Red Hat citarão que estamos utilizando um cenário que “não é mais certificado”, já que foi anunciada a depreciação desse tipo de dispositivo. Sendo assim, a tabela de partições será a seguinte:

  • 3 partições para armazenar Voting Disk em raw device de 256MB cada;
  • 3 partições para armazenar Voting Disk em block device de 256MB cada;
  • 2 partições para armazenar OCR em raw device de 256MB cada;
  • 2 partições para armazenar OCR em block device de 256MB cada;
  • 3 partições que serão os discos ASM (o restante livre dos discos).

Vamos consultar os discos existentes no servidor mvrac1? Como root:

[root@mvrac1 oracle]# fdisk -l

Disk /dev/sda: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1435    11526606   83  Linux
/dev/sda2            1436        1566     1052257+  82  Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdd: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

O disco sda é o disco local do servidor mvrac1 (12GB). Já, os discos sdb, sdc e sdd são os discos do storage.

Vamos verificar se esses discos do storage também estão no servidor mvrac2?

[root@mvrac2 oracle]# fdisk -l

Disk /dev/sda: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1435    11526606   83  Linux
/dev/sda2            1436        1566     1052257+  82  Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdd: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Como eu preciso criar mais de 4 partições por disco, e no Linux só é possível criar 4 partições primárias, criaremos então uma partição estendida com o tamanho integral do disco, e depois criaremos as partições lógicas para atender as nossas necessidades. Vamos ver como será exatamente a tabela de partições?

Como estamos vendo na tabela de partições acima, os discos sdb e sdc terão 5 partições lógicas e 1 partição extendida. Apenas para manter o padrão de nomenclatura, o disco sdd também terá 1 partição extendida e 3 partições lógicas. Bom, sabendo qual será a tabela de partições, vamos particionar?

Vamos começar pelo disco sdb, como root no servidor mvrac1:

[root@mvrac1 oracle]# fdisk /dev/sdb

Será solicitado o comando: criaremos a partição, então digitaremos a tecla [n] de new partition e depois pressionaremos a tecla [ENTER]:

Command (m for help): n

Em seguida, deveremos especificar se será uma partição estendida [e] ou primária [p]. Nesse caso, criaremos uma partição estendida, portanto, digitaremos a tecla [e] e depois a tecla [ENTER]:

Command action
   e   extended
   p   primary partition (1-4)
e

Deveremos qual partição será (de 1 a 4), nesse caso, escolheremos a partição 1:

Partition number (1-4): 1

Em seguida, deveremos especificar o tamanho da partição, como é a partição estendida, pegará todo o tamanho do disco, basta pressionar [ENTER] para o primeiro cilindro, e [ENTER] para o último cilindro:

First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
Using default value 652

Maravilha! Agora precisamos criar as partições lógicas, automaticamente, serão atribuídos números a partir de 5. Criar a nova partição, pressionar a tecla [n] e pressionar [ENTER]:

Command (m for help): n

A partição agora será do tipo lógica, basta pressionar a tecla [l] e depois [ENTER]:

Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l

Essa partição terá o tamanho de 256MB, portanto, basta pressionar [ENTER] no primeiro cilindro e no último cilindro, digitar +256M e em seguida pressionar [ENTER]:

First cylinder (1-652, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): +256M

Precisamos criar mais 3 partições de 256MB (colocarei aqui todos os comandos num único bloco):

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (33-652, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (65-652, default 65):
Using default value 65
Last cylinder or +size or +sizeM or +sizeK (65-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (97-652, default 97):
Using default value 97
Last cylinder or +size or +sizeM or +sizeK (97-652, default 652): +256M

Agora precisamos criar a última partição lógica desse disco, basta pressionar [n], depois [ENTER], na hora de especificar o tamanho, basta pressionar [ENTER] para o cilindro inicial e o cilindro final:

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (129-652, default 129):
Using default value 129
Last cylinder or +size or +sizeM or +sizeK (129-652, default 652):
Using default value 652

Para saber se a tabela de partições está correta, basta pressionar [p] e depois [ENTER]:

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+   5  Extended
/dev/sdb5               1          32      256977   83  Linux
/dev/sdb6              33          64      257008+  83  Linux
/dev/sdb7              65          96      257008+  83  Linux
/dev/sdb8              97         128      257008+  83  Linux
/dev/sdb9             129         652     4208998+  83  Linux

Como está correto, temos que gravar a tabela e partições, basta pressionar [w] e depois [ENTER]:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Como se trata de um disco compartilhado entre os servidores, vamos ver se ele foi também particionado no servidor mvrac2? Como root no servidor mvrac2:

[root@mvrac2 oracle]# fdisk -l /dev/sdb

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+   5  Extended
/dev/sdb5               1          32      256977   83  Linux
/dev/sdb6              33          64      257008+  83  Linux
/dev/sdb7              65          96      257008+  83  Linux
/dev/sdb8              97         128      257008+  83  Linux
/dev/sdb9             129         652     4208998+  83  Linux

As partições apareceram no servidor mvrac2! Mas, como o comando foi feito a partir do servidor mvrac1, os devices de cada partição ainda não foram criados no servidor mvrac2 (no diretório /dev/). Há duas formas de criarmos esses devices das partições no servidor mvrac2: reiniciando o servidor, ou, como root:

[root@mvrac2 oracle]# fdisk /dev/sdb

E gravar a tabela de partições, pressionando a tecla [w] e depois [ENTER]:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Pronto! O disco /dev/sdb foi particionado com sucesso nos 2 servidores. O disco /dev/sdc terá a mesma estrutura de partições que o disco /dev/sdb, colocarei o comando num único bloco:

[root@mvrac1 oracle]# fdisk /dev/sdc

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
Using default value 652

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (33-652, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (65-652, default 65):
Using default value 65
Last cylinder or +size or +sizeM or +sizeK (65-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (97-652, default 97):
Using default value 97
Last cylinder or +size or +sizeM or +sizeK (97-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (129-652, default 129):
Using default value 129
Last cylinder or +size or +sizeM or +sizeK (129-652, default 652):
Using default value 652

Command (m for help): p

Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         652     5237158+   5  Extended
/dev/sdc5               1          32      256977   83  Linux
/dev/sdc6              33          64      257008+  83  Linux
/dev/sdc7              65          96      257008+  83  Linux
/dev/sdc8              97         128      257008+  83  Linux
/dev/sdc9             129         652     4208998+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Lembrando que no servidor mvrac2 esse disco precisa ter os devices das partições criadas no diretório /dev:

[root@mvrac2 oracle]# fdisk /dev/sdc

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

O disco /dev/sdd terá 1 partição estendida com o tamanho total do disco, 2 partições de 256MB e 1 partição com o restante de espaço disponível no disco (4,5GB):

[root@mvrac1 oracle]# fdisk /dev/sdd

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
Using default value 652

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (33-652, default 33):
Using default value 33
Last cylinder or +size or +sizeM or +sizeK (33-652, default 652): +256M

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (65-652, default 65):
Using default value 65
Last cylinder or +size or +sizeM or +sizeK (65-652, default 652):
Using default value 652

Command (m for help): p

Disk /dev/sdd: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         652     5237158+   5  Extended
/dev/sdd5               1          32      256977   83  Linux
/dev/sdd6              33          64      257008+  83  Linux
/dev/sdd7              65         652     4723078+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

No servidor mvrac2 esse disco precisa ter os devices das partições criadas no diretório /dev:

[root@mvrac2 oracle]# fdisk /dev/sdd

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

As partições foram criadas!

Agora, marcaremos como discos de ASM, as partições reservadas para o ASM. Lembrando que as partições reservadas para o ASM são:

  • /dev/sdb9: 4GB;
  • /dev/sdc9: 4GB;
  • /dev/sdd7: 4,5GB.

Para marcarmos as partições como discos ASM, basta usarmos a ASMLib. A nomenclatura padrão será: ASMDISKx. Como root, no servidor mvrac1:

[root@mvrac1 oracle]# /etc/init.d/oracleasm createdisk ASMDISK1 /dev/sdb9
Marking disk "ASMDISK1" as an ASM disk:                    [  OK  ]
[root@mvrac1 oracle]# /etc/init.d/oracleasm createdisk ASMDISK2 /dev/sdc9
Marking disk "ASMDISK2" as an ASM disk:                    [  OK  ]
[root@mvrac1 oracle]# /etc/init.d/oracleasm createdisk ASMDISK3 /dev/sdd7
Marking disk "ASMDISK3" as an ASM disk:                    [  OK  ]

Para verificar se os discos foram criados, ainda no servidor mvrac1:

[root@mvrac1 oracle]# /etc/init.d/oracleasm listdisks
ASMDISK1
ASMDISK2
ASMDISK3

Agora, precisamos verificar se o servidor mvrac2 enxergará os discos de ASM criados. Antes, precisamos fazer um scan dos discos, no momento do scan, a ASMLib lerá o cabeçalho de todas as partições de disco do servidor:

[root@mvrac2 oracle]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]

Agora precisamos verificar se os discos foram realmente enxergados:

[root@mvrac2 oracle]# /etc/init.d/oracleasm listdisks
ASMDISK1
ASMDISK2
ASMDISK3

Pronto! Discos do ASM criados!

Agora falta apenas criar os raw e block devices. Usaremos o utilitário chamado UDEV para isso. Para criarmos esses dispositivos, criaremos arquivos com as regras necessárias no diretório /etc/udev/rules.d. O arquivo precisa ter a extensão .rules.

Criaremos primeiro o arquivo que criará os raw devices:

[root@mvrac1 oracle]# cd /etc/udev/rules.d/
[root@mvrac1 oracle]# vi 62-oracle-raw.rules

O conteúdo do arquivo 62-oracle-raw.rules será:

ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdc5", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdc7", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdd5", RUN+="/bin/raw /dev/raw/raw5 %N"
KERNEL=="raw[1-5]*", OWNER="oracle", GROUP="dba", MODE="640"

Agora criaremos o arquivo que criará os block devices:

[root@mvrac1 oracle]# vi 63-oracle-block.rules

O conteúdo do arquivo 63-oracle-block.rules será:

KERNEL=="sdb6", NAME="ocr1", OWNER="root", GROUP="dba", MODE="0640"
KERNEL=="sdb8", NAME="voting1", OWNER="oracle", GROUP="dba", MODE="0640"
KERNEL=="sdc6", NAME="ocr2", OWNER="root", GROUP="dba", MODE="0640"
KERNEL=="sdc8", NAME="voting2", OWNER="oracle", GROUP="dba", MODE="0640"
KERNEL=="sdd6", NAME="voting3",OWNER="oracle",GROUP="dba", MODE="0640"

Após isso, faremos o restart do serviço udev:

[root@mvrac1 rules.d]# start_udev
Starting udev:                                             [  OK  ]

Agora verificaremos se os devices foram criados:

[root@mvrac1 rules.d]# ls -l /dev/ocr* /dev/voting* /dev/raw/raw*
brw-r----- 1 oracle dba   8, 22 Feb 20 17:34 /dev/ocr1
brw-r----- 1 oracle dba   8, 38 Feb 20 17:35 /dev/ocr2
crw-r----- 1 oracle dba 162,  1 Feb 20 17:36 /dev/raw/raw1
crw-r----- 1 oracle dba 162,  2 Feb 20 17:36 /dev/raw/raw2
crw-r----- 1 oracle dba 162,  3 Feb 20 17:36 /dev/raw/raw3
crw-r----- 1 oracle dba 162,  4 Feb 20 17:36 /dev/raw/raw4
crw-r----- 1 oracle dba 162,  5 Feb 20 17:36 /dev/raw/raw5
brw-r----- 1 root   dba   8, 24 Feb 20 17:34 /dev/voting1
brw-r----- 1 root   dba   8, 40 Feb 20 17:35 /dev/voting2
brw-r----- 1 oracle dba   8, 54 Feb 20 17:35 /dev/voting3

Os dispositivos foram criados!

Agora precisamos copiar esses arquivos para o servidor mvrac2:

[root@mvrac1 rules.d]# scp -p *ora*.rules mvrac2:`pwd`
The authenticity of host 'mvrac2 (172.23.10.12)' can't be established.
RSA key fingerprint is ee:df:af:11:67:a9:b5:0a:e0:8f:3d:69:2a:3f:ef:6e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mvrac2,172.23.10.12' (RSA) to the list of known hosts.
root@mvrac2's password:
62-oracle-raw.rules                       100%  386     0.4KB/s   00:00
63-oracle-block.rules                     100%  359     0.4KB/s   00:00

Teremos que confirmar com yes, e depois digitar a senha do usuário root. Isso acontece porque criamos a equivalência de usuário para o usuário oracle. O root não precisa ter a equivalência de usuário criada.

Após copiar os arquivos para o servidor mvrac2, teremos que reiniciar o serviço udev no servidor mvrac2:

[root@mvrac2 rules.d]# start_udev
Starting udev:                                             [  OK  ]

Agora verificaremos se os devices foram criados:

Agora verificaremos se os devices foram criados:

[root@mvrac2 rules.d]# ls -l /dev/ocr* /dev/voting* /dev/raw/raw*
brw-r----- 1 oracle dba   8, 22 Feb 20 17:34 /dev/ocr1
brw-r----- 1 oracle dba   8, 38 Feb 20 17:35 /dev/ocr2
crw-r----- 1 oracle dba 162,  1 Feb 20 17:36 /dev/raw/raw1
crw-r----- 1 oracle dba 162,  2 Feb 20 17:36 /dev/raw/raw2
crw-r----- 1 oracle dba 162,  3 Feb 20 17:36 /dev/raw/raw3
crw-r----- 1 oracle dba 162,  4 Feb 20 17:36 /dev/raw/raw4
crw-r----- 1 oracle dba 162,  5 Feb 20 17:36 /dev/raw/raw5
brw-r----- 1 root   dba   8, 24 Feb 20 17:34 /dev/voting1
brw-r----- 1 root   dba   8, 40 Feb 20 17:35 /dev/voting2
brw-r----- 1 oracle dba   8, 54 Feb 20 17:35 /dev/voting3

Pronto! Devices criados!

Nesse momento estamos prontos para iniciar a instalação dos produtos Oracle!

Nos veremos no próximo post, semana que vem!

Um abraço!

Vinicius

——————————-

PS:

Observação:

Apenas para ficar claro, sobre as partições de discos, num ambiente corporativo eu costumo pedir o seguinte:

  • 1 disco (LUN) de 2GB para utilizar as partições raw devices (esse disco posteriormente será eliminado);
  • 2 discos (LUN’s) de 512MB para utilizar as partições block devices;
  • 1 disco (LUN) de 256MB para utilizar a partição block device;
  • Quantidade “X de discos para ASM, aí vai depender do tamanho do banco de dados.






----------------------------------------------------------------------------

Copyright:

Este site e todo o conteúdo aqui publicado pertence ao Blog ViniciusDBA.com.br e possui seus respectivos direitos autorais.

O Conteúdo desde Blog não deve ser publicado, distribuído ou transmitido sem autorização prévia de seu autor.

Oracle e seus produtos são marcas registradas da Oracle Corporation® (http://www.oracle.com) Todo o material aqui encontrado é mantido sem ajuda financeira e mantém como propriedade de seu fundador/escritor.

Disclaimer:
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
As opiniões publicadas neste blog (http://www.viniciusdba.com.br) são pessoais e não necessariamente representam a visão da Oracle.


Toda informação aqui encontrado é oferecida através do uso do bom senso e boa fé do seus leitores e não deve ser considerada como material oficial da Oracle Corporation (http://www.oracle.com).

O Autor (e contribuidores) não considera as informações aqui como oficiais e/ou permitidas para redistribuição. Ao utilizar o site http://www.viniciusdba.com.br o leitor deve entender e aceitar que as informações aqui encontradas são de direitos autorais do Autor e contribuidores.

O blog http://www.viniciusdba.com.br não faz revisão de conteúdo publicado por outros como comentários bem como posts em grupo de usuários ou portais.

Seus autores não necessariamente concordam ou apoiam opiniões de seus leitores.

ESTE É UM SITE INDEPENDENTE E NÃO REPRESENTA A ORACLE CORPORATION® (http://www.oracle.com) EM NENHUM SENTIDO. AS OPINIÕES E CONTEÚDOS AQUI ENCONTRADOS NÃO POSSUEM RELAÇÃO COM A VISÃO DA ORACLE CORPORATION®. ESTE SITE NÃO POSSUI NENHUM APOIO OU PATROCINIO DA ORACLE CORPORATION®.