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
Instalação do Oracle RAC 10g Release 2 – Parte 12: Criação do ASM no Cluster
Instalação do Oracle RAC 10g Release 2 – Parte 13: Criação do Banco de Dados no Cluster
Instalação do Oracle RAC 10g Release 2 – Parte 14: Criação do Serviço para Load Balance e Failover
—
Conforme prometido, série de artigos para adição de um nó ao cluster:
Adição/Remoção de Nó – Parte 1: Pré-requisitos de software
Adição/Remoção de Nó – Parte 2: Criação da 3ª Máquina Virtual
Adição/Remoção de Nó – Parte 3: Instalação do Linux
Adição/Remoção de Nó – Parte 4: Configuração do Linux
===================================
Olá pessoal!
Falta pouco para que iniciemos de fato a adição do nó mvrac3 ao cluster!
Neste artigo de hoje, veremos os seguintes itens:
- Criação de equivalência de usuários para acesso SSH entre os 3 nós;
- Scan dos discos ASM no servidor mvrac3;
- Criação de block devices no servidor mvrac3.
Vamos lá!
Com o servidor mvrac3 desligado, precisaremos pegar as referências dos discos attachados aos servidores mvrac1 e mvrac2 que desempenham o papel de disco do storage.
Pelo Windows Explorer, vá em G:\VMware\mvrac1.
Procure por um arquivo com a extensão VMX e abra-o num editor de textos, selecione e copie o seguinte trecho do arquivo:
scsi1.present = "TRUE" scsi1:0.present = "TRUE" scsi1:0.fileName = "G:\VMWARE\SharedDisks\sdisk01.vmdk" scsi1:0.mode = "independent-persistent" scsi1:1.present = "TRUE" scsi1:1.fileName = "G:\VMWARE\SharedDisks\sdisk02.vmdk" scsi1:1.mode = "independent-persistent" scsi1:2.present = "TRUE" scsi1:2.fileName = "G:\VMWARE\SharedDisks\sdisk03.vmdk" scsi1:2.mode = "independent-persistent" scsi1.virtualDev = "lsilogic"
Cole este trecho no final do arquivo com a extensão VMX no diretório G:\VMWare\mvrac3. Salve o arquivo e mande iniciar a máquina virtual.
Como já citado anteriormente, fizemos a instalação dos produtos em sistemas de arquivos (file systems) locais. Como havíamos criado chaves SSH para o usuário oracle dos nós mvrac1 e mvrac2, deixamos estabelecida a equivalência de usuário entre este usuário nos servidores já citados. A equivalência de usuário também é chamada de relação de confiança. Nesta relação de confiança, a comunicação entre os servidores ocorre sem a solicitação de senha, isto é um pré-requisito para ambientes em Cluster Oracle, pois o Oracle Universal Installer (OUI), dbca, netca, emca, OPatch, dentre outras ferramentas, sempre realizarão cópias de arquivos entre os nós do cluster. 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. Como a equivalência de usuários já existe entre os servidores mvrac1 e mvrac2 para o usuário oracle, os passos serão esses:
- Criação das chaves do usuário oracle do servidor mvrac3;
- Criação das chaves do usuário oracle do servidor mvrac2;
- Append do arquivo de chaves autorizadas no servidor mvrac1, incluindo as chaves SSH do usuário oracle do servidor mvrac3. Inclusão do servidor mvrac3 num arquivo de hosts conhecidos para não mais confirmar o acesso via SSH e isso ser feito automaticamente entre os servidores.
Então, vamos para o primeiro passo, criar as chaves do usuário oracle no servidor mvrac3. Com o usuário oracle a partir do servidor mvrac3:
[oracle@mvrac3 ~]$ cd /home/oracle [oracle@mvrac3 ~]$ mkdir .ssh [oracle@mvrac3 ~]$ cd .ssh [oracle@mvrac1 .ssh]$ ssh-keygen -t dsa
Pressionar [ENTER] até voltar para o shell.
[oracle@mvrac3 .ssh]$ ssh-keygen -t rsa
Pressionar [ENTER] até voltar para o shell.
Vamos verificar o tamanho do arquivo de chaves autorizadas. No servidor mvrac1:
[oracle@mvrac1 .ssh]$ ls -l authorized_keys -rw-r--r-- 1 oracle oinstall 2072 Aug 16 19:43 authorized_keys
Observem que o arquivo authorized_keys tem 2072 bytes de tamanho, pois, por enquanto, só possui as chaves do servidor mvrac1 e mvrac2. Agora, colocaremos dentro desse mesmo arquivo, o conteúdo das chaves públicas do usuário oracle do servidor mvrac3:
[oracle@mvrac1 .ssh]$ ssh mvrac3 cat `pwd`/*.pub >> authorized_keys The authenticity of host 'mvrac3 (172.23.10.13)' 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 mvrac3:
oracle@mvrac3's password:
Vamos verificar o tamanho do arquivo de chaves autorizadas após a inclusão das chaves do servidor mvrac3. No servidor mvrac1:
[oracle@mvrac1 .ssh]$ ls -l authorized_keys -rw-r--r-- 1 oracle oinstall 3108 Sep 18 20:43 authorized_keys
Observem que o arquivo authorized_keys tem 3108 bytes de tamanho, e, desta forma, podemos concluir que o mesmo aumentou de tamanho. Logo, as chaves do servidor mvrac3 também estão no arquivo.
Esta versão de arquivo (com as chaves dos servidores mvrac1, mvrac2 e mvrac3 ainda existe somente no servidor mvrac1. Devemos copiá-lo para o servidor mvrac2 e também no servidor mvrac3, nesse mesmo diretório, /home/oracle/.ssh. Como este arquivo ainda não existe no servidor mvrac3, a senha para este servidor será solicitada:
[oracle@mvrac1 .ssh]$ scp -p authorized_keys mvrac2:`pwd` authorized_keys 100% 3108 2.0KB/s 00:00 [oracle@mvrac1 .ssh]$ scp -p authorized_keys mvrac3:`pwd` oracle@mvrac3's password: authorized_keys 100% 3108 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 e também no servidor mvrac3, 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?
[oracle@mvrac1 .ssh]$ ssh mvrac3.viniciusdba.com.br date The authenticity of host 'mvrac3.viniciusdba.com.br (172.23.10.13)' 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 'mvrac3.viniciusdba.com.br' (RSA) to the list of known hosts. Wed Sep 18 20:52:38 BRT 2012
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 mvrac3.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 mvrac3 date ssh mvrac3-priv date ssh mvrac3.viniciusdba.com.br date ssh mvrac3-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
Quando executar as linhas acima, para confirmar se está tudo OK, basta refazer o comando incluindo todos os servidores:
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 ssh mvrac3 date ssh mvrac3-priv date ssh mvrac3.viniciusdba.com.br date ssh mvrac3-priv.viniciusdba.com.br date
Ele não deverá mais pedir confirmação para nenhum host:
[oracle@mvrac1 .ssh]$ ssh mvrac3 date Wed Sep 18 20:54:00 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac1-priv date Wed Sep 18 20:54:00 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac1.viniciusdba.com.br date Wed Feb 18 20:54:00 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac1-priv.viniciusdba.com.br date Wed Feb 18 20:54:01 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac2 date Wed Feb 18 20:54:01 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac2-priv date Wed Feb 18 20:54:02 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac2.viniciusdba.com.br date Wed Feb 18 20:54:02 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac2-priv.viniciusdba.com.br date Wed Sep 18 20:54:03 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac3 date Wed Feb 18 20:54:04 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac3-priv date Wed Feb 18 20:54:05 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac3.viniciusdba.com.br date Wed Feb 18 20:54:06 BRT 2012 [oracle@mvrac1 .ssh]$ ssh mvrac3-priv.viniciusdba.com.br date Wed Sep 18 20:54:07 BRT 2012
Isso atualizará 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 4869 Sep 20 20:54 known_hosts
Agora basta copiar esse arquivo para o outro servidor:
[oracle@mvrac1 .ssh]$ scp -p known_hosts mvrac2:`pwd` known_hosts 100% 4869 3.2KB/s 00:00 [oracle@mvrac1 .ssh]$ scp -p known_hosts mvrac3:`pwd` known_hosts 100% 4869 3.2KB/s 00:00
Pronto! Equivalência de usuários devidamente configurada!
Agora checar 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.
Vamos consultar os discos existentes no servidor mvrac3? Como root:
[root@mvrac3 ~]# 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 /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 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 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
As partições foram listadas!
Agora, faremos o SCAN dos discos ASM.
Para fazermos as partições dos discos ASM, basta usarmos a ASMLib com o usuário root:
[root@mvrac3 oracle]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ]
Agora precisamos verificar se os discos foram realmente enxergados:
[root@mvrac3 oracle]# /etc/init.d/oracleasm listdisks ASMDISK1 ASMDISK2 ASMDISK3
Pronto! Discos do ASM listados!
Agora falta apenas criar os block devices. Usaremos o utilitário chamado UDEV para isso. Para criarmos esses dispositivos, criaremos um arquivo com as regras necessárias no diretório /etc/udev/rules.d. O arquivo precisa ter a extensão .rules.
Agora criaremos o arquivo que criará os block devices:
[root@mvrac3 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@mvrac3 rules.d]# start_udev Starting udev: [ OK ]
Agora verificaremos se os devices foram criados:
[root@mvrac3 rules.d]# ls -l /dev/ocr* /dev/voting* brw-r----- 1 oracle dba 8, 22 Sep 18 21:34 /dev/ocr1 brw-r----- 1 oracle dba 8, 38 Sep 18 21:35 /dev/ocr2 brw-r----- 1 root dba 8, 24 Sep 18 21:34 /dev/voting1 brw-r----- 1 root dba 8, 40 Sep 18 21:35 /dev/voting2 brw-r----- 1 oracle dba 8, 54 Sep 18 21:35 /dev/voting3
Os dispositivos foram criados!
Nesse momento estamos prontos para iniciar a adição do Nó ao Cluster!
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.