Oracle Maximum Availability Architecture



Documentos relacionados
Oracle Maximum Availability Architecture

Oracle Zero Downtime Migration (com Golden Gate)

Oracle Zero Downtime Migration

Real Application Cluster (RAC)

Instalação RAC10g em Linux

SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO

HOW TO. Instalação do Firewall 6.1 Software

MySQL para DBAs Oracle

Como instalar o sistema operacional pfsense no Citrix Xen Server

Pedro F. Carvalho Analista de Sistemas RMAN: Ambiente de backup

INSTALANDO SQL SERVER 2008

Oracle Data Guard 12cR1

Instalando e Configurando o Oracle XE

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

Guia de Instalação e Configuração do Noosfero

Oracle Database 11g: Novos Recursos para Administradores

Instalação e configuração Linux CentOS 6.x

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Manual de Instalação e Configuração MySQL

Guia de procedimentos de backups

Sumário. Capítulo 2 Conceitos Importantes Tópicos Relevantes Instance Base de Dados Conclusão... 37

HSC MailInspector Guia de Instalação da Versão 3.2

Carga Horária 40 horas. Requisitos Servidor Oracle 10G Ferramenta para interação com o banco de dados

Recuperando o GRUB após instalação do Windows

MA de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página

INSTALAR O SQL SERVER NO SERVIDOR. (É o caso da Zervan, que existe o servidor da Fernanda e queremos instalar um outro na máquina de Lilian)

SECRETARIA DA JUSTIÇA E DEFESA DA CIDADANIA FUNDAÇÃO DE PROTEÇÃO E DEFESA DO CONSUMIDOR - PROCON/SP MANUAL DE INSTALAÇÃO DO SISTEMA

Introdução ao Sistema. Características

Oracle Data Guard. Ricardo Portilho Proni

COLOCANDO UM BANCO DE DADOS STANDY BY

Configurando DDNS no Stand Alone

Autor: Hernandes Martins. Março de Zabbix 2.4 CentOS 7 Tutorial Instalação

Conversão de ambientes

Advanced IT S/A. EM10g Grid Control. Introdução. Introdução. Agenda. Como alcança estes objetivos Grid Control Home Page Pode gerenciar:

Aula 1 Instalando o Software Oracle

COORDENAÇÃO DE TECNOLOGIA (COTEC) MAIO/2010

Conteúdo 1 Comandos Básicos. Questão 1: Que comando permite encerrar o sistema definitivamente?

TREINAMENTO. Apresentação. Objetivos. Dados Principais. Tecnologia Abordada Oracle Databese 11g

VMware workstation e Windows 7. Instalação de máquina virtual e sistema operacional

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Guia de administração para a integração do Portrait Dialogue 6.0. Versão 7.0A

COORDENAÇÃO DE TECNOLOGIA (COTEC) OUTUBRO/2010

Aloque 1024 MB de RAM para a VM. Crie um novo disco virtual. Figura 03. Figura 04.

Instalação do Linux Educacional 3.0 Bancadas SED

Universidade Estadual de Feira de Santana

LOJA ELETRÔNICA MANUAL DE INSTALAÇÃO

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

Secure Client. Manual do Usuário. IPNv2. Secure Client IPNv2

UM PBX GENUINAMENTE BRASILEIRO

Prof. Rossano Pablo Pinto Dezembro/2012 Versão 0.2 (em construção) Prof. Rossano Pablo Pinto - 1

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

Oracle RAC 12cR1. Ricardo Portilho Proni

FISL 13. Fórum Internacional de Software Livre

Pedro F. Carvalho Analista de Sistemas AULA 16 RECOVERY

Necessidades de Gerenciamento: Software de Gerenciamento:

CARREIRA DE DBA ORACLE E CERTIFICAÇÃO

MANUAL INSTALAÇÃO WEB SERVICE

1. Adição de um disco rígido a uma máquina existente. Iremos utilizar uma máquina virtual

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS

Tutorial Por : André Luiz Ribeiro Breviglieri -=FaT_tUx=- BrazilFW Instalação

INSTALAÇÃO-ATUALIZAÇÃO SANKHYAW WINDOWS ORACLE

Instalando servidor Apache

Instruções para Instalação dos Utilitários Intel

Gerência de Banco de Dados

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

INSTALAÇÃO JIVAW LINUX ORACLE

Telefonia IP MOT. Prática 1

ESUS SAMU V INSTRUÇÕES PARA INSTALAÇÃO

CONFIGURANDO O WINDOWS 7. Conhecer algumas funcionalidades do software VMware Player e do sistema operacional

MANUAL DE INSTALAÇÃO. LSoft Ponto Eletrônico

Instalação do Sistema. Treinamento OTRS Help Desk

Documentação Symom. Agente de Monitoração na Plataforma Windows

Instalação MS-Windows com MS-SQL

Print Audit 6 - SQL Server 2005 Express Edition Installation Guide

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon

Roteiro 3: Sistemas Linux arquivos e diretórios

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

UM PBX GENUINAMENTE BRASILEIRO MANUAL DE INSTALAÇÃO COM IMAGEM ISO

Manual de Instalação e Configuração do SQL Express

Curso: Superior Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina: Sistemas Distribuídos Professor: Társio Ribeiro Cavalcante

O servidor de banco de dados ORACLE corporativo da empresa deve possuir a seguinte especificação mínima:

PROCEDIMENTOS PARA ATUALIZAÇÃO DE VERSÃO DO APLICATIVO

Conteúdo do pacote de 03 cursos hands-on

Tutorial de Instalação do CentOS Versão 3.3

Instalação BibliotecaRM/Procedimento (título ilustrativo, não é preciso colocar)

Considerações sobre o Disaster Recovery

Manual de Instalação de SQL Server (2005, 2008, 2012).

Backup e Restauração Banco de Dados. Evandro Deliberal

Textos Legais. TL Internet. Legislativa. Manual de Implantação

Manual de Instalação PIMSConnector em Linux

HOW TO Procedimento para instalar Aker Firewall virtualizado no ESXi 5.0

MANUAL DE INSTALAÇÃO DO SISLOC E SQL EXPRESS 2005

Manual de Instalação PIMSConnector em Windows

Transcrição:

1 Oracle Maximum Availability Architecture Ricardo Portilho Proni ricardo@nervinformatica.com.br Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nd/3.0/br/.

Alta Disponibilidade 2

Características da Alta Disponibilidade Confiança Recuperabilidade Detecção de erros em tempo hábil Continuidade operacional 3

Análise de Alta Disponibilidade Análise de impacto no negócio Custo de tempo fora de operação Objetivo de tempo de recuperação (RTO) Objetivo de ponto de recuperação (RPO) Meta de gerenciamento Custo total de propriedade (TCO) Retorno sobre o investimento (ROI) 4

Sistemas e Alta Disponibilidade Camada 1 (Faturamento, Vendas) Camada 2 (Compras, Estoque) Camada 3 (BI, Desenvimento) 5

Custos e Alta Disponibilidade Tempo máximo de parada tolerado. Frequência máxima de paradas tolerada. Custos facilmente mensuráveis (vendas, funcionários ociosos, multas contratuais) Custos dificilmente mensuráveis (processos judiciais) Custos não mensusáveis (publicidade negativa, clientes irritados) 6

Implantação de Alta Disponibilidade 7

Soluções Oracle para Alta Disponibilidade Fast-Start Fault Recovery Oracle Restart Oracle Real Application Clusters and Oracle Clusterware Oracle RAC One Node Oracle Data Guard Oracle GoldenGate / Oracle Streams Oracle Flashback Technology Oracle Automatic Storage Management Fast Recovery Area Recovery Manager Data Recovery Advisor Oracle Secure Backup Oracle Security Features LogMiner Oracle Exadata Storage Server Software (Exadata Cell) Oracle Exadata Database Machine Oracle Database File System (DBFS) Oracle Automatic Storage Management Cluster File System (Oracle ACFS) Client Failover Automatic Block Repair Corruption Prevention, Detection, and Repair 8

Indisponibilidades Planejadas Operating system and hardware upgrades -> Oracle RAC Oracle Database patches -> Oracle RAC Oracle Grid Infrastructure upgrades and patches -> Oracle RAC Storage Migration -> Oracle ASM Migrating to Exadata Storage -> Oracle MAA best practices Upgrading Exadata Storage -> Exadata Patch Manager Migrating a single-instance database to Oracle RAC -> Oracle Grid Infrastructure Migrating to Oracle ASM -> Oracle Data Guard Migrating a single-instance database to Oracle RAC -> Oracle Data Guard Patch set and database upgrades -> Oracle Data Guard using SQL Apply Oracle interim patches, Oracle clusterware upgrades and patches, Oracle ASM upgrades, Operating System and Hardware Upgrades -> Oracle Data Guard Standby-First Patch Apply Migration across Windows and Linux -> Oracle Data Guard Platform migration across the same endian format platforms -> Transportable database Platform migration across different endian format platforms -> Transportable tablespace Patch set and database upgrades, platform migration, rolling upgrades, and when different character sets are required -> Oracle GoldenGate and Oracle Streams Application upgrades -> Online Application Maintenance and Upgrades 9

