Guob 2014
Instalação Oracle RAC 10g com VirtualBox – Parte 13
abril 13, 2012

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Enfim a última parte da nossa serie de instalações do Oracle RAC 10g. Nesse último post estaremos vendo a criação do banco de dados dbtst em modo cluster.

Conectado na máquina rac1 do cluster, execute o comando dbca.

[oracle@rac2 ~]$ dbca

Irá abrir o Database Configuration Assistant (DBCA), veja que ele automaticamente identifica um cluster instalado na máquina e nos fornece a opção de criar um banco de dados em modo cluster. Como nosso objeto aqui é criar o banco de dados em modo cluster, estaremos selecionando a primeira opção. Veja abaixo:

Selecione Create a Database para iniciarmos a criação de um novo banco de dados.

 

Além de identificar que existe uma instalação em modo cluster, o DBCA ainda identifica as instâncias relacionadas a ela e nos pergunta qual das delas vamos estar criando o nosso banco de dados. Selecione as duas instâncias (rac1 e rac2).

 

Aqui é o momento de fornecer o nome do novo banco de dados que no nosso será o dbtst. Fique a vontade a questão da escolha de qualquer outro nome.

 

Por hora, não estaremos instalando com o Enterprise Manager.

 

Defina uma senha para o banco de dados, aqui defini a senha oracle.

 

É nos dado a opção de armazenamento do nosso banco de dados em que é possível utilizar até três tipos. O Cluster File System geralmente ocfs2 ou qualquer outro cluster file system vendor suportador pela Oracle, o ASM (nosso caso) e com a opção de Raw Devices.

Como no artigo anterior fizemos toda a instalação do ASM e temos nosso ambiente pronto para a instalação em ASM, estaremos utilizando essa opção.  Após clique em Next e o DBUA pedi para informarmos a senha do usuário sys do ASM, que no nosso caso é oracle.

 

 

Veja abaixo os Diskgroups ORADATA1 e ORADATA2 criados no artigo anterior. Vamos estar utilizando os dois DG, por isso selecione os dois.

 

Aqui, selecione o DG +ORADATA1 para o OMF.

 

Agora é a hora da configuração da Flash Recovery Area e do Archived Log Mode. Siga os passos abaixos:

 

Clique em Browser

 

Selecione o DG ORADATA2.

 

Deverá ficar assim:

 

Habilite agora o Archived.

 

No final a sua tela do DBCA deverá estar como abaixo:

 

Aqui é fornecido a opção de criação de Services. Nesse momento não vamos estar criando nenhum serviço, apenas clique em Next.

 

Reveja os dados do banco de dados e caso tudo esteja correto clique em Next.

 

Após finalizada a instalação, execute o comando crs_stat -t e veja que agora o banco de dados dbtst aparece no cluster. Veja que as instâncias do dbtst estão em execução na máquina rac1 e rac2.

