Professional Documents
Culture Documents
1 1
Oracle RAC: Conceitos
2 2
Por que usar o RAC?
●
Disponibilidade
●
Escalabilidade
●
Custo Total de Propriedade (TCO)
3 3
Por que não usar o RAC?
●
Custo de Equipamentos
●
Custo de Licenças
●
Custo de Conhecimento
●
Complexidade
●
Escalabilidade
4 4
Oracle RAC x Single Instance
●
1 Database x N Instances
• + Background Processes
• + daemons
• OCR
• Voting Disk
5 5
Evolução Oracle RAC
Oracle 6.0.35: VAX / VMS
Oracle 7: PCM
Oracle 8i: Cache Fusion I
Oracle 9i: Cache Fusion II, Oracle Cluster Management Services
Oracle 10gR1:
• Oracle Cluster Management Services => Cluster Ready Services (CRS)
• ASM - Automatic Storage management
• FAN - Fast Application Notification
• Integração com Database Services
• AWR, ADDM, ASH, Scheduler, Enterprise Manager
Oracle 10gR2: CRS => Oracle Clusterware. New Features incluem: cluvfy, asmcmd.
Oracle 11gR1: Apenas 7 New Features.
Oracle 11gR2: CRS => Grid Infrastrucutre. 32 New Features.
Oracle 12cR1: 33 New Features.
6 6
RAC 11gR1 New Features
●
Enhanced Oracle RAC Monitoring and Diagnostics in Enterprise Manager
●
Enhanced Oracle Real Application Clusters Configuration Assistants
●
OCI Runtime Connection Load Balancing
●
Parallel Execution for Oracle Real Application Clusters
●
Support for Distributed Transactions in an Oracle RAC Environment
●
Enhanced Oracle RAC Switchover Support for Logical Standby Databases
●
Enhanced Oracle RAC Monitoring and Diagnostics in Enterprise Manager
7 7
RAC 11gR2 New Features
●
Configuration Assistants Support New Oracle RAC Features
●
Enhanced Cluster Verification Utility
●
Integration of Cluster Verification Utility and Oracle Universal Installer
●
Cluster Time Service
●
Oracle Cluster Registry (OCR) Enhancements
●
Grid Plug and Play (GPnP)
●
Oracle Restart
●
Policy-Based Cluster and Capacity Management
●
Improved Clusterware Resource Modeling
●
Role-Separated Management
●
Agent Development Framework
●
Zero Downtime Patching for Oracle Clusterware and Oracle RAC
●
Enterprise Manager-Based Clusterware Resource Management
●
Enterprise Manager Provisioning for Oracle Clusterware and Oracle Real Application
Clusters
●
Enterprise Manager Support for Grid Plug and Play
●
Enterprise Manager Support for Oracle Restart
●
Configuration Assistant Support for Removing Oracle RAC Installations
8 8
RAC 11gR2 New Features
●
Oracle Universal Installer Support for Removing Oracle RAC Installations
●
Improved Deinstallation Support With Oracle Universal Installer
●
Downgrading Database Configured With DBControl
●
Oracle Restart Integration with Oracle Universal Installer
●
Out-of-Place Oracle Clusterware Upgrade
●
OUI Support for Out-of-Place Oracle Clusterware Upgrade
●
Server Control (SRVCTL) Enhancements
●
Server Control (SRVCTL) Enhancements to Support Grid Plug and Play
●
SRVCTL Support for Single-Instance Database in a Cluster
●
Universal Connection Pool (UCP) Integration with Oracle Data Guard
●
UCP Integration With Oracle Real Application Clusters
●
Universal Connection Pool (UCP) for JDBC
●
Java API for Oracle RAC FAN High Availability Events
●
EMCA Supports New Oracle RAC Configuration for Enterprise Manager
●
Global Oracle RAC ASH Report + ADDM Backwards Compatibility
9 9
RAC 12cR1 New Features
●
Oracle Flex Cluster
●
SRVCTL Support for Oracle Flex Cluster Implementations
●
Policy-Based Cluster Management and Administration
●
What-If Command Evaluation
●
Shared Grid Naming Service (GNS)
●
Online Resource Attribute Modification
●
Grid Infrastructure Script Automation for Installation and Upgrade
●
Multipurpose Cluster Installation Support
●
Support for IPv6 Based IP Addresses for Oracle RAC Client Connectivity
●
Message Forwarding on Oracle RAC
●
Sharded Queues for Performance and Scalability
●
Oracle Grid Infrastructure Rolling Migration for One-Off Patches
10 10
RAC 12cR1 New Features
●
Oracle Flex ASM
●
Oracle ASM Shared Password File in a Disk Group
●
Oracle ASM Rebalance Enhancements
●
Oracle ASM Disk Resync Enhancements
●
Oracle ASM chown, chgrp, chmod and Open Files Support
●
Oracle ASM Support ALTER DISKGROUP REPLACE USER
●
Oracle ASM File Access Control on Windows
●
Oracle ASM Disk Scrubbing
●
Oracle Cluster Registry Backup in ASM Disk Group Support
●
Enterprise Manager Support for Oracle ASM Features
●
Oracle ACFS Support for All Oracle Database Files
●
Oracle ACFS and Highly Available NFS
●
Oracle ACFS Snapshots Enhancements
●
Oracle ACFS Replication Integration with Oracle ACFS Security and Encryption
●
Oracle ACFS Security and Encryption Features
●
Oracle ACFS File Tags for Grid Homes
●
Oracle ACFS Plug-in APIs
●
Oracle ACFS Replication and Tagging on AIX
●
Oracle ACFS Replication and Tagging on Solaris
●
Oracle Audit Vault Support for Oracle ACFS Security and Encryption
●
Enterprise Manager Support for Oracle ACFS New Features
11 11
Hardware
12 12
Hardware
13 13
Sistema Operacional
14 14
Sistemas Operacionais homologados
Linux x64
●
Oracle Linux 7 / Red Hat Enterprise Linux 7
●
Oracle Linux 6 / Red Hat Enterprise Linux 6
●
Oracle Linux 5 / Red Hat Enterprise Linux 5
●
SUSE Linux Enterprise Server 11
Linux on System z
●
Red Hat Enterprise Linux 6
●
Red Hat Enterprise Linux 5
●
SUSE 11
Unix
●
Oracle Solaris 11 (SPARC) / Oracle Solaris 10 (SPARC)
●
Oracle Solaris 11 (x64) / Oracle Solaris 10 (x64)
●
HP-UX 11iV3
●
AIX 7.1 / AIX 6.1
Windows (x64)
• Windows Server 2008 SP2 - Standard, Enterprise, DataCenter, Web.
• Windows Server 2008 R2 - Foundation, Standard, Enterprise, DataCenter, Web.
• Windows Server 2012 - Standard, Datacenter, Essentials, Foundation.
• Windows Server 2012 R2 - Standard, Datacenter, Essentials, Foundation
15 15
Lab 1 – Instalação OEL 6
Hands On !
16 16
Lab 1.1: Instalação OEL 6
Nas máquinas nerv01 e nerv02, instale o OEL.
17 17
Lab 1.2: Instalação OEL 6
- 12a tela: Crie as partições como abaixo, e em seguida, Next:
sda1 1024 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
18 1818
Lab 2 – Configuração DNS
Hands On !
19 19
Lab 2.1: Instalação OEL 6
Na máquina nerv09, instale os pacotes necessários para o DNS.
# yum -y install bind bind-utils
zone "." in {
type hint;
file "/dev/null";
};
zone "localdomain." IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
20 20
Lab 2.2: Instalação OEL 6
Nas máquinas nerv09, deixe APENAS as seguintes linhas no arquivo
/var/named/localdomain.zone.
$TTL 86400
@ IN SOA localhost root.localhost (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS localhost
localhost IN A 127.0.0.1
nerv01 IN A 192.168.15.101
nerv02 IN A 192.168.15.102
nerv01-vip IN A 192.168.15.111
nerv02-vip IN A 192.168.15.112
rac01-scan IN A 192.168.15.151
rac01-scan IN A 192.168.15.152
rac01-scan IN A 192.168.15.153
21 21
Lab 2.3: Instalação OEL 6
Na máquina nerv09, deixe APENAS as seguintes linhas no arquivo
/var/named/15.168.192.in-addr.arpa.
$ORIGIN 0.168.192.in-addr.arpa.
$TTL 1H
@ IN SOA nerv09.localdomain. root.nerv09.localdomain. (
2
3H
1H
1W
1H )
0.168.192.in-addr.arpa. IN NS nerv09.localdomain.
22 22
Lab 2.4: Instalação OEL 6
Na máquina nerv09, inicie o DNS Server, e o habilite para o início automático.
# service named start
# chkconfig named on
23 23
Lab 3 – Configuração OEL 6
Hands On !
24 24
Lab 3.1 – Configuração OEL 6
Nas máquinas nerv01 e nerv02, configure as placas de rede pública e privada.
25 25
Lab 3.2 – Configuração OEL 6
Nas máquinas nerv01 e nerv02, atualize o sistema operacional e execute a instalação dos
pré-requisitos.
# service network restart
# yum -y update
# yum -y install oracle-rdbms-server-12cR1-preinstall
# yum -y install oracleasm-support
# yum -y install unzip wget iscsi-initiator-utils java-1.8.0-openjdk parted
# yum -y install unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686
# wget http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el6.x86_64.rpm
# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm
Nas máquinas nerv01 e nerv02, remova o DNS 8.8.8.8 da placa de rede eth0.
26 26
Lab 3.3 – Configuração OEL 6
Nas máquinas nerv01 e nerv02, ACRESCENTAR ao arquivo /etc/hosts:
# Public
192.168.15.101 nerv01.localdomain nerv01
192.168.15.102 nerv02.localdomain nerv02
# Private
192.168.1.101 nerv01-priv.localdomain nerv01-priv
192.168.1.102 nerv02-priv.localdomain nerv02-priv
# Virtual
192.168.15.111 nerv01-vip.localdomain nerv01-vip
192.168.15.112 nerv02-vip.localdomain nerv02-vip
# Storage
192.168.15.201 nerv09.localdomain nerv09
27 27
Lab 3.4 – Configuração OEL 6
Nas máquinas nerv01 e nerv02, 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/12.1.0.2/grid
# mkdir -p /u01/app/oracle/product/12.1.0.2/db_1
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
# passwd oracle (Coloque como senha do usuário oracle: Nerv2017)
28 28
Lab 3.5 – Configuração OEL 6
Nas máquinas nerv01 e nerv02, altere o SELinux de “enforcing” para
“permissive”.
# vi /etc/selinux/config
29 29
Lab 3.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/12.1.0.2/db_1
export GRID_HOME=/u01/app/12.1.0.2/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
30 30
Shared Storage
31 31
Opções de Shared Storage
32 32
Opções de Shared Storage
33 33
Lab 4 – Storage
Hands On !
34 34
Lab 4.1 – Storage
Na máquinas nerv09, crie 3 partições de 5GB, e 4 de 10GB.
35 35
Lab 4.2 – Storage (ASM)
Nas máquinas nerv01 e nerv02, ative o pacote iSCSI Initiator.
# chkconfig iscsid on
Nas máquinas nerv01 e nerv02, 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
InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-05
InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-06
InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-07
36 36
Lab 4.3 – Storage (ASM)
Nas máquinas nerv01 e nerv02 verifique se os discos foram configurados localmente.
# fdisk -l
# fdisk /dev/sdc
n <enter>
p <enter>
1 <enter>
<enter>
<enter>
w <enter>
...
37 37
Lab 4.4 – Storage (ASM)
Na máquina nerv02, 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
38 38
Lab 4.5 – Storage (ASM)
Nas máquinas nerv01 e nerv02, configure a ASMLib.
# /etc/init.d/oracleasm configure
oracle <enter>
asmadmin <enter>
y <enter>
y <enter>
# /etc/init.d/oracleasm status
39 39
Lab 4.6 – Storage (ASM)
Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.
# /etc/init.d/oracleasm listdisks
# /etc/init.d/oracleasm querydisk -v -p DISK01
# /etc/init.d/oracleasm querydisk -v -p DISK02
# /etc/init.d/oracleasm querydisk -v -p DISK03
# /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
40 40
Oracle Grid Infrastructure
41 41
Componentes
- Oracle Cluster Registry
- Voting Disk (Quorum Disk)
- Grid Infrastructure Management Repository (MGMTDB)
- VIPs e SCAN
- Utilitários: crsctl, srvctl
- Daemons: ohasd, crsd, evmd, ons, evmlogger, ologgerd, cssdmonitor, cssdagent,
ocssd, octssd, osysmond, mdnsd, gpnpd, gipcd, orarootagent, oraagent, scriptagent
42 42
Lab 5 - Grid Infraestructure
Hands On !
43 43
Lab 5.1 – Grid Infrastructure
Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador
do Grid Infrastructure.
$ cd /home/oracle
$ unzip -q linuxamd64_12102_grid_1of2.zip
$ unzip -q linuxamd64_12102_grid_2of2.zip
44 44
Lab 5.2 – Grid Infrastructure
45 45
Lab 5.3 – Grid Infrastructure
46 46
Lab 5.4 – Grid Infrastructure
47 47
Lab 5.5 – Grid Infrastructure
48 48
Lab 5.6 – Grid Infrastructure
49 49
Lab 5.7 – Grid Infrastructure
50 50
Lab 5.8 – Grid Infrastructure
51 51
Lab 5.9 – Grid Infrastructure
52 52
Lab 5.10 – Grid Infrastructure
53 53
Lab 5.11 – Grid Infrastructure
54 54
Lab 5.12 – Grid Infrastructure
55 55
Lab 5.13 – Grid Infrastructure
56 56
Lab 5.14 – Grid Infrastructure
57 57
Lab 5.15 – Grid Infrastructure
58 58
Lab 5.16 – Grid Infrastructure
59 59
Lab 5.17 – Grid Infrastructure
60 60
Lab 5.18 – Grid Infrastructure
61 61
Lab 5.19 – Grid Infrastructure
62 62
Lab 5.20 – Grid Infrastructure
63 63
Lab 5.21 – Grid Infrastructure
64 64
Lab 5.22 – Grid Infrastructure
65 65
Lab 5.23 – Grid Infrastructure
66 66
Lab 5.24 – Grid Infrastructure
67 67
Lab 5.26 – Grid Infrastructure
68 68
Lab 5.27 – Grid Infrastructure
69 69
Lab 5.28 – Grid Infrastructure
70 70
Lab 5.29 – Grid Infrastructure
71 71
Lab 5.30 – Grid Infrastructure
72 72
Lab 5.31 – Grid Infrastructure
73 73
Lab 6 – Oracle Database Software
Hands On !
74 74
Lab 6.1 – Oracle Database Software
Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador
do Oracle Database Software.
$ cd /home/oracle
$ unzip -q linuxamd64_12102_database_1of2.zip
$ unzip -q linuxamd64_12102_database_2of2.zip
$ cd database
$ ./runInstaller
75 75
Lab 6.2 – Oracle Database Software
76 76
Lab 6.3 – Oracle Database Software
77 77
Lab 6.4 – Oracle Database Software
78 78
Lab 6.5 – Oracle Database Software
79 79
Lab 6.6 – Oracle Database Software
80 80
Lab 6.7 – Oracle Database Software
81 81
Lab 6.8 – Oracle Database Software
82 82
Lab 6.9 – Oracle Database Software
83 83
Lab 6.10 – Oracle Database Software
84 84
Lab 6.11 – Oracle Database Software
85 85
Lab 6.12 – Oracle Database Software
86 86
Lab 6.13 – Oracle Database Software
87 87
Lab 6.14 – Oracle Database Software
88 88
Lab 6.17 – Oracle Database Software
89 89
Lab 6.18 – Oracle Database Software
90 90
Oracle Database
91 91
RAC Database
✔
Background Process
• ACMS: Atomic Controlfile to Memory Service
• GTX0-j: Global Transaction Process
• LMON: Global Enqueue Service Monitor
• LMD: Global Enqueue Service Daemon
• LMS: Global Cache Service Process
• LCK0: Instance Enqueue Process
• RMSn: Oracle RAC Management Processes
• RSMN: Remote Slave Monitor
✔
PFILE / SPFILE (1x)
✔
Control Files (1x)
✔
Online Redo Log Threads (x Nodes)
✔
UNDO Tablespaces / Datafiles (x Nodes)
✔
Datafiles (1x)
92 92
Lab 7.1 – Oracle Database
Para efetuar logon na Instance ASM1, use o SQLPlus.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ sqlplus / AS SYSASM
SQL> CREATE DISKGROUP DATA NORMAL REDUNDANCY DISK 'ORCL:DISK04',
'ORCL:DISK05';
SQL> CREATE DISKGROUP FRA NORMAL REDUNDANCY DISK 'ORCL:DISK06',
'ORCL:DISK07';
SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';
SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';
SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';
SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';
$ srvctl start diskgroup -g DATA -n nerv02
$ srvctl enable diskgroup -g DATA -n nerv02
$ srvctl start diskgroup -g FRA -n nerv02
$ srvctl enable diskgroup -g FRA -n nerv02
93 93
Lab 7.2 – Oracle Database
94 94
Lab 7.3 – Oracle Database
95 95
Lab 7.4 – Oracle Database
96 96
Lab 7.5 – Oracle Database
97 97
Lab 7.6 – Oracle Database
98 98
Lab 7.7 – Oracle Database
99 99
Lab 7.8 – Oracle Database
100 100
Lab 7.9 – Oracle Database
101 101
Lab 7.10 – Oracle Database
102 102
Lab 7.11 – Oracle Database
103 103
Lab 7.12 – Oracle Database
104 104
Lab 7.13 – Oracle Database
105 105
Lab 7.14 – Oracle Database
106 106
Lab 7.15 – Oracle Database
107 107
Lab 7.16 – Oracle Database
108 108
Lab 7.17 – Oracle Database
Para efetuar logon na Instance ASM1, use o SQLPlus.
$ export ORACLE_SID=+ASM1
$ sqlplus / as SYSDBA
Por que não funcionou?
109 109
Lab 7.18 – Oracle Database
Execute o asmcmd, e navegue pelos diretórios do Disk Group.
$ asmcmd -p
ASMCMD [+] > help
ASMCMD [+] > lsdg
110 110
Administração
111 111
Comandos depreciados no 11gR2
112 112
Comandos depreciados no 11gR2
113 113
Comandos depreciados no 11gR2
114 114
Comandos depreciados no 11gR2
115 115
Comandos depreciados no 11gR2
116 116
Comandos depreciados no 12cR1
117 117
Comandos depreciados no 12cR1
118 118
Comandos depreciados no 12cR1
119 119
Dificuldades
●
$GRID_HOME x $ORACLE_HOME
●
oracle X root
120 120
Binários do GRID_HOME
Adicionar $GRID_HOME/bin no $PATH, no .bash_profile
$ crsctl status res -t
OU
$ . oraenv
ORACLE_SID = [ORCL1] ? +ASM1 <enter>
OU
$ cd /u01/app/12.1.0.2/grid/bin/
./crsctl status res -t
OU
121 121
Daemons
122 122
Daemons
123 123
Daemons
124 124
Daemons
125 125
Cluster Startup
126 126
Logs
11gR2
$GRID_HOME/log/<node>/
$GRID_HOME/log/<node>/alert<node>.log
12cR1
$ORACLE_BASE/diag/crs/<node>/crs
$ORACLE_BASE/diag/crs/<node>/crs/trace/alert.log
127 127
LAB 8 – Daemons
Hands On !
128 128
Lab 8.1 – Daemons
Acompanhe a execução dos daemons via top.
129 129
Lab 8.2 – Daemons
Continue acompanhando os Alert Logs das duas máquinas.
130
Teste de Carga
131 131
Teste de Carga
Tipos
●
TPC-C: OLTP (Rede Varejista)
●
TPC-E: OLTP (Telefonia)
●
TPC-H: Data Warehouse
Ferramentas
●
Hammerora
●
Swingbench
132 132
Teste de Carga
133 133
LAB 9 – Teste de Carga
Hands On !
134 134
Lab 9.1 – Teste de Carga
Copie o swingbench para a máquina nerv01, como usuário oracle.
Descompacte o swingbench.zip.
$ cd /home/oracle
$ unzip -q swingbench261040.zip
$ cd swingbench/bin
135
srvctl
136 136
srvctl
●
A partir de qualquer Node, controla todos.
●
Deve ser utilizado com o usuário oracle ou com o owner do GRID_HOME.
●
Deve ser utilizado o srvctl do GRID_HOME.
●
Comando preferencial para iniciar e parar recursos do RAC.
●
Administra Database, Instances, ASM, Listeners e Services.
●
Um recurso pode ser iniciado, parado, habilitado, ou desabilitado.
137 137
LAB 10 – srvctl
Hands On !
138 138
Lab 10.1 – srvctl
●
Execute srvctl -h e entenda as opções.
●
Pare o Listener de apenas um Node.
●
Pare a Instance de apenas um Node.
●
Inicie novamente o Listener que está parado.
●
Inicie novamente a Instance que está parada.
●
Pare o Database, e o inicie novamente.
●
Pare uma Intance com a opção ABORT.
●
Inicie uma Instance com a opção MOUNT.
●
Mate uma Instance (kill no pmon) de um dos nós, e veja o que acontece.
139 139
Lab 10.2 – srvctl
Coloque o banco em modo ARCHIVELOG e execute um backup.
140 140
crsctl
141 141
crsctl
●
A partir de qualquer Node, controla todos.
●
Deve ser utilizado com o usuário root.
●
Deve ser utilizado do GRID_HOME.
●
Principal comando de administração do Grid.
●
Um recurso pode ser iniciado, parado, habilitado, ou desabilitado.
●
Necessário para verificação e alteração de parâmetros.
●
Necessário para Troubleshooting e Debug.
142 142
LAB 11 – crsctl
Hands On !
143 143
Lab 11.1 – crsctl
Verifique as opções do crsctl, digitando “crsctl”, sem opções.
Verifique o status dos Daemons:
# /u01/app/12.1.0.2/grid/bin/crsctl check css
# /u01/app/12.1.0.2/grid/bin/crsctl check evm
# /u01/app/12.1.0.2/grid/bin/crsctl check crs
# /u01/app/12.1.0.2/grid/bin/crsctl check ctss
# /u01/app/12.1.0.2/grid/bin/crsctl check cluster
# /u01/app/12.1.0.2/grid/bin/crsctl check cluster -all
144
Lab 11.2 – crsctl
Liste os módulos do Cluster.
# /u01/app/12.1.0.2/grid/bin/crsctl lsmodules crs
# /u01/app/12.1.0.2/grid/bin/crsctl lsmodules css
# /u01/app/12.1.0.2/grid/bin/crsctl lsmodules evm
145
Voting Disks
146 146
Voting Disk
●
É o centro do “ping” dos Nodes.
●
Pode ter N mirrors.
●
Pode ser alterado de qualquer Node.
●
Backups do Voting Disk são manuais.
●
Todas operações do Voting Disk devem ser executadas como root.
●
Deve ser feito backup após Adição ou Remoção de Nodes (<11gR2).
●
Com base nas informações nele, o Clusterware decide que Node faz parte do
Cluster (Election / Eviction / Split Brain).
147 147
LAB 11 – Voting Disk
Hands On !
148 148
Lab 12.1 – Voting Disk
Na máquinas nerv09, crie 3 partições de 1GB (para o VD), e 3 de 2GB (para o
OCR).
149 149
Lab 12.2 – Voting Disk
Nas máquinas nerv01 e nerv02, verifique os Discos exportados no Storage.
# iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l
150 150
Lab 12.3 – Voting Disk
Nas máquinas nerv01 e nerv02 verifique se os discos foram configurados
localmente.
# fdisk -l
151 151
Lab 12.4 – Voting Disk
Na máquina nerv02, execute a detecção dos novos discos.
# partprobe /dev/sdi
# partprobe /dev/sdj
# partprobe /dev/sdk
# partprobe /dev/sdl
# partprobe /dev/sdm
# partprobe /dev/sdn
152 152
Lab 12.5 – Voting Disk
Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.
# /etc/init.d/oracleasm listdisks
# /etc/init.d/oracleasm querydisk -v -p DISK08
# /etc/init.d/oracleasm querydisk -v -p DISK09
# /etc/init.d/oracleasm querydisk -v -p DISK10
# /etc/init.d/oracleasm querydisk -v -p DISK11
# /etc/init.d/oracleasm querydisk -v -p DISK12
# /etc/init.d/oracleasm querydisk -v -p DISK13
153 153
Lab 12.6 – Voting Disk
Na máquina nerv01, crie os novos DISK GROUPS.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ sqlplus / AS SYSASM
SQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'ORCL:DISK08' ,
'ORCL:DISK09' , 'ORCL:DISK10';
SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'ORCL:DISK11' ,
'ORCL:DISK12' , 'ORCL:DISK13';
154 154
Lab 12.7 – Voting Disk
Verifique o status do VOTING DISK.
# /u01/app/12.1.0.2/grid/bin/crsctl query css votedisk
155
Lab 12.8 – Voting Disk
Na máquina nerv09, simule uma falha nos discos dos VOTING DISKs.
# dd if=/dev/zero of=/dev/sda33 bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda34 bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda35 bs=512 count=1000000
O que aconteceu?
156
Lab 12.9 – Voting Disk
Na máquina nerv01, particione novamente os discos dos VOTING DISKs.
# fdisk /dev/sd?
n <enter>
p <enter>
1 <enter>
<enter>
<enter>
w <enter>
...
157
Lab 12.10 – Voting Disk
Na máquina nerv01, recrie o DISK GROUP dos VOTING DISKs.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ sqlplus / AS SYSASM
SQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'ORCL:DISK08' ,
'ORCL:DISK09' , 'ORCL:DISK10';
158 158
OCR
159 159
OCR – Oracle Cluster Registry
●
É o centro das informações do RAC.
●
Deve estar em Storage compartilhado por todos Nodes.
●
Pode ter até 4 mirrors.
●
Ferramentas do OCR: ocrconfig, ocrcheck, ocrdump.
●
Ferramentas do OCR devem ser utilizadas como root.
●
Pode ser alterado de qualquer Node.
●
Backups do OCR são executados automaticamente.
●
Backups armazenados: 1 semanal, 1 diário, e 1 a cada 4 horas.
●
Podem ser executados backups físicos e lógicos.
160 160
LAB 12 – OCR
Hands On !
161 161
Lab 13.1 – OCR
Execute o ocrdump, e analise o conteúdo do dump (OCRDUMPFILE).
# /u01/app/12.1.0.2/grid/bin/ocrdump
# file OCRDUMPFILE
# grep orcl OCRDUMPFILE
162
Lab 13.2 – OCR
Na máquina nerv01, altere a localização dos OCRs.
# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +CONFIG
# /u01/app/12.1.0.2/grid/bin/ocrcheck
# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +DATA
# /u01/app/12.1.0.2/grid/bin/ocrcheck
# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +FRA
# /u01/app/12.1.0.2/grid/bin/ocrcheck
# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +DATA
# /u01/app/12.1.0.2/grid/bin/ocrcheck
# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +FRA
# /u01/app/12.1.0.2/grid/bin/ocrcheck
# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +CONFIG
Por que não funciona?
163
Lab 13.3 – OCR
Na máquina nerv01, verifique os backups físicos existentes do OCR.
# /u01/app/12.1.0.2/grid/bin/ocrconfig -showbackup
# /u01/app/12.1.0.2/grid/bin/ocrconfig -manualbackup
# /u01/app/12.1.0.2/grid/bin/ocrconfig -showbackup
164164
Lab 13.4 – OCR
Na máquina nerv09, simule uma falha nos discos do OCR.
# dd if=/dev/zero of=/dev/sda45 bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda46 bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda47 bs=512 count=1000000
O que aconteceu?
165
Lab 13.5 – OCR
Na máquina nerv01, particione novamente os discos do OCR.
# fdisk /dev/sd?
n <enter>
p <enter>
1 <enter>
<enter>
<enter>
w <enter>
...
166
Lab 13.6 – OCR
Na máquina nerv01, recrie o DISK GROUP do OCR.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ sqlplus / AS SYSASM
SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'ORCL:DISK11' ,
'ORCL:DISK12' , 'ORCL:DISK13';
SQL> ALTER DISKGROUP OCR SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';
SQL> ALTER DISKGROUP OCR SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';
167 167
oifcfg
168 168
oifcfg
●
A partir de qualquer Node, controla todos.
●
Deve ser utilizado com o usuário root.
●
Ferramenta para administração dos IPs Público, Interconnect, e VIPs.
●
Necessário para alteração de rede dos Nodes.
●
Hostnames não podem ser alterados (só os VIPs).
169 169
LAB 14 – oifcfg
Hands On !
170 170
Lab 14.1 – oifcfg
Execute um backup físico do OCR.
171
Lab 14.2 – oifcfg
Inicie o Cluster nos dois Nodes.
# /u01/app/12.1.0.2/grid/bin/crsctl start cluster -all
172
Rolling Patch
173 173
Rolling Patch
●
Permite aplicação de Patches sem indisponibilidade.
●
Para-se uma Instance, aplica-se o Patch, inicia a Instance, e parte para a Instance
seguinte.
●
O Patch precisa suportar o Rolling Upgrade.
●
Não pode ser utilizado com HOMEs compartilhados.
●
Não pode ser utilizado para Patchsets.
174 174
LAB 15 – Rolling Patch
Hands On !
175 175
Lab 15.1 – Rolling Patch
Atualize o OPatch.
$ unzip -q p6880880_121010_Linux-x86-64.zip
$ mv $ORACLE_HOME/OPatch/ $ORACLE_HOME/OPatch.BACKUP
$ mv /home/oracle/OPatch $ORACLE_HOME
176
Lab 15.2 – Rolling Patch
Após a aplicação, inicie a instância da máquina nerv02.
/u01/app/12.1.0.2/grid/bin/srvctl start instance -d ORCL -n nerv02
177
Single Instance x RAC
●
Full Table Scans (Optimizer Statistics, System Statistics)
●
Bind Variables / Cursor Sharing
●
Sequences / Sequences Artificiais
●
Dictionary
●
Reverse Key Indexes
●
Job x Scheduler
●
V$SESSION
●
UTL_FILE
●
Directories / External Tables / Data Pump
●
Partitioning
178 178
LAB 16 – Sequences
Hands On !
179 179
Lab 16.1 – Sequences
Crie uma entrada no tnsnames.ora para o RAC vizinho ao seu.
180 180
Load Balance (Client)
181 181
Load Balance Client (<= 11gR1)
Client tnsnames.ora
ORCL =
(DESCRIPTION=
(LOAD_BALANCE=ON) →→→ Escolha Aleatória
(FAILOVER=ON) →→→ Tenta acessar o 1o, depois o 2o
(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01-vip)(PORT=1521)) →→→ VIP
(ADDRESS=(PROTOCOL=TCP)(HOST=nerv02-vip)(PORT=1521)) →→→ VIP
(CONNECT_DATA=
(SERVICE_NAME=ORCL)
(FAILOVER_MODE=
(TYPE=SELECT) →→→ SESSION ou SELECT
(METHOD=BASIC) →→→ BASIC ou PRECONNECT
(RETRIES=10) →→→ 10 tentativas de conexão
(DELAY=1) →→→ 1 segundo para cada tentativa
)
)
)
182 182
Load Balance (Server)
183 183
Load Balance (Server)
184 184
Load Balance (Server)
Client tnsnames.ora:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
))
185 185
Load Balance (Server)
Services Goal
GOAL_NONE
GOAL_SERVICE_TIME →→→ Bom para OLTP
GOAL_THROUGHPUT →→→ Bom para Batch / OLAP / DBA
186 186
Load Balance (Server) - Scheduler
Crie uma Job Class no Scheduler para o Service DBA:
BEGIN
DBMS_SCHEDULER.create_job_class (
job_class_name => 'DBA_JOB_CLASS',
service => 'DBA_SERVICE');
END;
/
187187
Load Balance (Server)
srvctl add service
srvctl remove service
srvctl modify service
srvctl relocate service
srvctl status service
srvctl start service
srvctl stop service
srvctl enable service
srvctl disable service
188188
LAB 17 – Load Balance (Server)
Hands On !
189 189
Lab 17.1 – Load Balance (Server)
Veja os Services configurados.
$ srvctl config database -d ORCL
Exemplo:
$ srvctl add service -db ORCL -service OLTP -preferred ORCL2 -available ORCL1 -
tafpolicy PRECONNECT -policy AUTOMATIC -failovertype SELECT -failovermethod
BASIC -failoverdelay 1 -failoverretry 10 -clbgoal SHORT -rlbgoal SERVICE_TIME -
notification TRUE
190190
Adicionar e Remover Nodes
191 191
Adicionar e Remover Nodes
Sequência para adicionar Node:
●
Instalar Hardware;
●
Instalar e configurar Sistema Operacional;
●
Configurar acesso ao Storage;
●
Configurar ssh sem senha com os Nodes já existentes;
●
Instalar Grid Infraestruture a partir de um Node existente;
●
Instalar Oracle a partir de um Node existente;
●
Adicionar Instances.
192 192
LAB 18 – Adicionar Nodes
Hands On !
193 193
Lab 18.1 – Adicionar Nodes
Manter apenas 1 RAC ativo na sala.
No restante das máquinas, refazer os Labs 1, 3, e 4.
Para todas as máquinas, configurar SSH sem senha para o usuário oracle.
$ cd /home/oracle/grid/sshsetup
./sshUserSetup.sh -user oracle -hosts "nerv01 nerv02 nerv05" -advanced -exverify -confirm -
noPromptPassphrase
194
Lab 18.2 – Adicionar Nodes
Instalar Oracle Database nas outras máquinas, a partir de um Node existente:
$ cd $ORACLE_HOME/addnode
$ ./addnode.sh -silent "CLUSTER_NEW_NODES={nerv03}"
195
Flex ASM
196 196
Flex ASM
197 197
LAB 19 – Flex ASM
Hands On !
198 198
Lab 19.1 – Flex ASM
Na máquina nerv01, verifique a configuração atual do Cluster.
$ $GRID_HOME/bin/asmcmd showclustermode
$ $GRID_HOME/bin/srvctl status asm
$ $GRID_HOME/bin/srvctl config asm
199
Flex Cluster
200 200
Flex Cluster
201 201
LAB 20 – Flex Cluster
Hands On !
202 202
Lab 20.1 – Flex Cluster
Na máquina nerv01, verifique a configuração atual do Cluster.
# /u01/app/12.1.0.2/grid/bin/crsctl get cluster mode status
# /u01/app/12.1.0.2/grid/bin/srvctl config gns
203
Melhores Práticas
204 204
Melhores Práticas
- RAC de dois nós possui diversas limitações.
- Utilize Hardware Certificado para sua implementação.
- Elimine os POF: NICs, Switch, Storage, etc.
- O Switch do Interconnect deve ser físico e exclusivo.
- Utilize ASM. É a direção da Oracle.
- Utilize GNS. É a direção da Oracle.
- Utilize /etc/hosts, além do DNS.
- No ASM, utilize DGs separados para DATA, FRA, OCR e VD.
- Centralize os backups do OCR.
- Utilize DATA e FRA com redundância no Storage ou ASM.
- Utilize OCR e VD com redundância no Storage e ASM.
- Use HOMEs locais, para GRID_HOME e ORACLE_HOME.
- Logs (todos) devem ser centralizados. De nada vale um log que não existe.
- Observe também os Logs do Sistema Operacional.
- Utilize Jumbo Frames no Interconnect.
- Utilize Huge Pages, e não utilize AMM.
- O RAC torna aplicações boas em ótimas, e ruins em péssimas.
- Esqueça SIDs. Aprenda Services.
- Particione sua aplicação em Services. Sem Services, o RAC não é nada.
205
E agora?
206 206
Fórum
207
Alunos
208
Blog
209
YouTube
210
Facebook / Twitter
211
Obrigado!
212 212