ORAC 19c
ORAC 19c
3)
Em Oracle Enterprise Linux 7.9
Inclui CDB Architecture
Comando no Oracle:
SQL> SELECT STATUS FROM V$INSTANCE;
●
2o dia
✔
Troubleshooting
✔
Administração
●
3o dia
✔
Load Balance / Failover
✔
Add Node
✔
Migração de Storage
✔
ACFS
3 3
Por que usar o RAC?
●
Disponibilidade
●
Escalabilidade
●
Custo Total de Propriedade (TCO)
4 4
Por que não usar o RAC?
●
Custo de Equipamentos
●
Custo de Licenças
●
Custo de Conhecimento
●
Complexidade
●
Escalabilidade
5 5
Arquitetura
6 6
Oracle RAC x Single Instance
●
1 Database x N Instances
• + Background Processes
• + daemons
• OCR
• Voting Disk
• VIPs e SCAN
7 7
Lab 1.1: Instalação OEL 7
8
Lab 1.2: Instalação OEL 7
9
Lab 1.3: Instalação OEL 7
10
Lab 1.4: Instalação OEL 7
11
Lab 1.5: Instalação OEL 7
12
Lab 1.6: Instalação OEL 7
13
Lab 1.7: Instalação OEL 7
14
Lab 1.8: Instalação OEL 7
15
Lab 1.9: Instalação OEL 7
16
Lab 1.10: Instalação OEL 7
17
Lab 1.11: Instalação OEL 7
18
Lab 1.12: Instalação OEL 7
19
Lab 1.13: Instalação OEL 7
20
Lab 1.14: Instalação OEL 7
21
Lab 1.15: Instalação OEL 7
22
Lab 1.16: Instalação OEL 7
23
Lab 1.17: Instalação OEL 7
24
Lab 1.18: Instalação OEL 7
25
Lab 1.19: Instalação OEL 7
26
Lab 1.20: Instalação OEL 7
27
Lab 1.21: Instalação OEL 7
28
Lab 1.22: Instalação OEL 7
29
Lab 1.23: Instalação OEL 7
30
Lab 1.24: Instalação OEL 7
31
Lab 1.25: Instalação OEL 7
32
Lab 1.26: Instalação OEL 7
33
Lab 1.27: Instalação OEL 7
34
Lab 1.28: Instalação OEL 7
35
Lab 1.29: Instalação OEL 7
36
Lab 1.30: Instalação OEL 7
37
Lab 1.31: Instalação OEL 7
38
Lab 1.32: Instalação OEL 7
39
Lab 1.33: Instalação OEL 7
40
Lab 1.34: Instalação OEL 7
41
Lab 1.35: Instalação OEL 7
42
Lab 1.36: Instalação OEL 7
43
Lab 1.37: Instalação OEL 7
44
Lab 1.38: Instalação OEL 7
45
Lab 1.39: Instalação OEL 7
46
Lab 1.40: Instalação OEL 7
47
Lab 1.41: Instalação OEL 7
48
Lab 1.42: Instalação OEL 7
49
Lab 1.43: Instalação OEL 7
50
Lab 1.44: Instalação OEL 7
51
Lab 1.45: Instalação OEL 7
52
Lab 1.46: Instalação OEL 7
53
Lab 1.47: Instalação OEL 7
54
Lab 2.1: Configuração OEL 7
Nas máquinas nerv01 e nerv02, atualize o sistema operacional e execute a instalação dos
pré-requisitos.
# yum -y update
# yum -y install oracle-database-preinstall-19c.x86_64
# yum -y install unzip wget iscsi-initiator-utils java-1.8.0-openjdk screen gcc
55 55
Lab 2.2: Configuração OEL 7
Nas máquinas nerv01 e nerv02, remova o DNS 8.8.8.8 da placa de rede Pública.
# nmtui
56 56
Lab 2.3: Configuração OEL 7
57
Lab 2.4: Configuração OEL 7
58 58
Lab 2.5: Configuração OEL 7
Nas máquinas nerv01 e nerv02, ACRESCENTAR AO FINAL do arquivo /etc/hosts:
# Public
192.168.0.101 nerv01.localdomain nerv01
192.168.0.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.0.111 nerv01-vip.localdomain nerv01-vip
192.168.0.112 nerv02-vip.localdomain nerv02-vip
59 59
Lab 2.6: Configuração OEL 7
Nas máquinas nerv01 e nerv02, desabilite o firewall, o avahi e o chronyd.
# systemctl disable firewalld
# systemctl disable avahi-daemon
# systemctl enable chronyd
60
Lab 2.7: Configuração OEL 7
Nas máquinas nerv01 e nerv02 , com o usuário oracle, ACRESCENTAR NO FINAL do arquivo
/home/oracle/.bash_profile as linhas abaixo.
export ORACLE_HOSTNAME=nerv01.localdomain
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0.0/db_1
export GRID_HOME=/u01/app/19.3.0.0/grid
export CRS_HOME=$GRID_HOME
export ORACLE_UNQNAME=ORCL
export ORACLE_SID=ORCL1
export TMP=/tmp
export TMPDIR=$TMP
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
ulimit -Sn 1024
ulimit -Hn 65536
ulimit -Su 2047
ulimit -Hu 16384
ulimit -Ss 10240
ulimit -Hs 32768
61
Opções de Shared Storage
62
Lab 3.1: Configuração Discos
Nas máquinas nerv01 e nerv02, ative o pacote iSCSI Initiator.
# systemctl enable iscsid
# systemctl start iscsid
63 63
Lab 3.2: Configuração Discos
Na máquina nerv01, prepare a instalação.
$ cp LINUX.X64_193000_grid_home.zip $GRID_HOME
$ cd $GRID_HOME
$ unzip -q LINUX.X64_193000_grid_home.zip
$ rm LINUX.X64_193000_grid_home.zip
$ su
64
Lab 4.1: Instalação Grid Infrastructure
Na máquina nerv01, com o usuário oracle, inicie a instalação do Grid Infrastructure.
$ cd $GRID_HOME
$ ./gridSetup.sh
65
Lab 4.2: Instalação Grid Infrastructure
66
Lab 4.3: Instalação Grid Infrastructure
67
Lab 4.4: Instalação Grid Infrastructure
68
Lab 4.5: Instalação Grid Infrastructure
69
Lab 4.6: Instalação Grid Infrastructure
70
Lab 4.7: Instalação Grid Infrastructure
71
Lab 4.8: Instalação Grid Infrastructure
72
Lab 4.9: Instalação Grid Infrastructure
73
Lab 4.10: Instalação Grid Infrastructure
74
Lab 4.11: Instalação Grid Infrastructure
75
Lab 4.12: Instalação Grid Infrastructure
76
Lab 4.13: Instalação Grid Infrastructure
77
Lab 4.14: Instalação Grid Infrastructure
78
Lab 4.15: Instalação Grid Infrastructure
79
Lab 4.16: Instalação Grid Infrastructure
80
Lab 4.17: Instalação Grid Infrastructure
81
Lab 4.18: Instalação Grid Infrastructure
82
Lab 4.19: Instalação Grid Infrastructure
83
Lab 4.20: Instalação Grid Infrastructure
84
Lab 4.21: Instalação Grid Infrastructure
85
Lab 4.22: Instalação Grid Infrastructure
86
Lab 4.23: Instalação Grid Infrastructure
87
Lab 4.24: Instalação Grid Infrastructure
88
Lab 4.25: Instalação Grid Infrastructure
89
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.
Oracle 12cR2: 32 New Features.
Oracle 18c: 14 New Features.
Oracle 19c: 10 New Features.
90 90
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
91 91
RAC 11gR2 New Features – Parte 1
●
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
92 92
RAC 11gR2 New Features – Parte 2
●
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
93 93
RAC 12cR1 New Features – Parte 1
●
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
94 94
Flex Cluster
95 95
RAC 12cR1 New Features – Parte 2
●
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
96 96
Flex ASM
97 97
RAC 12cR2 New Features – Parte 1
●
Oracle Flex ASM Disk Group Quota Management
●
Prioritized Rebalancing
●
Extending Oracle Real Application Clusters (Oracle RAC) Configuration Support
●
I/O Server
●
Cluster Resource Activity Log
●
Cluster Verification Utility - Second Generation Command Line Output
●
Switch Service Enhancement
●
VM Manager Agent for GI
●
Shared Grid Naming Service High Availability
●
Oracle Clusterware Resource Groups
●
Reasoned What-If Command Evaluation (Why-If)
●
Server Weight-Based Node Eviction
●
Load-Aware Resource Placement
●
Oracle Clusterware Application Clusters
●
Oracle Grid Infrastructure Installation Support for Application Cluster Installation Type
98 98
RAC 12cR2 New Features – Parte 2
●
Oracle Automatic Storage Management Cluster File System (Oracle ACFS) Snapshot Enhancements
●
Oracle ACFS System Defragger
●
4K Sectors and Metadata Enhancements for Oracle ACFS
●
Oracle ACFS Metadata Collection Enhancements
●
Oracle ACFS Plug-ins for File Content
●
Oracle ACFS Loopback Device
●
Oracle ACFS API Access for Snapshots, File Tags, Plug-in Metrics
●
Oracle ACFS Compression Enhancements
●
Oracle Snapshot-Based Replication Enhancements
●
Oracle ACFS Auto-Resize Enhancements
●
Oracle ACFS Sparse Files Enhancements
●
Oracle ACFS Metadata Acceleration
●
Oracle ACFS NAS Maximum Availability eXtensions
●
Rapid Home Provisioning
●
Support for IPv6 Based IP Addresses for the Oracle Cluster Interconnect
●
Oracle Real Application Clusters (Oracle RAC) Reader Nodes
●
Service-Oriented Buffer Cache Access Optimization
99 99
RAC 18c New Features
●
ASM Data Reliability Enhancements
●
ASM Database Cloning
●
Dropping Oracle ASM File Groups With a Cascade Option
●
Converting Normal or High Redundancy Disk Groups to Flex Disk Groups without Restricted Mount
●
Oracle ACFS Remote Service for Member Clusters
●
Cluster Health Advisor Cross Database Analysis Support
●
Cluster Health Advisor Cross Cluster Analysis Support
●
Shared Single Client Access Names
●
NodeVIP-Less Cluster
●
Cluster Domain Proxies
●
gridSetup-based Management
●
Reader Nodes Performance Isolation
●
UCP Support for RAC Affinity Sharding
●
Transparent Application Continuity (TAC)
100 100
RAC 19c New Features
●
Parity Protected Files
●
Zero-Downtime Oracle Grid Infrastructure Patching
●
Automated Transaction Draining for Oracle Grid Infrastructure Upgrades
●
Oracle Restart Patching and Upgrading
●
Automated PDB Relocation
●
Secure Cluster Communication
●
Colocation Tag for Client Routing
●
Optional Install for the Grid Infrastructure Management Repository
●
Resupport of Direct File Placement for OCR and Voting Disks
●
Dynamic Services Fallback Option
101 101
Lab 5.1: Instalação Oracle Database Software
Na máquina nerv01 e nerv02 com o usuário oracle, crie o diretório do ORACLE_HOME.
$ source /home/oracle/.bash_profile
$ mkdir -p $ORACLE_HOME
Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador do Oracle Database
Software.
$ cd /home/oracle
$ cp LINUX.X64_193000_db_home.zip $ORACLE_HOME
$ cd $ORACLE_HOME
$ unzip -q LINUX.X64_193000_db_home.zip
$ rm LINUX.X64_193000_db_home.zip
$ ./runInstaller
102
Lab 5.2: Instalação Oracle Database Software
103
Lab 5.3: Instalação Oracle Database Software
104
Lab 5.4: Instalação Oracle Database Software
105
Lab 5.5: Instalação Oracle Database Software
106
Lab 5.6: Instalação Oracle Database Software
107
Lab 5.7: Instalação Oracle Database Software
108
Lab 5.8: Instalação Oracle Database Software
109
Lab 5.9: Instalação Oracle Database Software
110
Lab 5.10: Instalação Oracle Database Software
111
Lab 5.11: Instalação Oracle Database Software
112
Lab 6.1: Criação Banco de Dados
Nas máquinas nerv01 e nerv02, verifique os Discos exportados no Storage.
# iscsiadm -m discovery -t sendtargets -p 192.168.0.201 -l
113
Lab 6.2: Criação Banco de Dados
Na máquina nerv01, crie os novos Discos no ASM Filter Driver.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ export PATH=$ORACLE_HOME/bin:$PATH
$ su
# asmcmd afd_lslbl
# fdisk -l | grep sd
# asmcmd afd_label DATA01 /dev/sdc ### Disco de 20GB.
# asmcmd afd_label FRA01 /dev/sdd ### Disco de 10GB.
# asmcmd afd_label VD01 /dev/sde ### Disco de 1GB.
# asmcmd afd_label VD02 /dev/sdf ### Disco de 1GB.
# asmcmd afd_label VD03 /dev/sdg ### Disco de 1GB.
# asmcmd afd_label OCR01 /dev/sdh ### Disco de 2GB.
# asmcmd afd_label OCR02 /dev/sdi ### Disco de 2GB.
# asmcmd afd_lslbl
114
Lab 6.3: Criação Banco de Dados
Na máquina nerv01, crie os novos Disk Groups.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ rlwrap sqlplus / AS SYSASM
SQL> CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK 'AFD:DATA01';
SQL> CREATE DISKGROUP FRA EXTERNAL REDUNDANCY DISK 'AFD:FRA01';
SQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'AFD:VD01','AFD:VD02','AFD:VD03';
SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'AFD:OCR01','AFD:OCR02';
115
ASM Mirroring
116
ASM Stripping: Fine x Coarse
117
Lab 6.4: Criação Banco de Dados
Execute o DBCA para criar o banco de dados.
$ source /home/oracle/.bash_profile
$ dbca
118
Lab 6.5: Criação Banco de Dados
119
Lab 6.6: Criação Banco de Dados
120
Lab 6.7: Criação Banco de Dados
121
Lab 6.8: Criação Banco de Dados
122
Lab 6.9: Criação Banco de Dados
123
Lab 6.10: Criação Banco de Dados
124
Lab 6.11: Criação Banco de Dados
125
Lab 6.12: Criação Banco de Dados
126
Lab 6.13: Criação Banco de Dados
127
Lab 6.14: Criação Banco de Dados
128
Lab 6.15: Criação Banco de Dados
129
Lab 6.16: Criação Banco de Dados
130
Lab 6.17: Criação Banco de Dados
131
Lab 6.18: Criação Banco de Dados
132
Lab 6.19: Criação Banco de Dados
133
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 / LMSn / LMnn: Global Cache Service Process (GCS_SERVER_PROCESSES)
• LCK0: Instance Enqueue Process
• RMSn: Oracle RAC Management Processes
• RSMN: Remote Slave Monitor
✔
PFILE / SPFILE (1x)
ALTER SYSTEM … SID=’*’ ou ALTER SYSTEM ... SID=’ORCL1’;
✔
DATAFILEs (1x)
✔
CONTROL FILEs (1x)
✔
Online REDO LOG Threads (x Nodes)
ALTER DATABASE ADD LOGFILE … THREAD 1;
✔
UNDO TABLESPACE (x Nodes)
134
Lab 6.21: Criação Banco de Dados
Na máquina nerv01, para efetuar logon na Instance ASM1, use o SQLPlus.
$ export ORACLE_SID=+ASM1
$ sqlplus / as SYSDBA
Por que não funcionou?
Pelo asmcmd, copie um DATAFILE do ASM para o /home/oracle de uma máquina do RAC.
135
Administração
136
Comandos depreciados (>= 11gR2)
137
Comandos depreciados (>= 11gR2)
138
Comandos depreciados (>= 11gR2)
139
Componentes Grid Infrastructure
- ASM
- Listener
- VIPs e SCAN
- OCR: Oracle Cluster Registry
- VD: Voting Disk (Quorum Disk)
- GIMR: Grid Infrastructure Management Repository (-MGMTDB)
- Utilitários principais: crsctl, srvctl
- Daemons: ohasd, crsd, evmd, ons, evmlogger, ologgerd, cssdmonitor, cssdagent, ocssd, octssd, osysmond,
mdnsd, gpnpd, gipcd, orarootagent, oraagent, scriptagent.
140
Dificuldades
●
Comandos depreciados
●
oracle X root
●
$GRID_HOME x $ORACLE_HOME
141
Programas do GRID_HOME
Usar um usuário separado para o Grid.
OU
OU
$ . oraenv (Deprecated)
ORACLE_SID = [ORCL1] ? +ASM1 <enter>
OU
$ cd /u01/app/19.3.0.0/grid/bin/
./crsctl status res -t
OU
OU
$ source /home/oracle/.bash_profile-GI
142
Daemons
143
Daemons
144
Oracle RAC Startup
145
Logs
<= 11gR2
$GRID_HOME/log/<node>/
$GRID_HOME/log/<node>/alert<node>.log
>= 12cR1
$ORACLE_BASE/diag/crs/<node>/crs/trace/
$ORACLE_BASE/diag/crs/<node>/crs/trace/alert.log
146
Lab 7.1: Daemons
Acompanhe a execução dos daemons via top.
$ wget https://raw.githubusercontent.com/freddenis/oracle-scripts/master/rac-status.sh
$ chmod +x rac-status.sh
$ export ORACLE_HOME=$GRID_HOME
$ export PATH=$ORACLE_HOME/bin:$PATH
$ ./rac-status.sh -ae
147
Lab 7.2: Daemons
Continue acompanhando os Alert Logs das duas máquinas.
Verifique e altere parâmetros de timeout para o mínimo possível, e execute novamente os testes.
# /u01/app/19.3.0.0/grid/bin/crsctl get css reboottime
# /u01/app/19.3.0.0/grid/bin/crsctl get css misscount
# /u01/app/19.3.0.0/grid/bin/crsctl get css disktimeout
# /u01/app/19.3.0.0/grid/bin/crsctl set css reboottime 1
# /u01/app/19.3.0.0/grid/bin/crsctl set css misscount 2
# /u01/app/19.3.0.0/grid/bin/crsctl set css disktimeout 3
148
Lab 8.1: Teste de Carga
Copie o swingbench para a máquina nerv01, como usuário oracle.
149
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 ORACLE_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.
150
Lab 9.1: srvctl
Estudando o help do srvctl, execute a sequência de operações abaixo:
$ srvctl -h
$ srvctl stop -h
$ srvctl stop listener -h
●
Verifique as configurações do Listener.
●
Verifique as configurações do SCAN.
●
Verifique as configurações do Banco de Dados.
●
Verifique o estado dos listeners, pare o Listener de apenas um Node, e verifique novamente.
●
Verificar o estado das Instances, pare a Instance de apenas um Node, e verifique novamente.
●
Inicie novamente o Listener que está parado.
●
Inicie novamente a Instance que está parada.
●
Pare o Database, e o inicie novamente.
●
Pare uma Instance com a opção ABORT.
●
Inicie uma Instance com a opção MOUNT.
●
Deixa uma instância desabilitada, confira, e habilite novamente.
●
Mate uma Instance (kill no pmon) de um dos Nodes.
151
Lab 9.2: srvctl
Coloque o banco em modo ARCHIVELOG e execute um backup.
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '+FRA';
RMAN> BACKUP DATABASE;
152
crsctl
●
A partir de qualquer Node, controla todos.
●
Alguns comandos podem ser executados com usuário oracle, outros com o usuário root.
●
Este programa só existe no GRID_HOME.
●
Principal comando de administração do Grid.
●
Necessário para verificação e alteração de parâmetros.
●
Necessário para Troubleshooting e Debug.
153
Lab 10.1: crsctl
Verifique as opções do crsctl, digitando “crsctl”, sem opções.
154
Lab 10.2: crsctl
Liste os módulos do Cluster.
# /u01/app/19.3.0.0/grid/bin/crsctl lsmodules crs
# /u01/app/19.3.0.0/grid/bin/crsctl lsmodules css
# /u01/app/19.3.0.0/grid/bin/crsctl lsmodules evm
Coloque um dos módulos informados pelo comando anterior (lsmodules), e coloque ele em modo
Debug.
# tail -f /u01/app/oracle/diag/crs/nerv01/crs/trace/ocssd.trc
# /u01/app/19.3.0.0/grid/bin/crsctl get log css "CSSD"
# /u01/app/19.3.0.0/grid/bin/crsctl set log css "CSSD:5"
# /u01/app/19.3.0.0/grid/bin/crsctl get log css "CSSD"
# /u01/app/19.3.0.0/grid/bin/crsctl set log css "CSSD:2"
# /u01/app/19.3.0.0/grid/bin/crsctl get log css "CSSD"
155
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 (<11gR2).
●
Deve ser feito backup após Adição ou Remoção de Nodes (<11gR2).
●
Todas operações do Voting Disk devem ser executadas como root.
●
Com base nas informações nele, o Clusterware decide que Node faz parte do Cluster (Election /
Eviction / Split Brain).
156
Lab 11.1: Voting Disk
Verifique o status do VOTING DISK.
# /u01/app/19.3.0.0/grid/bin/crsctl query css votedisk
157
Lab 11.2: Voting Disk
Na máquina nerv09, simule uma falha nos discos dos VOTING DISKs.
# dd if=/dev/zero of=/dev/sda? bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda? bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda? bs=512 count=1000000
O que aconteceu?
158
Lab 11.3: Voting Disk
Na máquina nerv01, crie novamente os discos dos VOTING DISKs.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ export PATH=$ORACLE_HOME/bin:$PATH
$ su
# fdisk -l | grep sd ### Os discos do VD são os de 1GB.
# asmcmd afd_label VD01 /dev/sd?
# asmcmd afd_label VD02 /dev/sd?
# asmcmd afd_label VD03 /dev/sd?
# asmcmd afd_lslbl
159
Lab 11.4: Voting Disk
Na máquina nerv01, crie novamente os discos dos DISK GROUPs.
SQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'AFD:VD01','AFD:VD02','AFD:VD03';
160
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.
161
Lab 12.1: OCR
Execute o ocrdump, e analise o conteúdo do dump (OCRDUMPFILE).
# /u01/app/19.3.0.0/grid/bin/ocrdump
# file OCRDUMPFILE
# grep orcl OCRDUMPFILE
# grep 192.168 OCRDUMPFILE
162
Lab 12.2: OCR
Na máquina nerv01, adicione MIRRORs do OCRs.
# /u01/app/19.3.0.0/grid/bin/ocrcheck
# /u01/app/19.3.0.0/grid/bin/ocrconfig -add +CONFIG
# /u01/app/19.3.0.0/grid/bin/ocrcheck
O que aconteceu?
163
Lab 12.3: OCR
Na máquina nerv01, verifique os backups físicos existentes do OCR.
# /u01/app/19.3.0.0/grid/bin/ocrconfig -showbackup
# /u01/app/19.3.0.0/grid/bin/ocrconfig -manualbackup
# /u01/app/19.3.0.0/grid/bin/ocrconfig -showbackup
164
Lab 12.4: OCR
Na máquina nerv09, simule uma falha nos discos do OCR.
# dd if=/dev/zero of=/dev/sda? bs=512 count=1000000
# dd if=/dev/zero of=/dev/sda? bs=512 count=1000000
O que aconteceu?
165
Lab 12.5: OCR
Na máquina nerv01, crie novamente os discos do OCR.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ export PATH=$ORACLE_HOME/bin:$PATH
$ su
# fdisk -l | grep sd ### Os discos do OCR são os de 2GB.
# asmcmd afd_label OCR01 /dev/sd?
# asmcmd afd_label OCR02 /dev/sd?
# asmcmd afd_lslbl
166
Lab 12.6: OCR
Na máquina nerv01, crie novamente os discos dos DISK GROUPs.
SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'AFD:OCR01','AFD:OCR02';
167
oifcfg
●
A partir de qualquer Node, controla todos.
●
Deve ser utilizado com o usuário root.
●
Ferramenta para alteração dos IPs Público e Interconnect.
168
Lab 13.1: oifcfg
Execute um backup do OCR (manualbackup).
169
Lab 13.2: oifcfg
Inicie o Cluster nos dois Nodes.
# /u01/app/19.3.0.0/grid/bin/crsctl start cluster -all
170
Rolling Patch
●
Permite aplicação de Patches com baixa indisponibilidade.
●
Aplica-se o Patch em um Node, depois em outro Node.
●
O Patch precisa suportar o Rolling Upgrade.
●
Não pode ser utilizado com HOMEs compartilhados.
●
Não pode ser utilizado para Patchsets.
●
Sempre leia o README antes.
171
Lab 14.1: Rolling Patch
Na máquina nerv01, altere os parâmetros do CSS.
# /u01/app/19.3.0.0/grid/bin/crsctl set css disktimeout 200
# /u01/app/19.3.0.0/grid/bin/crsctl set css misscount 30
# /u01/app/19.3.0.0/grid/bin/crsctl set css reboottime 3
# rm -rf /u01/app/oracle/product/19.3.0.0/db_1/OPatch/
# mkdir /u01/app/oracle/product/19.3.0.0/db_1/OPatch/
# chown -R oracle:oinstall /u01/app/oracle/product/19.3.0.0/db_1/OPatch/
$ unzip -q p6880880_190000_Linux-x86-64.zip
$ cp -rf OPatch/* /u01/app/19.3.0.0/grid/OPatch/
$ cp -rf OPatch/* /u01/app/oracle/product/19.3.0.0/db_1/OPatch/
172
Lab 14.2: Rolling Patch
Na máquina nerv01, e depois na nerv02, aplique o Patch.
$ unzip -q p32545008_190000_Linux-x86-64.zip
$ export ORACLE_HOME=$GRID_HOME
$ su
# export PATH=$PATH:$GRID_HOME/OPatch
# $GRID_HOME/OPatch/opatchauto apply /home/oracle/32545008/
173
Desempenho e Funcionalidade: Single Instance x RAC
●
Concorrência
●
Sequences / Sequences Artificiais
●
Data Dictionary
●
Reverse Key Indexes
●
Job x Scheduler
●
V$ x GV$
●
UTL_FILE / Directories / External Tables / Data Pump
●
Partitionamento lógico da aplicação
174
Lab 15.1: Escalabilidade
Analise e execute o script create_sequence.sql na máquina nerv01.
SQL> @create_sequence.sql
Execute novamente os dois scripts, mas desta vez nas duas máquinas ao mesmo tempo.
Enquanto o script está executando, acompanhe as WAITs pelo oratop:
$ $ORACLE_HOME/suptools/oratop/oratop -f -i1 / AS SYSDBA
175
Load Balance Client (<= 11gR1)
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
)
)
)
176
Load Balance Server (>= 11gR2)
177
Load Balance Server
Client tnsnames.ora:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
))
178
Load Balance Server
Services Goal
GOAL_NONE
GOAL_SERVICE_TIME →→→ Bom para OLTP
GOAL_THROUGHPUT →→→ Bom para Batch / OLAP / DBA
179
Load Balance Server - SCHEDULER
BEGIN
DBMS_SCHEDULER.CREATE_JOB_CLASS (
JOB_CLASS_NAME => 'DBA_JOB_CLASS',
SERVICE => 'DBA_SERVICE');
END;
/
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
JOB_NAME => 'SYS.DBA_JOB_TEST',
JOB_TYPE => 'PLSQL_BLOCK',
JOB_ACTION => 'BEGIN EXEC DBMS_STATS.GATHER_DATABASE_STATS; END;',
START_DATE => SYSTIMESTAMP,
REPEAT_INTERVAL => 'FREQ=DAILY;',
JOB_CLASS => 'SYS.DBA_JOB_CLASS',
END_DATE => NULL,
ENABLED => TRUE,
COMMENTS => 'JOB LINKED TO THE DBA_JOB_CLASS.');
END;
/
180
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
181
Lab 16.1: Load Balance Server
Na máquina nerv01, altere os parâmetros do CSS.
# /u01/app/19.3.0.0/grid/bin/crsctl set css reboottime 1
# /u01/app/19.3.0.0/grid/bin/crsctl set css misscount 2
# /u01/app/19.3.0.0/grid/bin/crsctl set css disktimeout 3
$ srvctl add service -db ORCL -pdb PROD -service BI -preferred ORCL2 -available ORCL1 -
tafpolicy PRECONNECT -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -
failoverdelay 1 -failoverretry 10 -clbgoal LONG -rlbgoal THROUGHPUT -notification TRUE
$ srvctl add service -db ORCL -pdb PROD -service DBA -preferred ORCL1 -available ORCL2 -
tafpolicy PRECONNECT -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -
failoverdelay 1 -failoverretry 10 -clbgoal LONG -rlbgoal THROUGHPUT -notification TRUE
182
Lab 16.2: Load Balance Server
Altere o tnsnames.ora para utilizar os novos Services de outro RAC, e crie um usuário para testar o
Failover.
$ rlwrap sqlplus / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER = PROD;
SQL> CREATE TABLESPACE USERS;
SQL> ALTER USER RICARDO QUOTA UNLIMITED ON USERS;
SQL> GRANT CREATE SESSION, CONNECT, RESOURCE, SELECT ANY DICTIONARY TO RICARDO;
SQL> CREATE TABLE RICARDO.T TABLESPACE USERS AS SELECT * FROM ALL_OBJECTS;
SQL> INSERT INTO RICARDO.T SELECT * FROM RICARDO.T;
SQL> INSERT INTO RICARDO.T SELECT * FROM RICARDO.T;
SQL> INSERT INTO RICARDO.T SELECT * FROM RICARDO.T;
SQL> INSERT INTO RICARDO.T SELECT * FROM RICARDO.T;
SQL> INSERT INTO RICARDO.T SELECT * FROM RICARDO.T;
SQL> COMMIT;
183
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.
184
Lab 17.1: Adicionar Nodes
Pare e remova todos os Services criados.
$ srvctl stop service -db ORCL -service OLTP
$ srvctl stop service -db ORCL -service BI
$ srvctl stop service -db ORCL -service DBA
$ srvctl remove service -db ORCL -service OLTP
$ srvctl remove service -db ORCL -service BI
$ srvctl remove service -db ORCL -service DBA
Manter apenas RACs rac02 e rac03 ativos na sala. No restante das máquinas, refazer os Labs 1, 2, e 3.1.
$ cd /u01/app/19.3.0.0/grid/oui/prov/resources/scripts/
$ ./sshUserSetup.sh -user oracle -hosts "nerv01 nerv02 nerv03 nerv04" -advanced -exverify –
confirm -noPromptPassphrase
Execute a adição das instâncias, a partir de um Node que já tem o Banco de Dados:
$ dbca
186
Flex ASM
187
Lab 18.1: Flex ASM
Na máquina nerv01, verifique a configuração atual do Cluster.
$ export ORACLE_HOME=$GRID_HOME
$ $GRID_HOME/bin/asmcmd showclustermode
$ $GRID_HOME/bin/srvctl config asm
$ $GRID_HOME/bin/srvctl status asm
$ $GRID_HOME/bin/srvctl modify asm -count 2
$ $GRID_HOME/bin/srvctl status asm
$ $GRID_HOME/bin/srvctl modify asm -count all
$ $GRID_HOME/bin/srvctl status asm
Simule um erro (kill -9 no pmon) em uma instância ASM, e acompanhe o Alert Log do banco de dados.
188
Lab 19.1: Migração Storage
Nas máquinas nerv01, nerv02, nerv03 e nerv04, verifique os Discos exportados no Storage.
# iscsiadm -m discovery -t sendtargets -p 192.168.0.202 -l
Nas máquinas nerv02, nerv03 e nerv04, detecte os discos do ASM Filter Driver.
$ export ORACLE_HOME=$GRID_HOME
$ export PATH=$ORACLE_HOME/bin:$PATH
$ su
# asmcmd afd_scan
# asmcmd afd_lslbl
189
Lab 19.2: Migração Storage
Na máquina nerv01, adicione o novo disco no Disk Group FRA, e acompanhe o Rebalance.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ rlwrap sqlplus / AS SYSASM
SQL> SET PAGESIZE 1000
SQL> SET LINESIZE 200
SQL> COLUMN PATH FORMAT A50
SQL> SELECT NAME, PATH FROM V$ASM_DISK ORDER BY PATH;
Na máquina nerv01, remova o antigo disco do Disk Group FRA, e acompanhe o Rebalance.
SQL> SELECT G.NAME, D.NAME, D.TOTAL_MB, D.FREE_MB FROM V$ASM_DISK D, V$ASM_DISKGROUP G
WHERE G.GROUP_NUMBER = D.GROUP_NUMBER ORDER BY G.NAME, D.NAME;
SQL> ALTER DISKGROUP FRA DROP DISK FRA01;
SQL> SELECT * FROM V$ASM_OPERATION;
190
ACFS (ASM Cluster File System)
191
Lab 20.1: ACFS
Na máquina nerv01, crie o volume para o ACFS.
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM1
$ export PATH=$ORACLE_HOME/bin:$PATH
$ rlwrap sqlplus / AS SYSASM
SQL> ALTER DISKGROUP FRA ADD VOLUME ACFSVOL1 SIZE 50G;
Nas máquinas nerv01, nerv02, nerv03 e nerv04, crie um diretório para montar o Volume ACFS.
# mkdir -p /u01/app/oracle/acfsvol1
# chown -R oracle:oinstall /u01/app/oracle/acfsvol1
Nas máquinas nerv01, nerv02, nerv03 e nerv04, crie um diretório para montar o Volume ACFS.
# /bin/mount -t acfs /dev/asm/acfsvol1-? /u01/app/oracle/acfsvol1/
# chown -R oracle:oinstall /u01/app/oracle/acfsvol1
# df -h
192
Lab Auxiliar 1: Configuração DNS
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; };
};
193
Lab Auxiliar 1: Configuração DNS
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
194
Lab Auxiliar 1: Configuração DNS
Na máquina nerv09, deixe APENAS as seguintes linhas no arquivo /var/named/15.168.192.in-addr.arpa.
$ORIGIN 15.168.192.in-addr.arpa.
$TTL 1H
@ IN SOA nerv09.localdomain. root.nerv09.localdomain. (
2
3H
1H
1W
1H )
15.168.192.in-addr.arpa. IN NS nerv09.localdomain.
195
Lab Auxiliar 1: Configuração DNS
Na máquina nerv09, inicie o DNS Server, e o habilite para o início automático.
# service named start
# chkconfig named on
196
Lab Auxiliar 2: Configuração Storage
Na máquinas nerv09, crie 1 partição de 50GB (CONFIG), e 1 de 20GB (DATA), 1 de 10GB (FRA), 3 de 1GB
(VD), e 2 de 2GB (OCR).
197
Perguntas?