[oracle@rac1 ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.dbtst.db   application    ONLINE    ONLINE    rac1
ora....t1.inst application    ONLINE    ONLINE    rac1
ora....t2.inst application    ONLINE    ONLINE    rac2
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

Veja abaixo as instâncias ASM1 e dbtst1 sendo executadas na máquina rac1.

[oracle@rac1 ~]$ ps -ef | grep pmon | grep -v grep | awk -F"_" '{print$3}'
+ASM1
dbtst1

Abaixo mostra que o banco dbtst está funcionando normalmente. Conecte na instâncias dbtst1:

[oracle@rac1 ~]$ echo $ORACLE_SID
dbtst1
[oracle@rac1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Oct 12 17:31:49 2011

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select count(*) from dba_tables;

  COUNT(*)
----------
      1523

Esse é o fim da nossa série, estarei preparando a mesma série só que agora em 11g R2.

Qualquer dúvida, sugestão que queira apresentar será muito bem vinda.

Um grande abraço a todos.

Instalação Oracle RAC 10g com VirtualBox – Parte 12
janeiro 25, 2012

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 – Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Até agora em nossa série de post sobre instalação Oracle RAC 10g em Oracle Linux 5, já criamos nosso cluster a aplicamos os patch 10.2.0.5 tanto no Oracle Clusterware como no binário do banco de dados.

Para verificar a status do seu cluster execute o seguinte comando:

[oracle@rac1 ~]$ /u01/app/oracle/product/10.2.0/crs/bin/crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

Hoje vamos a configuração do LISTENER e ASM em modo cluster, antes vamos a algumas poucas configurações de variáveis de ambiente, que vão nos facilitar muito na administração do ambiente. Aqui vou somente demostrar o procedimento na máquina 1 do cluster (rac1) mais deve ser feita para a máquina 2, alterando apenas a variável ORACLE_SID para dbtst2.

[oracle@rac1 ~]$ vi .bash_profile

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

# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

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 ORACLE_SID=dbtst1

PATH=$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:$PATH

Com o arquivo .bash_profile configurado, vamos executa-lo e assim ativar as variáveis criadas acimas.

[oracle@rac1 ~]$ . .bash_profile

Para verificar se elas estão ativas na sua sessão verifique através do comando env, as variáveis devem aparecer quando você executar.

Criação do Listerner

Para criar o listener em modo cluster é através do utilitário netca, assim como é feito em um ambiente não RAC.

 

Aqui é onde especificamos se o LISTENER será em CLUSTER ou SINGLE. Selecione o modo “Cluster Configuration” e clique em Next.

O netca é capaz de identificar os nós configurados no cluster e apresentar para você. Selecione os dois nós, como na imagem abaixo e clique em Next.

Escolha a opção de adicionar um novo listener.

Use a porta DEFAULT, 1521.

 

Para finalizar clique em Finish.

Com essas configurações acimas feitas, o LISTENER já deve estar criado e habilitado nos dois nós do cluster . Para verificar execute o comando abaixo e observe o recurso com o final .lsnr:

[oracle@rac1 ~]$ /u01/app/oracle/product/10.2.0/crs/bin/crs_stat -t

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

Criação do ASM

Para iniciar com a configuração do ASM, execute o dbca como na imagem abaixo:

Escolha a opção Configura Automatic Storage Management e clique em Next:

O DBCA irá identificar que os nós do cluster, selecione as duas instâncias para instalar o ASM e Next.

Define uma senha padrão, no meu caso oracle

Com a instância ASM já criada, vamos já criar os diskgroup do ASM ORADATA1 e ORADATA2. Observe que discos DISK1,DISK2,DISK3 e DISK4 criados com o ASMLib, automáticamente aparecem no momento da criação do DISKGROUP.

Crie o diskgroup ORADATA1, com os discos DISK1 e DISK2, como mostra a imagem abaixo:

Agora, crie o diskgroup ORADATA2 com os discos DISK3 e DISK4.

Com os dois diskgroup criados, podemos sair do instalador.

Com a instância ASM configurada, ao executar novamente o crs_stat, observe que os recursos abaixo com o final .asm são nossas instâncias ASM criadas acimas.

[oracle@rac1 ~]$ /u01/app/oracle/product/10.2.0/crs/bin/crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

Agora sim, estamos pronto para a criação do banco de dados que será feita no próximo e último post da série.

Instalação Oracle RAC 10g com VirtualBox – Parte 11
novembro 28, 2011

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Olá pessoal,

O Oracle Database 10g em cluster já está chegando nas retas finais, falta pouco!

Até agora:

  1. Instalamos o Oracle Clusterware 10g.
  2. Aplicamos o Patch 10.2.0.5 para o Oracle Clusterware.
  3. Instalamos o Oracle Database 10g

Hoje, vamos aplicar o Patch 10.2.0.5 para o Oracle Database 10g, assim vamos ter os produtos (Oracle Clusterware e Oracle Database) todos na versão 10.2.0.5. Somente lembrando que o binário de instalação do 10.2.0.5 é o mesmo para o Oracle Clusterware e o Oracle Database.

 

Aplicação do Patch 10.2.0.5 no Oracle Database

Como sempre começamos vamos entrar na pasta onde está o ORACLE BASE, lá deixei o binário descompactado do patch 10.2.0.5.

 

Selecione aqui, a localização o HOME do Oracle Database, que no nosso caso é o: /u01/app/oracle/product/10.2.0/db_1.

 

O instalador já irá detectar que você está em um ambiente de Cluster Installation Mode e vai mostrar quais serão os nós o patch irá realizar a instalação:

 

Depois de toda a instalação dos arquivos do patch, é necessário executar arquivo root.sh nos nós que o patch foi instalado. A execução deve ser feita um nó de cada vez.

RAC 1 – Executando os scripts no PRIMEIRO nó.

[root@rac1 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle 10g 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.

RAC 2 – Executando os scripts no SEGUNDO nó.

[root@rac2 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle 10g 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.

Aplicação do patch feito !
Nos próximos posts vamos configurar o restante do cluster, ASM, Listener e o Banco!
Quais os nodes do cluster?
novembro 10, 2011

Quando deparamos com um ambiente novo que nunca tivemos contato antes, sempre vem a pergunta … Quantos nodes tem o cluster? Quais são eles?.

Com o utilitário olsnodes é fácil checar todos os nodes pertencentes ao clusterware. Veja a syntax abaixo:

olsnodes
-n Informa o membro número do node name.
-l Informa o local node name

[oracle@rac1 ~]$ olsnodes
rac1
rac2
[oracle@rac1 ~]$ olsnodes -n
rac1 1
rac2 2
[oracle@rac1 ~]$ olsnodes -l
rac1
Instalação Oracle RAC 10g com VirtualBox – Parte 10
novembro 9, 2011

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Muito bom começar mais um post da série com vocês!  Após aprendermos como realizar a aplicação do patch 10.2.0.5 no Oracle Clusterware, hoje vamos realizar a instalação do Oracle Database 10g em modo “Clusterizado”. Siga os passos a baixos demonstrados e caso fique alguma dúvida, post um comentário que terei prazer em poder ajudar.

 

Instalação Oracle Database 10g

O binário de instalação do Oracle Database 10g é o mesmo para Single Instance e Oracle RAC.O Download pode ser feito na seguinte página: http://www.oracle.com/technetwork/database/10201linuxsoft-097986.html. Já baixado você deve descompactar o arquivo, assim como foi feito na Instalação do Oracle Clusterware na parte 8.

unzip 10201_database_linux32.zip

Com a descompactação feita, uma pasta database será criada, entre nela e execute o runInstaller, como imagem abaixo:

 

Nesse momento, o instalador irá questionar para qual versão será instalada o banco, Enterprise ou Standard Edition, fica a seu critério de escolha. O Oracle RAC funciona perfeitamente na versão Standard Edition, porém afim de testar todos os recursos do banco aqui nesse ambiente teste que estamos construindo, vamos instalar a versão Enterprise.

 

Define aqui, a localização do Oracle Home do banco de dados que será instalado:

 

O instalador já reconhece que existe um Oracle Clusterware instalado e inicia a instalação em modo Cluster Installation. Ele também detecta os nodes e pergunta quais deles será instalado o banco … no nosso caso os dois.

Como iniciamos a instalação através do runInstaller com a opção -ignoreSysPreReqs várias mensagens será mostrada aqui dizendo que não está de acordo, pode ignorar essas mensagens sem problema e continuar com a instalação. Essas mensagens de erro acontecem porque quando o instalador do Oracle 10g saiu, a versão Red Hat 5 (que estamos usando) ainda não estava liberada. De acordo com a própria Oracle esse comportamento é esperado.

 

Por hora, vamos somente realizar a instalação do banco, por isso selecione a opção Install database Software only.

 

Hora de executar o tão conhecido root.sh. Lembre-se de sempre executar o script como root e sempre um de cada vez. Abaixo a imagem eu mostro a execução desses arquivos:

 

RAC 1 – Executando os scripts no PRIMEIRO nó

[root@rac1 ~]# /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.

RAC 2 – Executando os scripts no SEGUNDO nó

[root@rac2 ~]# /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.

Banco instalado!

Para o próximo parte, vamos realizar a aplicação do patch 10.2.0.5 para o database. Até lá …

Instalação Oracle RAC 10g com VirtualBox – Parte 9
outubro 25, 2011

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 – Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

A parte 8 da nossa série de artigos, foi mostrado a instalação do Oracle Clusterware 10g. Hoje veremos como evoluirmos a versão do produto instalado de 10.2.0.1 para 10.2.0.5, que é feito através de uma aplicação de patch, este que é disponibilizado pela Oracle. Para baixar o patch é necessário uma conta (usuário/senha) de acesso ao suporte da Oracle no endereço: https://support.oracle.com,

Caso você não tenha CSI para conectar e assim baixar o patch não se preocupe, você poderá utilizar normalmente o seu Oracle RAC na versão 10.2.0.1, ou sejá sem a aplicação do patch 10.2.0.5, apenas pule as essa parte. Quando ainda não era um profissional na área, aprendi muito utilizando apenas a versão 10.2.0.1, não faça dessa uma desculpa para não estudar :)

O Patch ID do patch 10.2.0.5 é o 8202632, você será capaz de encontrar o patch na sessão Patchs and Updates apenas digitando o número do patch no campo de pesquisa. Lembre-se de baixar para Linux x86 (versão utilizada no tutorial).

p8202632_10205_Linux-x86.zip

 

Pré-requisitos do Patch 10.2.0.5

Será necessário a alteração de dois parâmetros de kernel para conseguirmos que a aplicação do patch seja feita. Esses parâmetros já foram alterados na parte 4 em que alteramos o arquivos /etc/sysctl.conf. Veja abaixo que os parâmetros em azul é os necessário a mudança, deixei conforme abaixo:

[root@rac1 ~]# vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128
fs.file-max = 524288
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 2097152
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

Para ativar a mudança:

[root@rac1 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.sem = 250 32000 100 128
fs.file-max = 524288
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 2097152
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

 

Aplicação do Patch 10.2.0.5 no Oracle Clusterware

Abaixo eu mostro a aplicação do Patch passo-a-passo:

Descompactando o patch 10.2.0.5, o meu arquivo está localizado na minha ORACLE_BASE.

 

Após descompactado o zip do patch, ele irá criar uma pasta chamada Disk1, entre nessa pasta e execute o arquivo runInstaller como oracle:

[oracle@rac1 Disk1]$ ./runInstaller

Selecione o HOME do Oracle Clusterware instalado, que no nosso casso é o OraCrs10g_home

 

O instalador irá reclamar sobre a falta de memória existente na nossa VM (512MB), não tem problema para o nosso ambiente de teste, ignore a mensagem como abaixo:

 

Aqui será pedido para que execute o arquivo root102.sh no Oracle Clusterware instalado. O procedimento deve ser feito primeiro na máquina 1 e depois na máquina 2, uma de cada vez. Faça o passo 1 depois o passo 2.



RAC 1 – Executando os scripts no PRIMEIRO nó.

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

[root@rac1 ~]# /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.
.
10205 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully deleted 1 values from OCR.
Successfully deleted 1 keys from OCR.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node : 

node 1: rac1 rac1-priv rac1
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
clscfg -upgrade completed successfully
Creating '/u01/app/oracle/product/10.2.0/crs/install/paramfile.crs' with data used for CRS configuration
Setting CRS configuration values in /u01/app/oracle/product/10.2.0/crs/install/paramfile.crs

RAC 2 – Executando os scripts no SEGUNDO nó.

[root@rac2 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@rac2 ~]# /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.
.
10205 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully deleted 1 values from OCR.
Successfully deleted 1 keys from OCR.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node : 

node 2: rac2 rac2-priv rac2
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
clscfg -upgrade completed successfully
Creating '/u01/app/oracle/product/10.2.0/crs/install/paramfile.crs' with data used for CRS configuration
Setting CRS configuration values in /u01/app/oracle/product/10.2.0/crs/install/paramfile.crs

Com todos os scripts executados como acima, voltamos a tela de instalação e concluímos a instalação do Patch.


Instalação Oracle RAC 10g com VirtualBox – Parte 7
outubro 1, 2011

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 – Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Na parte 7 do nosso artigo, vamos  aprender como configurar os discos apresentados para as VM 1 e 2 no post anterior.

Criando as partições

Ao todo foram 5 discos criados, sendo 4 de 5G que será para o ASM e 1 disco de 1G para o OCFS2. Através do comando fdisk -l podemos ver os discos apresentados em cada uma das máquinas. Lembre-se que esse comando deve ser executado como root, observe que a verificação é feita na máquina 1 (rac1) e depois na máquina 2 (rac2).

[root@rac1 ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1827    14675346   83  Linux
/dev/sda2            1828        1958     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

Disk /dev/sdb doesn't contain a valid partition table

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

Disk /dev/sdc doesn't contain a valid partition table

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

Disk /dev/sdd doesn't contain a valid partition table

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

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

[root@rac1 ~]# ssh rac2
The authenticity of host 'rac2 (10.0.0.20)' can't be established.
RSA key fingerprint is 86:5a:97:20:00:13:34:97:16:95:f1:4d:b5:ec:49:a4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,10.0.0.20' (RSA) to the list of known hosts.
root@rac2's password:
Last login: Tue Sep 27 20:42:23 2011 from shadowy.lan

[root@rac2 ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1827    14675346   83  Linux
/dev/sda2            1828        1958     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

Disk /dev/sdb doesn't contain a valid partition table

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

Disk /dev/sdc doesn't contain a valid partition table

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

Disk /dev/sdd doesn't contain a valid partition table

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

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Caso esteja tudo igual de uma máquina como na outra, vamos a criação das partições de cada um dos discos. O procedimento é muito simples e também é realizado com o comando fdisk executado como root. Vamos primeiro fazer na máquina 1:

 

Disco “/dev/sdb”

[root@rac1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
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): 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+  83  Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]#

 

Disco “/dev/sdc”

[root@rac1 ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
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): 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+  83  Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]#

 

Disco “/dev/sdd”

[root@rac1 ~]# fdisk /dev/sdd
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
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): 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+  83  Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]#

 

Disco “/dev/sde”

[root@rac1 ~]# fdisk /dev/sde
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
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): p

Disk /dev/sde: 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/sde1               1         652     5237158+  83  Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]#