Indisponibilidades Não Planejadas Site Failures -> Oracle Data Guard Site Failures -> Oracle GoldenGate and Oracle Streams Site Failures -> Recovery Manager Computer Failures -> Oracle Real Application Clusters and Oracle Clusterware Computer Failures -> Oracle RAC One Node Computer Failures -> Fast-Start Fault Recovery Computer Failures -> Oracle Data Guard Computer Failures -> Oracle GoldenGate and Oracle Streams Storage Failures -> Oracle Automatic Storage Management Storage Failures -> Oracle Data Guard Storage Failures -> RMAN with Fast Recovery Area and Oracle Secure Backup Storage Failures -> Oracle GoldenGate and Oracle Streams Data Corruption -> Oracle Exadata Storage Server Software (Exadata Cell) and Oracle ASM Data Corruption -> Corruption Prevention, Detection, and Repair Data Corruption -> Data Recovery Advisor and RMAN with Fast Recovery Area Data Corruption -> Oracle Data Guard Data Corruption -> Oracle GoldenGate and Oracle Streams Human Errors -> Oracle Security Features Human Errors -> Oracle Flashback Technology Human Errors -> LogMiner Lost writes -> Oracle Data Guard, RMAN, DB_LOST_WRITE_PROTECT Lost writes -> Oracle Data Guard Oracle Exadata Storage Server Software (Exadata Cell) Hangs or slow down - Oracle Database and Oracle Enterprise Manager 10

Maiores informações High Availability Overview: http://www.oracle.com/pls/db112/to_toc?pathname=server.112/e17157/toc.htm High Availability Best Practices: http://www.oracle.com/pls/db112/to_toc?pathname=server.112/e10803/toc.htm 11

Cenário 1: Oracle RAC + Oracle Data Guard Ambiente Produção Oracle RAC: nerv01 e nerv02 / nerv03 e nerv04 / nerv05 e nerv06 / nerv07 e nerv08 NFS: nerv09 ASM: nerv09 DNS: nerv09 Ambiente Contingência Oracle Data Guard Physical Standby: nerv11 / nerv12 / nerv13 / nerv14 NFS: nerv10 ASM: nerv10 DNS: nerv10 Ambiente Observador Oracle Client: nerv15 12

Cenário 2: Oracle RAC + Oracle Golden Gate Ambiente Produção Oracle RAC: nerv01 e nerv02 / nerv03 e nerv04 / nerv05 e nerv06 / nerv07 e nerv08 NFS: nerv09 ASM: nerv09 DNS: nerv09 Ambiente Contingência Oracle Database: nerv11 / nerv12 / nerv13 / nerv14 NFS: nerv10 ASM: nerv10 DNS: nerv10 13

Cenário 3: Oracle RAC Extended Ambiente Produção Oracle RAC: nerv01 e nerv02 / nerv03 e nerv04 / nerv05 e nerv06 / nerv07 e nerv08 NFS: nerv09 ASM: nerv09 DNS: nerv09 Ambiente Contingência Oracle RAC: nerv11 / nerv12 / nerv13 / nerv14 NFS: nerv10 ASM: nerv10 DNS: nerv10 Ambiente Observador NFS: nerv15 14

Lab 1 Instalação OEL 6 Hands On! 15 15

Lab 1.1: Instalação OEL 6 Nas máquinas nerv01, nerv02 e nerv11, instale o OEL. - 1a tela: Install or upgrade an existing system - 2a tela: Skip - 3a tela: Next - 4a tela: English (English), Next - 5a tela: Brazilian ABNT2, Next - 6a tela: Basic Storage Devices, Next - 7a tela: Fresh Installation, Next - 8a tela: nerv01.localdomain, Next - 9a tela: America/Sao Paulo, Next - 10a tela: Nerv2014, Nerv2014, Next - 11a tela: Create Custom Layout, Next 16 16

Lab 1.2: Instalação OEL 6-12a tela: Crie as partições como abaixo, e em seguida, Next: sda1 200 MB /boot sda2 100000 MB / sda3 20000 MB /home sda5 16384 MB swap sda6 10000 MB /var sda7 10000 MB /tmp sda8 Espaço restante /u01-13a tela: Format - 14a tela: Write changes to disk - 15a tela: Next - 16a tela: Minimal - 17a tela: Reboot - Retire o DVD. 17 17 17

Lab 2 Configuração OEL 6 Hands On! 18 18

Lab 2.1 Configuração OEL 6 Nas máquinas nerv01, nerv02 e nerv11, configure a placa de rede púplica. # cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:26:5A:70:E8:6B TYPE=Ethernet UUID=8a9e98e5-0364-4a98-8f18-594ca6895433 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=192.168.0.101 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=192.168.0.201 DNS2=8.8.8.8 DOMAIN=localdomain 19 19

Lab 2.2 Configuração OEL 6 Nas máquinas nerv01, nerv02 e nerv11, configure a placas de rede privada. # cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 HWADDR=C8:9C:DC:C7:32:45 TYPE=Ethernet UUID=b30878af-a7c2-4464-bbe2-33bc5cc3fa3e ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=192.168.1.101 NETMASK=255.255.255.0 Nas máquinas nerv01, nerv02 e nerv11, atualize o sistema operacional e execute a instalação dos pré-requisitos. # service network restart # yum -y update # yum -y install oracle-rdbms-server-11gr2-preinstall # yum -y install oracleasm-support # yum -y install unzip iscsi-initiator-utils java-1.7.0-openjdk parted # yum -y install unixodbc unixodbc.i686 unixodbc-devel unixodbc-devel.i686 20 20

Lab 2.3 Configuração OEL 6 Nas máquinas nerv01, nerv02 e nerv11, ACRESCENTAR AO FINAL do arquivo /etc/hosts: # Public 192.168.0.101 nerv01.localdomain nerv01 192.168.0.102 nerv02.localdomain nerv02 192.168.0.121 nerv11.localdomain nerv11 # Private 192.168.1.101 nerv01-priv.localdomain nerv01-priv 192.168.1.102 nerv02-priv.localdomain nerv02-priv 192.168.1.121 nerv11-priv.localdomain nerv11-priv # Virtual 192.168.0.111 nerv01-vip.localdomain nerv01-vip 192.168.0.112 nerv02-vip.localdomain nerv02-vip 192.168.0.131 nerv11-vip.localdomain nerv11-vip # Storage 192.168.0.201 nerv09.localdomain nerv09 192.168.0.202 nerv10.localdomain nerv10 # Client 192.168.0.2 nerv15.localdomain nerv15 21 21

Lab 2.4 Configuração OEL 6 Nas máquinas nerv01, nerv02 e nerv11, executar os comandos abaixo. # groupadd oper # groupadd asmadmin # groupadd asmdba # groupadd asmoper # usermod -g oinstall -G dba,oper,asmadmin,asmdba,asmoper oracle # mkdir -p /u01/app/grid # mkdir -p /u01/app/11.2.0.4/grid # mkdir -p /u01/app/oracle/product/11.2.0.4/db_1 # mkdir -p /u01/shared_config01 # mkdir -p /u01/shared_config02 # mkdir -p /u01/shared_config03 # chown -R oracle:oinstall /u01 # chmod -R 775 /u01 # passwd oracle (Coloque como senha do usuário oracle: Nerv2014) 22 22

Lab 2.5 Configuração OEL 6 Nas máquinas nerv01, nerv02 e nerv11, altere o SELinux de enforcing para permissive. # vi /etc/selinux/config Nas máquinas nerv01, nerv02 e nerv11, desabilite o firewall. # chkconfig iptables off # chkconfig ip6tables off Nas máquinas nerv01, nerv02 e nerv11, desabilite o NTP. # mv /etc/ntp.conf /etc/ntp.conf.org # reboot 23 23

Lab 2.6 Configuração OEL 6 Nas máquinas nerv01 e nerv02, com o usuário oracle, ACRESCENTAR NO FINAL do arquivo /home/oracle/.bash_profile as linhas abaixo. export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=nerv01.localdomain export ORACLE_UNQNAME=ORCL export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 export GRID_HOME=/u01/app/11.2.0.4/grid export CRS_HOME=$GRID_HOME export ORACLE_SID=ORCL1 export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 24 24

Lab 2.7 Configuração OEL 6 Na máquina nerv11, com o usuário oracle, ACRESCENTAR NO FINAL do arquivo /home/oracle/.bash_profile as linhas abaixo. export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=nerv11.localdomain export ORACLE_UNQNAME=ORCL export ORACLE_BASE=/u01/app export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0.4/db_1 export GRID_HOME=$ORACLE_BASE/grid/11.2.0.4/grid export CRS_HOME=$GRID_HOME export ORACLE_SID=ORCL export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 25 25

Lab 3 Storage Hands On! 26 26

Lab 3.1 Storage (NFS) Nas máquinas nerv09 e nerv10, crie 3 diretórios. # mkdir /shared_config01 # mkdir /shared_config02 # mkdir /shared_config03 Nas máquinas nerv09 e nerv10, adicionar no arquivo /etc/exports: /shared_config01 *(rw,sync,no_wdelay,insecure_locks,no_root_squash) /shared_config02 *(rw,sync,no_wdelay,insecure_locks,no_root_squash) /shared_config03 *(rw,sync,no_wdelay,insecure_locks,no_root_squash) Nas máquinas nerv09 e nerv10, iniciar o NFS Server: # service nfs start # chkconfig nfs on 27 27

