Olá amigos, hoje vamos dar continuidade ao processo de instalação do ambiente para o RAC 12c e Database 12c.
Bem no último artigo fizemos a criação das máquinas virtuais, agora vamos configurar o Oracle ZFS e realizar as instalações.
Instalação do Oracle ZFS Storage.
Bem depois de descompactar o arquivo que foi feito download com o appliance do ZFS, devemos importar o mesmo através do Import Applicance no menu do VirtualBox.
Selecione o caminho onde você descompactou a OVF do Oracle ZFS apos isso clique em “Continue”.
Apos a importação devemos iniciar a configuração básica do Oracle ZFS, clique no botão “START” para iniciar a maquina virtual do ZFS.
Nesta tela iremos realizar a configuração do Oracle ZFS, preencher com a informações que estiverem na nossa tela para simularmos o ambiente.
Senha utilizada foi oracle.
Apos finalizado a configuração vamos acessar a console via browser http://192.168.56.101:215
O Usuário que utilizamos é “root” e a senha “oracle”.
Configuração do Oracle ZFS – Startup Storage.
Bem vamos iniciar agora a configuração inicial do ZFS e preparar o mesmo com os discos.
Nesta tela é apresentada alguns informações sobre o ZFS, clique em “START”.
Nesta tela temos a configuração de network do ZFS, não é necessário realizar nenhuma alteração, clique no botão “COMMIT” para gravar estas configurações e ir para o próximo step.
Nesta tela temos a configuração de DNS do ZFS, não é necessário realizar nenhuma alteração, clique no botão “COMMIT” para gravar estas configurações e ir para o próximo step.
Nesta tela temos a configuração de NTP do ZFS, não é necessário realizar nenhuma alteração, clique no botão “COMMIT” para gravar estas configurações e ir para o próximo step.
Nesta tela temos a configuração de NAMES do ZFS, não é necessário realizar nenhuma alteração, clique no botão “COMMIT” para gravar estas configurações e ir para o próximo step.
Nesta tela temos a configuração de STORAGE do ZFS, não é necessário realizar nenhuma alteração, clique no botão “COMMIT” para gravar estas configurações e ir para o próximo step, no último passo clique em “LATER” e depois confirme.
Essas configurações básicas são para liberar o acesso as configurações do ZFS. Pronto estamos com o ZFS pronto para criação das LUNS e apresentação ao sistema Operacional.
Configuração do Oracle ZFS – LUNS e ISCSI
Antes de iniciarmos devemos instalar o iscsi-initiator que se encontra no repositório do Oracle Linux.
Faça estes passos para os dois servers. Execute o comando em vermelho.
RAC1
[root@RAC1~] yum install iscsi-initiator-utils Loaded plugins: refresh-packagekit Setting up Install Process Resolving Dependencies --> Running transaction check --> Package iscsi-initiator-utils.x86_64 0:6.2.0.872-21.0.1.el6 will be --> installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================= Package Arch Version Repository Size ======================================================================= Installing: iscsi-initiator-utils x86_64 6.2.0.872-21.0.1.el6 ol6_u1_base 578 k Transaction Summary ======================================================================= Install 1 Package(s) Total download size: 578 k Installed size: 2.0 M Is this ok [y/N]: y Downloading Packages: iscsi-initiator-utils-6.2.0.872-21.0.1.el6.x86_64.rpm | 578 kB 00:03 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : iscsi-initiator-utils-6.2.0.872-21.0.1.el6.x86_64 1/1 Installed: iscsi-initiator-utils.x86_64 0:6.2.0.872-21.0.1.el6 Complete! [root@RAC1~]
RAC2
[root@RAC2~] yum install iscsi-initiator-utils Loaded plugins: refresh-packagekit Setting up Install Process Resolving Dependencies --> Running transaction check --> Package iscsi-initiator-utils.x86_64 0:6.2.0.872-21.0.1.el6 will be --> installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================= Package Arch Version Repository Size ======================================================================= Installing: iscsi-initiator-utils x86_64 6.2.0.872-21.0.1.el6 ol6_u1_base 578 k Transaction Summary ======================================================================= Install 1 Package(s) Total download size: 578 k Installed size: 2.0 M Is this ok [y/N]: y Downloading Packages: iscsi-initiator-utils-6.2.0.872-21.0.1.el6.x86_64.rpm | 578 kB 00:03 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : iscsi-initiator-utils-6.2.0.872-21.0.1.el6.x86_64 1/1 Installed: iscsi-initiator-utils.x86_64 0:6.2.0.872-21.0.1.el6 Complete! [root@RAC2~]
Após ser feito este item devemos fazer a configuração para que o daemon do iscsi-initiator, inicie automaticamente com o sistema operacional.
Execute os comandos em vermelho.
RAC1
[root@RAC1 ~] chkconfig iscsi on [root@RAC1 ~] chkconfig iscsid on [root@RAC1 ~] chkconfig --list iscsi iscsi 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@RAC1 ~] chkconfig --list iscsid iscsid 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@RAC1 ~] service iscsi start [root@RAC1 ~] service iscsid start
RAC2
[root@RAC2 ~] chkconfig iscsi on [root@RAC2 ~] chkconfig iscsid on [root@RAC2 ~] chkconfig --list iscsi iscsi 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@RAC2 ~] chkconfig --list iscsid iscsid 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@RAC2 ~] service iscsi start [root@RAC2 ~] service iscsid start
Agora vamos identificar o HOST IQN, para que possamos informar ao Oracle ZFS quais máquinas vão identificar as LUNS do ambiente.
Executar o comandos em vermelho nos dois servers.
[root@RAC1 ~] cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1988-12.com.oracle:45a4c2cad2ec [root@RAC2 ~] cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1988-12.com.oracle:febee75ed980
Como informação na instalação que vocês irão realizar o InitiatorName vai ser diferente do que esta documentação, pois ele gera este identificador durante a instalação do iscsi-initiator.
Anotem estes identificadores, pois serão necessários para nossa utilização.
Configuração ISCSI
Estas configurações devem ser feita nos dois servers.
Para configurar a autenticação CHAP, edite o arquivo /etc/iscsi/ iscsid.conf para fazer as seguintes alterações:
Para ativar a autenticação CHAP, remova o caractere # no início da linha seguinte:
node.session.auth.authmethod = CHAP
Para definir o nome de usuário e senha CHAP, conclua as seguintes etapas:
Edite as linhas que definem o nome de usuário e senha CHAP para remover o caractere # desde o início dessas linhas:
node.session.auth.username = username
node.session.auth.password = password
Alterar nome de usuário para o IQN que localizamos. Para este exemplo, o nome de usuário é:
iqn.1988-12.com.oracle:45a4c2cad2ec – RAC1
iqn.1988-12.com.oracle:febee75ed980– RAC2
A configuração deve ficar desta forma no RAC1 .
node.session.auth.username= iqn.1988-12.com.oracle:45a4c2cad2ec
node.session.auth.password = CHAPsecret14
A configuração deve ficar desta forma no RAC2 .
node.session.auth.username=iqn.1988-12.com.oracle:febee75ed980
node.session.auth.password = CHAPsecret14
Após isso devemos alterar o usuário e senha para que possamos iniciar a transação com o Oracle ZFS.
Removendo o caracter # na frente das seguintes linhas:
node.session.auth.username_in = username
node.session.auth.password_in = password
Defina o usuário e senha que será utilizado.
node.session.auth.username_in = chapuser
node.session.auth.password_in = CHAPsecret22
Após feito estas alterações nos dois servers salve os arquivos.
Configurando Target no Oracle ZFS
Um “Target Group” é criado no Oracle ZFS Storage Appliance para definir as portas eo protocolo pelo qual o LUN vão ser apresentados para o servidor Oracle Linux.
Vamos lá, acesse a console de administração do Oracle ZFS
https://192.168.56.101:215
Coloque o usuário root e a senha oracle e clique no “LOGIN”
Após ter realizado o login clique em “CONFIGURATION”, depois clique em “SAN”, selecione a opção “ISCSI” e por fim clique em “TARGET”.
Após ter realizado isso clique no sinal de “+” do lado da palavra target para adicionar as configurações abaixo.
No campo ALIAS defina uma alias para este TARGET, conforme imagem acima, eu defini como “OL”.
Depois defina o método de autenticação, que é o tipo CHAP.
No item Target CHAP name e CHAP secret, as informações devem ser as mesmas que foram configuradas no ISCSID.CONF
Target CHAP NAME = chapuser
Target CHAP SECRET = CHAPsecret22
Após ter realizado a configuração clique em OK.
Bem vamos mover o target criado para o Grupo de Targets, coloque o cursor sobre a entrada que foi criada para o iSCSI Targets.
O ícone do movimento aparece à esquerda da entrada, conforme imagem abaixo.
Mova para o Target Group, o Target criado conforme imagem abaixo
Após realizar a movimentação clique no botão de um lápis para editar o nome do Target para alteramos a identificação.
Agora edite o nome do ISCSI initiator para ZFS e clique em OK.
Pronto agora já temos nosso Target, configurado para que o servidores tenham acesso ao Oracle ZFS storage.
Para gravar está configuração clique no “APPLY”.
Configurando Initiators no Oracle ZFS
Um “iSCSI initiator” é definido para restringir quais servidores têm acesso a um determinado volume. Se mais de um host pode gravar em um determinado volume simultaneamente, inconsistência no cache do sistema de arquivos entre os hosts podem causar a corrupção na imagem em disco.
Para identificar o servidor Oracle Linux para Oracle ZFS Storage Appliance, o iSCSI initiator deve ser registrado, como iremos realizar agora.
Clique em “CONFIGURATION”, depois clique em “SAN”, selecione a opção “ISCSI” e por fim clique em “INITIATORS”.
Após ter realizado isso clique no sinal de “+” do lado da palavra Initiators para adicionar as configurações abaixo.
A configuração deve ficar desta forma no RAC1 .
Initiatior CHAP name = iqn.1988-12.com.oracle:45a4c2cad2ec
Initiatior CHAP secret = CHAPsecret14
Após ter realizado a configuração clique em OK.
Após ter realizado isso clique novamente no sinal de “+” do lado da palavra Initiators para adicionar o segundo node com as configurações abaixo.
A configuração deve ficar desta forma no RAC2 .
Initiatior CHAP name = iqn.1988-12.com.oracle:febee75ed980 Initiator CHAP secret = CHAPsecret14
Após ter realizado a configuração clique em OK.
Pronto já temos os initiators dos servers que vão fazer parte do Oracle RAC e vão acessar os volumes do storage.
Bem vamos mover os initiators criado para o Grupo de Initiators, coloque o cursor sobre a entrada que foi criada para o Initiators.
O ícone do movimento aparece à esquerda da entrada, conforme imagem abaixo.
Mova para o Initiators RAC1 e depois o RAC2 para o Group o Initiators conforme imagem abaixo
Pronto deve ficar parecido como o da imagem abaixo, agora vamos editar o grupo e dar um nome a ele.
Após realizar a movimentação clique no botão de um lápis para editar o nome do Target para alteramos a identificação.
Agora edite o nome do initiator group para ISCI_RACS, selecione os 2 initiators e depois clique em OK.
Pronto agora já temos nossos Initiators configurados, para que o servidores tenha acesso ao mesmo volume de discos.
Para gravar está configuração clique no “APPLY”.
Configurando as Luns no ZFS
Um projeto pode ser definido em Oracle ZFS Storage Appliance para volumes de grupos relacionados. Um projeto permite que exista herança de propriedades para sistemas de arquivos e LUNs apresentados a partir do projeto e também permite que cotas e reservas a sejam aplicadas.
Clique em “SHARES”, depois clique em “PROJECTS”, selecione a opção “+” ao lado da palavra Projects.
Agora edite o nome do projeto para RAC e depois clique em APPLY.
Pronto agora que estamos com o projeto pronto clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns, para que possamos criar os volumes de discos.
Agora vamos iniciar a criação do primeiro volume o ASM_DATA1, primeiramente selecione o nome do projeto “RAC”.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “ASM_DATA1”, vamos definir o volume size para “10 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Vamos agora repetir os passos para criar o segundo volume, clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “ASM_DATA2”, vamos definir o volume size para “10 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Vamos agora repetir os passos para criar o terceito volume, clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “ASM_INDEX1”, vamos definir o volume size para “10 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Vamos agora repetir os passos para criar o quarto volume, clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “ASM_FRA1”, vamos definir o volume size para “10 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Vamos agora repetir os passos para criar o quinto volume, clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “OCR_VOT1”, vamos definir o volume size para “2 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Vamos agora repetir os passos para criar o sexto volume, clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “OCR_VOT2”, vamos definir o volume size para “2 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Vamos agora repetir os passos para criar sétimo volume, clique na palavra “LUNs” e depois no “+” ao lado da palavra Luns.
Depois de selecionado o projeto, coloque o nome do volume neste caso colocaremos como “OCR_VOT3”, vamos definir o volume size para “2 GB”, o tamanho do block size para “8k” e vamos selecionar o grupo “ISCI_RACS”, após feito isso clique em “APPLY”.
Pronto agora já temos todos os volumes criados para que possamos utilizar no Oracle RAC.
Agora que as LUNs estão preparadas e disponível para para o iSCSI, a LUN deve ser configurado para uso pelo servidor Oracle Linux, executando os seguintes passos:
Devemos executar estes passos nos dois servers do Oracle RAC.
Primeiramente devemos criar uma entrada no /etc/hosts para não precisar de DNS.
Edite o arquivo /etc/hosts e inclua a seguinte entrada nos dois servers.
192.168.56.101 zfs.localdomain zfs
Após realizada a inclusão no arquivo hosts dos dois servers salve os arquivos e execute os comandos abaixo em vermelho.
RAC1
[root@RAC1 ~] groupadd dba [root@RAC1 ~] groupadd oinstall [root@RAC1 ~] useradd –g dba –G oinstall oracle [root@RAC2 ~] passwd oracle --- alterar a senha para oracle [root@RAC2 ~] mkdir /u01 [root@RAC2 ~] chmod –R 755 /u01 [root@RAC2 ~] chown –R oracle:dba /u01 [root@RAC1 ~] service iscsi start [root@RAC1 ~] iscsiadm -m discovery -t sendtargets -p zfs 192.168.1.12:3260,2 iqn.1988-12.com.oracle:45a4c2cad2ec [fe80::214:4fff:fe0f:92b4]:3260,2 iqn.1988-12.com.oracle:45a4c2cad2ec [root@RAC1 ~] iscsiadm –m node –p zfssa –login [root@RAC1 ~] ls –l /dev/sd? brw-rw----. 1 root disk 8, 0 Jul 13 13:06 /dev/sda brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdb brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdc brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdd brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sde brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdf brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdg [root@RAC1 ~] fdisk /dev/sda Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10354, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-10354, default 10354): 10354 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10354, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-10354, default 10354): 10354 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] fdisk /dev/sdc Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10354, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-10354, default 10354): 10354 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] fdisk /dev/sdd Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10354, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-10354, default 10354): 10354 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] fdisk /dev/sde Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2054, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-2054, default 2054): 2054 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] fdisk /dev/sdf Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2054, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-2054, default 2054): 2054 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] fdisk /dev/sdg Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xda0cb962. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2054, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-2054, default 2054): 2054 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@RAC1 ~] partprobe [root@RAC1 ~] yum install oracleasm-support oracleasmlib oracleasm Resolving Dependencies --> Running transaction check ---> Package oracleasm-2.6.18-194.el5.x86_64 0:2.0.5-1.el5 set to be updated ---> Package oracleasm-support.x86_64 0:2.1.4-1.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: oracleasm-2.6.18-194.el5 x86_64 2.0.5-1.el5 el5_u5_base 25 k oracleasm-support x86_64 2.1.4-1.el5 ol5_u6_base 87 k Transaction Summary ================================================================================ Install 2 Package(s) Upgrade 0 Package(s) Total download size: 113 k Is this ok [y/N]: y Downloading Packages: (1/2): oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm | 25 kB 00:00 (2/2): oracleasm-support-2.1.4-1.el5.x86_64.rpm | 87 kB 00:00 -------------------------------------------------------------------------------- Total 133 kB/s | 113 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : oracleasm-support 1/2 Installing : oracleasm-2.6.18-194.el5 2/2 Installed: oracleasm-2.6.18-194.el5.x86_64 0:2.0.5-1.el5 oracleasm-support.x86_64 0:2.1.4-1.el5 Complete! [root@RAC1 ~] oracleasm configure –i Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done [root@RAC1~] /usr/sbin/oracleasm init Creating /dev/oracleasm mount point: /dev/oracleasm Loading module "oracleasm": oracleasm Mounting ASMlib driver filesystem: /dev/oracleasm [root@RAC1~] /usr/sbin/oracleasm createdisk ASM_DATA1 /dev/sda1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm createdisk ASM_DATA2 /dev/sdb1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm createdisk ASM_INDEX1 /dev/sdc1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm createdisk ASM_FRA1 /dev/sdd1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm createdisk OCR_VOT1 /dev/sde1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm createdisk OCR_VOT2 /dev/sdf1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm createdisk OCR_VOT3 /dev/sdg1 Writing disk header: done Instantiating disk: done [root@RAC1~] /usr/sbin/oracleasm scandisks [root@RAC1~] /usr/sbin/oracleasm listdisks ASM_DATA1 ASM_DATA2 ASM_INDEX1 ASM_FRA1 OCR_VOT1 OCR_VOT2 OCR_VOT3
RAC2
[root@RAC2 ~] groupadd dba [root@RAC2 ~] groupadd oinstall [root@RAC2 ~] useradd –g dba –G oinstall oracle [root@RAC2 ~] passwd oracle --- alterar a senha para oracle [root@RAC2 ~] mkdir /u01 [root@RAC2 ~] chmod –R 755 /u01 [root@RAC2 ~] chown –R oracle:dba /u01 [root@RAC2 ~] service iscsi start [root@RAC2 ~] iscsiadm -m discovery -t sendtargets -p zfs 192.168.1.12:3260,2 iqn.1988-12.com.oracle:febee75ed980 [fe80::214:4fff:fe0f:92b4]:3260,2 iqn.1988-12.com.oracle:febee75ed980 [root@RAC2 ~] iscsiadm –m node –p zfssa –login [root@RAC2 ~] ls –l /dev/sd? brw-rw----. 1 root disk 8, 0 Jul 13 13:06 /dev/sda brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdb brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdc brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdd brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sde brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdf brw-rw----. 1 root disk 8, 16 Jul 13 14:35 /dev/sdg [root@RAC2 ~] partprobe [root@RAC2 ~] yum install oracleasm-support oracleasmlib oracleasm Resolving Dependencies --> Running transaction check ---> Package oracleasm-2.6.18-194.el5.x86_64 0:2.0.5-1.el5 set to be updated ---> Package oracleasm-support.x86_64 0:2.1.4-1.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: oracleasm-2.6.18-194.el5 x86_64 2.0.5-1.el5 el5_u5_base 25 k oracleasm-support x86_64 2.1.4-1.el5 ol5_u6_base 87 k Transaction Summary ================================================================================ Install 2 Package(s) Upgrade 0 Package(s) Total download size: 113 k Is this ok [y/N]: y Downloading Packages: (1/2): oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm | 25 kB 00:00 (2/2): oracleasm-support-2.1.4-1.el5.x86_64.rpm | 87 kB 00:00 -------------------------------------------------------------------------------- Total 133 kB/s | 113 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : oracleasm-support 1/2 Installing : oracleasm-2.6.18-194.el5 2/2 Installed: oracleasm-2.6.18-194.el5.x86_64 0:2.0.5-1.el5 oracleasm-support.x86_64 0:2.1.4-1.el5 Complete! [root@RAC2 ~] oracleasm configure –i Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done [root@RAC2~] /usr/sbin/oracleasm scandisks [root@RAC2~] /usr/sbin/oracleasm listdisks ASM_DATA1 ASM_DATA2 ASM_INDEX1 ASM_FRA1 OCR_VOT1 OCR_VOT2 OCR_VOT3
Instalando Oracle RAC 12C
Verifique se as máquinas do “RAC1” e “RAC2” estão iniciadas, em seguida, faça o login no “rac1” como usuário oracle (melhor evitar o uso de “su -” comando, eu tive problemas) e inicie o instalador Oracle Rac 12c.
$ cd /media/grid
$ ./runInstaller
Selecione “Skip software updates”, e clique em “NEXT”
Selecione a opção “Install and Configure Oracle Grid Infrastructure for a Cluster” e pressione o botão “Next”.
Selecione a opção “Configue a Standard cluster”, e pressione o botão “Next”.
Selecione a opção “Advanced Installation”, e pressione o botão “Next”.
Selecione o idioma e ir para a próxima tela. No “Grid Plug and Play” tela, mude o Cluster Name para “rac-cluster” e o Scan Name “rac-scan.localdomain”, desmarque a caixa “Configure GNS”, pressione o botão “Next”.
Na tela “Cluster Node Configuration”, clique no botão “Add”.
Digite os detalhes do segundo nó do cluster, em seguida, clique no botão “OK”.
Clique no botão “SSH Connectivity” e digite a senha para o usuário “oracle”. Clique no botão “Setup” para configurar a conectividade SSH, e no botão “Test” para testá-lo, em seguida, pressione “Next”.
Na tela “Network Inteface Usage” verifique se as redes pública e privadas estão especificadas corretamente, lembre que já configuramos isso no arquivo de host que fica localizado em /etc/hosts. Pressione o botão “Next”.
Na tela de seleção “Grid Infrastructure Repository Management” selecione a opção “Não” e pressione o botão “Next”.
Na tela “Storage Option” selecione a opção “Use Standard ASM Storage” e pressione “Next”.
Na tela “Create ASM Disk Group ” clique no botão “Change Discovery Path”.
Como utilizamos o ASMLib para fazer a comunicação com o Oracle ZFS e altere o caminho para “/dev/oracleasm/disks”.
Mantenha o “Disk Group Name” inalterado. Selecione a opção de redundância “externo”. Marque a opção “/dev/oracleasm/disks/DISK1” no item “Add Disks”. Quando terminar, clique em “Next”.
Na tela “ASM Password”, selecione “Use same password for these accounts” opção e digite “oráculo” senha e pressione “Next”. Ignorar avisos sobre senha fraca caso vocês digitem uma senha não seguindo os padrões recomendados.
Mantenha o padrão em “Failure Isolation” e pressione “Next”
Mantenha os padrões em “Operating Systems Groups” e pressione “Next”. Ignorar aviso na tela seguinte.
Sugerido que se mantenha o “Oracle Base“ e o “Software Location”, com o padrão. Mas caso seja necessário altere, após isso pressione “Next”.
Sugerido que se mantenha o caminho inalterado do “Inventory Directory”, caso seja necessário altere o mesmo e após isso pressione “Next”.
Na opção “Root script execution”, selecione “Automatically run Configuration Scripts” e marque a opção “Use Root user credential”, em seguida, digite a senha do root. Pressione o botão “Next”.
No item Prerequisite Checks, na minha instalação passou sem grandes problemas, caso apresente algo a vocês verifiquem os alertas, solucione os problemas antes da instalação.
Após tudo OK clique em Install.
Aguarde enquanto a instalação realiza o procedimento nos 2 nodes. Quando lhe pediram para confirmar execução dos scripts do root, responda Sim e aguarde a execução.
Após terminado click em NEXT e depois em CLOSE.
Pronto instalamos o Oracle RAC 12C, para validar vamos executar um comando para checar o ambiente.
Logue com o usuário ROOT. Digite os comandos em vermelho.
# . oraenv ORACLE_SID = [oracle] ? +ASM1 The Oracle base has been set to /u01/app/oracle # crsctl status resource -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.asm ONLINE ONLINE rac1 Started,STABLE ONLINE ONLINE rac2 Started,STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac2 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE rac1 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE rac1 STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.oc4j 1 OFFLINE OFFLINE STABLE ora.rac1.vip 1 ONLINE ONLINE rac1 STABLE ora.rac2.vip 1 ONLINE ONLINE rac2 STABLE ora.scan1.vip 1 ONLINE ONLINE rac2 STABLE ora.scan2.vip 1 ONLINE ONLINE rac1 STABLE ora.scan3.vip 1 ONLINE ONLINE rac1 STABLE -------------------------------------------------------------------------------- #
Instalando Oracle Database 12C.
Verifique se as máquinas do “RAC1” e “RAC2” estão iniciadas, em seguida, faça o login no “rac1” como usuário oracle para iniciarmos a instalação do binário do Oracle Database 12c.
$ cd /media/database
$ ./runInstaller
Desmarque a opção “I wish to receive security update via My Oracle Support” e pressione o botão “Next”.
Selecione “Skip software updates”, e clique em “NEXT”.
Selecione a opção “Install database software Only”, e clique em “NEXT”.
Selecione a opção “Oracle Real Apllication Clusters database installation” e clique em “NEXT”.
Verifique se os 2 nodes estão selecionados, clique no botão ” SSH Connectivity” e digite a senha para o usuário “oracle”. Clique no botão “Setup” para configurar a conectividade SSH, e no botão “Test” para testá-lo, em seguida, pressione “Next”.
Na tela de Languages, clique em Next.
Na tela de “Database Edition”, selecione a opção Enterprise Edition e clique em “NEXT”.
Na tela de “Installation Location”, recomendamos seguir a sugestão padrão, caso seja necessário altere o caminho, e após isso clique em “NEXT”.
Mantenha os padrões em “Operating Systems Groups” e pressione “Next”. Ignorar aviso na tela seguinte.
No item Prerequisite Checks, na minha instalação passou sem grandes problemas, caso apresente algo a vocês verifiquem os alertas, solucione os problemas antes da instalação.
Após tudo OK clique em Install.
Após o termino da instalação irá apresentar uma tela para execução de um script que deve ser executado em todos os nodes do rac, porém precisa ser um de cada vez não pode ser simultâneo.
.
Após o termino da execução dos scripts, clique em OK.
Após isso clique em “CLOSE” para finalizar a instalação do binários do Oracle 12C Database.
Criando Database no Oracle 12c.
Vamos iniciar a criação do Database, chamando o DBCA.
$ cd /u01/app/oracle/product/12.1.0/dbhome_1/bin
$ ./dbca
Marque a opção “Create Database”, clique em “NEXT”.
Digite o “Global Database Name” pode ser o nome que você quiser, selecione o conjunto de caracteres AL32UTF8 ou a sua escolha.
Indique onde vai ficar seus “DataFiles” e a “Fast Recovery Area”.
Também forneça uma senha para SYS.
Por enquanto não vamos criar o “Container Database” isso vai ser um tópico para um próximo artigo.
Após isso clique em “NEXT”.
No item Prerequisite Checks, na minha instalação passou sem grandes problemas, caso apresente algo a vocês verifiquem os alertas, solucione os problemas antes da instalação.
Após tudo OK clique em “Finish”.
Após tudo OK, depois da instalação do banco nos 2 nodes clique em “Exit”, para finalizarmos a instalação.
Para validar a instalação execute o seguintes comandos abaixo em vermelho:
$ . oraenv ORACLE_SID = [oracle] ? racdb The Oracle base has been set to /u01/app/oracle $ srvctl config database -d racdb Database unique name: racdb Database name: racdb Oracle home: /u01/app/oracle/product/12.1.0/dbhome_1 Oracle user: oracle Spfile: +DATA/racdb/spfileracdb.ora Password file: +DATA/racdb/orapwracdb Domain: localdomain Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: racdb Database instances: racdb1,racdb2 Disk Groups: DATA Mount point paths: Services: Type: RAC Start concurrency: Stop concurrency: Database is administrator managed $ srvctl status database -d racdb Instance racdb1 is running on node rac1 Instance racdb2 is running on node rac2
Pronto está tudo OK e funcionando.
Conclusões
Bem agora finalizamos com sucesso a criação de um Oracle Rac 12c com Oracle Database 12c sobre um Oracle ZFS storage.
Espero ter ajudado e passado um pouco do meu conhecimento a vocês.
Até a próxima!

André Luiz Dutra Ontalba é um Oracle ACE member, formado em Ciências da Computação, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Engineered Systems, Performance & Tuning, RAC, Oracle Cloud e Oracle ERP’s System; Trabalha com Oracle há 17 anos, certificado OCP Oracle 11/12g/Cloud e conta com mais de 27 outras certificações em produtos da Oracle. Atualmente trabalha como Senior Database Architect na Sogeti Luxembourg uma empresa da Capgemini Group. André é fundador do Grupo de Usuários Oracle de Luxemburgo (LUXOUG). Articulista para o OTN, GPO (Grupo de Usuários Oracle Brasil) e LUXOUG. Twitter @aontalba / blog www.dbadutra.com