Feito o disco /dev/sde, temos os 4 discos do ASM criado a partição, agora é hora do disco do OCFS2 de 1G. O procedimento é o mesmo, só que agora vamos criar 2 partições, não 1 como estava sendo feito:

 

Disco “/dev/sdf”

[root@rac1 ~]# fdisk /dev/sdf

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

Command (m for help): p

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1          63      506016   83  Linux

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

Command (m for help): p

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1          63      506016   83  Linux
/dev/sdf2              64         130      538177+  83  Linux

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

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

 

Vamos conferir o resultado:

[root@rac1 ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1827    14675346   83  Linux
/dev/sda2            1828        1958     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
/dev/sdb1               1         652     5237158+  83  Linux

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+  83  Linux

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+  83  Linux

Disk /dev/sde: 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/sde1               1         652     5237158+  83  Linux

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1          63      506016   83  Linux
/dev/sdf2              64         130      538177+  83  Linux
[root@rac1 ~]# ll /dev/sd*
brw-r----- 1 root disk 8,  0 Sep 27 20:37 /dev/sda
brw-r----- 1 root disk 8,  1 Sep 27 20:37 /dev/sda1
brw-r----- 1 root disk 8,  2 Sep 27 20:37 /dev/sda2
brw-r----- 1 root disk 8, 16 Sep 27 21:00 /dev/sdb
brw-r----- 1 root disk 8, 17 Sep 27 21:00 /dev/sdb1
brw-r----- 1 root disk 8, 32 Sep 27 21:01 /dev/sdc
brw-r----- 1 root disk 8, 33 Sep 27 21:01 /dev/sdc1
brw-r----- 1 root disk 8, 48 Sep 27 21:01 /dev/sdd
brw-r----- 1 root disk 8, 49 Sep 27 21:01 /dev/sdd1
brw-r----- 1 root disk 8, 64 Sep 27 21:01 /dev/sde
brw-r----- 1 root disk 8, 65 Sep 27 21:01 /dev/sde1
brw-r----- 1 root disk 8, 80 Sep 27 21:02 /dev/sdf
brw-r----- 1 root disk 8, 81 Sep 27 21:02 /dev/sdf1
brw-r----- 1 root disk 8, 82 Sep 27 21:02 /dev/sdf2

Com as partições criadas dos discos na VM 1, vamos fazer o procedimento parecido só que agora na máquina 2:

 

Disco “/dev/sdb”

[root@rac2 ~]# hostname
rac2.localdomain
[root@rac2 ~]#
[root@rac2 ~]# fdisk /dev/sdb

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+  83  Linux

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

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

[root@rac2 ~]#

 

Disco “/dev/sdc”

[root@rac2 ~]# fdisk /dev/sdc

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+  83  Linux

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

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

 

Disco “/dev/sdd”

[root@rac2 ~]# fdisk /dev/sdd

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+  83  Linux

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

Calling ioctl() to re-read partition table.

Syncing disks.

 

Disco “/dev/sde”

[root@rac2 ~]# fdisk /dev/sde

Command (m for help): p

Disk /dev/sde: 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/sde1               1         652     5237158+  83  Linux

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

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

 

Disco “/dev/sdf”

[root@rac2 ~]# fdisk /dev/sdf

Command (m for help): p

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1          63      506016   83  Linux
/dev/sdf2              64         130      538177+  83  Linux

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

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

 

Conferindo na máquina 2:

[root@rac2 ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1827    14675346   83  Linux
/dev/sda2            1828        1958     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
/dev/sdb1               1         652     5237158+  83  Linux

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+  83  Linux

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+  83  Linux

Disk /dev/sde: 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/sde1               1         652     5237158+  83  Linux

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1          63      506016   83  Linux
/dev/sdf2              64         130      538177+  83  Linux

[root@rac2 ~]# ll /dev/sd*
brw-r----- 1 root disk 8,  0 Sep 27 20:37 /dev/sda
brw-r----- 1 root disk 8,  1 Sep 27 20:37 /dev/sda1
brw-r----- 1 root disk 8,  2 Sep 27 20:37 /dev/sda2
brw-r----- 1 root disk 8, 16 Sep 27 20:37 /dev/sdb
brw-r----- 1 root disk 8, 17 Sep 27 21:13 /dev/sdb1
brw-r----- 1 root disk 8, 32 Sep 27 20:37 /dev/sdc
brw-r----- 1 root disk 8, 33 Sep 27 21:13 /dev/sdc1
brw-r----- 1 root disk 8, 48 Sep 27 20:37 /dev/sdd
brw-r----- 1 root disk 8, 49 Sep 27 21:13 /dev/sdd1
brw-r----- 1 root disk 8, 64 Sep 27 20:37 /dev/sde
brw-r----- 1 root disk 8, 65 Sep 27 21:14 /dev/sde1
brw-r----- 1 root disk 8, 80 Sep 27 20:37 /dev/sdf
brw-r----- 1 root disk 8, 81 Sep 27 21:14 /dev/sdf1
brw-r----- 1 root disk 8, 82 Sep 27 21:14 /dev/sdf2

Discos ASM

As partições:

/dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1

Serão as partições que serão apresentadas ao ASM. Na parte 5 dessa séria de artigos foi instalado e configurado o ASMLib, agora é hora de aprender como utilizamos. O ASMLib nada mais é do que uma biblioteca que é capaz de pegar as partições brutas disponíveis no Linux a apresentar ao ASM. Vamos agora ver, como isso é feito:

[root@rac1 ~]# /etc/init.d/oracleasm createdisk DISK1 /dev/sdb1 
Marking disk "DISK1" as an ASM disk:                       [  OK  ]
[root@rac1 ~]# /etc/init.d/oracleasm createdisk DISK2 /dev/sdc1 
Marking disk "DISK2" as an ASM disk:                       [  OK  ]
[root@rac1 ~]# /etc/init.d/oracleasm createdisk DISK3 /dev/sdd1 
Marking disk "DISK3" as an ASM disk:                       [  OK  ]
[root@rac1 ~]# /etc/init.d/oracleasm createdisk DISK4 /dev/sde1 
Marking disk "DISK4" as an ASM disk:                       [  OK  ]

Vamos agora conferir, vamos listar os discos presentes no ASMLib:

[root@rac1 ~]# /etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4

Na máquina 2 não é necessário criar os discos como foi feito na máquina 1. Veja como é feito na máquina 2:

[root@rac2 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]
[root@rac2 ~]# /etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4

Discos OCFS2

O primeiro passo aqui, é formatarmos as partições /dev/sdf1 e /dev/sdf2 para OCFS2. Vamos realizar essa operação na máquina 1.

[root@rac1 ~]# mkfs.ocfs2 -L ocr_disk /dev/sdf1
mkfs.ocfs2 1.4.3
Cluster stack: classic o2cb
Filesystem label=ocr_disk
Block size=1024 (bits=10)
Cluster size=4096 (bits=12)
Volume size=518160384 (126504 clusters) (506016 blocks)
17 cluster groups (tail covers 3624 clusters, rest cover 7680 clusters)
Journal size=16777216
Initial number of node slots: 2
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 0 block(s)
Formatting Journals: done
Formatting slot map: done
Writing lost+found: done
mkfs.ocfs2 successful

[root@rac1 ~]# mkfs.ocfs2 -L vote_disk /dev/sdf2
mkfs.ocfs2 1.4.3
Cluster stack: classic o2cb
Filesystem label=vote_disk
Block size=2048 (bits=11)
Cluster size=4096 (bits=12)
Volume size=551092224 (134544 clusters) (269088 blocks)
9 cluster groups (tail covers 7568 clusters, rest cover 15872 clusters)
Journal size=33554432
Initial number of node slots: 2
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 0 block(s)
Formatting Journals: done
Formatting slot map: done
Writing lost+found: done
mkfs.ocfs2 successful

Como esse será um ambiente OCFS2 clusterizado, em que a máquina 1 e a máquina 2 estará escrevendo e lendo o mesmo disco OCFS montado, será necessário configurarmos o OCFS2 para poder operar em modo cluster. Para isso crie o arquivo /etc/ocfs2/cluster.conf e adicione as seguintes linhas abaixos, como demonstro na máquina 1. O procedimento deve ser feito também na máquina 2.

[root@rac1 ~]# mkdir /etc/ocfs2
[root@rac1 ~]# vi /etc/ocfs2/cluster.conf
cluster:
     node_count = 2
     name = ocfs2

node:
     ip_port = 7777
     ip_address = 10.0.0.10
     number = 1
     name = rac1
     cluster = ocfs2

node:
     ip_port = 7777
     ip_address = 10.0.0.20
     number = 2
     name = rac2
     cluster = ocfs2

Feitos os passos acimas vamos as configurações finais do OCFS2. Aqui vou demonstrar somente da máquina rac1 porém deve ser feito também na máquina rac2.

[root@rac1 ~]# /etc/init.d/o2cb configure
Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting
 without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [y]: y
Cluster stack backing O2CB [o2cb]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
Starting O2CB cluster ocfs2: OK
[root@rac1 ~]# /etc/init.d/o2cb load
[root@rac1 ~]# /etc/init.d/o2cb online

Para que as partições OCR e VOTING  sejam montadas automaticamente quando a máquina iniciar, coloque as duas linhas abaixo no final do arquivo /etc/fstab, isso nas máquinas 1 e 2.

LABEL=ocr_disk          /ocr                         ocfs2   _netdev,datavolume,nointr       0 0
LABEL=vote_disk         /voting                      ocfs2   _netdev,datavolume,nointr       0 0

Também crie os arquivos /ocr e /voting como mostrado a abaixo, lembrando que o procedimento deve ser feito também na máquina 2.

[root@rac1 ~]# mkdir /ocr
[root@rac1 ~]# mkdir /voting

Após feitos os passos acima sem qualquer problema podemos montar as nossas duas partições de OCFS2 onde irá comportar o OCR e o VOTING.

[root@rac1 ~]# mount -a

Repita na máquina 2

[root@rac2 ~]# mount -a

Agora sim nossa partição está montada:

[root@rac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              14G  2.1G   11G  16% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/sdf1             495M   35M  460M   7% /ocr
/dev/sdf2             526M   73M  453M  14% /voting
[root@rac1 ~]# mount |grep ocfs2
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw)
/dev/sdf1 on /ocr type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)
/dev/sdf2 on /voting type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)