Lab 3.2 Storage (NFS) Nas máquinas nerv01, nerv02 e nerv11, adicionar no arquivo /etc/fstab as TRÊS linhas abaixo. nerv09:/shared_config01 /u01/shared_config01 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 nerv09:/shared_config02 /u01/shared_config02 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 nerv09:/shared_config03 /u01/shared_config03 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 28 28

Lab 3.3 Storage (NFS) Nas máquinas nerv01, nerv02 e nerv11, executar: # mount /u01/shared_config01 # mount /u01/shared_config02 # mount /u01/shared_config03 Na máquina nerv01, executar: # mkdir /u01/shared_config01/rac01 # mkdir /u01/shared_config02/rac01 # mkdir /u01/shared_config03/rac01 # chown -R oracle:oinstall /u01/shared_config01/rac01 # chown -R oracle:oinstall /u01/shared_config02/rac01 # chown -R oracle:oinstall /u01/shared_config03/rac01 Na máquina nerv11, executar: # mkdir /u01/shared_config01/rac11 # mkdir /u01/shared_config02/rac11 # mkdir /u01/shared_config03/rac11 # chown -R oracle:oinstall /u01/shared_config01/rac11 # chown -R oracle:oinstall /u01/shared_config02/rac11 # chown -R oracle:oinstall /u01/shared_config03/rac11 29 29

Lab 3.4 Storage (ASM) Nas máquinas nerv09 e nerv10, crie 4 partições de 10GB, sem formatar. Nas máquinas nerv09 e nerv10, configure o iscsi server. # cat /etc/tgt/targets.conf <target iqn.2010-10.com.nervinformatica:storage.asm01-01> backing-store /dev/sda5 initiator-address 192.168.0.101 initiator-address 192.168.0.102 </target> <target iqn.2010-10.com.nervinformatica:storage.asm01-02> backing-store /dev/sda6 initiator-address 192.168.0.101 initiator-address 192.168.0.102 </target>... # service tgtd start # chkconfig tgtd on 30 30

Lab 3.5 Storage (ASM) Nas máquinas nerv01, nerv02 e nerv11, ative o pacote iscsi Initiator. # service iscsid start # chkconfig iscsid on Nas máquinas nerv01, nerv02 e nerv11, verifique os Discos exportados no Storage. # iscsiadm -m discovery -t sendtargets -p 192.168.0.201 # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-01 -p 192.168.0.201 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-02 -p 192.168.0.201 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-03 -p 192.168.0.201 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-04 -p 192.168.0.201 -l Nas máquinas nerv01, nerv02 e nerv11, deixe APENAS os novos discos no arquivo /etc/iscsi/initiatorname.iscsi. InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-01 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-02 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-03 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-04 31 31

Lab 3.6 Storage (ASM) Nas máquinas nerv01, nerv02 e nerv11, REINICIE, e verifique se os discos foram configurados localmente. # fdisk -l Nas máquinas nerv01 e nerv11, particione os novos discos. # fdisk /dev/sdb n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> # fdisk /dev/sdc n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> 32 32

Lab 3.7 Storage (ASM) Nas máquinas nerv01 e nerv11, particione os novos discos. # fdisk /dev/sdd n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> # fdisk /dev/sde n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> Nas máquinas nerv02, execute a detecção dos novos discos. # partprobe /dev/sdb # partprobe /dev/sdc # partprobe /dev/sdd # partprobe /dev/sde 33 33

Lab 3.8 Storage (ASM) Nas máquinas nerv01, nerv02 e nerv11, configure a ASMLib. # /etc/init.d/oracleasm configure oracle <enter> oinstall <enter> y <enter> y <enter> # /etc/init.d/oracleasm status Nas máquinas nerv01 e nerv11, crie os discos do ASM. # /etc/init.d/oracleasm createdisk DISK00 /dev/sdb1 # /etc/init.d/oracleasm createdisk DISK01 /dev/sdc1 # /etc/init.d/oracleasm createdisk DISK02 /dev/sdd1 # /etc/init.d/oracleasm createdisk DISK03 /dev/sde1 Na máquina nerv02, execute a detecção dos discos criados. # /etc/init.d/oracleasm scandisks 34 34

Lab 3.9 Storage (ASM) Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos estão corretos. # /etc/init.d/oracleasm listdisks # /etc/init.d/oracleasm querydisk -v -p DISK00 # /etc/init.d/oracleasm querydisk -v -p DISK01 # /etc/init.d/oracleasm querydisk -v -p DISK02 # /etc/init.d/oracleasm querydisk -v -p DISK03 Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos estão corretos. # ls -lh /dev/oracleasm/disks/ brw-rw----. 1 oracle oinstall 8, 17 Mar 3 08:40 DISK00 brw-rw----. 1 oracle oinstall 8, 33 Mar 3 08:40 DISK01 brw-rw----. 1 oracle oinstall 8, 49 Mar 3 08:40 DISK02 brw-rw----. 1 oracle oinstall 8, 65 Mar 3 08:40 DISK03 35 35

Lab 4 - Grid Infraestructure Hands On! 36 36

Lab 4.1 Grid Infrastructure Na máquina nerv01, configure o SSH sem senha. [oracle@nerv01 ~]$ ssh-keygen -t rsa <enter> <enter> <enter> [oracle@nerv01 ~]$ ssh oracle@nerv02 mkdir -p.ssh [oracle@nerv01 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv01 'cat >>.ssh/authorized_keys' [oracle@nerv01 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv02 'cat >>.ssh/authorized_keys' [oracle@nerv01 ~]$ ssh nerv02 [oracle@nerv02 ~]$ ssh-keygen -t rsa <enter> <enter> <enter> [oracle@nerv02 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv01 'cat >>.ssh/authorized_keys' [oracle@nerv02 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv02 'cat >>.ssh/authorized_keys' [oracle@nerv02 ~]$ ssh nerv01 Nas máquinas nerv01 e nerv11, com o usuário oracle, altere o Response File, descompacte e execute o instalador do Grid Infrastructure. $ unzip -q p13390677_112040_linux-x86-64_3of7.zip $ /home/oracle/grid/runinstaller -silent -responsefile /home/oracle/grid_nerv01.rsp 37 37

Lab 4.2 Grid Infrastructure Na máquina nerv01, com o usuário root, execute os seguintes scripts. # /u01/app/orainventory/orainstroot.sh # /u01/app/11.2.0.4/grid/root.sh Na máquina nerv02, com o usuário root, execute os seguintes scripts. # /u01/app/orainventory/orainstroot.sh # /u01/app/11.2.0.4/grid/root.sh Na máquina nerv11, com o usuário root, execute os seguintes scripts. # /u01/orainventory/orainstroot.sh # /u01/app/grid/11.2.0.4/grid/root.sh 38 38

Lab 4.3 Grid Infrastructure Na máquina nerv01, atualize o Cluster Inventory. $ /u01/app/11.2.0.4/grid/oui/bin/runinstaller -silent -updatenodelist \ ORACLE_HOME="/u01/app/11.2.0.4/grid" LOCAL_NODE=nerv01 \ CLUSTER_NODES=nerv01,nerv02 CRS=true Na máquina nerv01, crie o LISTENER do Grid. $ /u01/app/11.2.0.4/grid/bin/netca \ -silent -responsefile /u01/app/11.2.0.4/grid/assistants/netca/netca.rsp Na máquina nerv11, atualize o Cluster Inventory. $ /u01/app/grid/11.2.0.4/grid/oui/bin/runinstaller -silent -updatenodelist \ ORACLE_HOME="/u01/app/grid/11.2.0.4/grid" LOCAL_NODE=nerv11 \ CLUSTER_NODES=nerv11 CRS=true Na máquina nerv11, crie o LISTENER do Grid. $ /u01/app/grid/11.2.0.4/grid/bin/netca \ -silent -responsefile /u01/app/grid/11.2.0.4/grid/assistants/netca/netca.rsp 39 39

Lab 5 Oracle Database Software Hands On! 40 40

Lab 5.1 Oracle Database Software Nas máquinas nerv01 e nerv11, com o usuário oracle, adeque o Response File, descompacte e execute o instalador do Oracle Database Software. $ unzip -q p13390677_112040_linux-x86-64_1of7.zip $ unzip -q p13390677_112040_linux-x86-64_2of7.zip $ /home/oracle/database/runinstaller -silent -responsefile /home/oracle/db_nerv01.rsp Na máquina nerv01, com o usuário root, execute o script abaixo. # /u01/app/oracle/product/11.2.0.4/db_1/root.sh Na máquina nerv02, com o usuário root, execute o script abaixo. # /u01/app/oracle/product/11.2.0.4/db_1/root.sh Na máquina nerv11, com o usuário root, execute o script abaixo. # /u01/app/oracle/product/11.2.0.4/db_1/root.sh 41 41

LAB 6 ASM Hands On! 42 42

Lab 6.1 ASM Nas máquinas nerv01 e nerv11, crie a Instância ASM, com o DISKGROUP DATA. $ $GRID_HOME/bin/crsctl status res -t $ $GRID_HOME/bin/asmca -silent -configureasm -sysasmpassword Nerv2014 \ -asmsnmppassword Nerv2014 -diskgroupname DATA -disklist \ '/dev/oracleasm/disks/disk00,/dev/oracleasm/disks/disk01' -redundancy NORMAL \ -au_size 1 -compatible.asm '11.2.0.0.0' -compatible.rdbms '11.2.0.0.0' \ -diskstring '/dev/oracleasm/disks/*' $ $GRID_HOME/bin/crsctl status res -t 43 43

Lab 6.2 ASM Na máquina nerv01, crie o DISKGROUP FRA, e o habilite no outro Nó. $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM1 $ sqlplus / AS SYSASM SQL> CREATE DISKGROUP FRA NORMAL REDUNDANCY DISK '/dev/oracleasm/disks/disk02' NAME DATA_0002, '/dev/oracleasm/disks/disk03' NAME DATA_0003; SQL> EXIT; $ srvctl start diskgroup -g FRA -n nerv02 $ srvctl enable diskgroup -g FRA -n nerv02 $ $GRID_HOME/bin/crsctl status res -t Na máquina nerv11, crie o DISKGROUP FRA. $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM $ sqlplus / AS SYSASM SQL> CREATE DISKGROUP FRA NORMAL REDUNDANCY DISK '/dev/oracleasm/disks/disk02' NAME DATA_0002, '/dev/oracleasm/disks/disk03' NAME DATA_0003; SQL> EXIT; $ $GRID_HOME/bin/crsctl status res -t 44 44

Lab 7 Oracle Database Hands On! 45 45

Lab 7.1 Oracle Database Na máquina nerv01, crie o Banco de Dados. $ export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0.4/db_1 $ export ORACLE_SID=ORCL1 $ $ORACLE_HOME/bin/dbca -silent -createdatabase -templatename General_Purpose.dbc \ -gdbname ORCL -sid ORCL \ -syspassword Nerv2014 -systempassword Nerv2014 \ -storagetype ASM -asmsnmppassword Nerv2014 \ -diskgroupname DATA -recoveryareadestination FRA \ -nodelist nerv01,nerv02 \ -characterset WE8IS08859P15 -listeners LISTENER \ -memorypercentage 40 \ -sampleschema true \ -emconfiguration NONE \ -continueonnonfatalerrors false 46 46

Lab 7.2 Oracle Database Na máquina nerv11, crie o Banco de Dados. $ export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0.4/db_1 $ export ORACLE_SID=ORCL $ $ORACLE_HOME/bin/dbca -silent -createdatabase -templatename General_Purpose.dbc \ -gdbname ORCL -sid ORCL \ -syspassword Nerv2014 -systempassword Nerv2014 \ -storagetype ASM -asmsnmppassword Nerv2014 \ -diskgroupname DATA -recoveryareadestination FRA \ -nodelist nerv11 \ -characterset WE8IS08859P15 -listeners LISTENER \ -memorypercentage 20 \ -sampleschema true \ -emconfiguration NONE \ -continueonnonfatalerrors false 47 47

Lab 8 RAC + Data Guard Hands On! 48 48

Lab 8.1 Data Guard Nas máquinas nerv01, nerv02 e nerv11, deixe o tnsnames do ORACLE_HOME como abaixo. PROD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac01-scan.localdomain)(port = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) DR = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nerv11.localdomain)(port = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DR) ) ) 49 49

