Oracle RAC 12cR2nervinformatica.com.br/Downloads/Materiais/ORAC-12cR2...Oracle 11gR2: CRn => Grid...
Transcript of Oracle RAC 12cR2nervinformatica.com.br/Downloads/Materiais/ORAC-12cR2...Oracle 11gR2: CRn => Grid...
Ricardo Portilo Prooiricardo@oervioformatcaacomabr
Esta obra está iiceociada sob a iiceoçaCreatve Commoos AtribuiçooSnemDerivados oa0 BrasiiaPara ver uma cópia desta iiceoça, visite ltp://creatvecommoosaorg/iiceoses/bySod/oa0/br/a
Oracle RAC 12cR2Em Oracie Eoterprise Lioux 7a4
Iociui CDB Arclitecture
2
Comandos no Treinamento
Comando com o usuário root:# ls -lh
Comando com um usuário oracle:$ ls -lh
Adicionar texto a um arquivo:$ vi initORCL.ora...db_cache_size=500M...
Comando no Oracle:SQL> SELECT STATUS FROM V$INSTANCE;
Algo deve ser alterado de acordo com sua máquina:Hostoame: nerv01aiocaidomaio
Quando algo dá errado propositalmente:O que aconteceu?
Coloque todas as senhas (root, oracle, SYS, SYSTEM) como Nerv2018.
3
rlwrap
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm# yum -y install epel-release-latest-7.noarch.rpm# yum -y install rlwrap
$ rlwrap sqlplus / AS SYSDBA$ rlwrap rman TARGET /$ rlwrap lsnrctl$ rlwrap dgmgrl SYS/Nerv2018@ORCL
4
● Dispooibiiidade● Escaiabiiidade● Custo Totai de Propriedade (TCO)
4
Por que usar o RAC?
5
● Custo de Equipameotos● Custo de Liceoças● Custo de Coolecimeoto● Compiexidade● Escaiabiiidade
5
Por que não usar o RAC?
66
Arquitetura
7
● 1 Database x N Iostaoces• + Backgrouod Processes• + daemoos• OCR• Votog Disk
7
Oracle RAC x Single Instance
8
Oracle 6.0.35: VAX / VMnOracle 7: PCMOracle 8i: Cacle Fusioo IOracle 9i: Cacle Fusioo II, Oracie Ciuster Maoagemeot nervicesOracle 10gR1:• Oracie Ciuster Maoagemeot nervices => Ciuster Ready nervices (CRn)• AnM S Automatc ntorage maoagemeot• FAN S Fast Appiicatoo Notfcatoo• Iotegraçoo com Database nervices• AWR, ADDM, AnH, ncleduier, Eoterprise MaoagerOracle 10gR2: CRn => Oracie Ciusterwarea New Features iociuem: ciuvfy, asmcmdaOracle 11gR1: Apeoas 7 New FeaturesaOracle 11gR2: CRn => Grid Iofrastrucutrea o2 New FeaturesaOracle 12cR1: oo New FeaturesaOracle 12cR2: o2 New Featuresa
8
Evolução Oracle RAC
9
● Eolaoced Oracie RAC Mooitoriog aod Diagoostcs io Eoterprise Maoager● Eolaoced Oracie Reai Appiicatoo Ciusters Coofguratoo Assistaots● OCI Ruotme Coooectoo Load Baiaociog● Paraiiei Executoo for Oracie Reai Appiicatoo Ciusters● nupport for Distributed Traosactoos io ao Oracie RAC Eoviroomeot● Eolaoced Oracie RAC nwitclover nupport for Logicai ntaodby Databases● Eolaoced Oracie RAC Mooitoriog aod Diagoostcs io Eoterprise Maoager
9
RAC 11gR1 New Features
10
● Coofguratoo Assistaots nupport New Oracie RAC Features● Eolaoced Ciuster Verifcatoo tiity● Iotegratoo of Ciuster Verifcatoo tiity aod Oracie oiversai Iostaiier● Ciuster Time nervice● Oracie Ciuster Registry (OCR) Eolaocemeots● Grid Piug aod Piay (GPoP)● Oracie Restart● PoiicySBased Ciuster aod Capacity Maoagemeot● Improved Ciusterware Resource Modeiiog● RoieSneparated Maoagemeot● Ageot Deveiopmeot Framework● Zero Dowotme Patcliog for Oracie Ciusterware aod Oracie RAC● Eoterprise MaoagerSBased Ciusterware Resource Maoagemeot● Eoterprise Maoager Provisiooiog for Oracie Ciusterware aod Oracie Reai Appiicatoo Ciusters● Eoterprise Maoager nupport for Grid Piug aod Piay● Eoterprise Maoager nupport for Oracie Restart● Coofguratoo Assistaot nupport for Removiog Oracie RAC Iostaiiatoos
10
RAC 11gR2 New Features – Parte 1
11
● Oracie oiversai Iostaiier nupport for Removiog Oracie RAC Iostaiiatoos● Improved Deiostaiiatoo nupport Witl Oracie oiversai Iostaiier● Dowogradiog Database Coofgured Witl DBCootroi● Oracie Restart Iotegratoo witl Oracie oiversai Iostaiier● OutSofSPiace Oracie Ciusterware pgrade● O I nupport for OutSofSPiace Oracie Ciusterware pgrade● nerver Cootroi (nRVCTL) Eolaocemeots● nerver Cootroi (nRVCTL) Eolaocemeots to nupport Grid Piug aod Piay● nRVCTL nupport for niogieSIostaoce Database io a Ciuster● oiversai Coooectoo Pooi ( CP) Iotegratoo witl Oracie Data Guard● CP Iotegratoo Witl Oracie Reai Appiicatoo Ciusters● oiversai Coooectoo Pooi ( CP) for JDBC● Java API for Oracie RAC FAN Higl Avaiiabiiity Eveots● EMCA nupports New Oracie RAC Coofguratoo for Eoterprise Maoager● Giobai Oracie RAC AnH Report + ADDM Backwards Compatbiiity
11
RAC 11gR2 New Features – Parte 2
1212
RAC 12cR1 New Features – Parte 1● Oracie Fiex Ciuster● nRVCTL nupport for Oracie Fiex Ciuster Impiemeotatoos● PoiicySBased Ciuster Maoagemeot aod Admioistratoo● WlatSIf Commaod Evaiuatoo● nlared Grid Namiog nervice (GNn)● Ooiioe Resource Atribute Modifcatoo● Grid Iofrastructure ncript Automatoo for Iostaiiatoo aod pgrade● Muitpurpose Ciuster Iostaiiatoo nupport● nupport for IPv6 Based IP Addresses for Oracie RAC Ciieot Coooectvity● Message Forwardiog oo Oracie RAC● nlarded Queues for Performaoce aod ncaiabiiity● Oracie Grid Iofrastructure Roiiiog Migratoo for OoeSOf Patcles
1313
RAC 12cR1 New Features – Parte 2● Oracie Fiex AnM● Oracie AnM nlared Password Fiie io a Disk Group● Oracie AnM Rebaiaoce Eolaocemeots● Oracie AnM Disk Resyoc Eolaocemeots● Oracie AnM clowo, clgrp, clmod aod Opeo Fiies nupport● Oracie AnM nupport ALTER DInKGRO P REPLACE nER● Oracie AnM Fiie Access Cootroi oo Wiodows● Oracie AnM Disk ncrubbiog● Oracie Ciuster Registry Backup io AnM Disk Group nupport● Eoterprise Maoager nupport for Oracie AnM Features● Oracie ACFn nupport for Aii Oracie Database Fiies● Oracie ACFn aod Higliy Avaiiabie NFn● Oracie ACFn noapslots Eolaocemeots● Oracie ACFn Repiicatoo Iotegratoo witl Oracie ACFn necurity aod Eocryptoo● Oracie ACFn necurity aod Eocryptoo Features● Oracie ACFn Fiie Tags for Grid Homes● Oracie ACFn PiugSio APIs● Oracie ACFn Repiicatoo aod Taggiog oo AIX● Oracie ACFn Repiicatoo aod Taggiog oo noiaris● Oracie Audit Vauit nupport for Oracie ACFn necurity aod Eocryptoo● Eoterprise Maoager nupport for Oracie ACFn New Features
1414
RAC 12cR2 New Features – Parte 1● Oracie Fiex AnM Disk Group Quota Maoagemeot● Prioritied Rebaiaociog● Exteodiog Oracie Reai Appiicatoo Ciusters (Oracie RAC) Coofguratoo nupport● I/O nerver● Ciuster Resource Actvity Log● Ciuster Verifcatoo tiity S necood Geoeratoo Commaod Lioe Output● nwitcl nervice Eolaocemeot● VM Maoager Ageot for GI● nlared Grid Namiog nervice Higl Avaiiabiiity● Oracie Ciusterware Resource Groups● Reasooed WlatSIf Commaod Evaiuatoo (WlySIf)● nerver WeigltSBased Node Evictoo● LoadSAware Resource Piacemeot● Oracie Ciusterware Appiicatoo Ciusters● Oracie Grid Iofrastructure Iostaiiatoo nupport for Appiicatoo Ciuster Iostaiiatoo Type
1515
RAC 12cR2 New Features – Parte 2● Oracie Automatc ntorage Maoagemeot Ciuster Fiie nystem (Oracie ACFn) noapslot Eolaocemeots● Oracie ACFn nystem Defragger● 4K nectors aod Metadata Eolaocemeots for Oracie ACFn● Oracie ACFn Metadata Coiiectoo Eolaocemeots● Oracie ACFn PiugSios for Fiie Cooteot● Oracie ACFn Loopback Device● Oracie ACFn API Access for noapslots, Fiie Tags, PiugSio Metrics● Oracie ACFn Compressioo Eolaocemeots● Oracie noapslotSBased Repiicatoo Eolaocemeots● Oracie ACFn AutoSResiie Eolaocemeots● Oracie ACFn nparse Fiies Eolaocemeots● Oracie ACFn Metadata Acceieratoo● Oracie ACFn NAn Maximum Avaiiabiiity eXteosioos● Rapid Home Provisiooiog● nupport for IPv6 Based IP Addresses for tle Oracie Ciuster Iotercoooect● Oracie Reai Appiicatoo Ciusters (Oracie RAC) Reader Nodes● nerviceSOrieoted Bufer Cacle Access Optmiiatoo
1616
Flex ASM
1717
Flex Cluster
Lab 1.1: Instalação OEL 7
Lab 1.2: Instalação OEL 7
Lab 1.3: Instalação OEL 7
Lab 1.4: Instalação OEL 7
Lab 1.5: Instalação OEL 7
Lab 1.6: Instalação OEL 7
Lab 1.7: Instalação OEL 7
Lab 1.8: Instalação OEL 7
Lab 1.9: Instalação OEL 7
Lab 1.10: Instalação OEL 7
Lab 1.11: Instalação OEL 7
Lab 1.12: Instalação OEL 7
Lab 1.13: Instalação OEL 7
Lab 1.14: Instalação OEL 7
Lab 1.15: Instalação OEL 7
Lab 1.16: Instalação OEL 7
Lab 1.17: Instalação OEL 7
Lab 1.18: Instalação OEL 7
Lab 1.19: Instalação OEL 7
Lab 1.20: Instalação OEL 7
Lab 1.21: Instalação OEL 7
Lab 1.22: Instalação OEL 7
Lab 1.23: Instalação OEL 7
Lab 1.24: Instalação OEL 7
Lab 1.25: Instalação OEL 7
Lab 1.26: Instalação OEL 7
Lab 1.27: Instalação OEL 7
Lab 1.28: Instalação OEL 7
Lab 1.29: Instalação OEL 7
Lab 1.30: Instalação OEL 7
Lab 1.31: Instalação OEL 7
Lab 1.32: Instalação OEL 7
Lab 1.33: Instalação OEL 7
Lab 1.34: Instalação OEL 7
Lab 1.35: Instalação OEL 7
Lab 1.36: Instalação OEL 7
Lab 1.37: Instalação OEL 7
Lab 1.38: Instalação OEL 7
Lab 1.39: Instalação OEL 7
Lab 1.40: Instalação OEL 7
Lab 1.41: Instalação OEL 7
Lab 1.42: Instalação OEL 7
Lab 1.43: Instalação OEL 7
Lab 1.44: Instalação OEL 7
Lab 1.45: Instalação OEL 7
Lab 1.46: Instalação OEL 7
Lab 1.47: Instalação OEL 7
65
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-server-12cR2-preinstall.x86_64# yum -y install oracleasm-support gcc gcc-c++ make# yum -y install unzip wget iscsi-initiator-utils java-1.8.0-openjdk screen
# yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm# yum -y update# yum -y install rlwrap
Nas máquinas nerv01 e nerv02, adicione a seguinte linha no arquivo /etc/fstab.tmpfs /dev/shm tmpfs defaults,size=3g 0 0
65
Lab 2.1: Confguração OEL 7
66
Nas máquinas nerv01 e nerv02, remova o DNS 8.8.8.8 da placa de rede eth0.# nmtui
66
Lab 2.2: Confguração OEL 7
6767
Lab 2.3: Confguração OEL 7
6868
Lab 2.4: Confguração OEL 7
69
Nas máquinas nerv01 e nerv02, ACRESCENTAR AO FINAL do arquivo /etc/hosts:# Public192.168.15.101 nerv01.localdomain nerv01192.168.15.102 nerv02.localdomain nerv02# Private192.168.1.101 nerv01-priv.localdomain nerv01-priv192.168.1.102 nerv02-priv.localdomain nerv02-priv# Virtual192.168.15.111 nerv01-vip.localdomain nerv01-vip192.168.15.112 nerv02-vip.localdomain nerv02-vip
69
Lab 2.5: Confguração OEL 7
70
Nas máquinas nerv01 e nerv02, executar os comandos abaixo.# groupadd oinstall# groupadd dba# groupadd oper# groupadd asmadmin# groupadd asmdba# groupadd asmoper# usermod -g oinstall -G dba,oper,asmadmin,asmdba,asmoper oracle# mkdir -p /u01/app/12.2.0.1/grid# chown -R oracle:oinstall /u01# chmod -R 775 /u01
Nas máquinas nerv01 e nerv02, adicione a linha abaixo ao fnal do arquivo /etc/sysconfg/network....NOZEROCONF=YES...
70
Lab 2.6: Confguração OEL 7
71
Nas máquinas nerv01 e nerv02, desabilite o frewall, o avahi e o chronyd.# systemctl disable firewalld# systemctl disable avahi-daemon# systemctl enable chronyd
Nas máquinas nerv01 e nerv02, altere as seguintes linhas no arquivo /etc/chrony.conf....# server 0.rhel.pool.ntp.org iburst# server 1.rhel.pool.ntp.org iburst# server 2.rhel.pool.ntp.org iburst# server 3.rhel.pool.ntp.org iburstserver 192.168.15.2 iburst...
Nas máquinas nerv01 e nerv02, altere o SELinux para o modo permissive.# vi /etc/selinux/config...SELINUX=permissive...
Reinicie as máquinas nerv01 e nerv02 para validar todas as confgurações.# reboot
71
Lab 2.7: Confguração OEL 7
72
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=/tmpexport TMPDIR=$TMPexport ORACLE_HOSTNAME=nerv01.localdomainexport ORACLE_UNQNAME=ORCLexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1export GRID_HOME=/u01/app/12.2.0.1/gridexport CRS_HOME=$GRID_HOMEexport ORACLE_SID=ORCL1export ORACLE_TERM=xtermexport PATH=/usr/sbin:$PATHexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibif [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fifi
72
Lab 2.8: Confguração OEL 7
7373
Opções de Shared Storage
7474
Lab 3.1: Confguração DiscosNas máquinas nerv01 e nerv02, atve o pacote iSCSI Initator.# systemctl enable iscsid# systemctl start iscsid
Nas máquinas nerv01 e nerv02, verifque os Discos exportados no Storage.# iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l
Nas máquinas nerv01 e nerv02 verifque se os discos foram confgurados localmente.# fdisk -l | grep sd
Na máquina nerv01, partcione os novos discos.# fdisk /dev/sdbn <enter>p <enter>1 <enter><enter><enter>w <enter>...
7575
Lab 3.2: Confguração DiscosNa máquina nerv01, confgure o disco com o AFD (ASM Filter Driver).$ cp linuxx64_12201_grid_home.zip /u01/app/12.2.0.1/grid/$ cd /u01/app/12.2.0.1/grid/$ unzip -q linuxx64_12201_grid_home.zip$ su# export ORACLE_HOME=$GRID_HOME# $ORACLE_HOME/bin/asmcmd afd_label CONFIG01 /dev/sdb1 --init# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdb1# chown oracle:asmadmin /dev/sdb1
Na máquina nerv02, confgure o disco com o AFD (ASM Filter Driver).# partprobe /dev/sdb# chown oracle:asmadmin /dev/sdb1
76
Na máquina nerv01, com o usuário root, instale o Cluster Verifcaton Utlity.# yum -y install /u01/app/12.2.0.1/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
Copie o Cluster Verifcaton Utlity para a máquina nerv02, e instale-o com o usuário root.[root@nerv01 ~]# scp /u01/app/12.2.0.1/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm nerv02:/root/[root@nerv02 ~]# yum -y install /root/cvuqdisk-1.0.10-1.rpm
Na máquina nerv01, com o usuário oracle, inicie a instalação do Grid Infrastructure.$ cd /home/oracle$ unzip -q p25078431_122010_Linux-x86-64.zip$ cd /u01/app/12.2.0.1/grid/$ ./gridSetup.sh -applyOneOffs /home/oracle/25078431/
76
Lab 4.1: Instalação Grid Infrastructure
7777
Lab 4.2: Instalação Grid Infrastructure
7878
Lab 4.3: Instalação Grid Infrastructure
7979
Lab 4.4: Instalação Grid Infrastructure
8080
Lab 4.5: Instalação Grid Infrastructure
8181
Lab 4.6: Instalação Grid Infrastructure
8282
Lab 4.7: Instalação Grid Infrastructure
8383
Lab 4.8: Instalação Grid Infrastructure
8484
Lab 4.9: Instalação Grid Infrastructure
8585
Lab 4.10: Instalação Grid Infrastructure
8686
Lab 4.11: Instalação Grid Infrastructure
8787
Lab 4.12: Instalação Grid Infrastructure
8888
Lab 4.13: Instalação Grid Infrastructure
8989
Lab 4.14: Instalação Grid Infrastructure
9090
Lab 4.15: Instalação Grid Infrastructure
9191
Lab 4.16: Instalação Grid Infrastructure
9292
Lab 4.17: Instalação Grid Infrastructure
9393
Lab 4.18: Instalação Grid Infrastructure
9494
Lab 4.19: Instalação Grid Infrastructure
9595
Lab 4.20: Instalação Grid Infrastructure
9696
Lab 4.21: Instalação Grid Infrastructure
9797
Lab 4.22: Instalação Grid Infrastructure
9898
Lab 4.23: Instalação Grid Infrastructure
9999
Lab 4.24: Instalação Grid Infrastructure
# /u01/app/oraInventory/orainstRoot.sh...# /u01/app/12.2.0.1/grid/root.sh...Enter the full pathname of the local bin directory: [/usr/local/bin]: <ENTER>...
100100
Lab 4.25: Instalação Grid Infrastructure
101
Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador do Oracle Database Sofware.$ mkdir -p /u01/app/oracle/product/12.2.0.1/db_1[oracle@nerv02 ~]$ mkdir -p /u01/app/oracle/product/12.2.0.1/db_1$ cd /home/oracle$ unzip -q linuxx64_12201_database.zip$ cd /home/oracle/database$ ./runInstaller
101
Lab 5.1: Instalação Oracle Database Sofware
102102
Lab 5.2: Instalação Oracle Database Sofware
103103
Lab 5.3: Instalação Oracle Database Sofware
104104
Lab 5.4: Instalação Oracle Database Sofware
105105
Lab 5.5: Instalação Oracle Database Sofware
106106
Lab 5.6: Instalação Oracle Database Sofware
107107
Lab 5.7: Instalação Oracle Database Sofware
108108
Lab 5.8: Instalação Oracle Database Sofware
109
Lab 5.9: Instalação Oracle Database Sofware
110
Lab 5.10: Instalação Oracle Database Sofware
111
Lab 5.11: Instalação Oracle Database Sofware
# /u01/app/oracle/product/12.2.0.1/db_1/root.sh...Enter the full pathname of the local bin directory: [/usr/local/bin]: <ENTER>...#
112
Lab 5.12: Instalação Oracle Database Sofware
113113
Lab 6.1: Criação Banco de Dados
Nas máquinas nerv01 e nerv02, verifque os Discos exportados no Storage.# iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l
Nas máquinas nerv01 e nerv02 verifque se os discos foram confgurados localmente.# fdisk -l | grep sd
Na máquina nerv01, partcione os novos discos.# fdisk /dev/sdcn <enter>p <enter>1 <enter><enter><enter>w <enter>...
114114
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$ su# asmcmd afd_lslbl# asmcmd afd_label DATA01 /dev/sdc1# asmcmd afd_label FRA01 /dev/sdd1# asmcmd afd_label VD01 /dev/sde1# asmcmd afd_label VD02 /dev/sdf1# asmcmd afd_label VD03 /dev/sdg1# asmcmd afd_label OCR01 /dev/sdh1# asmcmd afd_label OCR02 /dev/sdi1# asmcmd afd_lslbl# exit
Na máquina nerv02, detecte os discos do ASM Filter Driver.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM2$ su# asmcmd afd_scan# asmcmd afd_lslbl
115115
Lab 6.3: Criação Banco de Dados
Na máquina nerv01, crie os novos Disk Groups.$ rlwrap sqlplus / AS SYSASMSQL> CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK 'AFD:DATA01' ATTRIBUTE 'compatible.asm'='12.2', 'compatible.rdbms'='12.2', 'au_size'='8M';
SQL> CREATE DISKGROUP FRA EXTERNAL REDUNDANCY DISK 'AFD:FRA01' ATTRIBUTE 'compatible.asm'='12.2', 'compatible.rdbms'='12.2', 'au_size'='8M';
SQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'AFD:VD01','AFD:VD02','AFD:VD03' ATTRIBUTE 'compatible.asm'='12.2', 'compatible.rdbms'='12.2', 'au_size'='1M';
SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'AFD:OCR01','AFD:OCR02' ATTRIBUTE 'compatible.asm'='12.2', 'compatible.rdbms'='12.2', 'au_size'='1M';
SQL> SQL> SELECT GROUP_NUMBER, NAME, STRIPE, REDUNDANCY FROM V$ASM_TEMPLATE ORDER BY GROUP_NUMBER, NAME;
$ srvctl enable diskgroup -g DATA -n nerv02$ srvctl start diskgroup -g DATA -n nerv02$ srvctl enable diskgroup -g FRA -n nerv02$ srvctl start diskgroup -g FRA -n nerv02$ srvctl enable diskgroup -g VD -n nerv02$ srvctl start diskgroup -g VD -n nerv02$ srvctl enable diskgroup -g OCR -n nerv02$ srvctl start diskgroup -g OCR -n nerv02
116116
ASM Stripping: Fine x Coarse
117117
Lab 6.4: Criação Banco de Dados
Execute o DBCA para criar o banco de dados.$ source /home/oracle/.bash_profile$ dbca
118118
Lab 6.5: Criação Banco de Dados
119119
Lab 6.6: Criação Banco de Dados
120120
Lab 6.7: Criação Banco de Dados
121121
Lab 6.8: Criação Banco de Dados
122122
Lab 6.9: Criação Banco de Dados
123123
Lab 6.10: Criação Banco de Dados
124124
Lab 6.11: Criação Banco de Dados
125125
Lab 6.12: Criação Banco de Dados
126126
Lab 6.13: Criação Banco de Dados
127127
Lab 6.14: Criação Banco de Dados
128128
Lab 6.15: Criação Banco de Dados
129129
Lab 6.16: Criação Banco de Dados
130130
Lab 6.17: Criação Banco de Dados
131131
Lab 6.18: Criação Banco de Dados
132132
Lab 6.19: Criação Banco de Dados
133133
Lab 6.20: Criação Banco de Dados
134
✔ Background Process• ACMn: Atomic Cootroifie to Memory nervice• GTX0Sj: Giobai Traosactoo Process• LMON: Giobai Eoqueue nervice Mooitor• LMD: Giobai Eoqueue nervice Daemoo• LMn: Giobai Cacle nervice Process• LCK0: Iostaoce Eoqueue Process• RMno: Oracie RAC Maoagemeot Processes• RnMN: Remote niave Mooitor
✔ PFILE / SPFILE (1x) (ALTER SYSTEM … SID=’*” ou ALTER SYSTEM ... SID=’ORCL1’)✔ DATAFILEs (1x) ✔ CONTROL FILEs (1x)✔ Online REDO LOG Threads (x Nodes)✔ UNDO TABLESPACE (x Nodes)
134
RAC Database
135135
Lab 6.21: Criação Banco de DadosNa máquina nerv01, para efetuar logon na Instance ASM1, use o SQLPlus.$ export ORACLE_SID=+ASM1$ sqlplus / as SYSDBAPor que não funcionou?
Verifque os discos existentes, e espaço disponível.SQL> SELECT NAME, TOTAL_MB, FREE_MB FROM V$ASM_DISK;SQL> SELECT NAME, TOTAL_MB, FREE_MB FROM V$ASM_DISKGROUP;$ asmcmd -pASMCMD [+] > lsdg
Pelo asmcmd, copie um DATAFILE do ASM para o /home/oracle de uma máquina do RAC.
Na instância do banco, crie uma TABLESPACE.SQL> CREATE TABLESPACE SOE;SQL> ALTER TABLESPACE SOE ADD DATAFILE;SQL> ALTER TABLESPACE SOE ADD DATAFILE ‘+DATA’;
Verifque o novo DATAFILE criado, e os já existentes.SQL> SELECT FILE_NAME, BYTES, MAXBYTES, AUTOEXTENSIBLE, INCREMENT_BY FROM DBA_DATA_FILES;
136
CDB Architecture
Deprecaton of Non-CDB Architecture
Documentação 12cR1:
Documentação 12cR2:
12cR2 CDB New Features
✔ nubset ntaodby✔ Data Guard Broker PDB Migratoo or Faiiover✔ CrossSPiatorm Import of a Piuggabie Database ioto a Muitteoaot Cootaioer Database✔ I/O Rate Limits for PDBs✔ Heat Map aod Automatc Data Optmiiatoo nupport for CDBs✔ PDB Claracter net✔ PDB Refresl✔ Hiots io CONTAINERn Query✔ Paraiiei PDB Creatoo Ciause✔ PDB Arclive Fiies (apdb Fiies)✔ Defauit Tabiespace Ciause✔ Ciooiog a PDB✔ Near Zero Dowotme PDB Reiocatoo✔ Logicai ntaodby Database to nupport CDBs witl PDBs witl Difereot Claracter nets✔ LogMioer to nupport CDBs witl PDBs witl Difereot Claracter nets✔ nupport for PDBs witl Difereot Claracter nets, Time Zooe Fiie Versioos, aod Database Time Zooes io a CDB
✔ Memory Resource Maoagemeot✔ PerSProcess PGA Limits✔ Performaoce Profies aod Maodatory PDB Profies✔ CDBSLevei PDB Lockdowo
12cR2 CDB New Features
✔ Appiicatoo Root✔ Proxy PDB✔ Forwardiog Coooectoos to A New Address Based oo nervice✔ nerviceSLevei ACLs for TCP Protocoi✔ Fiaslback Piuggabie Database✔ pgradiog a CDB Witl Ooe or More PDBs io a niogie Operatoo✔ nupport for Tlousaods of Piuggabie Databases for Eacl Muitteoaot Cootaioer Database✔ Piuggabie Database Lockdowo Profies Eolaocemeots✔ Piuggabie Database Operatog nystem Credeotais✔ Oracie Eoterprise Maoager Database Express (EM Express) Resource Maoager nupport✔ EM Express: nimpiifyiog Coofguratoo for Muitteoaot Tlrougl niogie Port Access✔ EM Express: Performaoce Hub Eolaocemeots✔ Automatc Workioad Repository (AWR) nupport for a Piuggabie Database (PDB)✔ neiectve PDB pgrades✔ AWR_PDB_A TOFL nH_ENABLED Ioitaiiiatoo Parameter✔ ENABLE_A TOMATIC_MAINTENANCE_PDB Ioitaiiiatoo Parameter✔ A TOTAnK_MAX_ACTIVE_PDBn Ioitaiiiatoo Parameter✔ Giobai aod nlared Coooectoo Pooi for Oracie Cioud aod Muitteoaot Oracie Databases✔ Prioritied Rebaiaociog✔ Oracie Database Vauit Commoo Reaims aod Commaod Ruies for Oracie Muitteoaot
Opton Multtenant
Multtenant - EE
Singletenant - SE2
Esse banco utliza CDB Arquitecture?
Que Containers / PDBs este banco tem?
Em que Container estou conectado?
Como conectar em um PDB? SET CONTAINER
Como conectar em um PDB?
$ lsnrctl status...Services Summary...Service "5397376af7702ac5e0536a00a8c0505d" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "ORCL" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "ORCLXDB" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "prod" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...The command completed successfully$
Como conectar em um PDB? tnsnames.ora
$ cat $ORACLE_HOME/network/admin/tnsnames.ora...ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nerv06.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )
PROD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nerv06.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PROD) ) )
...$
Como conectar em um PDB? tnsnames.ora
Como conectar em um PDB? Easy Connect
E agora, qual o nome da Instância? E do Banco?
E agora, qual o nome da Instância? E do Banco?
CDB e PDBs: STARTUP
CDB e PDBs: STARTUP
Alert Log
DATAFILEs
DATAFILEs
DATAFILEs
Dicionário de Dados
VIEWs
VIEWs
Parâmetros
Parâmetros
TABLESPACEs
USERs
USERs
USERs
USERs
SELECT em outros Containers
Criando (Clonando) um PDB
Criando (Clonando) um PDB
Criando (Clonando) um PDB
Criando (Clonando) um PDB
Criando (Clonando) um PDB
Unplug / Plug
Unplug / Plug
DROP
Backup
CDB e PDBsRMAN> BACKUP DATABASE;RMAN> BACKUP DATAFILE 1;RMAN> BACKUP DATAFILE 1,3;
CDBRMAN> BACKUP DATABASE ROOT;RMAN> BACKUP TABLESPACE SYSTEM;RMAN> BACKUP TABLESPACE SYSTEM,SYSAUX;
PDBsRMAN> BACKUP PLUGGABLE DATABASE DEV1;RMAN> BACKUP PLUGGABLE DATABASE DEV1,DEV2;RMAN> BACKUP TABLESPACE DEV1:SYSTEM;
Restore / Recover
CDB e PDBsRMAN> RESTORE DATABASE;RMAN> RECOVER DATABASE;RMAN> RESTORE DATAFILE 1;RMAN> RECOVER DATAFILE 1;
CDBRMAN> RESTORE DATABASE ROOT;RMAN> RECOVER DATABASE ROOT;RMAN> RESTORE TABLESPACE SYSTEM;RMAN> RECOVER TABLESPACE SYSTEM;
PDBsRMAN> RESTORE PLUGGABLE DATABASE DEV1;RMAN> RECOVER PLUGGABLE DATABASE DEV1;RMAN> RESTORE TABLESPACE DEV1:USERS;RMAN> RECOVER TABLESPACE DEV1:USERS;
180
Administração
180
181181
Comandos depreciados no 11gR2
182182
Comandos depreciados no 11gR2
183183
Comandos depreciados no 11gR2
184184
Comandos depreciados no 12cR1
185185
Comandos depreciados no 12cR1
186186
Comandos depreciados no 12cR2
187187
Comandos depreciados no 12cR2
188188
Comandos depreciados no 12cR2
189
S AnMS ListeoerS VIPs e nCANS OCR: Oracie Ciuster RegistryS VD: Votog Disk (Quorum Disk)S GIMR: Grid Iofrastructure Maoagemeot Repository (SMGMTDB)S tiitários priocipais: crscti, srvctiS Daemoos: ohasd, crsd, evmd, oos, evmiogger, oioggerd, cssdmonitor, cssdagent, ocssd, octssd, osysmood, mdosd, gpopd, gipcd, orarootagent, oraagent, scriptageota
189
Componentes Grid Infrastructure
190190
Difculdades
● Comaodos depreciados● oracie X root● $GRID_HOME x $ORACLE_HOME
191191
Binários do GRID_HOME
Adiciooar $GRID_HOME/bio oo $PATH, oo abasl_profie$ crsctl status res -t
OU
$ . oraenvORACLE_SID = [ORCL1] ? +ASM1 <enter>
OU
$ cd /u01/app/12.2.0.1/grid/bin/./crsctl status res -t
OU
$ /u01/app/12.2.0.1/grid/bin/crsctl status res -t
192
Daemons
192
193193
Daemons
194194
Oracle RAC Startup
195195
11gR2$GRID_HOME/log/<node>/$GRID_HOME/log/<node>/alert<node>.log
12cR1 / 12cR2$ORACLE_BASE/diag/crs/<node>/crs$ORACLE_BASE/diag/crs/<node>/crs/trace/alert.log
Logs
196
Acompanhe a execução dos daemons via top.
Desligue a máquina nerv01.Veja o que acontece no Alert Log do nerv02 enquanto o nerv01 é desligado.$ tail -f /u01/app/oracle/diag/crs/nerv02/crs/trace/alert.log
Ligue a máquina nerv01.Veja o que acontece no Alert Log do nerv02 enquanto o nerv01 é ligado.$ tail -f /u01/app/oracle/diag/crs/nerv02/crs/trace/alert.log
Familiarize-se com o diretório de Logs.
Verifque o estado dos recursos.$ /u01/app/12.2.0.1/grid/bin/crsctl status res -t
196
Lab 7.1: Daemons
197
Contnue acompanhando os Alert Logs das duas máquinas.
Desconecte o cabo da rede do Interconnect, apenas de um nó.O que aconteceu?
Desconecte o cabo da rede do Storage, apenas de um nó.O que aconteceu?
Verifque e altere parâmetros de tmeout para o mínimo possível, e execute novamente os testes.# /u01/app/12.2.0.1/grid/bin/crsctl get css reboottime# /u01/app/12.2.0.1/grid/bin/crsctl get css misscount# /u01/app/12.2.0.1/grid/bin/crsctl get css disktimeout# /u01/app/12.2.0.1/grid/bin/crsctl set css reboottime 1# /u01/app/12.2.0.1/grid/bin/crsctl set css misscount 2# /u01/app/12.2.0.1/grid/bin/crsctl set css disktimeout 3
Lab 7.2: Daemons
198
Copie o swingbench para a máquina nerv01, como usuário oracle.
Descompacte o swingbench.zip.$ cd /home/oracle$ unzip -q swingbench261046.zip$ cd swingbench/bin
Execute a criação do SCHEMA do teste de carga:$ ./oewizard
Execute o teste de carga:$ ./charbench -cs //rac01-scan/PROD -uc 10 -c ../configs/SOE_Server_Side_V2.xml
Lab 8.1: Teste de Carga
199
● A partr de quaiquer Node, cootroia todosa● Deve ser utiiiado com o usuário oracie ou com o owoer do GRID_HOMEa● Deve ser utiiiado o srvcti do GRID_HOMEa● Comaodo prefereociai para ioiciar e parar recursos do RACa● Admioistra Database, Iostaoces, AnM, Listeoers e nervicesa● m recurso pode ser ioiciado, parado, labiiitado, ou desabiiitadoa
199
srvctl
200
Estudaodo o leip do srvcti, execute a sequêocia de operações abaixo:$ srvctl -h$ srvctl stop -h$ srvctl stop listener -h
● Verifque as coofgurações do Listeoera● Verifque as coofgurações do nCANa● Verifque as coofgurações do Baoco de Dadosa
● Verifque o estado dos iisteoers, pare o Listeoer de apeoas um Node, e verifque oovameotea● Verifcar o estado das Iostaoces, pare a Iostaoce de apeoas um Node, e verifque oovameotea● Ioicie oovameote o Listeoer que está paradoa● Ioicie oovameote a Iostaoce que está paradaa● Pare o Database, e o ioicie oovameotea● Pare uma Iotaoce com a opçoo ABORTa● Ioicie uma Iostaoce com a opçoo MO NTa● Deixa uma iostâocia desabiiitada, coofra, e labiiite oovameotea
● Mate uma Iostaoce (kiii oo pmoo) de um dos Nodesa
200
Lab 9.1: srvctl
201
Coloque o banco em modo ARCHIVELOG e execute um backup.
$ srvctl stop database -d ORCL$ srvctl start instance -d ORCL -i ORCL1 -o mountSQL> 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 OPEN;$ srvctl start instance -d ORCL -i ORCL2
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE to compressed BACKUPSET;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '+FRA';RMAN> BACKUP DATABASE;
201
Lab 9.2: srvctl
202
● A partr de quaiquer Node, cootroia todosa● Aiguos comaodos podem ser executados com usuário oracie, outros com o usuário roota● Este programa só existe oo GRID_HOMEa● Priocipai comaodo de admioistraçoo do Grida● Necessário para verifcaçoo e aiteraçoo de parâmetrosa● Necessário para Troubieslootog e Debuga
202
crsctl
203
Verifque as opções do crsctl, digitando “crsctl”, sem opções.
Verifque o status dos Daemons:# /u01/app/12.2.0.1/grid/bin/crsctl check css# /u01/app/12.2.0.1/grid/bin/crsctl check evm# /u01/app/12.2.0.1/grid/bin/crsctl check crs# /u01/app/12.2.0.1/grid/bin/crsctl check ctss# /u01/app/12.2.0.1/grid/bin/crsctl check cluster# /u01/app/12.2.0.1/grid/bin/crsctl check cluster -all# /u01/app/12.2.0.1/grid/bin/crsctl status res -t -init# /u01/app/12.2.0.1/grid/bin/crsctl status res -dependency
Verifque a versão instalada e atva.# /u01/app/12.2.0.1/grid/bin/crsctl query crs activeversion# /u01/app/12.2.0.1/grid/bin/crsctl query crs softwareversion# /u01/app/12.2.0.1/grid/bin/crsctl query crs releasepatch# /u01/app/12.2.0.1/grid/bin/crsctl query crs softwarepatch
Verifque os detalhes dos recursos do Oracle RAC.# /u01/app/12.2.0.1/grid/bin/crsctl status res ora.orcl.db# /u01/app/12.2.0.1/grid/bin/crsctl status res ora.orcl.db -t# /u01/app/12.2.0.1/grid/bin/crsctl status res ora.orcl.db -f
Lab 10.1: crsctl
204
Liste os módulos do Cluster.# /u01/app/12.2.0.1/grid/bin/crsctl lsmodules crs# /u01/app/12.2.0.1/grid/bin/crsctl lsmodules css# /u01/app/12.2.0.1/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/12.2.0.1/grid/bin/crsctl set log css “CSSD:5”# /u01/app/12.2.0.1/grid/bin/crsctl set log css “CSSD:2”
Pare todo o Node.# /u01/app/12.2.0.1/grid/bin/crsctl stop cluster
Pare o outro Node.# /u01/app/12.2.0.1/grid/bin/crsctl stop cluster -n nerv02
Inicie todo o Cluster.# /u01/app/12.2.0.1/grid/bin/crsctl start cluster -all
Lab 10.2: crsctl
205
● É o ceotro do “piog” dos Nodesa● Pode ter N mirrorsa● Pode ser aiterado de quaiquer Nodea● Backups do Votog Disk soo maouaisa● Todas operações do Votog Disk devem ser executadas como roota● Deve ser feito backup após Adiçoo ou Remoçoo de Nodes (<11gR2)a● Com base oas ioformações oeie, o Ciusterware decide que Node fai parte do Ciuster (Eiectoo / Evictoo / npiit Braio)a
205
Votng Disk
206
Verifque o status do VOTING DISK.# /u01/app/12.2.0.1/grid/bin/crsctl query css votedisk
Adicione um MIRROR ao VOTING DISK.# /u01/app/12.2.0.1/grid/bin/crsctl add css votedisk +FRA# /u01/app/12.2.0.1/grid/bin/crsctl query css votediskO que aconteceu?
# /u01/app/12.2.0.1/grid/bin/crsctl replace votedisk +FRA# /u01/app/12.2.0.1/grid/bin/crsctl query css votediskO que aconteceu?
# /u01/app/12.2.0.1/grid/bin/crsctl replace votedisk +OCR# /u01/app/12.2.0.1/grid/bin/crsctl query css votediskO que aconteceu?
Altere a localização do VOTING DISK.# /u01/app/12.2.0.1/grid/bin/crsctl replace votedisk +VD# /u01/app/12.2.0.1/grid/bin/crsctl query css votedisk
Lab 11.1: Votng Disk
207
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=1000000O que aconteceu?
Nas máquinas nerv01 e nerv02, verifque o estado do Cluster.# /u01/app/12.2.0.1/grid/bin/crsctl status res -t# /u01/app/12.2.0.1/grid/bin/crsctl check cluster -all# tail -f /u01/app/oracle/diag/crs/nerv01/crs/trace/alert.log
Nas máquinas nerv01 e nerv02, desabilite o início automátco do CRS, e reinicie.# /u01/app/12.2.0.1/grid/bin/crsctl disable crs# reboot
Na máquina nerv01, inicie o CRS em modo exclusivo, e altere o VOTING DISK.# /u01/app/12.2.0.1/grid/bin/crsctl start crs -excl -nocrs# /u01/app/12.2.0.1/grid/bin/crsctl replace votedisk +CONFIG
Nas máquinas nerv01 e nerv02, habilite o início automátco do CRS, e reinicie.# /u01/app/12.2.0.1/grid/bin/crsctl enable crs# reboot
Lab 11.2: Votng Disk
208
Na máquina nerv01, partcione novamente os discos dos VOTING DISKs.# fdisk -l | grep sd# fdisk /dev/sd?n <enter>p <enter>1 <enter><enter><enter>w <enter>...
Na máquina nerv01, crie novamente os discos dos VOTING DISKs.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ su# asmcmd afd_label VD01 /dev/sd?1# asmcmd afd_label VD02 /dev/sd?1# asmcmd afd_label VD03 /dev/sd?1# exit
Lab 11.3: Votng Disk
209
Na máquina nerv02, detecte novamente os discos dos VOTING DISKs.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM2$ su# asmcmd afd_scan# asmcmd afd_lslbl
Na máquina nerv01, crie novamente os discos dos DISK GROUPs.SQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'AFD:VD01','AFD:VD02','AFD:VD03' ATTRIBUTE 'compatible.asm'='12.2', 'compatible.rdbms'='12.2', 'au_size'='1M';
$ srvctl start diskgroup -g VD -n nerv02
Na máquina nerv01, altere a localização do VOTING DISK.# /u01/app/12.2.0.1/grid/bin/crsctl query css votedisk# /u01/app/12.2.0.1/grid/bin/crsctl replace votedisk +VD# /u01/app/12.2.0.1/grid/bin/crsctl query css votedisk
209
Lab 11.4: Votng Disk
210
● É o ceotro das ioformações do RACa● Deve estar em ntorage compartilado por todos Nodesa● Pode ter até 4 mirrorsa● Ferrameotas do OCR: ocrcoofg, ocrcleck, ocrdumpa● Ferrameotas do OCR devem ser utiiiadas como roota● Pode ser aiterado de quaiquer Nodea● Backups do OCR soo executados automatcameotea● Backups armaieoados: 1 semaoai, 1 diário, e 1 a cada 4 lorasa● Podem ser executados backups fsicos e iógicosa
210
OCR – Oracle Cluster Registry
211
Execute o ocrdump, e analise o conteúdo do dump (OCRDUMPFILE).# /u01/app/12.2.0.1/grid/bin/ocrdump# file OCRDUMPFILE# grep orcl OCRDUMPFILE# grep 192.168 OCRDUMPFILE
Execute o ocrcheck, e verifque o resultado.# /u01/app/12.2.0.1/grid/bin/ocrcheck# ls -lh /u01/app/oracle/diag/crs/nerv01/crs/trace/ocrcheck*
Verifque o OCR pelo Cluster Verifcaton Utlity.# /u01/app/12.2.0.1/grid/bin/cluvfy comp ocr -n nerv01,nerv02O que aconteceu?
Lab 12.1: OCR
212
Na máquina nerv01, altere a localização dos OCRs.# /u01/app/12.2.0.1/grid/bin/ocrconfig -add +CONFIG# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -add +DATA# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -add +FRA# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -delete +DATA# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -delete +FRA# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -delete +CONFIGO que aconteceu?
# /u01/app/12.2.0.1/grid/bin/ocrconfig -add +OCR# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -delete +CONFIG# /u01/app/12.2.0.1/grid/bin/ocrcheck
Lab 12.2: OCR
213
Na máquina nerv01, verifque os backups fsicos existentes do OCR.# /u01/app/12.2.0.1/grid/bin/ocrconfig -showbackup# /u01/app/12.2.0.1/grid/bin/ocrconfig -manualbackup# /u01/app/12.2.0.1/grid/bin/ocrconfig -showbackup
Na máquina nerv01, altere a localização dos backups fsicos do OCR.# /u01/app/12.2.0.1/grid/bin/ocrconfig -backuploc +FRA# /u01/app/12.2.0.1/grid/bin/ocrconfig -manualbackup# /u01/app/12.2.0.1/grid/bin/ocrconfig -showbackup
Na máquina nerv01, faça um backup lógico do OCR.# /u01/app/12.2.0.1/grid/bin/ocrconfig -export /home/oracle/OCR.bkp# file /home/oracle/OCR.bkp
213
Lab 12.3: OCR
214
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# dd if=/dev/zero of=/dev/sda? bs=512 count=1000000O que aconteceu?
Nas máquinas nerv01 e nerv02, verifque o estado do Cluster.# tail -f /u01/app/oracle/diag/crs/nerv01/crs/trace/alert.log# /u01/app/12.2.0.1/grid/bin/crsctl check cluster -all# /u01/app/12.2.0.1/grid/bin/crsctl status res -t# /u01/app/12.2.0.1/grid/bin/ocrcheck# /u01/app/12.2.0.1/grid/bin/ocrconfig -manualbackup
Nas máquinas nerv01 e nerv02, desabilite o início automátco do CRS, e reinicie.# /u01/app/12.2.0.1/grid/bin/crsctl disable crs# reboot
Na máquina nerv01, inicie o CRS em modo exclusivo.# /u01/app/12.2.0.1/grid/bin/crsctl start crs -excl -nocrs
Lab 12.4: OCR
215
Na máquina nerv01, partcione novamente os discos dos VOTING DISKs.# fdisk -l | grep sd# fdisk /dev/sd?n <enter>p <enter>1 <enter><enter><enter>w <enter>...
Na máquina nerv01, crie novamente os discos dos VOTING DISKs.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ su# asmcmd afd_label OCR01 /dev/sd?1# asmcmd afd_label OCR02 /dev/sd?1# exit
Lab 12.5: OCR
216
Na máquina nerv02, detecte novamente os discos dos VOTING DISKs.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM2$ su# asmcmd afd_scan# asmcmd afd_lslbl
Na máquina nerv01, crie novamente os discos dos DISK GROUPs.SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'AFD:OCR01','AFD:OCR02' ATTRIBUTE 'compatible.asm'='12.2', 'compatible.rdbms'='12.2', 'au_size'='1M';
Na máquina nerv01, restaure o OCR.# /u01/app/12.2.0.1/grid/bin/ocrconfig -restore ...
Nas máquinas nerv01 e nerv02, habilite o CRS e reinicie.# /u01/app/12.2.0.1/grid/bin/crsctl enable crs# reboot
216
Lab 12.6: OCR
217
● A partr de quaiquer Node, cootroia todosa● Deve ser utiiiado com o usuário roota● Ferrameota para aiteraçoo dos IPs Púbiico e Iotercoooecta
217
oifcfg
218
Execute um backup do OCR (manualbackup).
Verifque as Interfaces atuais, nos dois Nodes. Guarde o resultado.# /u01/app/12.2.0.1/grid/bin/oifcfg getif# /u01/app/12.2.0.1/grid/bin/oifcfg setif -global enp2s0/192.168.3.0:cluster_interconnect,asm# /u01/app/12.2.0.1/grid/bin/oifcfg getif$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ srvctl config listener -asmlistener$ srvctl config asm$ srvctl add listener -asmlistener -l ASMNEWLSNR_ASM -subnet 192.168.3.0$ srvctl update listener -listener ASMNET1LSNR_ASM -asm -remove -force$ lsnrctl stop ASMNET1LSNR_ASM$ srvctl config listener -asmlistener$ srvctl config asm
Pare o Cluster nos dois Nodes.# /u01/app/12.2.0.1/grid/bin/crsctl stop cluster -all
Nas máquinas nerv01 e nerv02, alterar o IP do Interconnect, desatvar e atvar a placa de rede.Nas máquinas nerv01 e nerv02, alterar /etc/hosts para os novos IPs.
Lab 13.1: oifcfg
219
Inicie o Cluster nos dois Nodes.# /u01/app/12.2.0.1/grid/bin/crsctl start cluster -all
Em apenas um Node, remova a antga Interface, após o CRS iniciar.# /u01/app/12.2.0.1/grid/bin/oifcfg getif# /u01/app/12.2.0.1/grid/bin/oifcfg delif -global enp2s0/192.168.1.0# /u01/app/12.2.0.1/grid/bin/oifcfg getif
Execute um backup do OCR (manualbackup).
Lab 13.2: oifcfg
220
● Permite apiicaçoo de Patcles com baixa iodispooibiiidadea● ApiicaSse o Patcl em um Node, depois em outro Nodea● O Patcl precisa suportar o Roiiiog pgradea● Noo pode ser utiiiado com HOMEs compartiladosa● Noo pode ser utiiiado para Patclsetsa● nempre ieia o README aotesa
220
Rolling Patch
221
Nas máquinas nerv01 e nerv02, atualize o Opatch.# rm -rf /u01/app/12.2.0.1/grid/OPatch/# mkdir /u01/app/12.2.0.1/grid/OPatch/# chown -R oracle:oinstall /u01/app/12.2.0.1/grid/OPatch/
# rm -rf /u01/app/oracle/product/12.2.0.1/db_1/OPatch/# mkdir /u01/app/oracle/product/12.2.0.1/db_1/OPatch/# chown -R oracle:oinstall /u01/app/oracle/product/12.2.0.1/db_1/OPatch/
$ unzip -q p6880880_122010_Linux-x86-64.zip$ cp -rf OPatch/* /u01/app/12.2.0.1/grid/OPatch/$ cp -rf OPatch/* /u01/app/oracle/product/12.2.0.1/db_1/OPatch/
221
Lab 14.1: Rolling Patch
222
Na máquina nerv01, aplique o Patch 27100009.$ unzip -q p27100009_122010_Linux-x86-64.zip$ . oraenvORACLE_SID = [ORCL1] ? +ASM1$ su# export PATH=$PATH:$GRID_HOME/OPatch# $GRID_HOME/OPatch/opatchauto apply /home/oracle/27100009/
Na máquina nerv02, aplique o Patch 27100009.$ unzip -q p27100009_122010_Linux-x86-64.zip$ . oraenvORACLE_SID = [ORCL2] ? +ASM2$ su# export PATH=$PATH:$GRID_HOME/OPatch# $GRID_HOME/OPatch/opatchauto apply /home/oracle/27100009/
Na máquinas nerv01, execute os procedimentos de Pós Instalação.$ $ORACLE_HOME/Opatch/opatch lsinventory$ $GRID_HOME/Opatch/opatch lsinventory# /u01/app/12.2.0.1/grid/bin/crsctl query crs activeversion# /u01/app/12.2.0.1/grid/bin/crsctl query crs softwareversion# /u01/app/12.2.0.1/grid/bin/crsctl query crs releasepatch# /u01/app/12.2.0.1/grid/bin/crsctl query crs softwarepatch
222
Lab 14.2: Rolling Patch
223223
● Coocorrêocia● nequeoces / nequeoces Artfciais● Data Dictooary● Reverse Key Iodexes● Job x ncleduier● V$ x GV$● TL_FILE / Directories / Exteroai Tabies / Data Pump● Parttooameoto iógico da apiicaçoo
Desempenho e Funcionalidade: Single Instance x RAC
224
Analise e execute o script create_sequence.sql na máquina nerv01.
Analise e execute o script insert_sequence_lenta.sql na máquina nerv01.
Analise e execute o script insert_sequence_rapida.sql na máquina nerv01.
Repita os scripts de insert algumas vezes e veja se o resultado contnua similar.
Repita os scripts de insert algumas vezes e veja se o resultado contnua similar, mas desta vez nas duas máquinas ao mesmo tempo.Qual a diferença de tempo?Quais os Wait Events que ocorreram?
224
Lab 15.1: Escalabilidade
225
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 ) ) )
225
Load Balance Client (<= 11gR1)
226226
Load Balance Server (>= 11gR2)
227
Client tnsnames.ora:ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rac01-scan)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCL)))
Parâmetro LOCAL_LISTENER dos Nodes:(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.15.112)(PORT=1521))
Parâmetro REMOTE_LISTENER dos Nodes:rac01-scan.localdomain:1521
227
Load Balance Server
228
Services GoalGOAL_NONEGOAL_nERVICE_TIME →→→ Bom para OLTPGOAL_THRO GHP T →→→ Bom para Batch / OLAP / DBA
Services Connecton Load Balance GoalCLB_GOAL_nHORT →→→ Bom para OLTPCLB_GOAL_LONG →→→ Bom para Batch / OLAP / DBA ou OLTP Persistente
228
Load Balance Server
229
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;/
229
Load Balance Server - SCHEDULER
230
srvctl add servicesrvctl remove servicesrvctl modify servicesrvctl relocate servicesrvctl status servicesrvctl start servicesrvctl stop servicesrvctl enable servicesrvctl disable service
230
Load Balance Server
231
Crie os SERVICES como abaixo.$ srvctl add service -db ORCL -pdb PROD -service OLTP -preferred ORCL1,ORCL2 -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -failoverdelay 1 -failoverretry 10 -clbgoal SHORT -rlbgoal SERVICE_TIME -notification TRUE
$ srvctl add service -db ORCL -pdb PROD -service BI -preferred ORCL1 -available ORCL2 -tafpolicy PRECONNECT -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -failoverdelay 1 -failoverretry 10 -clbgoal SHORT -rlbgoal SERVICE_TIME -notification TRUE
$ srvctl add service -db ORCL -pdb PROD -service DBA -preferred ORCL2 -available ORCL1 -tafpolicy PRECONNECT -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -failoverdelay 1 -failoverretry 10 -clbgoal SHORT -rlbgoal SERVICE_TIME -notification TRUE
Como ver os Services de um banco?Como ver detalhes de um Service já confgurado?
231
Lab 16.1: Load Balance Server
232
Altere o tnsnames.ora para utlizar os novos Services de outro RAC, e crie um usuário para testar o Failover.$ rlwrap sqlplus / AS SYSDBASQL> ALTER SESSION SET CONTAINER = PROD;SQL> CREATE USER RICARDO IDENTIFIED BY Nerv2018;SQL> ALTER USER RICARDO QUOTA UNLIMITED ON USERS;SQL> GRANT CREATE SESSION, CONNECT, RESOURCE, SELECT ANY DICTIONARY TO RICARDO;SQL> CONN RICARDO/Nerv2018@OLTPSQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;SQL> INSERT INTO T SELECT * FROM T;SQL> INSERT INTO T SELECT * FROM T;SQL> INSERT INTO T SELECT * FROM T;SQL> INSERT INTO T SELECT * FROM T;SQL> INSERT INTO T SELECT * FROM T;SQL> COMMIT;
Teste o Failover com SELECT e com DML.SQL> CONN RICARDO/Nerv2018@OLTPSQL> SELECT * FROM T;SQL> DELETE FROM T WHERE ROWNUM = 1;Qual a diferença de FAILOVER entre SELECT e DELETE?
Qual a diferença de FAILOVER dos Services criados e do Service ORCL?232
Lab 16.1: Load Balance Server
233
Sequência para adicionar Node:● Iostaiar Hardware;● Iostaiar e coofgurar nistema Operaciooai;● Coofgurar acesso ao ntorage;● Coofgurar ssl sem seola com os Nodes já existeotes;● Iostaiar Grid Iofraestruture a partr de um Node existeote;● Iostaiar Oracie a partr de um Node existeote;● Adiciooar Iostaocesa
Sequência para remover Node:● Remover Iostaoce;● Remover Oracie;● Remover Grid Iofraestruturea
233
Adicionar e Remover Nodes
234
Manter apenas 1 RAC atvo na sala.No restante das máquinas, refazer os Labs 1, 3, e 4.
Para todas as máquinas, confgurar SSH sem senha para o usuário oracle.$ cd /u01/app/12.2.0.1/grid/oui/prov/resources/scripts/$ ./sshUserSetup.sh -user oracle -hosts "nerv01 nerv02 nerv03" -advanced -exverify -confirm -noPromptPassphrase
Instalar Grid Infraestruture nas outras máquinas, a partr de um Node existente:$ cd $GRID_HOME/addnode$ ./addnode.sh -silent “CLUSTER_NEW_NODES={nerv03}” “CLUSTER_NEW_VIRTUAL_HOSTNAMES={nerv03-vip}” CLUSTER_NEW_NODE_ROLES={HUB}
Nas outras máquinas, com o usuário root, execute os seguintes scripts.# /u01/app/oraInventory/orainstRoot.sh# /u01/app/12.2.0.1/grid/root.sh
Lab 17.1: Adicionar Nodes
235
Instalar Oracle Database nas outras máquinas, a partr de um Node existente:$ cd $ORACLE_HOME/addnode$ ./addnode.sh -silent "CLUSTER_NEW_NODES={nerv03}"
Nas outras máquinas, com o usuário root, execute o script abaixo.# /u01/app/oracle/product/12.2.0.1/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 nerv03
Na máquina nerv01, conclua a adição do nó.SQL> ALTER SYSTEM SET INSTANCE_NUMBER=3 SID='ORCL3' SCOPE=SPFILE;SQL> ALTER SYSTEM SET thread=3 SID='ORCL3' SCOPE=SPFILE;SQL> ALTER DATABASE ADD LOGFILE THREAD 3;SQL> ALTER DATABASE ADD LOGFILE THREAD 3;SQL> ALTER DATABASE ENABLE PUBLIC 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
Lab 17.2: Adicionar Nodes
236236
Flex ASM
237
Na máquina nerv01, verifque a confguração atual do Cluster.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ $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
Simule um erro (kill -9 no pmon) em uma instância ASM, e acompanhe o Alert Log do banco de dados.
Lab 18.1: Flex ASM
238238
Flex Cluster
239
Na máquina nerv01, verifque a confguração atual do Cluster.# /u01/app/12.2.0.1/grid/bin/crsctl get cluster mode status# /u01/app/12.2.0.1/grid/bin/srvctl config gns
Na máquina nerv01, altere a confguração do Cluster.# /u01/app/12.2.0.1/grid/bin/srvctl add gns -vip 192.168.15.191# /u01/app/12.2.0.1/grid/bin/srvctl start gns
Na máquina nerv01, altere a confguração do Cluster.# /u01/app/12.2.0.1/grid/bin/crsctl get node role config -all# /u01/app/12.2.0.1/grid/bin/crsctl set node role leaf -node nerv07# /u01/app/12.2.0.1/grid/bin/crsctl set node role leaf -node nerv08# /u01/app/12.2.0.1/grid/bin/crsctl get node role config -all
Lab 19.1: Flex Cluster
240
S RAC de dois oós possui diversas iimitaçõesa S O ORAC é MA das soiuções de Aita Dispooibiiidade da Oraciea S Eiimioe os POF: NICs, nwitcl, ntorage, etca S O nwitcl do Iotercoooect deve ser fsico e exciusivoa S Compartile com o ciieote sobre o fuociooameoto do Faiiover e Load Baiaocea S Verifque o documeoto Oracie RAC Best Practces do MOna S Veja se o Fabricaote de seu nervidor / ntorage possui documeotaçoo sobre Oracie RACa S tiiie AnMa É a direçoo da Oraciea S tiiie GNna É a direçoo da Oraciea S tiiie /etc/losts, aiém do DNna S No AnM, utiiie DGs separados para DATA, FRA, OCR e VDa S Ceotraiiie os backups do OCR, em outro iocaia S tiiie DATA e FRA com reduodâocia oo ntorage ou AnMa S tiiie OCR e VD com reduodâocia oo ntorage e AnMa S se HOMEs iocais, para GRID_HOME e ORACLE_HOMEa S Logs (todos) devem ser ceotraiiiadosa De oada vaie um iog que ooo existea S Observe também os Logs do nistema Operaciooaia S tiiie Jumbo Frames oo Iotercoooecta S tiiie Huge Pages, e ooo utiiie AMMa S O RAC toroa apiicações boas em ótmas, e ruios em péssimasa S Esqueça nIDsa Apreoda nervicesa S Partciooe sua apiicaçoo em nervicesa nem nervices, o RAC ooo é oadaa
Melhores Prátcas
241241
Lab Auxiliar 1: Confguração DNSNa máquina nerv09, instale os pacotes necessários para o DNS.# yum -y install bind bind-utils
Na máquina nerv09, deixe APENAS as seguintes linhas no arquivo /etc/named.conf.options { listen-on port 53 { 127.0.0.1; 192.168.15.201; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; // query-source address * port 53;};
zone "." in {type hint;file "/dev/null";};
zone "localdomain." IN { type master; file "localdomain.zone"; allow-update { none; };};
242242
Lab Auxiliar 1: Confguraçã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 localhostlocalhost IN A 127.0.0.1nerv01 IN A 192.168.15.101nerv02 IN A 192.168.15.102nerv01-vip IN A 192.168.15.111nerv02-vip IN A 192.168.15.112rac01-scan IN A 192.168.15.151rac01-scan IN A 192.168.15.152rac01-scan IN A 192.168.15.153
243243
Lab Auxiliar 1: Confguração DNS
Na máquina nerv09, deixe APENAS as seguintes linhas no arquivo /var/named/0.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.
101 IN PTR nerv01.localdomain.102 IN PTR nerv02.localdomain.111 IN PTR nerv01-vip.localdomain.112 IN PTR nerv02-vip.localdomain.151 IN PTR rac01-scan.localdomain.152 IN PTR rac01-scan.localdomain.153 IN PTR rac01-scan.localdomain.
244244
Lab Auxiliar 1: Confguração DNS
Na máquina nerv09, inicie o DNS Server, e o habilite para o início automátco.# service named start# chkconfig named on
Na máquina nerv09, pare o frewall, e o desabilite para o início automátco.# service iptables stop# service ip6tables stop# chkconfig iptables off# chkconfig ip6tables off
245245
Lab Auxiliar 2: Confguração StorageNa máquinas nerv09, crie 1 partção de 50GB (CONFIG), e 1 de 20GB (DATA), 1 de 10GB (FRA), 3 de 1GB (VD), e 2 de 2GB (OCR).
Na máquina nerv09, confgure o iSCSI server.# yum -y install scsi-target-utils# cat /etc/tgt/targets.conf<target iqn.2010-10.com.nervinformatica:storage.asm01-01> backing-store /dev/sda5 initiator-address 192.168.15.101 initiator-address 192.168.15.102</target><target iqn.2010-10.com.nervinformatica:storage.asm01-02> backing-store /dev/sda6 initiator-address 192.168.15.101 initiator-address 192.168.15.102</target>...
# service tgtd start# chkconfig tgtd on
246
Perguotas?
Ricardo Portilo Prooiricardo@oervioformatcaacomabr
Esta obra está iiceociada sob a iiceoçaCreatve Commoos AtribuiçooSnemDerivados oa0 BrasiiaPara ver uma cópia desta iiceoça, visite ltp://creatvecommoosaorg/iiceoses/bySod/oa0/br/a