[root@rac2 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              14G  2.1G   11G  16% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/sdf1             495M   35M  460M   7% /ocr
/dev/sdf2             526M   73M  453M  14% /voting
[root@rac2 ~]# mount |grep ocfs2
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw)
/dev/sdf1 on /ocr type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)
/dev/sdf2 on /voting type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)

Para finalizar vamos já definir as permissões necessárias para o OCR e o VOTING, aqui demonstro somente da máquina 1 porém deve ser executado também na máquina 2.

[root@rac1 ~]# chown oracle:oinstall /ocr
[root@rac1 ~]# chown oracle:oinstall /voting
[root@rac1 ~]# chmod 775 /ocr
[root@rac1 ~]# chmod 775 /voting
Instalação Oracle RAC 10g com VirtualBox – Parte 6
setembro 22, 2011

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 – Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Clonagem da VM

Caso o seu ambiente não seja virtualizado, você tem que realizar todas as configurações anteriores feitas nos outros nós do cluster, em um ambiente virtualizado as coisas ficam mais fáceis, basta realizar uma clone da sua primeira máquina configurada.

No VirtualBox é extremamente fácil realizar a operação de clone que é feita através do comando VBoxManage, alias, a maioria das configurações do VirtualBox é realizada através desse utilitário.

No Windows o VBoxMange é um .exe que fica dentro da pasta do VirtualBox instalada, geralmente em “C:\Program Files\Oracle\Virtual Box\VBoxManage.exe” no Linux ele está em “/usr/bin/VBoxManage”, que já fica adicionado no PATH quando é instalado. Caso esteja utilizando o Windows será necessário manusear através do prompt de comando.