Lab 8.2 Data Guard Nas máquinas nerv01, nerv02 e nerv11, acrescente as linhas abaixo no final do arquivo $GRID_HOME/network/admin/listener.ora. SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=ORCL_DGMGRL) (ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1) (SID_NAME=ORCL1) ) ) Nas máquinas nerv01, nerv02 e nerv11, teste a nova configuração do LISTENER. $ export ORACLE_HOME=$GRID_HOME $ $GRID_HOME/bin/lsnrctl status $ $GRID_HOME/bin/lsnrctl stop $ $GRID_HOME/bin/lsnrctl start $ $GRID_HOME/bin/lsnrctl status 50 50

Lab 8.3 Data Guard Na máquina nerv01, habilite os pré-requisitos do Data Guard. $ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 $ export ORACLE_SID=ORCL1 $ srvctl stop database -d ORCL $ srvctl start instance -d ORCL -i ORCL1 -o mount $ sqlplus / AS SYSDBA SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA'; SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10G; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE FORCE LOGGING; SQL> ALTER DATABASE FLASHBACK ON; SQL> EXIT; $ srvctl stop database -d ORCL $ srvctl start database -d ORCL Na máquina nerv01, altere a localização do SNAPSHOT CONTROLFILE. $ rman target / RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+FRA/snapcf.f'; 51 51

Lab 8.4 Data Guard Na máquina nerv01, crie um STANDBY CONTROLFILE. SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/home/oracle/stb.ctl'; Na máquina nerv01, execute um Backup do Banco de Dados e Archives. RMAN> BACKUP DATABASE FORMAT '/home/oracle/backup_banco_%u.rman'; RMAN> BACKUP ARCHIVELOG ALL FORMAT '/home/oracle/backup_archives_%u.rman'; Na máquina nerv01, copie o PASSWORD FILE para a máquina nerv11. $ scp $ORACLE_HOME/dbs/orapwORCL1 nerv11:$oracle_home/dbs/orapworcl Na máquina nerv01, copie o STANDBY CONTROLFILE para a máquina nerv11. $ scp /home/oracle/stb.ctl nerv11:/home/oracle/ Na máquina nerv01, copie o BACKUP para a máquina nerv11. $ scp /home/oracle/backup_*.rman nerv11:/home/oracle/ 52 52

Lab 8.5 Data Guard Na máquina nerv11, altere o parâmetro DB_UNIQUE_NAME. SQL> ALTER SYSTEM SET DB_UNIQUE_NAME='DR' SCOPE=SPFILE; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP NOMOUNT; Na máquina nerv11, restaure o CONTROLFILE. RMAN> RESTORE CONTROLFILE FROM '/home/oracle/stb.ctl'; SQL> ALTER DATABASE MOUNT STANDBY DATABASE; Na máquina nerv11, corrija os metadados do RMAN. RMAN> CROSSCHECK BACKUP; RMAN> CROSSCHECK ARCHIVELOG ALL; RMAN> DELETE NOPROMPT EXPIRED BACKUP; RMAN> DELETE NOPROMPT EXPIRED ARCHIVELOG ALL; RMAN> CATALOG START WITH '/home/oracle/backup'; Na máquina nerv11, restaure o banco de dados. RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE; 53 53

Lab 8.6 Data Guard Teste Na máquina o nerv11, habilite os pré-requisitos do Data Guard. SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA'; SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10G; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE FLASHBACK ON; Na máquina nerv01, configure o Data Guard Broker. SQL> ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1 = '+FRA/DR1.DAT' SCOPE=BOTH; SQL> ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2 = '+FRA/DR2.DAT' SCOPE=BOTH; Teste a resolução de nomes (ping) entre as três máquinas. Teste a configuração SQL*Net (tnsping) entre as três máquinas. Teste a autenticação via PASSWORD FILE entre as três máquinas. [oracle@nerv01 ~]$ sqlplus SYS/Nerv2014@DR AS SYSDBA [oracle@nerv02 ~]$ sqlplus SYS/Nerv2014@DR AS SYSDBA [oracle@nerv11 ~]$ sqlplus SYS/Nerv2014@PROD AS SYSDBA Nas máquinas nerv01 e nerv11, inicie o Data Guard Broker. SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE; 54 54

Lab 8.7 Data Guard Teste Na máquina o nerv01, crie a configuração do Data Guard Broker. $ dgmgrl SYS/Nerv2014@PROD DGMGRL> CREATE CONFIGURATION 'DRSolution' AS PRIMARY DATABASE IS ORCL CONNECT IDENTIFIER IS PROD; Na máquina nerv01, adicione a máquina nerv11 na configuração. DGMGRL> ADD DATABASE DR AS CONNECT IDENTIFIER IS DR; Na máquina nerv01, habilite a configuração. DGMGRL> SHOW CONFIGURATION; DGMGRL> ENABLE CONFIGURATION; DGMGRL> SHOW CONFIGURATION; Nas três máquinas, acompanhe o Alert Log. 55 55

Lab 8.8 Data Guard Teste Na máquina o nerv11, crie STANDBY LOGFILEs. SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL> ALTER DATABASE ADD STANDBY LOGFILE; SQL> ALTER DATABASE ADD STANDBY LOGFILE; SQL> ALTER DATABASE ADD STANDBY LOGFILE; SQL> ALTER DATABASE ADD STANDBY LOGFILE; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; Nas máquina nerv01 crie STANDBY LOGFILEs. SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2; SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2; 56 56

Lab 8.9 Data Guard Na máquina nerv01, verifique detalhes de um banco de dados. DGMGRL> SHOW DATABASE VERBOSE ORCL; DGMGRL> EDIT DATABASE ORCL SET PROPERTY 'ArchiveLagTarget'=600; DGMGRL> EDIT DATABASE ORCL SET PROPERTY 'StandbyFileManagement'=AUTO; DGMGRL> SHOW DATABASE ORCL 'ArchiveLagTarget'; DGMGRL> SHOW DATABASE ORCL 'StandbyFileManagement'; Na máquina nerv01, altere o Protection Mode. DGMGRL> EDIT DATABASE ORCL SET PROPERTY 'LogXptMode'='SYNC'; DGMGRL> EDIT DATABASE DR SET PROPERTY 'LogXptMode'='SYNC'; DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY; Na máquina nerv01, verifique se o Protection Mode foi alterado. DGMGRL> SHOW CONFIGURATION; DGMGRL> SHOW DATABASE VERBOSE ORCL; DGMGRL> SHOW DATABASE VERBOSE DR; DGMGRL> SHOW INSTANCE VERBOSE ORCL1 ON DATABASE ORCL; DGMGRL> SHOW INSTANCE VERBOSE ORCL2 ON DATABASE ORCL; DGMGRL> SHOW INSTANCE VERBOSE ORCL ON DATABASE DR; 57

