Boas práticas de programação com Object Calisthenics
GUOB 2017 - Extraindo o máximo do Oracle Grid Infrastructure
1. 05 de Agosto de 2017, São Paulo, Brasil
EXTRAINDO O MÁXIMO DO ORACLE GRID INFRASTRUCTURE
Franky Weber Faust
2. 05 de Agosto de 2017, São Paulo, Brasil
Franky Weber Faust
• 26 anos
• Escritor ativo na OTN nas seções “Desempenho e Disponibilidade de Banco de
dados” e “Cloud Computing”
• Blog loredata.com.br
• Diversos projetos em grandes empresas nacionais e multinacionais (nas áreas
automotiva, agrícola, energia e biocombustível, fintech, saúde, etc)
• DBA e SysAdmin no PagSeguro (Oracle, Linux, Exadata, MySQL, SQL Server,
Postgres, Cassandra, MongoDB)
3. 05 de Agosto de 2017, São Paulo, Brasil
Certificações
4. 05 de Agosto de 2017, São Paulo, Brasil
Isenção de responsabilidade
• Não acredite em tudo que você lê.
• Por algo estar escrito não significa que é verdade.
• O que é verdade aqui pode não ser verdade lá.
• O que era verdade ontem pode não ser verdade hoje.
• O que é verdade hoje pode não ser verdade amanhã.
• Se os fatos não se adequam à teoria, modifique a teoria.
• Questione e só acredite em fatos: teste!
• Quando você mudar algo podem acontecer três coisas.
Portilho, Ricardo
5. 05 de Agosto de 2017, São Paulo, Brasil
Agenda
• Oracle Grid Infrastructure
• ASMFD
• Flex ASM
• Flex Clusters
• Interconnect
• Clusterware Parameters
• Grid Infrastructure Management Repository
• Failure Groups
• Flex Redundancy
• ASM performance monitoring
• ASM Online Operations
• ASM Cluster FileSystem
• Database workload using Services
• Conclusão
• Cena pós-créditos
6. 05 de Agosto de 2017, São Paulo, Brasil
Oracle Grid Infrastructure
• Oracle Automatic Storage Management
• Oracle Clusterware
• Base para o Oracle Real Application Clusters
7. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver
• ASM Filter Driver
• Módulo do Kernel do ASM
• Filtra I/O inválido (non Oracle) pois opera no kernel do Linux
• Install GI SW Only (12.1.0.2)
• Bem fácil configurar no 12.2
• 12.1: BS <> 4096 então oracleafd_use_logical_block_size=1
• 12.2: BS pode ser configurado na criação do Diskgroup
• Thin Provisioning (compat >= 12.1)
• Linux e Solaris
• Ou ASMFD ou ASMLib
• *ASMTool (Windows)
8. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver
9. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver
10. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver
11. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver
12. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver
13. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
14. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
15. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
16. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
17. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
18. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
19. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
20. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
21. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
22. 05 de Agosto de 2017, São Paulo, Brasil
ASM Filter Driver: testes
23. 05 de Agosto de 2017, São Paulo, Brasil
Flex ASM
• Menor # instâncias ASM no Cluster
• Online DB connection failover (>=12c)
• Failover para a instância ASM com menos carga
• Relocate manual do client (ALTER SYSTEM RELOCATE CLIENT
'instname:dbname';)
• DB <12c precisa cardinality=ALL
• DB client acessa ASM disk, mas solicita I/O de MD à instância ASM
• Necessita ASM Network e ASM Listener para acesso remoto dos DBs
• Usa password file para autenticação
• ASM Network só trafega metadados de e para os clients
• ACFS usa ASM Proxy Instance (+APXn)
• Standard ASM pode ser convertido para Flex ASM
• 12cR2 New Feature: Pode trafegar dados pela ASM Net no caso de Reader
Nodes (necessita de um I/O server)
24. 05 de Agosto de 2017, São Paulo, Brasil
Flex ASM: Arquitetura
sls1 sls2 hr1 erp1 erp2 erp3
+asm1 +asm2 +asm3
srv1 srv2 srv3 srv4 srv5 srv6
ASM DGs
25. 05 de Agosto de 2017, São Paulo, Brasil
Flex ASM: Arquitetura
sls1 sls2 hr1 erp1 erp2 erp3
+asm1 +asm2 +asm3
srv1 srv2 srv3 srv4 srv5 srv6
ASM DGs
+asm2
26. 05 de Agosto de 2017, São Paulo, Brasil
Flex ASM: Reconfiguração
27. 05 de Agosto de 2017, São Paulo, Brasil
Flex ASM: Reconfiguração
28. 05 de Agosto de 2017, São Paulo, Brasil
Flex ASM: Reconfiguração
29. 05 de Agosto de 2017, São Paulo, Brasil
Flex Clusters
• Hub + Leaf nodes
• Flex ASM e GNS são pré-requisitos
• Hub nodes são similares aos nodes de um Standard Cluster
• Leaf nodes não precisam de acesso direto ao storage compartilhado, então não
podem ter uma instância RAC DB executando.
• Leaf nodes servem para aplicações: TomCat, GoldenGate, PeopleSoft, Siebel,
Weblogic, etc
• 12cR2 New Feature: Leaf nodes podem trafegar dados através da ASM Net para
poder executar uma instância RAC DB Read-Only (Reader Nodes)
30. 05 de Agosto de 2017, São Paulo, Brasil
Interconnect: HAIP
• Redundant Interconnect Usage (HAIP)
• Facilita a redundância do interconnect
• Não necessita configurar bonding nas interfaces da rede privada
• As placas de rede devem estar em diferentes subnets para melhor redundância
31. 05 de Agosto de 2017, São Paulo, Brasil
Interconnect: HAIP
[root@london1 ~]# . oraenv
ORACLE_SID = [root] ? +ASM1
The Oracle base has been set to /u01/app/oracle
[root@london1 ~]# oifcfg getif
enp0s3 192.168.56.0 global public
enp0s8 192.168.0.0 global cluster_interconnect
enp0s9 192.168.1.0 global asm
[root@london1 ~]# oifcfg iflist
enp0s3 192.168.56.0
enp0s8 192.168.0.0
enp0s8 169.254.0.0
enp0s9 192.168.1.0
enp0s10 192.168.2.0
[root@london1 ~]# oifcfg setif -global
enp0s10/192.168.2.0:cluster_interconnect
[root@london1 ~]# crsctl stop cluster -all
[root@london1 ~]# crsctl start cluster -all
[root@london1 ~]# oifcfg getif
enp0s3 192.168.56.0 global public
enp0s8 192.168.0.0 global cluster_interconnect
enp0s9 192.168.1.0 global asm
enp0s10 192.168.2.0 global cluster_interconnect
32. 05 de Agosto de 2017, São Paulo, Brasil
Interconnect: Jumbo Frames
• MTU size 9000:
• 14 Bytes: Ethernet Header
• 20 Bytes: IP Header
• 8 Bytes: UDP Header
• 8954 Bytes: Data
• Ethernet Trailer: 4 Bytes
• Total: 9000 Bytes
33. 05 de Agosto de 2017, São Paulo, Brasil
Clusterware Parameters
• reboottime: tempo para o reboot após o node sofrer o eviction
• misscount: heartbeat entre os nodes do cluster (interconnect)
• disktimeout: heartbeat do voting disk (storage)
• Ajuste conforme sua necessidade, mas ajuste!
[root@london1 ~]# crsctl get css reboottime
CRS-4678: Successful get reboottime 3 for Cluster Synchronization Services.
[root@london1 ~]# crsctl get css misscount
CRS-4678: Successful get misscount 30 for Cluster Synchronization Services.
[root@london1 ~]# crsctl get css disktimeout
CRS-4678: Successful get disktimeout 200 for Cluster Synchronization Services.
[root@london1 ~]# crsctl set css reboottime 2
CRS-4684: Successful set of parameter reboottime to 2 for Cluster Synchronization Services.
[root@london1 ~]# crsctl set css misscount 5
CRS-4684: Successful set of parameter misscount to 5 for Cluster Synchronization Services.
[root@london1 ~]# crsctl set css disktimeout 60
CRS-4684: Successful set of parameter disktimeout to 60 for Cluster Synchronization Services.
[root@london2 ~]# crsctl get css disktimeout
CRS-4678: Successful get disktimeout 60 for Cluster Synchronization Services.
34. 05 de Agosto de 2017, São Paulo, Brasil
Grid Infrastructure Management Repository
• Grid Infrastructure Management Repository (MGMTDB)
• CHM - Cluster Health Monitor
• CHM coleta e analisa métricas do SO e do Cluster
• CHM Services: OSYSMOND, OLOGGERD, MGMTDB
• GIMR é obrigatório a partir da 12.1.0.2
• Single-tenant (CDB+1 PDB)
• Executa em 1 nó do cluster e em caso de falha faz failover para outro nó
• Armazenado no mesmo DG do OCR
• Pode ser recriado em outro DG seguindo o Doc ID 1589394.1
• Não necessita manutenção, na maioria dos casos
• 12cR2 New Feature: Pode ser criado em outro DG já na instalação
35. 05 de Agosto de 2017, São Paulo, Brasil
Disk Groups
• 11g max 63 DGs, 12c max 511 DGs
• 12c max 10000 discos no ASM
• 12c max 1 milhão de arquivos por DG
• <12c max 2 TB por disco, >12c max 4 PB (AU 1 MB) por disco
• <12c max 20 PB por ASM, >12c max 320 EB por ASM
• GRID, OCR, VD, DATA, IDX, REDOA, REDOB, FRA
• asm_diskstring com filtros eficientes (/dev/*, /dev/sd*, /dev/emcpower*)
• Redundância no Storage ou ASM (Extend Clusters em ambos)
• O disco mais lento de um DG é o que define o desempenho desse DG
• Separar DGs com discos do mesmo tamanho e performance
• #discos = 4 * #multipaths
• >=12.2 permite alterar a redundância do DG
• >=12.1 permite renomear DG
36. 05 de Agosto de 2017, São Paulo, Brasil
Failure Groups
• Usado para espelhar dados no ASM
• FGs devem ter a mesma quantidade de discos e discos do mesmo tamanho
• #FGs depende do tipo de falha tolerada (discos/controladora/storage)
• Normal >=2 FGs, High >=3 FGs
• Normal = 2 cópias, High = 3 cópias
• PST
• Use asm_preferred_read_failgroup com Extended Clusters
• Fast Mirror Resync realiza a sincronização dos discos quando um disco é
substituído ou passa do estado offline para online
37. 05 de Agosto de 2017, São Paulo, Brasil
Failure Groups
DATA
Normal Redundancy
FG1 FG2
DATA
High Redundancy
FG1 FG2 FG3
DATA
External Redundancy
FG1
FG2
FG3
FG4
FG5
FG6
FG7
FG8
38. 05 de Agosto de 2017, São Paulo, Brasil
Failure Groups
DATA
Normal Redundancy
FG1 FG2 FG3
39. 05 de Agosto de 2017, São Paulo, Brasil
Failure Groups
40. 05 de Agosto de 2017, São Paulo, Brasil
Failure Groups
41. 05 de Agosto de 2017, São Paulo, Brasil
Flex Redundancy
• 12.2 New Feature: Flex Redundancy / Flex Disk Group
• Permite gerenciar o espaço a nível de database
• Permite redundância a nível de tipo de arquivo
• File Groups são usados para os datafiles
• Cada database em um File Group distinto
• Redundâncias diferentes para databases com criticidades diferentes
• Gerenciamento de cotas no nível do File Group
• Disk Groups com Normal ou High Redundancy e no mínimo 3 Failure Groups
podem ser convertidos para Flex
42. 05 de Agosto de 2017, São Paulo, Brasil
Flex Redundancy
43. 05 de Agosto de 2017, São Paulo, Brasil
Flex Redundancy
44. 05 de Agosto de 2017, São Paulo, Brasil
Flex Redundancy
45. 05 de Agosto de 2017, São Paulo, Brasil
Flex Redundancy
46. 05 de Agosto de 2017, São Paulo, Brasil
Flex Redundancy
47. 05 de Agosto de 2017, São Paulo, Brasil
ASM Performance Monitoring
• iostat?
• asmstat?
• whatthefu..stat?
• v$asm_disk_stat
48. 05 de Agosto de 2017, São Paulo, Brasil
ASM Online Operations
• Adição e remoção de discos online
• Com o uso de Failure Groups há resiliência de disco/controladora/storage
• É possível migrar o banco de dados para outro Storage
• Rebalanceamento pode ser consultado na v$asm_operation ou através do lsop
do asmcmd
• Resize feito no storage pode ser reconhecido no disk group
• Explain Work For… e v$asm_estimate
49. 05 de Agosto de 2017, São Paulo, Brasil
ASM Cluster FileSystem
Encryption
Snapshot
Security
Replication
Auditing
Tagging
Compression
Plug-ins
HA-NFS
&
HA-SMB
Oracle ACFS
Oracle ADVM
OracleASM
OracleClusterware
ASM
Disk
Group
DB Datafiles on ACFS
General Purpose files on ACFS
Database RAC Application, Middleware & General Files
Application & Middleware on ACFS
50. 05 de Agosto de 2017, São Paulo, Brasil
ASM Cluster FileSystem
• Standard UI
• Funcionalidades Avançadas
Dados de Negócio Shared homes Enterprise Edi3on (EE) Arquivos Oracle Database
• Para arquivos de DB, Apps e
Middleware
• HA e administração simples
• Armazenamento de
Business data
Arquivos Genéricos Backups Enterprise Edi3on (EE) HA/NFS server
• Repositório OVM, arquivos
Trail do Golden Gate,
arquivos trace, etc.
• Aproveita o armazenamento
existente por custo zero
• Armazene backups de
maneira simples usando
ACFS NFS / CIFS
@ricardoACFSpm
ricardo.a.gonzalez@oracle.com
www.oracle.com/goto/acfs
51. 05 de Agosto de 2017, São Paulo, Brasil
Database workload using Services
• Load Balance
• 1 serviço por aplicação/módulo (ERP, HCM, CRM, DW, BI, ETL)
• Aplicações que usam as mesmas tabelas devem se conectar ao mesmo nó do
RAC
• Preferred e Available (admin-managed)
• Relocate/Failover
52. 05 de Agosto de 2017, São Paulo, Brasil
Conclusão
• Use o ASM Filter Driver.
• Use Flex ASM.
• HAIP é mais fácil que bonding.
• Defina misscount, disktimeout e reboottime.
• Redundância do Disk group ou no ASM ou storage (RAID).
• Redundância do OCR e Voting Disk no ASM e no storage.
• OCR e VD em Disk Groups separados.
• GIMR (MGMTDB) em Disk Group separado.
• Tire vantagem do ASM com as operações online.
• ACFS para arquivos da app.
• Serviços, serviços e serviços. Segmente as aplicações por nó.
53. 05 de Agosto de 2017, São Paulo, Brasil
Cena pós-créditos
• *Continuação da instalação em caso de falha (gridSetup.sh -
executeConfigTools)
• *Reexecução do root.sh em caso de falha