flavio@note:~$ whereis VBoxManage
VBoxManage: /usr/bin/VBoxManage
flavio@note:~$ cd /home/flavio/VMs/Oracle/10g_RAC/
flavio@note:$ VBoxManage clonehd Oracle\ RAC\ 10g\ -\ 1.vdi  Oracle\ RAC\ 10g\ -\ 2.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a481013b-0876-4779-ae25-fb40724f2539

No Windows será algo como:

C:\Users\Administrator> C:\Program Files\Oracle\Virtual Box\VBoxManage.exe clonehd   C:\Minhas VMs\RAC\Oracle RAC 10g - 1.vdi   C:\Minhas VMs\RAC\Oracle RAC 10g - 2.vdi

Criando o segundo nó

Realizado os passos acima com sucesso, vamos apresentar o disk image clonado para o VirtualBox na forma de uma nova máquina virtual. Segue os passos:

 

Clique em NEW


 

Nesse momento é necessário selecionar o disco Oracle RAC 10g – 2.vdi que acabamos de clonar.

 

Com o nó 2 do cluster criado, vamos a suas configurações:

 

Como fizemos na máquina 1, é necessário atribuir duas placas de rede para a VM:

 

Criação dos DISK IMAGE

Assim como a clonagem de um disco, a criação de um disk image é feito através do utilitário VBoxManage. Os comandos abaixos foram executados dentro da pasta onde as VM’s Oracle RAC 10g 1Oracle RAC 10g 2 estão.

Iremos criar 4 disk image para o ASM e 1 disk image para o OCR e VOTING do cluster, para o ASM vou criar dois diskgroup com redundância normal, em que cada diskgroup terá dois discos ASM.

Caso você não tenha familiaridade com esses conceitos de ASM, OCR ou VOTING … não se preocupe, siga o tutorial que no decorrer estarei explicando melhor cada um deles, o importante agora é saber que 4 discos de 5G serão para armazenar os dados do ASM (datafile, redo, archives, etc …) e um disco de 1G para armazenar os dados do OCR e VOTING do cluster.

Vamos primeiramente a criação dos 4 discos de 5G para o ASM:

flavio@note:$ VBoxManage createhd --filename asm1.vdi --size 5120 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: cd55a81b-7061-4aaf-9d8a-ae47a4b7c9e5
flavio@note:$ VBoxManage createhd --filename asm2.vdi --size 5120 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: deab5193-cae7-4205-8014-9be51b6a864d
flavio@note:$ VBoxManage createhd --filename asm3.vdi --size 5120 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 77b09219-ffe8-4145-a131-78c6630a1b0e
flavio@note:$ VBoxManage createhd --filename asm4.vdi --size 5120 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 3a2b29fa-a702-492b-ba04-89876c78a0cf

Agora de 1G para o OCR e o VOTING do cluster:

flavio@note:$ VBoxManage createhd --filename ocr_vote.vdi --size 1024 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: c7529a10-a8e4-4149-b287-e250a996ad71

Agora sim, todos os disk image criados. Nesse ponto devemos ter 7 discos na nossa pasta do VirtualBox:

  • 2 – Para cada uma das VMs.
  • 4 – Para os discos ASM
  • 1 – Para o OCR e VOTING do cluster
flavio@note:$ ll
total 27621612
drwx------ 1 flavio flavio        408 2011-09-21 21:41 ./
drwx------ 1 flavio flavio       4096 2011-07-30 18:10 ../
-rw------- 1 flavio flavio 5368733696 2011-09-21 21:17 asm1.vdi
-rw------- 1 flavio flavio 5368733696 2011-09-21 21:21 asm2.vdi
-rw------- 1 flavio flavio 5368733696 2011-09-21 21:35 asm3.vdi
-rw------- 1 flavio flavio 5368733696 2011-09-21 21:38 asm4.vdi
-rw------- 1 flavio flavio 1073750016 2011-09-21 21:41 ocr_vote.vdi
-rw------- 1 flavio flavio 2867920896 2011-09-15 01:44 Oracle RAC 10g - 1.vdi
-rw------- 1 flavio flavio 2867920896 2011-09-21 20:29 Oracle RAC 10g - 2.vdi