Lab 8.10 Data Guard Na máquina nerv01, execute SWITCHOVER para a máquina nerv11, sempre acompanhando os Alert Logs. DGMGRL> SHOW CONFIGURATION; DGMGRL> SWITCHOVER TO DR; Na máquina nerv11, execute SWITCHBACK para a máquina nerv01, sempre acompanhando os Alert Logs. DGMGRL> SHOW CONFIGURATION; DGMGRL> SWITCHOVER TO ORCL; 58

Lab 8.11 Data Guard Desligue as máquinas nerv01 e nerv02. Execute FAILOVER para a máquina nerv11. $ dgmgrl SYS/Nerv2014@DR DGMGRL> FAILOVER TO DR; DGMGRL> SHOW CONFIGURATION; Ligue as máquinas nerv01 e nerv02, e na máquina nerv11, execute o REISNTATE. DGMGRL> REINSTATE DATABASE ORCL; Na máquina nerv11, execute o SWITCHOVER. DGMGRL> SWITCHOVER TO ORCL; 59

Lab 9 Fast-Start Failover Hands On! 60 60

Lights out administration 61

Lab 9.1: Fast-Start Failover Na máquina nerv01, configure o Fast-Start Failover. DGMGRL> EDIT DATABASE ORCL SET PROPERTY 'LogXptMode'='SYNC'; DGMGRL> EDIT DATABASE DR SET PROPERTY 'LogXptMode'='SYNC'; DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY; DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverLagLimit=600; DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 30; DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverAutoReinstate = TRUE; DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverPmyShutdown = TRUE; DGMGRL> EDIT DATABASE ORCL SET PROPERTY FastStartFailoverTarget=DR; DGMGRL> ENABLE FAST_START FAILOVER; DGMGRL> SHOW CONFIGURATION; DGMGRL> SHOW FAST_START FAILOVER; 62

Lab 9.2: Fast-Start Failover Na máquina nerv15, inicie o observador. $ cd /home/oracle/dba01 $ dgmgrl -logfile /home/oracle/dba01/dba01.log SYS/Nerv2014@DR_RAC01 DGMGRL> START OBSERVER; Desligue as máquinas nerv01 e nerv02, e aguarde o FAILOVER. Ligue as máquinas nerv01 e nerv02. Aguarde o REINSTATE. Execute o SWITCHOVER. 63

Lab 9.3: Fast-Start Failover Na máquina nerv01, crie dois Services como abaixo. $GRID_HOME/bin/srvctl add service -d ORCL -r ORCL1,ORCL2 -s OLTP -l PRIMARY -w 1 -z 10 $GRID_HOME/bin/srvctl add service -d ORCL -r ORCL1,ORCL2 -s OLAP -l PHYSICAL_STANDBY -w 1 -z 10 Na máquina nerv11, crie dois Services como abaixo. $GRID_HOME/bin/srvctl add service -d ORCL -s OLTP -l PRIMARY -w 1 -z 10 $GRID_HOME/bin/srvctl add service -d ORCL -s OLAP -l PHYSICAL_STANDBY -w 1 -z 10 Na máquina nerv01, inicie os dois Services. $GRID_HOME/bin/srvctl start service -d ORCL -s OLTP $GRID_HOME/bin/srvctl start service -d ORCL -s OLAP Na máquina nerv01, gere alguns Archived Redo Logs e espere replicar para o DR. Na máquina nerv01, pare o Service OLAP. $GRID_HOME/bin/srvctl stop service -d ORCL -s OLAP Na máquina nerv11, inicie o Service OLAP. $GRID_HOME/bin/srvctl start service -d ORCL -s OLAP 64

Lab 9.4: Fast-Start Failover Na máquina nerv15, adicione estas duas entradas ao tnsnames.ora, e teste sua conexão após um novo Failover. OLTP_RAC01 = (DESCRIPTION= (LOAD_BALANCE=OFF) (FAILOVER=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=rac01-scan)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=nerv11)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=OLTP)) ) OLAP_RAC01 = (DESCRIPTION= (LOAD_BALANCE=OFF) (FAILOVER=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=nerv11)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=rac01-scan)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=OLAP)) ) 65

Lab 10 ACFS Hands On! 66 66

Vantagens ACFS Mirroring Stripping Replicação Snapshots Alta Disponibilidade 67

Desvantagens ACFS Produto recente (11gR2) Instalação complexa Dependência do Kernel Depêndencia dos componentes do Grid Infrastructure Ainda não suportado pelo UEK 3 Bug ID 16318126 Oracle ASM Cluster File System (ACFS) is currently not supported for use with UEK R3. http://docs.oracle.com/cd/e37670_01/e51472/e51472.pdf 68

Lab 10.1: NFS Na máquina nerv09, crie 1 diretório. # mkdir /shared_ogg Na máquina nerv09, adicionar no arquivo /etc/exports: /shared_ogg *(rw,sync,no_wdelay,insecure_locks,no_root_squash) Na máquina nerv09, reiniciar o NFS Server: # service nfs restart Nas máquinas nerv01 e nerv02, adicionar no arquivo /etc/fstab a linha abaixo. nerv09:/shared_ogg /u01/shared_ogg nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0 Na máquina nerv01, executar: # mkdir /u01/shared_ogg # mount /u01/shared_ogg # mkdir /u01/shared_ogg/rac01 # chown -R oracle:oinstall /u01/shared_ogg/rac01 Na máquina nerv02, executar: # mkdir /u01/shared_ogg # mount /u01/shared_ogg 69 69

Lab 11 Golden Gate Unidirecional Hands On! 70 70

Lab 11.1: Golden Gate Unidirecional Na máquina nerv11, crie um novo banco de dados. $ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 $ $ORACLE_HOME/bin/dbca -silent -createdatabase -templatename General_Purpose.dbc \ -gdbname BI -sid BI \ -syspassword Nerv2014 -systempassword Nerv2014 \ -storagetype ASM -asmsnmppassword Nerv2014 \ -diskgroupname DATA -recoveryareadestination FRA \ -nodelist nerv11 \ -characterset WE8IS08859P15 -listeners LISTENER \ -memorypercentage 20 -sampleschema true -emconfiguration NONE \ -continueonnonfatalerrors false Na máquina nerv11, coloque o banco BI em modo ARCHIVELOG. export ORACLE_SID=BI SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA'; SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10G; SQL> ALTER DATABASE FORCE LOGGING; SQL> ALTER DATABASE OPEN; 71

Lab 11.2: Golden Gate Unidirecional Na máquina nerv01, instale o Golden Gate. $ cd /home/oracle $ unzip 121200_fbo_ggs_Linux_x64_shiphome.zip $ cd /home/oracle/fbo_ggs_linux_x64_shiphome/disk1/ $./runinstaller -silent -responsefile /home/oracle/ogg_nerv01.rsp Na máquina nerv11, instale o Golden Gate. $ cd /home/oracle $ unzip 121200_fbo_ggs_Linux_x64_shiphome.zip $ cd /home/ora5cle/fbo_ggs_linux_x64_shiphome/disk1/ $./runinstaller -silent -responsefile /home/oracle/ogg_nerv11.rsp Na máquina nerv01, verifique se o MANAGER está em funcionamento. cd /u01/shared_ogg/rac01 $./ggsci GGSCI> info all Na máquina nerv11, verifique se o MANAGER está em funcionamento. cd /u01/app/oracle/product/11.2.0.4/ogg $./ggsci GGSCI> info all 72

Lab 11.3: Golden Gate Unidirecional Na máquina nerv01, habilite os pré-requisitos do Golden Gate. SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE; SQL> ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE; $GRID_HOME/bin/srvctl stop database -d ORCL; $GRID_HOME/bin/srvctl start database -d ORCL Na máquina nerv01, crie o usuário para o Golden Gate. cd /u01/shared_ogg/rac01/ $ORACLE_HOME/bin/sqlplus / AS SYSDBA SQL> CREATE TABLESPACE OGG; SQL> CREATE USER OGG IDENTIFIED BY Nerv2014 DEFAULT TABLESPACE OGG TEMPORARY TABLESPACE TEMP; SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO OGG; SQL> GRANT EXECUTE ON UTL_FILE TO OGG; @marker_setup.sql OGG <enter> @ddl_setup.sql OGG <enter> @role_setup.sql OGG <enter> @ddl_enable.sql 73

Lab 11.4: Golden Gate Unidirecional Na máquina nerv11, habilite os pré-requisitos do Golden Gate. SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE; SQL> ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE; $GRID_HOME/bin/srvctl stop database -d BI; $GRID_HOME/bin/srvctl start database -d BI Na máquina nerv11, crie o usuário para o Golden Gate. cd /u01/app/oracle/product/11.2.0.4/ogg export ORACLE_SID=BI $ORACLE_HOME/bin/sqlplus / AS SYSDBA SQL> CREATE TABLESPACE OGG; SQL> CREATE USER OGG IDENTIFIED BY Nerv2014 DEFAULT TABLESPACE OGG TEMPORARY TABLESPACE TEMP; SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO OGG; SQL> GRANT EXECUTE ON UTL_FILE TO OGG; @marker_setup.sql OGG <enter> @ddl_setup.sql OGG <enter> @role_setup.sql OGG <enter> @ddl_enable.sql 74

Lab 11.5: Golden Gate Unidirecional Na máquina nerv01, adicione o processo EXTRACT. GGSCI> add extract ext1, tranlog, THREADS 2, begin now GGSCI> add exttrail /u01/app/oracle/product/11.2.0.4/ogg/dirdat/lt, extract ext1 Na máquina nerv01, edite o arquivo de parâmetros do processo EXTRACT. GGSCI> edit params ext1 extract ext1 userid OGG@ORCL, password Nerv2014 rmthost nerv11, mgrport 7809 rmttrail /u01/app/oracle/product/11.2.0.4/ogg/dirdat/lt TRANLOGOPTIONS EXCLUDEUSER OGG ASMUSER SYS@ASM, ASMPASSWORD Nerv2014 ddl include mapped objname SCOTT.*; table SCOTT.*; 75

Lab 11.6: Golden Gate Unidirecional Na máquina nerv11, edite o arquivo de parâmetros GLOBAL. GGSCI> edit params./global GGSCHEMA OGG CHECKPOINTTABLE OGG.checkpoint Na máquina nerv11, crie a tabela de CHECKPOINT. GGSCI> dblogin userid OGG Nerv2014 <enter> GGSCI> add checkpointtable OGG.checkpoint Na máquina nerv11, adicione o processo REPLICAT. GGSCI> add replicat rep1, exttrail /u01/app/oracle/product/11.2.0.4/ogg/dirdat/lt, checkpointtable OGG.checkpoint Na máquinas nerv11, edite o arquivo de parâmetros do processo REPLICAT. GGSCI> edit params rep1 replicat rep1 ASSUMETARGETDEFS userid OGG@BI, password Nerv2014 discardfile /u01/app/oracle/product/11.2.0.4/ogg/dircrd/rep1_discard.txt, append, megabytes 10 DDL map SCOTT.*, target SCOTT.*; 76

Lab 11.7: Golden Gate Unidirecional Nas máquinas nerv01, nerv02 e nerv11, adicione o ASM ao tnsnames.ora do ORACLE_HOME. ASM = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nerv01.localdomain)(port = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = +ASM) ) ) Nas máquinas nerv01 e nerv11, habilite o usuário SCOTT. SQL> ALTER USER SCOTT IDENTIFIED BY TIGER ACCOUNT UNLOCK; 77

Lab 11.8: Golden Gate Unidirecional Na máquina nerv01, inicie o processo EXTRACT. GGSCI> info all GGSCI> start extract ext1 GGSCI> info all Na máquina nerv11, inicie o processo REPLICAT. GGSCI> info all GGSCI> start replicat rep1 GGSCI> info all Na máquina nerv01, acompanhe o log de erros. $ tail -f /u01/shared_ogg/rac01/ggserr.log Na máquina nerv11, acompanhe o log de erros. $ tail -f /u01/app/oracle/product/11.2.0.4/ogg/ggserr.log Teste a replicação de dados do usuário SCOTT entre as máquinas nerv01 e nerv11. Teste a replicação de dados do usuário SCOTT entre as máquinas nerv02 e nerv11. 78

Lab 12 Golden Gate Bidirecional Hands On! 79 79

Lab 12.1: Golden Gate Bidirecional Na máquina nerv11, verifique se o MANAGER e o REPLICAT estão em funcionamento. cd /u01/app/oracle/product/11.2.0.4/ogg $./ggsci GGSCI> info all Na máquina nerv11, adicione o processo EXTRACT. GGSCI> add extract ext2, tranlog, THREADS 1, begin now GGSCI> add exttrail /u01/shared_ogg/rac01/dirdat/lt, extract ext2 Na máquina nerv11, edite o arquivo de parâmetros do processo EXTRACT. GGSCI> edit params ext2 extract ext2 userid OGG@BI, password Nerv2014 rmthost nerv01-vip, mgrport 7809 TRANLOGOPTIONS EXCLUDEUSER OGG ASMUSER SYS@ASM, ASMPASSWORD Nerv2014 rmttrail /u01/shared_ogg/rac01/dirdat/lt ddl include mapped objname SCOTT.*; table SCOTT.*; 80

Lab 12.2: Golden Gate Bidirecional Na máquina nerv01, edite o arquivo de parâmetros GLOBAL. GGSCI> edit params./global GGSCHEMA OGG CHECKPOINTTABLE OGG.checkpoint Na máquina nerv01, crie a tabela de CHECKPOINT. GGSCI> dblogin userid OGG Nerv2014 <enter> GGSCI> add checkpointtable OGG.checkpoint Na máquina nerv01, adicione o processo REPLICAT. GGSCI> add replicat rep2, exttrail /u01/shared_ogg/rac01/dirdat/lt, checkpointtable OGG.checkpoint Na máquinas nerv01, edite o arquivo de parâmetros do processo REPLICAT. GGSCI> edit params rep2 replicat rep2 ASSUMETARGETDEFS userid OGG@ORCL, password Nerv2014 discardfile /u01/shared_ogg/rac01/dircrd/rep1_discard.txt, append, megabytes 10 DDL map SCOTT.*, target SCOTT.*; 81

Lab 12.3: Golden Gate Bidirecional Na máquina nerv11, inicie o processo EXTRACT. GGSCI> info all GGSCI> start extract ext2 GGSCI> info all Na máquina nerv01, inicie o processo REPLICAT. GGSCI> info all GGSCI> start replicat rep2 GGSCI> info all Na máquina nerv01, acompanhe o log de erros. $ tail -f /u01/shared_ogg/rac01/ggserr.log Na máquina nerv11, acompanhe o log de erros. $ tail -f /u01/app/oracle/product/11.2.0.4/ogg/ggserr.log Teste a replicação de dados do usuário SCOTT entre as máquinas nerv01 e nerv11. Teste a replicação de dados do usuário SCOTT entre as máquinas nerv02 e nerv11. Teste a replicação de dados do usuário SCOTT entre as máquinas nerv11 e nerv01. 82

Lab 13 Golden Gate High Availability Hands On! 83 83

Lab 13.1: Golden Gate HA Na máquina nerv01, crie um VIP e um Resource para o Golden Gate. # /u01/app/11.2.0.4/grid/bin/appvipcfg create -network=1 -ip=192.168.0.141 -vipname=rac01-oggvip -user=root # /u01/app/11.2.0.4/grid/bin/crsctl start resource rac01-ogg-vip -n nerv01 # vi /u01/shared_ogg/rac01/ogg_action.sh # chmod +x /u01/shared_ogg/rac01/ogg_action.sh # chown oracle:oinstall /u01/shared_ogg/rac01/ogg_action.sh # /u01/app/11.2.0.4/grid/bin/crsctl add resource ogg -type cluster_resource -attr "ACTION_SCRIPT=/u01/shared_ogg/rac01/ogg_action.sh, CHECK_INTERVAL=30, START_DEPENDENCIES='hard(rac01-ogg-vip,ora.orcl.db) pullup(rac01-ogg-vip)', STOP_DEPENDENCIES='hard(rac01-ogg-vip)'" # /u01/app/11.2.0.4/grid/bin/crsctl setperm resource rac01-ogg-vip -u user:oracle:r-x # /u01/app/11.2.0.4/grid/bin/crsctl setperm resource ogg -o oracle 84 84

Lab 13.2: Golden Gate HA Na máquina nerv01, verifique e inicie o Resource do Golden Gate. $ $GRID_HOME/bin/crsctl status res -t $ $GRID_HOME/bin/crsctl stop res ogg $ $GRID_HOME/bin/crsctl status res -t $ $GRID_HOME/bin/crsctl start res ogg Reinicie a máquina nerv01, e verifique se o Golden Gate é iniciado na máquina nerv02. 85 85

Lab 14 RAC Extended Hands On! 86 86

Lab 14.0: RAC Extended Na máquina nerv01, desabilite a replicação via Data Guard. DGMGRL> DISABLE FAST_START FAILOVER; DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXPERFORMANCE; DGMGRL> REMOVE CONFIGURATION; SQL> ALTER SYSTEM SET DG_BROKER_START=FALSE; Na máquina nerv01, desabilite a replicação via Golden Gate. # /u01/app/11.2.0.4/grid/bin/crsctl stop resource ogg # /u01/app/11.2.0.4/grid/bin/crsctl delete resource ogg # /u01/app/11.2.0.4/grid/bin/crsctl stop resource rac01-ogg-vip # /u01/app/11.2.0.4/grid/bin/appvipcfg delete -vipname=rac01-ogg-vip 87 87

Lab 14.1: RAC Extended Na máquina nerv11, execute novamente o Lab 1 e 2. Na máquina nerv10, apague o conteúdo dos discos iscsi. # dd if=/dev/zero of=/dev/sda5 bs=512 count=10000 Na máquina nerv09, altere o Servidor iscsi para permitir acesso aos discos para a máquina nerv11. # cat /etc/tgt/targets.conf <target iqn.2010-10.com.nervinformatica:storage.asm01-01> backing-store /dev/sda5 initiator-address 192.168.0.101 initiator-address 192.168.0.102 initiator-address 192.168.0.121 </target>... # service tgtd restart Também na máquina nerv10, altere o Servidor iscsi para permitir acesso aos discos para as máquinas nerv01 e nerv02. 88 88