Apresentando os disk image para as VM

Com os 5 disk image criados vamos apresentar-los para as nossas VMs.

Siga os passos:

 

Na aba Storage selecione a opção SATA Controler e clique no primeiro ícone, como mostra abaixo:

 

Irá abrir uma janela, selecione a opção Choose existing disk e busque o disk image criado anteriormente asm1.vdi

 

Após selecionar o disk image asm1.vdi ele deverá aparecer como abaixo:

 

Execute os passos da mesma maneira, agora para os discos asm2.vdi, asm3.vdi, asm4.vdi e para o ocr_vote.vdi. Deverá ficar como abaixo:

 

Pronto, apresentamos os disk image do ASM e do OCR/VOTE para a máquina virtual 1, agora iremos realizar o mesmo procedimento na máquina virtual 2, antes temos que ativar a opção de compartilhamento dos discos (shareable) ou seja, o disk image pode ser capaz de ser utilizado por 2 ou mais VMs ao mesmo tempo.

Para que o ambiente Oracle Cluster funcione é necessário que os discos do ASM do OCR e também do VOTING sejam compartilhados entre os nós, ou seja tudo os nós devem obrigatoriamente ver esses discos. No VirtualBox conseguimos isso da seguinte maneira:

flavio@shadowy:$ VBoxManage modifyhd asm1.vdi --type shareable
flavio@shadowy:$ VBoxManage modifyhd asm2.vdi --type shareable
flavio@shadowy:$ VBoxManage modifyhd asm3.vdi --type shareable
flavio@shadowy:$ VBoxManage modifyhd asm4.vdi --type shareable
flavio@shadowy:$ VBoxManage modifyhd ocr_vote.vdi --type shareable

Agora sim, com os disk image em modo compartilhado, vamos realizar o mesmo procedimento de apresentação dos discos nas VM 2.

 

 

Definindo os IP/Hostname para o nó 2 recém-criado

A máquina 2 foi criada, mais ainda não configuramos os IP’s publico e privado e nem o hostname para ela. Para isso inicie a VM e siga os passos:

 

 

Conecte como root na VM:

 

Remova os adaptadores com o final .bak para isso eles devem estar desativados.

 

Dê um duplo clique no dispositivo eth0 e defina os seguintes IP’s para ele:

 

Agora para o adaptador eth1:

 

Após definirmos os IP para o nó 2, obedecendo como está no /etc/hosts que configuramos na parte 5 vamos agora alterar o hostname da máquina, por isso vá até a aba DNS ainda dentro do utilitário Network Configuration e altere de rac1.localdomain para rac2.localdomain:

 

Volte a aba Devices e ative o disposito eth0 e depois o eth1

 

Conferindo a alteração feita:

 

Por hoje é isso, no próximo estaremos criando as partições desses discos e apresentando eles ao ASM. Vamos também configurar o OCFS2 para já deixarmos configurado a partição do OCR e do VOTING e a equivalência de usuários oracle.

Qualquer dúvida entrem em contato.

Até mais

 

 

Instalação Oracle RAC 10g com VirtualBox – Parte 4
setembro 9, 2011

Parte 1 – Introdução
Parte 2 - Criação e configuração da VM
Parte 3 – Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

No ultimo post finalizamos a instalação do Oracle Linux Enterprise 5.1, já nesse artigo vamos dar inicio a configuração do sistema operacional.

Gostaria de citar que esse artigo está inteiramente baseada na própria documentação Oracle:

Como exigido pela Oracle, temos que instalar os seguintes pacotes (RPM’s) como sendo um pré-requisito de instalação:

binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
gcc-4.1.1-52
gcc-c++-4.1.1-52
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
libXp-1.0.0-8

Esses pacotes RPM’s se encontram todos no próprio CD de instalação Oracle Enterprise Linux 5.1, no nosso caso a ISO baixada no site da Oracle. Vamos montar a ISO como uma mídia dentro da nosso VM criada.

Com a máquina virtual funcionando, siga os passos abaixo:

 

 

Caso os passos acimas foram realizados, observe que a mídia é automaticamente montada na máquina virtual:

Com a mídia de instalação do Oracle Linux 5.1 montada, vamos conectar na VM através do SSH. Como utilizo Ubuntu eu faço diretamente de um terminal, caso você esteja usando qualquer versão do Windows recomendo utilizar o putty para suas conexões SSH.