Lab 14.2: RAC Extended Nas máquinas nerv01, nerv02 e nerv11, verifique os Discos exportados no Storage. # iscsiadm -m discovery -t sendtargets -p 192.168.0.202 # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm11-01 -p 192.168.0.202 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm11-02 -p 192.168.0.202 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm11-03 -p 192.168.0.202 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm11-04 -p 192.168.0.202 -l # iscsiadm -m discovery -t sendtargets -p 192.168.0.201 # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-01 -p 192.168.0.201 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-02 -p 192.168.0.201 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-03 -p 192.168.0.201 -l # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-04 -p 192.168.0.201 -l Nas máquinas nerv01, nerv02 e nerv11, adicione os novos discos no arquivo /etc/iscsi/initiatorname.iscsi.... InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm11-01 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm11-02 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm11-03 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm11-04 89 89

Lab 14.3: RAC Extended Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos foram configurados localmente. # fdisk -l Na máquina nerv01, particione os novos discos. # fdisk /dev/sdf (e sdg, sdh, sdi) n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> 90 90

Lab 14.4: RAC Extended Nas máquinas nerv02 e nerv11, execute a detecção dos novos discos. # partprobe /dev/sdb # partprobe /dev/sdc # partprobe /dev/sdd # partprobe /dev/sde # partprobe /dev/sdf # partprobe /dev/sdg # partprobe /dev/sdh # partprobe /dev/sdi Na máquinas nerv11, configure a ASMLib. # /etc/init.d/oracleasm configure oracle <enter> oinstall <enter> y <enter> y <enter> # /etc/init.d/oracleasm status 91 91

Lab 14.5: RAC Extended Na máquina nerv01, crie os novos discos do ASM. # /etc/init.d/oracleasm createdisk DISK04 /dev/sdf1 # /etc/init.d/oracleasm createdisk DISK05 /dev/sdg1 # /etc/init.d/oracleasm createdisk DISK06 /dev/sdh1 # /etc/init.d/oracleasm createdisk DISK07 /dev/sdi1 Nas máquinas nerv02 e nerv11, execute a detecção dos discos criados. # /etc/init.d/oracleasm scandisks Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos estão corretos. # /etc/init.d/oracleasm listdisks # /etc/init.d/oracleasm querydisk -v -p DISK04 # /etc/init.d/oracleasm querydisk -v -p DISK05 # /etc/init.d/oracleasm querydisk -v -p DISK06 # /etc/init.d/oracleasm querydisk -v -p DISK07 Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos estão corretos. # ls -lh /dev/oracleasm/disks/ brw-rw----. 1 oracle oinstall 8, 17 Mar 3 08:40 DISK00 brw-rw----. 1 oracle oinstall 8, 33 Mar 3 08:40 DISK01... 92 92

Lab 14.6: RAC Extended Na máquina nerv11, adicionar no arquivo /etc/fstab as TRÊS linhas abaixo. nerv09:/shared_config01 /u01/shared_config01 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 nerv09:/shared_config02 /u01/shared_config02 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 nerv09:/shared_config03 /u01/shared_config03 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 Na máquinas nerv11, executar: # mount /u01/shared_config01 # mount /u01/shared_config02 # mount /u01/shared_config03 93 93

Lab 14.7: RAC Extended Nas máquinas nerv01, nerv02 e nerv11, remova a pasta /home/oracle/.ssh. $ rm -rf.ssh Na máquina nerv01, configure o SSH sem senha. [oracle@nerv01 ~]$ ssh-keygen -t rsa <enter> <enter> <enter> [oracle@nerv01 ~]$ ssh oracle@nerv02 mkdir -p.ssh [oracle@nerv01 ~]$ ssh oracle@nerv11 mkdir -p.ssh [oracle@nerv01 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv01 'cat >>.ssh/authorized_keys' [oracle@nerv01 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv02 'cat >>.ssh/authorized_keys' [oracle@nerv01 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv11 'cat >>.ssh/authorized_keys' 94 94

Lab 14.8: RAC Extended Na máquina nerv02, configure o SSH sem senha. [oracle@nerv02 ~]$ ssh-keygen -t rsa <enter> <enter> <enter> [oracle@nerv02 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv01 'cat >>.ssh/authorized_keys' [oracle@nerv02 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv02 'cat >>.ssh/authorized_keys' [oracle@nerv02 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv11 'cat >>.ssh/authorized_keys' 95 95

Lab 14.9: RAC Extended Na máquina nerv11, configure o SSH sem senha. [oracle@nerv11 ~]$ ssh-keygen -t rsa <enter> <enter> <enter> [oracle@nerv11 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv01 'cat >>.ssh/authorized_keys' [oracle@nerv11 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv02 'cat >>.ssh/authorized_keys' [oracle@nerv11 ~]$ cat.ssh/id_rsa.pub ssh oracle@nerv11 'cat >>.ssh/authorized_keys' 96 96

Lab 14.10: RAC Extended Na máquina nerv01, execute a instalação do Grid na máquina nerv11. $ cd $GRID_HOME/oui/bin $./addnode.sh -silent CLUSTER_NEW_NODES={nerv11} CLUSTER_NEW_VIRTUAL_HOSTNAMES={nerv11-vip} Na máquina nerv11, com o usuário root, execute os seguintes scripts. # /u01/app/orainventory/orainstroot.sh # /u01/app/11.2.0.4/grid/root.sh Na máquina nerv01, execute instalação do Oracle na máquina nerv11. $ cd $ORACLE_HOME/oui/bin $./addnode.sh -silent "CLUSTER_NEW_NODES={nerv11}" Na máquina nerv11, com o usuário root, execute o script abaixo. # /u01/app/oracle/product/11.2.0.4/db_1/root.sh Na máquina nerv01, execute a adição da instância. $ $GRID_HOME/bin/srvctl add instance -d ORCL -i ORCL3 -n nerv11 97 97

Lab 14.11: RAC Extended Na máquina nerv01, conclua a adição do nó. SQL> ALTER SYSTEM SET INSTANCE_NUMBER=3 SID='ORCL3' SCOPE=SPFILE; SQL> ALTER DATABASE ADD LOGFILE THREAD 3; SQL> ALTER DATABASE ADD LOGFILE THREAD 3; SQL> CREATE UNDO TABLESPACE UNDOTBS3; SQL> ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS3 SID='ORCL3' SCOPE=SPFILE; $ $GRID_HOME/bin/srvctl start instance -d ORCL -i ORCL3 98 98

Lab 14.12: RAC Extended Na máquina nerv01, faça a preparação para a criação dos novos FAILGROUPs. $ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 $ export ORACLE_SID=ORCL1 RMAN> DELETE NOPROMPT ARCHIVELOG ALL; $GRID_HOME/bin/srvctl stop database -d ORCL $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM1 SQL> ALTER SYSTEM SET ASM_POWER_LIMIT = 11; SQL> ALTER DISKGROUP DATA REBALANCE POWER 11; SQL> ALTER DISKGROUP FRA REBALANCE POWER 11; 99 99

Lab 14.13: RAC Extended Na máquina nerv01, crie os novos FAILGROUPs. SQL> SELECT GROUP_NUMBER, PATH, NAME, FAILGROUP FROM V$ASM_DISK ORDER BY 1,2; SQL> ALTER DISKGROUP DATA ADD FAILGROUP FAILGROUPB DISK '/dev/oracleasm/disks/disk04' NAME DATA_0004; SQL> ALTER DISKGROUP DATA ADD FAILGROUP FAILGROUPA DISK '/dev/oracleasm/disks/disk05' NAME DATA_0005; SQL> ALTER DISKGROUP DATA DROP DISK DATA_0000; SQL> ALTER DISKGROUP DATA DROP DISK DATA_0001; SQL> SELECT * FROM V$ASM_OPERATION; SQL> ALTER DISKGROUP DATA ADD FAILGROUP FAILGROUPA DISK '/dev/oracleasm/disks/disk00' NAME DATA_0000; SQL> ALTER DISKGROUP DATA ADD FAILGROUP FAILGROUPA DISK '/dev/oracleasm/disks/disk01' NAME DATA_0001; SQL> ALTER DISKGROUP DATA DROP DISK DATA_0005; SQL> ALTER DISKGROUP DATA ADD FAILGROUP FAILGROUPB DISK '/dev/oracleasm/disks/disk05' NAME DATA_0005; SQL> SELECT GROUP_NUMBER, PATH, NAME, FAILGROUP FROM V$ASM_DISK ORDER BY 1,2; 100

Lab 14.14: RAC Extended Na máquina nerv01, crie os novos FAILGROUPs. SQL> SELECT GROUP_NUMBER, PATH, NAME, FAILGROUP FROM V$ASM_DISK ORDER BY 1,2; SQL> ALTER DISKGROUP FRA ADD FAILGROUP FAILGROUPB DISK '/dev/oracleasm/disks/disk06' NAME DATA_0006; SQL> ALTER DISKGROUP FRA ADD FAILGROUP FAILGROUPA DISK '/dev/oracleasm/disks/disk07' NAME DATA_0007; SQL> ALTER DISKGROUP FRA DROP DISK DATA_0002; SQL> ALTER DISKGROUP FRA DROP DISK DATA_0003; SQL> SELECT * FROM V$ASM_OPERATION; SQL> ALTER DISKGROUP FRA ADD FAILGROUP FAILGROUPA DISK '/dev/oracleasm/disks/disk02' NAME DATA_0002; SQL> ALTER DISKGROUP FRA ADD FAILGROUP FAILGROUPA DISK '/dev/oracleasm/disks/disk03' NAME DATA_0003; SQL> ALTER DISKGROUP FRA DROP DISK DATA_0007; SQL> ALTER DISKGROUP FRA ADD FAILGROUP FAILGROUPB DISK '/dev/oracleasm/disks/disk07' NAME DATA_0007; SQL> SELECT GROUP_NUMBER, PATH, NAME, FAILGROUP FROM V$ASM_DISK ORDER BY 1,2; 101

Lab 14.15: RAC Extended Na máquina nerv01, selecione os FAILGROUPs preferidos para leituras. SQL> ALTER SYSTEM SET ASM_PREFERRED_READ_FAILURE_GROUPS = 'DATA.FAILGROUPA' SCOPE=BOTH SID='+ASM1'; SQL> ALTER SYSTEM SET ASM_PREFERRED_READ_FAILURE_GROUPS = 'DATA.FAILGROUPA' SCOPE=BOTH SID='+ASM2'; SQL> ALTER SYSTEM SET ASM_PREFERRED_READ_FAILURE_GROUPS = 'DATA.FAILGROUPB' SCOPE=BOTH SID='+ASM3'; 102

Lab 15 RAC Extended Quorum Hands On! 103 103

Lab 15.1: RAC Extended Quorum Na máquina nerv15, crie 1 diretório. # mkdir /shared_config Nas máquinas nerv15, adicionar no arquivo /etc/exports: /shared_config *(rw,sync,no_wdelay,insecure_locks,no_root_squash) Nas máquinas nerv15, iniciar o NFS Server: # service nfs start # chkconfig nfs on 104 104

Lab 15.2: RAC Extended Quorum Nas máquinas nerv01, nerv02 e nerv11, adicionar no arquivo /etc/fstab a linha abaixo. nerv15:/shared_config /u01/shared_config15 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0 Nas máquinas nerv01, nerv02 e nerv11, executar: # mkdir /u01/shared_config15 # mount /u01/shared_config15 Na máquina nerv01, executar: # mkdir /u01/shared_config15/rac01 # chown -R oracle:oinstall /u01/shared_config15/rac01 105 105

Lab 15.3: RAC Extended Quorum Nas máquinas nerv09 e nerv10, crie 1 partição de 1GB, sem formatar. Nas máquinas nerv09 e nerv10, adicione o disco ao iscsi server. # cat /etc/tgt/targets.conf <target iqn.2010-10.com.nervinformatica:storage.asm01-05> backing-store /dev/sda21 initiator-address 192.168.0.101 Initiator-address 192.168.0.102 initiator-address 192.168.0.121... # service tgtd restart 106 106

Lab 15.4: RAC Extended Quorum Nas máquinas nerv01, nerv02 e nerv11, verifique os Discos exportados no Storage. # iscsiadm -m discovery -t sendtargets -p 192.168.0.201 # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-05 -p 192.168.0.201 -l # iscsiadm -m discovery -t sendtargets -p 192.168.0.202 # iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm11-05 -p 192.168.0.202 -l Nas máquinas nerv01, nerv02 e nerv11, adicione o novo disco no arquivo /etc/iscsi/initiatorname.iscsi. InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-05 InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm11-05 107 107

Lab 15.5: RAC Extended Quorum Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos foram configurados localmente. # fdisk -l Nas máquinas nerv01, particione os novos discos. # fdisk /dev/sdj n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> # fdisk /dev/sdk n <enter> p <enter> 1 <enter> <enter> <enter> w <enter> 108 108

Lab 15.6: RAC Extended Quorum Nas máquinas nerv02 e nerv11, execute a detecção dos novos discos. # partprobe /dev/sdj # partprobe /dev/sdk e os discos do ASM. # /etc/init.d/oracleasm createdisk DISK09 /dev/sdj1 # /etc/init.d/oracleasm createdisk DISK10 /dev/sdk1 Nas máquinas nerv02 e nerv11, execute a detecção dos discos criados. # /etc/init.d/oracleasm scandisks 109 109

Lab 15.7: RAC Extended Quorum Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos estão corretos. # /etc/init.d/oracleasm listdisks # /etc/init.d/oracleasm querydisk -v -p DISK09 # /etc/init.d/oracleasm querydisk -v -p DISK10 Nas máquinas nerv01, nerv02 e nerv11, verifique se os discos estão corretos. # ls -lh /dev/oracleasm/disks/ brw-rw----. 1 oracle oinstall 8, 17 Mar 3 08:40 DISK00 brw-rw----. 1 oracle oinstall 8, 33 Mar 3 08:40 DISK01 brw-rw----. 1 oracle oinstall 8, 49 Mar 3 08:40 DISK02 brw-rw----. 1 oracle oinstall 8, 65 Mar 3 08:40 DISK03 brw-rw----. 1 oracle oinstall 8, 17 Mar 3 08:40 DISK05 brw-rw----. 1 oracle oinstall 8, 33 Mar 3 08:40 DISK06 brw-rw----. 1 oracle oinstall 8, 49 Mar 3 08:40 DISK07 brw-rw----. 1 oracle oinstall 8, 65 Mar 3 08:40 DISK08 brw-rw----. 1 oracle oinstall 8, 65 Mar 3 08:40 DISK09 brw-rw----. 1 oracle oinstall 8, 65 Mar 3 08:40 DISK10 110 110

Lab 15.8: RAC Extended Quorum Na máquina nerv01, crie o FAILGROUP para o Voting Disk. $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM1 SQL> CREATE DISKGROUP CONFIG NORMAL REDUNDANCY FAILGROUP FG1 DISK '/dev/oracleasm/disks/disk09' NAME DATA0009 FAILGROUP FG2 DISK '/dev/oracleasm/disks/disk10' NAME DATA0010 ATTRIBUTE 'compatible.asm' = '11.2.0.0'; Na máquina nerv01, crie um arquivo para o Voting Disk. # dd if=/dev/zero of=/u01/shared_config15/rac01/asm01 bs=10m count=58 Na máquina nerv01, altere a permissão do disco. # chown -R oracle:oinstall /u01/shared_config15/rac01/ Na máquina nerv01, altere a localização de discos. $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM1 SQL> ALTER SYSTEM SET asm_diskstring='/dev/oracleasm/disks/*', '/u01/shared_config15/rac01/*' SCOPE=BOTH SID='*'; 111 111

Lab 15.9: RAC Extended Quorum Na máquina nerv01, adicione o FAILGROUP de QUORUM. $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM1 SQL> ALTER DISKGROUP CONFIG ADD QUORUM FAILGROUP FG3 DISK '/u01/shared_config15/rac01/asm01'; Na máquina nerv01, habilitar o novo FAILGROUP para as outr máquinas. $GRID_HOME/bin/srvctl start diskgroup -g CONFIG -n nerv02 $GRID_HOME/bin/srvctl enable diskgroup -g CONFIG -n nerv02 $GRID_HOME/bin/srvctl start diskgroup -g CONFIG -n nerv11 $GRID_HOME/bin/srvctl enable diskgroup -g CONFIG -n nerv11 112 112

Lab 15.10 RAC Extended Quorum Na máquina nerv01, altere a localização do OCR para o novo DISKGROUP. # /u01/app/11.2.0.4/grid/bin/ocrcheck # /u01/app/11.2.0.4/grid/bin/ocrconfig -delete /u01/shared_config03/rac01/ocr3 # /u01/app/11.2.0.4/grid/bin/ocrconfig -delete /u01/shared_config02/rac01/ocr2 # /u01/app/11.2.0.4/grid/bin/ocrconfig -add +CONFIG # /u01/app/11.2.0.4/grid/bin/ocrcheck # /u01/app/11.2.0.4/grid/bin/ocrconfig -delete /u01/shared_config01/rac01/ocr1 # /u01/app/11.2.0.4/grid/bin/ocrcheck Na máquina nerv01, altere a localização do Voting Disk para o novo DISKGROUP. # /u01/app/11.2.0.4/grid/bin/crsctl query css votedisk # /u01/app/11.2.0.4/grid/bin/crsctl replace votedisk +CONFIG # /u01/app/11.2.0.4/grid/bin/crsctl query css votedisk 113 113

Lab 15.11: RAC Extended Quorum Na máquina nerv01, configure o tempo permitido de DOWNTIME. $ export ORACLE_HOME=$GRID_HOME $ export ORACLE_SID=+ASM1 SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.asm' = '11.2'; SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'compatible.asm' = '11.2'; SQL> ALTER DISKGROUP CONFIG SET ATTRIBUTE 'compatible.asm' = '11.2'; SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '11.2'; SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'compatible.rdbms' = '11.2'; SQL> ALTER DISKGROUP CONFIG SET ATTRIBUTE 'compatible.rdbms' = '11.2'; select * from v$asm_operation; SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'disk_repair_time' = '30m'; SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'disk_repair_time' = '30m'; SQL> ALTER DISKGROUP CONFIG SET ATTRIBUTE 'disk_repair_time' = '30m'; Desligue o Storage de Produção, e teste o funcionamento do Site Produção e DR. 114 114