flavio@note:~$ ssh root@10.0.0.10
The authenticity of host '10.0.0.10 (10.0.0.10)' can't be established.
RSA key fingerprint is 86:5a:97:20:00:13:34:97:16:95:f1:4d:b5:ec:49:a4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.10' (RSA) to the list of known hosts.
root@10.0.0.10's password:
Last login: Wed Sep  7 13:34:48 2011 from shadowy.lan
[root@rac1 ~]#
[root@rac1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              14G  2.0G   11G  15% /
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              2.9G  2.9G     0 100% /media/Enterprise Linux dvd 20100405
[root@rac1 ~]# cd /media/Enterprise\ Linux\ dvd\ 20100405/Server/
[root@rac1 Server]#

Vamos a instalação dos RPM já que estamos no diretório deles. Para instalar o pacote rpm é realmente algo muito simples basta utilizar o comando:
rpm -ivh "Nome do RPM"
e para verificar se eles já estão instalados utilize a expressão:
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep "nome do rpm"
No nosso caso, alguns RPM já estão instalados e outros ainda não, faça a instalação de cada um deles e não esqueça de nenhum.

 

Instalação dos RPM

Vou seguir a sequencia de instalação na lista de RPM passada acima. Vamos começar  no RPM compat-libstdc++, observe que ele já está instalado e não temos que fazer nada.

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep compat-libstdc++
compat-libstdc++-296-2.96-138 (i386)
compat-libstdc++-33-3.2.3-61 (i386)

Assim como o compat-libstdc++, o pacote elfutils-libelf também já está instalado

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep elfutils-libelf
elfutils-libelf-0.137-3.el5 (i386)

Diferentemente dos dois primeiros pacotes, o elfutils-libelf-devel não está instalado, veja que nenhuma linha retornou quando procuramos o RPM através do rpm -qa. Alguns pacotes rpm como no caso do elfutils-libelf-devel, precisa de outros rpm para funcionar  por isso quando é realizado a sua instalação um processo de checagem de dependência de pacotes RPM é feita. Abaixo, quanto faço a instalação através do comando rpm -ivh o instalador retorna um erro “error: Failed dependencies“ e informa que somente poderá instalar o elfutils-libelf-devel se o pacote elfutils-libelf-devel-static estiver instalado. Para resolvermos isso, basta colocar o nome dos dois pacotes ao mesmo tempo no momento da instalação, observe abaixo:

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep elfutils-libelf-devel
[root@rac1 Server]# rpm -ivh elfutils-libelf-devel-0.137-3.el5.i386.rpm
warning: elfutils-libelf-devel-0.137-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
error: Failed dependencies:
elfutils-libelf-devel-static-i386 = 0.137-3.el5 is needed by elfutils-libelf-devel-0.137-3.el5.i386
[root@rac1 Server]# rpm -ivh elfutils-libelf-devel-0.137-3.el5.i386.rpm elfutils-libelf-devel-static-0.137-3.el5.i386.rpm
warning: elfutils-libelf-devel-0.137-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:elfutils-libelf-devel-s   ########################################### [ 50%]
2:elfutils-libelf-devel     ########################################### [100%]

Com o pacote RPM gcc para compiladores C também não vem instalado. Veja abaixo que já realizei as dependências dos RPM’s:

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep gcc
compat-libgcc-296-2.96-138 (i386)
libgcc-4.1.2-48.el5 (i386)
[root@rac1 Server]# rpm -ivh gcc-4.1.2-48.el5.i386.rpm glibc-devel-2.5-49.i386.rpm glibc-headers-2.5-49.i386.rpm kernel-headers-2.6.18-194.el5.i386.rpm libgomp-4.4.0-6.el5.i386.rpm
warning: gcc-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                    ########################################### [100%]
1:kernel-headers                ########################################### [ 20%]
2:libgomp                       ########################################### [ 40%]
3:glibc-headers                 ########################################### [ 60%]
4:glibc-devel                   ########################################### [ 80%]
5:gcc                           ########################################### [100%]

O pacote gcc++ também precisa ser instalado. As dependências de RPM já deixei realizadas:

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep gcc-c++
[root@rac1 Server]# rpm -ivh gcc-c++-4.1.2-48.el5.i386.rpm libstdc++-devel-4.1.2-48.el5.i386.rpm
warning: gcc-c++-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:libstdc++-devel           ########################################### [ 50%]
2:gcc-c++                   ########################################### [100%]

Os RPM’s glibc já estão todas instaladas glibc-2.5-12glibc-common-2.5-12glibc-devel-2.5-12glibc-headers-2.5-12

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep glibc
glibc-2.5-49 (i686)
glibc-devel-2.5-49 (i386)
glibc-common-2.5-49 (i386)
glibc-headers-2.5-49 (i386)

O pacote libaio também já está instalado, porém o libaio-devel ainda não.

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep libaio 
libaio-0.3.106-5 (i386)
[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep libaio-devel
[root@rac1 Server]# rpm -ivh libaio-devel-0.3.106-5.i386.rpm
warning: libaio-devel-0.3.106-5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:libaio-devel              ########################################### [100%]

Os pacotes RPM libgcc,  libstdc++ e make também já estão instalados

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep libgcc
libgcc-4.1.2-48.el5 (i386) 
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep libstdc++-
compat-libstdc++-296-2.96-138 (i386)
libstdc++-4.1.2-48.el5 (i386)
compat-libstdc++-33-3.2.3-61 (i386)
libstdc++-devel-4.1.2-48.el5 (i386)
[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep make
make-3.81-3.el5 (i386)

Os RPM’s restantes são sysstat, unixODBC, unixODBC-devel e libXp que ainda não estão instalados.

[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep sysstat
[root@rac1 Server]# rpm -ivh sysstat-7.0.2-3.el5.i386.rpm
warning: sysstat-7.0.2-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:sysstat                   ########################################### [100%]
[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep unixODBC
[root@rac1 Server]# rpm -ivh unixODBC-2.2.11-7.1.i386.rpm
warning: unixODBC-2.2.11-7.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:unixODBC                  ########################################### [100%]
[root@rac1 Server]# rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm
warning: unixODBC-devel-2.2.11-7.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:unixODBC-devel            ########################################### [100%]
[root@rac1 Server]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep libXp
libXpm-3.5.5-3 (i386)
[root@rac1 Server]# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm
warning: libXp-1.0.0-8.1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
1:libXp                     ########################################### [100%]

Parâmetros de kernel e Usuários/Permissões

Com os pacotes rpm todos instalados vamos agora para configuração dos parâmetros de kernel do Linux. Vamos começar pelo arquivo /etc/sysctl.conf, abra o arquivo e adicione as seguintes linhas:

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

Para que as alterações feitas no arquivo entre em vigor execute o comando:

[root@rac1 ~]# sysctl -p

Agora vamos alterar os limites padrões para o usuário “oracle”. Edite o arquivo /etc/security/limits.conf e adicione as seguintes linhas:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

Mude também o arquivo /etc/pam.d/login adicionando a seguinte linha:

session required pam_limits.so

Com o kernel e os parâmetros do sistema alterados vamos a criação do usuário oracle

[root@rac1 ~]# groupadd oinstall
[root@rac1 ~]# groupadd dba
[root@rac1 ~]# useradd -g oinstall -G dba oracle
[root@rac1 ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Com o usuário oracle criado e com os grupos necessários feitos, vamos agora a criação dos diretórios padrões do Oracle:

[root@rac1 ~]# mkdir -p /u01/app/oracle/oraInventory
[root@rac1 ~]# mkdir -p /u01/app/oracle/product/10.2.0/crs
[root@rac1 ~]# mkdir -p /u01/app/oracle/product/10.2.0/db_1
[root@rac1 ~]# chown -R oracle:oinstall /u01

Adicione também as linhas abaixo no arquivo /etc/profile

if [ $USER = "oracle" ]; then
         ulimit -u 16384
         ulimit -n 65536
fi

 

Hangcheck

Para executarmos o Oracle RAC uma recomendação fortissima da Oracle é utilizar o hangcheck. O hangcheck é um modulo que periodicamente checa o sistema para determinar a saúde dele mesmo. Caso por qualquer motivo o sistema operacional tenha alguma pausa ou uma trava o modulo automaticamente reinicia o servidor.

Abaixo demonstro como ativar o modulo hangcheck-timer no Linux

[root@rac1 ~]# /sbin/insmod /lib/modules/2.6.18-194.el5/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=1 hangcheck_margin=10 hangcheck_reboot=1
[root@rac1 ~]# /etc/rc.d/rc.local

Para verificar se o modulo está rodando basta verificar através do lsmod

[root@rac1 ~]# lsmod |grep hangcheck
hangcheck_timer         8025  0 etc hosts

 

NTPDate

Ntpdate é um utilitário para poder manter a hora do servidor sincronizada. No nosso caso vamos utilizar os ntpdate free disponíveis no site http://ntp.br/. Muitas empresas já tem o seu proprio ntpdate, caso tenha algum somente altere o endereço.

Para configurar é extremamente simples, basta você ter uma conexão com a internet e configurar através do comando ntpdate.

Teste de conexão com a internet.

[root@rac1 ~]# ping www.google.com.br
PING www.l.google.com (74.125.113.99) 56(84) bytes of data.
64 bytes from vw-in-f99.1e100.net (74.125.113.99): icmp_seq=1 ttl=48 time=199 ms
64 bytes from vw-in-f99.1e100.net (74.125.113.99): icmp_seq=2 ttl=50 time=196 ms

--- www.l.google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 196.655/198.094/199.533/1.439 ms

Sincronizando o horário com o ntpdate disponível

[root@rac1 ~]# ntpdate c.st1.ntp.br
 8 Sep 23:46:22 ntpdate[3009]: step time server 200.186.125.195 offset 1.201157 sec

Para sempre manter sua hora sincronizada basta adicionar o comando assim no agendado Linux através do comando crontab -e e adicione as seguintes linhas:

* * * * * /usr/sbin/ntpdate ntp.cais.rnp.br

Por hoje é isso, no próximo artigos vamos configurar o Guest Additions na VM, vamos aprender como configurar o ASMLIB e o OCFS2 para manter os arquivos OCR e VOTING do RAC.

Até mais, dúvida deixem comentários …

Instalação Oracle RAC 10g com VirtualBox – Parte 3
agosto 11, 2011

Parte 1 – Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Estaremos hoje iniciando a Parte 3 da “Instalação Oracle RAC 10g com VirtualBox”. Nessa etapa vamos instalar e configurar o Oracle Linux 5 para a instalação do Oracle clusterware. Caso você tenha o RedHat 5 ou o CentOs 5, pode utilizar sem problemas. A minha versão exata do Oracle Linux é a 5.5.

Vamos iniciar o passo a passo da criação do Linux, caso tenha alguma dúvida post um comentário.

 

Instalação do Linux

Como já temos nossa máquina virtual criada e configurada pronta para iniciar a instalação, podemos dar prosseguimento.

Clicando na ícone seta verde no topo do VirtualBox, podemos iniciar a VM, como mostra a figura abaixo:

figura 1

 

Quando a VM é iniciada, vemos a seguinte tela (figura2). Basta entrar e clicar dentro da máquina e pressionar  um “Enter”, para tirar o cursor do mouse de dentro da VM basta pressionar o botão “Ctrl” do lado direito do teclado.

figura 2

figura 3

 

Nesse momento o instalador fornece um teste de midia no disco que iremos utilizar para gravar a máquina. Como não quero utilizar a checagem de disco, pressione o botão SKIP.

figura 4

 

figura 5

 

Hora de escolher a linguagem que seguirá no instalador, escolha a opção que preferir:

figura 6

 

Aqui definimos a linguagem do teclado:

figura 7

 

Quando clicamos em NEXT, um alerta é disparado mostrando todos os discos disponíveis do ambiente e que temos consciência de que podemos apagar todos os dados contidos no disco. Como mostra a figura abaixo clicamos em YES para confirmar a mensagem, assim o Wizard nos levará a uma outra tela.

figura 8

 

Apenas selecione a opção Create custom layout e clique em Next.

figura 9

 

Será apresentado aqui o nosso virtual hard disk criado na parte 2. Vamos definir as partições do disco local do Linux e  também a área de swap da máquina. Para iniciar esses procedimentos clique no ícone NEW para iniciar a criação da primeira partição.

figura 10

 

A primeira partição que iremos criar será a partição destinada ao swap do Linux, vamos definir 1G (1024 M) para ela. Deixe as alterações conforme a imagem abaixo e clique em OK.

figura 11

figura 12

 

Vamos definir agora o tamanho da partição “/”. Apenas escolha a opção “Fill to maximum allowable size”

figura 13

 

Após realizadas esses processos o disco deve conter 2 partição, uma de 1G de swap e o restante para dados no formato ext3 na partição “/” onde o sistema operacional Linux será instalado. Caso esteja tudo certo, basta clicar em NEXT.

figura 14

 

Não necessitamos de nenhuma configuração nessa tela, apenas NEXT.

figura 15

 

Agora é um momento importante, onde vamos estar definindo os IP’s publico e privado do cluster. Estarei mais a frente falando sobre a diferença e á importância de cada um deles. O que importante saber agora é que o nosso adaptador de rede eth0 é onde terá o IP publico e o adaptador eth1 será IP privado. Os IP’s oferecidos aqui são feitos de acordo com a minha rede, caso deseja alterar o endereço de cada um dos IP’s abaixo fique a vontade, porém preste a atenção nas configurações futuras, para combinar com o seu modelo de IP criado, isso vale também para as configurações de gateway e DNS que estarei fazendo mais a frente.

Vamos as configurações, primeiro selecione o adaptador (device) eth0 e clique em Edit.

figura 16

 

Será aberta a tela de configuração de dispositivos de rede, nele definiremos o IP 10.0.0.10 com a sub-mascara (Netmask) 255.0.0.0, como feito abaixo:

figura 17

 

Faça o mesmo procedimento, só que agora no adaptador de reder (device) eth1. Selecione e clique em edit

figura 18

 

Defina o IP 192.168.1.10 com a sub-mascara 255.255.255.0 para o dispositivo eth1, como abaixo:

figura 19

figura 20

 

Com os IP’s definidos vamos alterar agora o hostname, gateway e o DNS.

figura 21

 

Configurações de TimeZone no Linux

figura 22

 

Forneça aqui, as senha de root e depois NEXT.

figura 23

 

Nesse ponto, vamos definir os pacotes de instalação do Linux. Clique no Customize Now depois em Next.

figura 24

figura 25

 

No item Applications desmarque as opções

  • Games and Enterrainment
  • Graphics
  • Office/Productivity
  • Sound and Video
  • Text-based Internet

figura 26

 

No item Server, desmarque a opção Printing Support e clique em Next.

figura 27

figura 28

 

Todas as configurações realizadas, hora de iniciar a instalação, pressione Next.

figura 29

figura 30

figura 31

 

Instalação concluída com sucesso, vamos reiniciar a máquina e fazer as últimas configurações.

figura 32

figura 33

 

Com o reboot feito, um Wizard de configurações finais será aberto, clique em Forward.

figura 34

 

Aceite a licença e depois Forward.

figura 35

 

Desabilite o firewall da máquina.

figura 36

figura 37

figura 38

figura 39

figura 40

 

Caso o horário não esteja correto, arrume e siga em frente.

figura 41

 

Não vamos precisar criar nenhum usuário agora por isso não faça nada, apenas clique em Forward.

figura 42

figura 43

figura 44

figura 45

 

Com todas as configurações finais realizadas, um novo reboot será necessário, apenas clique em ok para terminarmos as configurações.

figura 46

 

Reboot em processo.

figura 47

 

Aqui está nosso Oracle Linux 5.5 instalado e pré-configurado.

figura 48

figura 49

 

Depois dessa intensa lista de atividades feita hoje, temos nossa máquina RAC1 criada. No próximo artigo da série, vamos terminar de configurar o Linux e aprender como clonar nossa máquina virtual RAC1 para criarmos a RAC2.

Até o próximo


 

Próxima Página »