Oracle RAC 12cR1 - Nervnervinformatica.com.br/Downloads/Materiais/ORAC-12c.pdf · ... Automatic...
Transcript of Oracle RAC 12cR1 - Nervnervinformatica.com.br/Downloads/Materiais/ORAC-12c.pdf · ... Automatic...
1
Oracle RAC 12cR1
1
Ricardo Portilho [email protected]
Esta obra está licenciada sob a licençaCreative Commons Atribuição-SemDerivados 3.0 Brasil.
Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nd/3.0/br/.
2
Oracle RAC: Conceitos
2
3
● Disponibilidade● Escalabilidade● Custo Total de Propriedade (TCO)
3
Por que usar o RAC?
4
● Custo de Equipamentos● Custo de Licenças● Custo de Conhecimento● Complexidade● Escalabilidade
4
Por que não usar o RAC?
5
● 1 Database x N Instances• + Background Processes• + daemons• OCR• Voting Disk
5
Oracle RAC x Single Instance
6
Oracle 6.0.35: VAX / VMSOracle 7: PCMOracle 8i: Cache Fusion IOracle 9i: Cache Fusion II, Oracle Cluster Management ServicesOracle 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 ManagerOracle 10gR2: CRS => Oracle Clusterware. New Features incluem: cluvfy, asmcmd.Oracle 11gR1: Apenas 7 New Features.Oracle 11gR2: CRS => Grid Infrastrucutre. 32 New Features.Oracle 12cR1: 33 New Features.
6
Evolução Oracle RAC
7
● Enhanced Oracle RAC Monitoring and Diagnostics in Enterprise Manager● Enhanced Oracle Real Application Clusters Configuration Assistants● OCI Runtime Connection Load Balancing● Parallel Execution for Oracle Real Application Clusters● Support for Distributed Transactions in an Oracle RAC Environment● Enhanced Oracle RAC Switchover Support for Logical Standby Databases● Enhanced Oracle RAC Monitoring and Diagnostics in Enterprise Manager
7
RAC 11gR1 New Features
8
● Configuration Assistants Support New Oracle RAC Features● Enhanced Cluster Verification Utility● Integration of Cluster Verification Utility and Oracle Universal Installer● Cluster Time Service● Oracle Cluster Registry (OCR) Enhancements● Grid Plug and Play (GPnP)● Oracle Restart● Policy-Based Cluster and Capacity Management● Improved Clusterware Resource Modeling● Role-Separated Management● Agent Development Framework● Zero Downtime Patching for Oracle Clusterware and Oracle RAC● Enterprise Manager-Based Clusterware Resource Management● Enterprise Manager Provisioning for Oracle Clusterware and Oracle Real Application Clusters● Enterprise Manager Support for Grid Plug and Play● Enterprise Manager Support for Oracle Restart● Configuration Assistant Support for Removing Oracle RAC Installations
8
RAC 11gR2 New Features
9
● Oracle Universal Installer Support for Removing Oracle RAC Installations● Improved Deinstallation Support With Oracle Universal Installer● Downgrading Database Configured With DBControl● Oracle Restart Integration with Oracle Universal Installer● Out-of-Place Oracle Clusterware Upgrade● OUI Support for Out-of-Place Oracle Clusterware Upgrade● Server Control (SRVCTL) Enhancements● Server Control (SRVCTL) Enhancements to Support Grid Plug and Play● SRVCTL Support for Single-Instance Database in a Cluster● Universal Connection Pool (UCP) Integration with Oracle Data Guard● UCP Integration With Oracle Real Application Clusters● Universal Connection Pool (UCP) for JDBC● Java API for Oracle RAC FAN High Availability Events● EMCA Supports New Oracle RAC Configuration for Enterprise Manager● Global Oracle RAC ASH Report + ADDM Backwards Compatibility
9
RAC 11gR2 New Features
1010
RAC 12cR1 New Features
● Oracle Flex Cluster● SRVCTL Support for Oracle Flex Cluster Implementations● Policy-Based Cluster Management and Administration● What-If Command Evaluation● Shared Grid Naming Service (GNS)● Online Resource Attribute Modification● Grid Infrastructure Script Automation for Installation and Upgrade● Multipurpose Cluster Installation Support● Support for IPv6 Based IP Addresses for Oracle RAC Client Connectivity● Message Forwarding on Oracle RAC● Sharded Queues for Performance and Scalability● Oracle Grid Infrastructure Rolling Migration for One-Off Patches
1111
RAC 12cR1 New Features● Oracle Flex ASM● Oracle ASM Shared Password File in a Disk Group● Oracle ASM Rebalance Enhancements● Oracle ASM Disk Resync Enhancements● Oracle ASM chown, chgrp, chmod and Open Files Support● Oracle ASM Support ALTER DISKGROUP REPLACE USER● Oracle ASM File Access Control on Windows● Oracle ASM Disk Scrubbing● Oracle Cluster Registry Backup in ASM Disk Group Support● Enterprise Manager Support for Oracle ASM Features● Oracle ACFS Support for All Oracle Database Files● Oracle ACFS and Highly Available NFS● Oracle ACFS Snapshots Enhancements● Oracle ACFS Replication Integration with Oracle ACFS Security and Encryption● Oracle ACFS Security and Encryption Features● Oracle ACFS File Tags for Grid Homes● Oracle ACFS Plug-in APIs● Oracle ACFS Replication and Tagging on AIX● Oracle ACFS Replication and Tagging on Solaris● Oracle Audit Vault Support for Oracle ACFS Security and Encryption● Enterprise Manager Support for Oracle ACFS New Features
12
Hardware
12
1313
Hardware
14
Sistema Operacional
14
15
Linux x64● Oracle Linux 7 / Red Hat Enterprise Linux 7● Oracle Linux 6 / Red Hat Enterprise Linux 6● Oracle Linux 5 / Red Hat Enterprise Linux 5● SUSE Linux Enterprise Server 11
Linux on System z● Red Hat Enterprise Linux 6 ● Red Hat Enterprise Linux 5● SUSE 11
Unix● Oracle Solaris 11 (SPARC) / Oracle Solaris 10 (SPARC)● Oracle Solaris 11 (x64) / Oracle Solaris 10 (x64)● HP-UX 11iV3● AIX 7.1 / AIX 6.1
Windows (x64)• Windows Server 2008 SP2 - Standard, Enterprise, DataCenter, Web.• Windows Server 2008 R2 - Foundation, Standard, Enterprise, DataCenter, Web.• Windows Server 2012 - Standard, Datacenter, Essentials, Foundation.• Windows Server 2012 R2 - Standard, Datacenter, Essentials, Foundation
15
Sistemas Operacionais homologados
16
Lab 1 – Instalação OEL 6
Hands On !
16
1717
Lab 1.1: Instalação OEL 6
Nas máquinas nerv01 e nerv02, instale o OEL.
- 1a tela: Install or upgrade an existing system - 2a tela: Skip - 3a tela: Next - 4a tela: English (English), Next - 5a tela: Brazilian ABNT2, Next - 6a tela: Basic Storage Devices, Next - 7a tela: Fresh Installation, Next - 8a tela: nerv01.localdomain, Next - 9a tela: America/Sao Paulo, Next - 10a tela: Nerv2017, Nerv2017, Next - 11a tela: Create Custom Layout, Next
1818
Lab 1.2: Instalação OEL 6
18
- 12a tela: Crie as partições como abaixo, e em seguida, Next:sda1 1024 MB /bootsda2 100000 MB /sda3 20000 MB /homesda5 16384 MB swapsda6 10000 MB /varsda7 10000 MB /tmpsda8 Espaço restante /u01
- 13a tela: Format- 14a tela: Write changes to disk- 15a tela: Next- 16a tela: Desktop- 17a tela: Reboot- Retire o DVD.- Após o Boot: “Forward”, “Yes, I agree to the License Agrrement”, “Forward”, “No, I prefer to register at a later time”, “Forward” “No thanks, I'll connect later”, “Forward”, “Forward”, “Yes”, “Forward”, “Finish”, “Yes”, “OK”.
19
Lab 2 – Configuração DNS
Hands On !
19
2020
Lab 2.1: Instalação OEL 6
Na máquina nerv09, instale os pacotes necessários para o DNS.# yum -y install bind bind-utils
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; };};
2121
Lab 2.2: Instalação OEL 6
Nas máquinas nerv09, deixe APENAS as seguintes linhas no arquivo /var/named/localdomain.zone.
$TTL 86400@ IN SOA localhost root.localhost ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS 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
2222
Lab 2.3: Instalação OEL 6
Na máquina nerv09, deixe APENAS as seguintes linhas no arquivo /var/named/15.168.192.in-addr.arpa.
$ORIGIN 0.168.192.in-addr.arpa.$TTL 1H@ IN SOA nerv09.localdomain. root.nerv09.localdomain. (
2 3H 1H 1W 1H )0.168.192.in-addr.arpa. IN NS nerv09.localdomain.
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.
2323
Lab 2.4: Instalação OEL 6
Na máquina nerv09, inicie o DNS Server, e o habilite para o início automático.# service named start# chkconfig named on
Na máquina nerv09, pare o firewall, e o desabilite para o início automático.# service iptables stop# service ip6tables stop# chkconfig iptables off# chkconfig ip6tables off
24
Lab 3 – Configuração OEL 6
Hands On !
24
25
Nas máquinas nerv01 e nerv02, configure as placas de rede pública e privada.
25
Lab 3.1 – Configuração OEL 6
26
Nas máquinas nerv01 e nerv02, atualize o sistema operacional e execute a instalação dos pré-requisitos.# service network restart# yum -y update# yum -y install oracle-rdbms-server-12cR1-preinstall# yum -y install oracleasm-support# yum -y install unzip wget iscsi-initiator-utils java-1.8.0-openjdk parted# yum -y install unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686
# wget http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el6.x86_64.rpm# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm
Nas máquinas nerv01 e nerv02, remova o DNS 8.8.8.8 da placa de rede eth0.
Nas máquinas nerv01 e nerv02, altere a seguinte linha no arquivo /etc/fstab.tmpfs /dev/shm tmpfs defaults,size=4g 0 0
26
Lab 3.2 – Configuração OEL 6
27
Nas máquinas nerv01 e nerv02, ACRESCENTAR ao 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# Storage192.168.15.201 nerv09.localdomain nerv09
27
Lab 3.3 – Configuração OEL 6
28
Nas máquinas nerv01 e nerv02, executar os comandos abaixo.# groupadd oper# groupadd asmadmin# groupadd asmdba# groupadd asmoper# usermod -g oinstall -G dba,oper,asmadmin,asmdba,asmoper oracle# mkdir -p /u01/app/12.1.0.2/grid# mkdir -p /u01/app/oracle/product/12.1.0.2/db_1# chown -R oracle:oinstall /u01# chmod -R 775 /u01# passwd oracle (Coloque como senha do usuário oracle: Nerv2017)
28
Lab 3.4 – Configuração OEL 6
29
Nas máquinas nerv01 e nerv02, altere o SELinux de “enforcing” para “permissive”.# vi /etc/selinux/config
Nas máquinas nerv01 e nerv02, desabilite o firewall.# chkconfig iptables off# chkconfig ip6tables off
Nas máquinas nerv01 e nerv02, desabilite o NTP.# mv /etc/ntp.conf /etc/ntp.conf.org# reboot
29
Lab 3.5 – Configuração OEL 6
30
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.1.0.2/db_1export GRID_HOME=/u01/app/12.1.0.2/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
30
Lab 3.6 – Configuração OEL 6
31
Shared Storage
31
3232
Opções de Shared Storage
3333
Opções de Shared Storage
34
Lab 4 – Storage
Hands On !
34
3535
Lab 4.1 – StorageNa máquinas nerv09, crie 3 partições de 5GB, e 4 de 10GB.
Na máquina nerv09, configure 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
3636
Lab 4.2 – Storage (ASM)
Nas máquinas nerv01 e nerv02, ative o pacote iSCSI Initiator.# chkconfig iscsid on
Nas máquinas nerv01 e nerv02, verifique os Discos exportados no Storage.# iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l
Nas máquinas nerv01 e nerv02, deixe APENAS os novos discos no arquivo /etc/iscsi/initiatorname.iscsi.InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-01InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-02InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-03InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-04InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-05InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-06InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-07
3737
Lab 4.3 – Storage (ASM)
Nas máquinas nerv01 e nerv02 verifique se os discos foram configurados localmente.# fdisk -l
Na máquina nerv01, particione os novos discos.# fdisk /dev/sdbn <enter>p <enter>1 <enter><enter><enter>w <enter>
# fdisk /dev/sdcn <enter>p <enter>1 <enter><enter><enter>w <enter>...
3838
Lab 4.4 – Storage (ASM)
Na máquina nerv02, execute a detecção dos novos discos.# partprobe /dev/sdb# partprobe /dev/sdc# partprobe /dev/sdd# partprobe /dev/sde# partprobe /dev/sdf# partprobe /dev/sdg# partprobe /dev/sdh
39
Nas máquinas nerv01 e nerv02, configure a ASMLib.# /etc/init.d/oracleasm configureoracle <enter>asmadmin <enter>y <enter>y <enter># /etc/init.d/oracleasm status
Na máquina nerv01, crie os discos do ASM.# /etc/init.d/oracleasm createdisk DISK01 /dev/sdb1# /etc/init.d/oracleasm createdisk DISK02 /dev/sdc1# /etc/init.d/oracleasm createdisk DISK03 /dev/sdd1# /etc/init.d/oracleasm createdisk DISK04 /dev/sde1# /etc/init.d/oracleasm createdisk DISK05 /dev/sdf1# /etc/init.d/oracleasm createdisk DISK06 /dev/sdg1# /etc/init.d/oracleasm createdisk DISK07 /dev/sdh1
Na máquina nerv02, execute a detecção dos discos criados.# /etc/init.d/oracleasm scandisks
39
Lab 4.5 – Storage (ASM)
40
Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.# /etc/init.d/oracleasm listdisks# /etc/init.d/oracleasm querydisk -v -p DISK01# /etc/init.d/oracleasm querydisk -v -p DISK02# /etc/init.d/oracleasm querydisk -v -p DISK03# /etc/init.d/oracleasm querydisk -v -p DISK04# /etc/init.d/oracleasm querydisk -v -p DISK05# /etc/init.d/oracleasm querydisk -v -p DISK06# /etc/init.d/oracleasm querydisk -v -p DISK07
Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.# ls -lh /dev/oracleasm/disks/brw-rw----. 1 oracle asmadmin 8, 17 Jan 2 13:01 DISK01brw-rw----. 1 oracle asmadmin 8, 33 Jan 2 13:01 DISK02brw-rw----. 1 oracle asmadmin 8, 49 Jan 2 13:01 DISK03brw-rw----. 1 oracle asmadmin 8, 65 Jan 2 13:01 DISK04brw-rw----. 1 oracle asmadmin 8, 81 Jan 2 13:01 DISK05brw-rw----. 1 oracle asmadmin 8, 97 Jan 2 13:01 DISK06brw-rw----. 1 oracle asmadmin 8, 113 Jan 2 13:01 DISK07
40
Lab 4.6 – Storage (ASM)
41
Oracle Grid Infrastructure
41
42
- Oracle Cluster Registry- Voting Disk (Quorum Disk)- Grid Infrastructure Management Repository (MGMTDB)- VIPs e SCAN- Utilitários: crsctl, srvctl - Daemons: ohasd, crsd, evmd, ons, evmlogger, ologgerd, cssdmonitor, cssdagent, ocssd, octssd, osysmond, mdnsd, gpnpd, gipcd, orarootagent, oraagent, scriptagent
42
Componentes
43
Lab 5 - Grid Infraestructure
Hands On !
43
44
Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador do Grid Infrastructure.$ cd /home/oracle$ unzip -q linuxamd64_12102_grid_1of2.zip$ unzip -q linuxamd64_12102_grid_2of2.zip
Nas máquinas nerv01 e nerv02, instale o Cluster Verification Utility.# rpm -ivh /home/oracle/grid/rpm/cvuqdisk-1.0.9-1.rpm
Na máquina nerv01, inicie a instalação do Grid Infrastructure.$ cd grid$ ./runInstaller
44
Lab 5.1 – Grid Infrastructure
4545
Lab 5.2 – Grid Infrastructure
4646
Lab 5.3 – Grid Infrastructure
4747
Lab 5.4 – Grid Infrastructure
4848
Lab 5.5 – Grid Infrastructure
4949
Lab 5.6 – Grid Infrastructure
5050
Lab 5.7 – Grid Infrastructure
5151
Lab 5.8 – Grid Infrastructure
5252
Lab 5.9 – Grid Infrastructure
5353
Lab 5.10 – Grid Infrastructure
5454
Lab 5.11 – Grid Infrastructure
5555
Lab 5.12 – Grid Infrastructure
5656
Lab 5.13 – Grid Infrastructure
5757
Lab 5.14 – Grid Infrastructure
5858
Lab 5.15 – Grid Infrastructure
5959
Lab 5.16 – Grid Infrastructure
6060
Lab 5.17 – Grid Infrastructure
6161
Lab 5.18 – Grid Infrastructure
6262
Lab 5.19 – Grid Infrastructure
6363
Lab 5.20 – Grid Infrastructure
6464
Lab 5.21 – Grid Infrastructure
6565
Lab 5.22 – Grid Infrastructure
6666
Lab 5.23 – Grid Infrastructure
6767
Lab 5.24 – Grid Infrastructure
6868
Lab 5.26 – Grid Infrastructure
6969
Lab 5.27 – Grid Infrastructure
7070
Lab 5.28 – Grid Infrastructure
7171
Lab 5.29 – Grid Infrastructure
7272
Lab 5.30 – Grid Infrastructure
7373
Lab 5.31 – Grid Infrastructure
74
Lab 6 – Oracle Database Software
Hands On !
74
75
Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador do Oracle Database Software.$ cd /home/oracle$ unzip -q linuxamd64_12102_database_1of2.zip$ unzip -q linuxamd64_12102_database_2of2.zip$ cd database$ ./runInstaller
75
Lab 6.1 – Oracle Database Software
7676
Lab 6.2 – Oracle Database Software
7777
Lab 6.3 – Oracle Database Software
7878
Lab 6.4 – Oracle Database Software
7979
Lab 6.5 – Oracle Database Software
8080
Lab 6.6 – Oracle Database Software
8181
Lab 6.7 – Oracle Database Software
8282
Lab 6.8 – Oracle Database Software
8383
Lab 6.9 – Oracle Database Software
8484
Lab 6.10 – Oracle Database Software
8585
Lab 6.11 – Oracle Database Software
8686
Lab 6.12 – Oracle Database Software
8787
Lab 6.13 – Oracle Database Software
8888
Lab 6.14 – Oracle Database Software
8989
Lab 6.17 – Oracle Database Software
9090
Lab 6.18 – Oracle Database Software
91
Oracle Database
91
92
✔ Background Process• ACMS: Atomic Controlfile to Memory Service• GTX0-j: Global Transaction Process• LMON: Global Enqueue Service Monitor• LMD: Global Enqueue Service Daemon• LMS: Global Cache Service Process• LCK0: Instance Enqueue Process• RMSn: Oracle RAC Management Processes• RSMN: Remote Slave Monitor
✔ PFILE / SPFILE (1x)✔ Control Files (1x)✔ Online Redo Log Threads (x Nodes)✔ UNDO Tablespaces / Datafiles (x Nodes)✔ Datafiles (1x)
92
RAC Database
9393
Lab 7.1 – Oracle Database
Para efetuar logon na Instance ASM1, use o SQLPlus.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ sqlplus / AS SYSASMSQL> CREATE DISKGROUP DATA NORMAL REDUNDANCY DISK 'ORCL:DISK04', 'ORCL:DISK05';SQL> CREATE DISKGROUP FRA NORMAL REDUNDANCY DISK 'ORCL:DISK06', 'ORCL:DISK07';SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';SQL> ALTER DISKGROUP FRA SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';$ srvctl start diskgroup -g DATA -n nerv02$ srvctl enable diskgroup -g DATA -n nerv02$ srvctl start diskgroup -g FRA -n nerv02$ srvctl enable diskgroup -g FRA -n nerv02
9494
Lab 7.2 – Oracle Database
9595
Lab 7.3 – Oracle Database
9696
Lab 7.4 – Oracle Database
9797
Lab 7.5 – Oracle Database
9898
Lab 7.6 – Oracle Database
9999
Lab 7.7 – Oracle Database
100100
Lab 7.8 – Oracle Database
101101
Lab 7.9 – Oracle Database
102102
Lab 7.10 – Oracle Database
103103
Lab 7.11 – Oracle Database
104104
Lab 7.12 – Oracle Database
105105
Lab 7.13 – Oracle Database
106106
Lab 7.14 – Oracle Database
107107
Lab 7.15 – Oracle Database
108108
Lab 7.16 – Oracle Database
109109
Lab 7.17 – Oracle DatabasePara efetuar logon na Instance ASM1, use o SQLPlus.$ export ORACLE_SID=+ASM1$ sqlplus / as SYSDBAPor que não funcionou?
Verifique os discos existentes, e espaço disponível.SQL> SELECT NAME, TOTAL_MB, FREE_MB, HOT_USED_MB, COLD_USED_MB FROM V$ASM_DISK;SQL> SELECT NAME, TOTAL_MB, FREE_MB, HOT_USED_MB, COLD_USED_MB FROM V$ASM_DISKGROUP;
Crie uma TABLESPACE no ASM.SQL> CREATE TABLESPACE nerv DATAFILE '+DATA';Deve ser feito na Instance ASM ou na Instance Database?
Verifique o novo DATAFILE criado, e os já existentes.SQL> SELECT FILE_NAME, BYTES, MAXBYTES, AUTOEXTENSIBLE, INCREMENT_BY FROM DBA_DATA_FILES;
110110
Lab 7.18 – Oracle Database
Execute o asmcmd, e navegue pelos diretórios do Disk Group.$ asmcmd -pASMCMD [+] > helpASMCMD [+] > lsdg
Pelo asmcmd, copie um DATAFILE do ASM para o /home/oracle de uma máquina do RAC.
Execute um Backup do Banco de Dados.$ rman target /RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;Por que não funcionou?
111
Administração
111
112112
Comandos depreciados no 11gR2
113113
Comandos depreciados no 11gR2
114114
Comandos depreciados no 11gR2
115115
Comandos depreciados no 11gR2
116116
Comandos depreciados no 11gR2
117117
Comandos depreciados no 12cR1
118118
Comandos depreciados no 12cR1
119119
Comandos depreciados no 12cR1
120120
Dificuldades
● $GRID_HOME x $ORACLE_HOME● oracle X root
121121
Binários do GRID_HOME
Adicionar $GRID_HOME/bin no $PATH, no .bash_profile$ crsctl status res -t
OU
$ . oraenvORACLE_SID = [ORCL1] ? +ASM1 <enter>
OU
$ cd /u01/app/12.1.0.2/grid/bin/./crsctl status res -t
OU
$ /u01/app/12.1.0.2/grid/bin/crsctl status res -t
122
Daemons
122
123123
Daemons
124124
Daemons
125125
Daemons
126126
Cluster Startup
127127
11gR2$GRID_HOME/log/<node>/$GRID_HOME/log/<node>/alert<node>.log
12cR1$ORACLE_BASE/diag/crs/<node>/crs$ORACLE_BASE/diag/crs/<node>/crs/trace/alert.log
Logs
128
LAB 8 – Daemons
Hands On !
128
129
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.
Verifique o estado dos recursos.$ /u01/app/12.1.0.2/grid/bin/crsctl status res -t
129
Lab 8.1 – Daemons
130
Continue 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?
Verifique e altere parâmetros de timeout para o mínimo possível.# /u01/app/12.1.0.2/grid/bin/crsctl get css reboottime# /u01/app/12.1.0.2/grid/bin/crsctl get css misscount# /u01/app/12.1.0.2/grid/bin/crsctl get css disktimeout# /u01/app/12.1.0.2/grid/bin/crsctl set css reboottime 1# /u01/app/12.1.0.2/grid/bin/crsctl set css misscount 2# /u01/app/12.1.0.2/grid/bin/crsctl set css disktimeout 3
Lab 8.2 – Daemons
131
Teste de Carga
131
132
Tipos● TPC-C: OLTP (Rede Varejista)● TPC-E: OLTP (Telefonia)● TPC-H: Data Warehouse
Ferramentas● Hammerora● Swingbench
132
Teste de Carga
133133
Teste de Carga
134
LAB 9 – Teste de Carga
Hands On !
134
135
Copie o swingbench para a máquina nerv01, como usuário oracle.
Crie uma TABLESPACE com o nome SOE.
Descompacte o swingbench.zip.$ cd /home/oracle$ unzip -q swingbench261040.zip$ cd swingbench/bin
Execute a criação do SCHEMA do teste de carga:$ ./oewizard
Execute o teste de carga:$ ./charbench -cs //rac01-scan/ORCL -uc 10 -c ../configs/SOE_Server_Side_V2.xml
Lab 9.1 – Teste de Carga
136
srvctl
136
137
● A partir de qualquer Node, controla todos.● Deve ser utilizado com o usuário oracle ou com o owner do GRID_HOME.● Deve ser utilizado o srvctl do GRID_HOME.● Comando preferencial para iniciar e parar recursos do RAC.● Administra Database, Instances, ASM, Listeners e Services.● Um recurso pode ser iniciado, parado, habilitado, ou desabilitado.
137
srvctl
138
LAB 10 – srvctl
Hands On !
138
139
● Execute srvctl -h e entenda as opções.● Pare o Listener de apenas um Node.● Pare a Instance de apenas um Node.● Inicie novamente o Listener que está parado.● Inicie novamente a Instance que está parada.● Pare o Database, e o inicie novamente.● Pare uma Intance com a opção ABORT.● Inicie uma Instance com a opção MOUNT.● Mate uma Instance (kill no pmon) de um dos nós, e veja o que acontece.
139
Lab 10.1 – srvctl
140
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> BACKUP DATABASE;
140
Lab 10.2 – srvctl
141
crsctl
141
142
● A partir de qualquer Node, controla todos.● Deve ser utilizado com o usuário root.● Deve ser utilizado do GRID_HOME.● Principal comando de administração do Grid.● Um recurso pode ser iniciado, parado, habilitado, ou desabilitado.● Necessário para verificação e alteração de parâmetros.● Necessário para Troubleshooting e Debug.
142
crsctl
143
LAB 11 – crsctl
Hands On !
143
144
Verifique as opções do crsctl, digitando “crsctl”, sem opções.Verifique o status dos Daemons:# /u01/app/12.1.0.2/grid/bin/crsctl check css# /u01/app/12.1.0.2/grid/bin/crsctl check evm# /u01/app/12.1.0.2/grid/bin/crsctl check crs# /u01/app/12.1.0.2/grid/bin/crsctl check ctss# /u01/app/12.1.0.2/grid/bin/crsctl check cluster# /u01/app/12.1.0.2/grid/bin/crsctl check cluster -all
Verifique a versão instalada e ativa.# /u01/app/12.1.0.2/grid/bin/crsctl query crs activeversion# /u01/app/12.1.0.2/grid/bin/crsctl query crs softwareversion# /u01/app/12.1.0.2/grid/bin/crsctl query crs releasepatch# /u01/app/12.1.0.2/grid/bin/crsctl query crs softwarepatch
Liste todos os parâmetros de um recurso.# /u01/app/12.1.0.2/grid/bin/crsctl status res ora.orcl.db -f$ srvctl modify database -db ORCL -startoption OPEN$ srvctl modify database -db ORCL -stopoption ABORT
Lab 11.1 – crsctl
145
Liste os módulos do Cluster.# /u01/app/12.1.0.2/grid/bin/crsctl lsmodules crs# /u01/app/12.1.0.2/grid/bin/crsctl lsmodules css# /u01/app/12.1.0.2/grid/bin/crsctl lsmodules evm
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.1.0.2/grid/bin/crsctl set log css “CSSD:5”# /u01/app/12.1.0.2/grid/bin/crsctl set log css “CSSD:2”
Pare todo o Node.# /u01/app/12.1.0.2/grid/bin/crsctl stop cluster
Pare o outro Node.# /u01/app/12.1.0.2/grid/bin/crsctl stop cluster -n nerv02
Inicie todo o Cluster.# /u01/app/12.1.0.2/grid/bin/crsctl start cluster -all
Lab 11.2 – crsctl
146
Voting Disks
146
147
● É o centro do “ping” dos Nodes.● Pode ter N mirrors.● Pode ser alterado de qualquer Node.● Backups do Voting Disk são manuais.● Todas operações do Voting Disk devem ser executadas como root.● Deve ser feito backup após Adição ou Remoção de Nodes (<11gR2).● Com base nas informações nele, o Clusterware decide que Node faz parte do Cluster (Election / Eviction / Split Brain).
147
Voting Disk
148
LAB 11 – Voting Disk
Hands On !
148
149149
Lab 12.1 – Voting Disk
Na máquinas nerv09, crie 3 partições de 1GB (para o VD), e 3 de 2GB (para o OCR).
Na máquina nerv09, reconfigure o arquivo /etc/tgt/targets.conf iSCSI server com as novas 6 partições.<target iqn.2010-10.com.nervinformatica:storage.asm01-08> backing-store /dev/sda33 initiator-address 192.168.15.101 initiator-address 192.168.15.102</target>...
# service tgtd reload
150150
Lab 12.2 – Voting Disk
Nas máquinas nerv01 e nerv02, verifique os Discos exportados no Storage.# iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l
Nas máquinas nerv01 e nerv02, adicione os novos discos no arquivo /etc/iscsi/initiatorname.iscsi.InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-08InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-09InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-10InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-11InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-12InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01-13
151151
Lab 12.3 – Voting Disk
Nas máquinas nerv01 e nerv02 verifique se os discos foram configurados localmente.# fdisk -l
Na máquina nerv01, particione os novos discos.# fdisk /dev/sdin <enter>p <enter>1 <enter><enter><enter>w <enter>...
152152
Lab 12.4 – Voting DiskNa máquina nerv02, execute a detecção dos novos discos.# partprobe /dev/sdi# partprobe /dev/sdj# partprobe /dev/sdk# partprobe /dev/sdl# partprobe /dev/sdm# partprobe /dev/sdn
Na máquina nerv01, crie os discos do ASM.# /etc/init.d/oracleasm createdisk DISK08 /dev/sdi1# /etc/init.d/oracleasm createdisk DISK09 /dev/sdj1# /etc/init.d/oracleasm createdisk DISK10 /dev/sdk1# /etc/init.d/oracleasm createdisk DISK11 /dev/sdl1# /etc/init.d/oracleasm createdisk DISK12 /dev/sdm1# /etc/init.d/oracleasm createdisk DISK13 /dev/sdn1
Na máquina nerv02, execute a detecção dos discos criados.# /etc/init.d/oracleasm scandisks
153
Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.# /etc/init.d/oracleasm listdisks# /etc/init.d/oracleasm querydisk -v -p DISK08# /etc/init.d/oracleasm querydisk -v -p DISK09# /etc/init.d/oracleasm querydisk -v -p DISK10# /etc/init.d/oracleasm querydisk -v -p DISK11# /etc/init.d/oracleasm querydisk -v -p DISK12# /etc/init.d/oracleasm querydisk -v -p DISK13
Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.# ls -lh /dev/oracleasm/disks/brw-rw----. 1 oracle asmadmin 8, 17 Jan 2 13:01 DISK08brw-rw----. 1 oracle asmadmin 8, 33 Jan 2 13:01 DISK09brw-rw----. 1 oracle asmadmin 8, 49 Jan 2 13:01 DISK10brw-rw----. 1 oracle asmadmin 8, 65 Jan 2 13:01 DISK11brw-rw----. 1 oracle asmadmin 8, 81 Jan 2 13:01 DISK12brw-rw----. 1 oracle asmadmin 8, 97 Jan 2 13:01 DISK13
153
Lab 12.5 – Voting Disk
154
Na máquina nerv01, crie os novos DISK GROUPS.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ sqlplus / AS SYSASMSQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'ORCL:DISK08' , 'ORCL:DISK09' , 'ORCL:DISK10';SQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'ORCL:DISK11' , 'ORCL:DISK12' , 'ORCL:DISK13';
SQL> ALTER DISKGROUP OCR SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';SQL> ALTER DISKGROUP OCR SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';SQL> ALTER DISKGROUP VD SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';SQL> ALTER DISKGROUP VD SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';
$ srvctl start diskgroup -g OCR -n nerv02$ srvctl enable diskgroup -g OCR -n nerv02$ srvctl start diskgroup -g VD -n nerv02$ srvctl enable diskgroup -g VD -n nerv02
154
Lab 12.6 – Voting Disk
155
Verifique o status do VOTING DISK.# /u01/app/12.1.0.2/grid/bin/crsctl query css votedisk
Adicione um MIRROR ao VOTING DISK.# /u01/app/12.1.0.2/grid/bin/crsctl add css votedisk +FRAO que aconteceu?# /u01/app/12.1.0.2/grid/bin/crsctl replace votedisk +FRAO que aconteceu?
Altere a localização do VOTING DISK.# /u01/app/12.1.0.2/grid/bin/crsctl replace votedisk +VD# /u01/app/12.1.0.2/grid/bin/crsctl query css votedisk
Lab 12.7 – Voting Disk
156
Na máquina nerv09, simule uma falha nos discos dos VOTING DISKs.# dd if=/dev/zero of=/dev/sda33 bs=512 count=1000000# dd if=/dev/zero of=/dev/sda34 bs=512 count=1000000# dd if=/dev/zero of=/dev/sda35 bs=512 count=1000000O que aconteceu?
Nas máquinas nerv01 e nerv02, verifique o estado do Cluster.# tail -f /u01/app/oracle/diag/crs/nerv01/crs/trace/alert.log# /u01/app/12.1.0.2/grid/bin/crsctl status res -t# /u01/app/12.1.0.2/grid/bin/crsctl check cluster -all
Nas máquinas nerv01 e nerv02, desabilite o início automático do CRS, e reinicie.# /u01/app/12.1.0.2/grid/bin/crsctl disable crs# reboot
Na máquina nerv01, inicie o CRS em modo exclusivo, e altere o VOTING DISK.# /u01/app/12.1.0.2/grid/bin/crsctl start crs -excl# /u01/app/12.1.0.2/grid/bin/crsctl replace votedisk +CONFIG
Nas máquinas nerv01 e nerv02, habilite o início automático do CRS, e reinicie.# /u01/app/12.1.0.2/grid/bin/crsctl enable crs# reboot
Lab 12.8 – Voting Disk
157
Na máquina nerv01, particione novamente os discos dos VOTING DISKs.# fdisk /dev/sd?n <enter>p <enter>1 <enter><enter><enter>w <enter>...
Na máquina nerv02, execute novamente a detecção dos novos discos.# partprobe /dev/sd?# partprobe /dev/sd?# partprobe /dev/sd?
Na máquina nerv01, crie novamente os discos dos VOTING DISKs.# /etc/init.d/oracleasm createdisk DISK08 /dev/sd?1# /etc/init.d/oracleasm createdisk DISK09 /dev/sd?1# /etc/init.d/oracleasm createdisk DISK10 /dev/sd?1
Na máquina nerv02, execute a detecção dos discos criados.# /etc/init.d/oracleasm scandisks
Lab 12.9 – Voting Disk
158
Na máquina nerv01, recrie o DISK GROUP dos VOTING DISKs.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ sqlplus / AS SYSASMSQL> CREATE DISKGROUP VD NORMAL REDUNDANCY DISK 'ORCL:DISK08' , 'ORCL:DISK09' , 'ORCL:DISK10';
SQL> ALTER DISKGROUP VD SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';SQL> ALTER DISKGROUP VD SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';
$ srvctl start diskgroup -g VD -n nerv02
Na máquina nerv01, altere a localização do VOTING DISK.# /u01/app/12.1.0.2/grid/bin/crsctl replace votedisk +VD# /u01/app/12.1.0.2/grid/bin/crsctl query css votedisk
158
Lab 12.10 – Voting Disk
159
OCR
159
160
● É o centro das informações do RAC.● Deve estar em Storage compartilhado por todos Nodes.● Pode ter até 4 mirrors.● Ferramentas do OCR: ocrconfig, ocrcheck, ocrdump.● Ferramentas do OCR devem ser utilizadas como root.● Pode ser alterado de qualquer Node.● Backups do OCR são executados automaticamente.● Backups armazenados: 1 semanal, 1 diário, e 1 a cada 4 horas.● Podem ser executados backups físicos e lógicos.
160
OCR – Oracle Cluster Registry
161
LAB 12 – OCR
Hands On !
161
162
Execute o ocrdump, e analise o conteúdo do dump (OCRDUMPFILE).# /u01/app/12.1.0.2/grid/bin/ocrdump# file OCRDUMPFILE# grep orcl OCRDUMPFILE
Execute o ocrcheck, e verifique o resultado.# /u01/app/12.1.0.2/grid/bin/ocrcheck# ls -lh /u01/app/oracle/diag/crs/nerv01/crs/trace/ocrcheck*
Verifique o OCR pelo Cluster Verification Utility.# /u01/app/12.1.0.2/grid/bin/cluvfy comp ocr -n nerv01,nerv02Por que não funciona?
Lab 13.1 – OCR
163
Na máquina nerv01, altere a localização dos OCRs.# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +CONFIG# /u01/app/12.1.0.2/grid/bin/ocrcheck# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +DATA# /u01/app/12.1.0.2/grid/bin/ocrcheck# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +FRA# /u01/app/12.1.0.2/grid/bin/ocrcheck# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +DATA# /u01/app/12.1.0.2/grid/bin/ocrcheck# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +FRA# /u01/app/12.1.0.2/grid/bin/ocrcheck# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +CONFIGPor que não funciona?
# /u01/app/12.1.0.2/grid/bin/ocrconfig -add +OCR# /u01/app/12.1.0.2/grid/bin/ocrcheck# /u01/app/12.1.0.2/grid/bin/ocrconfig -delete +CONFIG# /u01/app/12.1.0.2/grid/bin/ocrcheck
Lab 13.2 – OCR
164
Na máquina nerv01, verifique os backups físicos existentes do OCR.# /u01/app/12.1.0.2/grid/bin/ocrconfig -showbackup# /u01/app/12.1.0.2/grid/bin/ocrconfig -manualbackup# /u01/app/12.1.0.2/grid/bin/ocrconfig -showbackup
Na máquina nerv01, altere a localização dos backups físicos do OCR.# /u01/app/12.1.0.2/grid/bin/ocrconfig -backuploc +FRA# /u01/app/12.1.0.2/grid/bin/ocrconfig -manualbackup# /u01/app/12.1.0.2/grid/bin/ocrconfig -showbackup
Na máquina nerv01, faça um backup lógico do OCR.# /u01/app/12.1.0.2/grid/bin/ocrconfig -export /home/oracle/OCR.bkp# file /home/oracle/OCR.bkp
164
Lab 13.3 – OCR
165
Na máquina nerv09, simule uma falha nos discos do OCR.# dd if=/dev/zero of=/dev/sda45 bs=512 count=1000000# dd if=/dev/zero of=/dev/sda46 bs=512 count=1000000# dd if=/dev/zero of=/dev/sda47 bs=512 count=1000000O que aconteceu?
Nas máquinas nerv01 e nerv02, verifique o estado do Cluster.# /u01/app/12.1.0.2/grid/bin/ocrcheck# tail -f /u01/app/oracle/diag/crs/nerv01/crs/trace/alert.log# /u01/app/12.1.0.2/grid/bin/crsctl status res -t# /u01/app/12.1.0.2/grid/bin/crsctl check cluster -all# /u01/app/12.1.0.2/grid/bin/ocrconfig -manualbackup
Nas máquinas nerv01 e nerv02, desabilite o início automático do CRS, e reinicie.# /u01/app/12.1.0.2/grid/bin/crsctl disable crs# reboot
Na máquina nerv01, inicie o CRS em modo exclusivo.# /u01/app/12.1.0.2/grid/bin/crsctl start crs -excl -nocrs
Lab 13.4 – OCR
166
Na máquina nerv01, particione novamente os discos do OCR.# fdisk /dev/sd?n <enter>p <enter>1 <enter><enter><enter>w <enter>...
Na máquina nerv02, execute novamente a detecção dos novos discos.# partprobe /dev/sd?# partprobe /dev/sd?# partprobe /dev/sd?
Na máquina nerv01, crie novamente os discos do OCR.# /etc/init.d/oracleasm createdisk DISK11 /dev/sd?1# /etc/init.d/oracleasm createdisk DISK12 /dev/sd?1# /etc/init.d/oracleasm createdisk DISK13 /dev/sd?1
Na máquina nerv02, execute a detecção dos discos criados.# /etc/init.d/oracleasm scandisks
Lab 13.5 – OCR
167
Na máquina nerv01, recrie o DISK GROUP do OCR.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ sqlplus / AS SYSASMSQL> CREATE DISKGROUP OCR NORMAL REDUNDANCY DISK 'ORCL:DISK11' , 'ORCL:DISK12' , 'ORCL:DISK13';SQL> ALTER DISKGROUP OCR SET ATTRIBUTE 'compatible.asm' = '12.1.0.0.0';SQL> ALTER DISKGROUP OCR SET ATTRIBUTE 'compatible.rdbms' = '12.1.0.0.0';
Na máquina nerv01, restaure o OCR.# /u01/app/12.1.0.2/grid/bin/ocrconfig -restore ...
Na máquina nerv01, reinicie o CRS.# /u01/app/12.1.0.2/grid/bin/crsctl enable crs# reboot
Na máquina nerv02, inicie o CRS.# /u01/app/12.1.0.2/grid/bin/crsctl enable crs# reboot
167
Lab 13.6 – OCR
168
oifcfg
168
169
● A partir de qualquer Node, controla todos.● Deve ser utilizado com o usuário root.● Ferramenta para administração dos IPs Público, Interconnect, e VIPs.● Necessário para alteração de rede dos Nodes.● Hostnames não podem ser alterados (só os VIPs).
169
oifcfg
170
LAB 14 – oifcfg
Hands On !
170
171
Execute um backup físico do OCR.
Verifique as Interfaces atuais, nos dois Nodes. Guarde o resultado.# /u01/app/12.1.0.2/grid/bin/oifcfg getif
Em apenas um Node, adicione a nova Interface ao Interconnect.# /u01/app/12.1.0.2/grid/bin/oifcfg setif -global eth1/192.168.3.0:cluster_interconnect
Pare o Cluster nos dois Nodes.# /u01/app/12.1.0.2/grid/bin/crsctl stop cluster -all
Logar no ambiente gráfico do nerv01 como root, e alterar o IP do Interconnect.Logar no ambiente gráfico do nerv02 como root, e alterar o IP do Interconnect.
No nerv01, alterar /etc/hosts para os novos IPs.No nerv02, alterar /etc/hosts para os novos IPs.
Reinicie a rede nos dois Nodes.# service network restart
Lab 14.1 – oifcfg
172
Inicie o Cluster nos dois Nodes.# /u01/app/12.1.0.2/grid/bin/crsctl start cluster -all
Em apenas um Node, remova a antiga Interface, após o CRS iniciar.# /u01/app/12.1.0.2/grid/bin/oifcfg getif# /u01/app/12.1.0.2/grid/bin/oifcfg delif -global eth1/192.168.1.0# /u01/app/12.1.0.2/grid/bin/oifcfg getif
Execute um backup físico do OCR.
Lab 14.2 – oifcfg
173
Rolling Patch
173
174
● Permite aplicação de Patches sem indisponibilidade.● Para-se uma Instance, aplica-se o Patch, inicia a Instance, e parte para a Instance seguinte.● O Patch precisa suportar o Rolling Upgrade.● Não pode ser utilizado com HOMEs compartilhados.● Não pode ser utilizado para Patchsets.
174
Rolling Patch
175
LAB 15 – Rolling Patch
Hands On !
175
176
Atualize o OPatch.$ unzip -q p6880880_121010_Linux-x86-64.zip$ mv $ORACLE_HOME/OPatch/ $ORACLE_HOME/OPatch.BACKUP$ mv /home/oracle/OPatch $ORACLE_HOME
Pare a Instance ORCL1 da máquina nerv01./u01/app/12.1.0.2/grid/bin/srvctl stop instance -d ORCL -n nerv01
Aplique o Patch a partir da máquina nerv01.$ unzip -q p19303936_121020_Linux-x86-64.zip$ cd /home/oracle/19303936/$ $ORACLE_HOME/OPatch/opatch apply
Quando a aplicação do Pacth solicitar, em outro terminal, inicie a instância da máquina nerv01 e pare a instância da máquina nerv02. Em seguida, prossiga com a aplicação do Patch./u01/app/12.1.0.2/grid/bin/srvctl start instance -d ORCL -n nerv01/u01/app/12.1.0.2/grid/bin/srvctl stop instance -d ORCL -n nerv02
Lab 15.1 – Rolling Patch
177
Após a aplicação, inicie a instância da máquina nerv02./u01/app/12.1.0.2/grid/bin/srvctl start instance -d ORCL -n nerv02
Nas máquinas nerv01 e nerv02, execute a etapa de alterações de SQL do Patch, conforme README.cd $ORACLE_HOME/OPatch./datapatch -verbose
Lab 15.2 – Rolling Patch
178178
● Full Table Scans (Optimizer Statistics, System Statistics)● Bind Variables / Cursor Sharing● Sequences / Sequences Artificiais● Dictionary● Reverse Key Indexes● Job x Scheduler● V$SESSION● UTL_FILE● Directories / External Tables / Data Pump● Partitioning
Single Instance x RAC
179
LAB 16 – Sequences
Hands On !
179
180
Crie uma entrada no tnsnames.ora para o RAC vizinho ao seu.
Conecte no RAC vizinho como SCOTT/TIGER. Analise e execute o script create_sequence.sql.
Analise e execute o script insert_sequence_rapida.sql
Analise e execute o script insert_sequence_lenta.sql
Repita os scripts de insert algumas vezes e veja se o resultado continua similar.É possível melhorar este tempo?
180
Lab 16.1 – Sequences
181
Load Balance (Client)
181
182
Client tnsnames.ora
ORCL = (DESCRIPTION= (LOAD_BALANCE=ON) →→→ Escolha Aleatória (FAILOVER=ON) →→→ Tenta acessar o 1o, depois o 2o (ADDRESS=(PROTOCOL=TCP)(HOST=nerv01-vip)(PORT=1521)) →→→ VIP (ADDRESS=(PROTOCOL=TCP)(HOST=nerv02-vip)(PORT=1521)) →→→ VIP (CONNECT_DATA= (SERVICE_NAME=ORCL) (FAILOVER_MODE= (TYPE=SELECT) →→→ SESSION ou SELECT (METHOD=BASIC) →→→ BASIC ou PRECONNECT (RETRIES=10) →→→ 10 tentativas de conexão (DELAY=1) →→→ 1 segundo para cada tentativa ) ) )
182
Load Balance Client (<= 11gR1)
183
Load Balance (Server)
183
184184
Load Balance (Server)
185
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:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nerv01-vip)(PORT=1521))))
Parâmetro REMOTE_LISTENER dos Nodes:rac01-scan:1521
185
Load Balance (Server)
186
Services GoalGOAL_NONEGOAL_SERVICE_TIME →→→ Bom para OLTPGOAL_THROUGHPUT →→→ Bom para Batch / OLAP / DBA
Services Connection Load Balance GoalCLB_GOAL_SHORT →→→ Bom para OLTPCLB_GOAL_LONG →→→ Bom para Batch / OLAP / DBA ou OLTP Persistente
186
Load Balance (Server)
187
Crie uma Job Class no Scheduler para o Service DBA:BEGIN DBMS_SCHEDULER.create_job_class ( job_class_name => 'DBA_JOB_CLASS', service => 'DBA_SERVICE');END;/
Crie um Job no Scheduler para utilizar o Service DBA: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;/
187
Load Balance (Server) - Scheduler
188
srvctl add servicesrvctl remove servicesrvctl modify servicesrvctl relocate servicesrvctl status servicesrvctl start servicesrvctl stop servicesrvctl enable servicesrvctl disable service
188
Load Balance (Server)
189
LAB 17 – Load Balance (Server)
Hands On !
189
190
Veja os Services configurados.$ srvctl config database -d ORCL
Crie Service para OLTP.
Exemplo:$ srvctl add service -db ORCL -service OLTP -preferred ORCL2 -available ORCL1 -tafpolicy PRECONNECT -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -failoverdelay 1 -failoverretry 10 -clbgoal SHORT -rlbgoal SERVICE_TIME -notification TRUE
$ srvctl add service -db ORCL -service WEB -preferred ORCL1,ORCL2 -policy AUTOMATIC -failovertype SELECT -failovermethod BASIC -failoverdelay 1 -failoverretry 10 -clbgoal SHORT -rlbgoal SERVICE_TIME -notification TRUE
Como ver detalhes de um Service já configurado?
Altere o tnsnames.ora para utilizar os novos Services e teste o Failover.
190
Lab 17.1 – Load Balance (Server)
191
Adicionar e Remover Nodes
191
192
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.
Sequência para remover Node:● Remover Instance;● Remover Oracle;● Remover Clusterware.
192
Adicionar e Remover Nodes
193
LAB 18 – Adicionar Nodes
Hands On !
193
194
Manter apenas 1 RAC ativo na sala.No restante das máquinas, refazer os Labs 1, 3, e 4.
Para todas as máquinas, configurar SSH sem senha para o usuário oracle.$ cd /home/oracle/grid/sshsetup./sshUserSetup.sh -user oracle -hosts "nerv01 nerv02 nerv05" -advanced -exverify -confirm -noPromptPassphrase
Instalar Grid Infraestruture nas outras máquinas, a partir de um Node existente:$ cd $GRID_HOME/addnode$ ./addnode.sh -silent “CLUSTER_NEW_NODES={nerv03,nerv04,nerv05}” “CLUSTER_NEW_VIRTUAL_HOSTNAMES={nerv03-vip,nerv04-vip,nerv05-vip}”
Nas outras máquinas, com o usuário root, execute os seguintes scripts.# /u01/app/oraInventory/orainstRoot.sh# /u01/app/12.1.0.2/grid/root.sh
Lab 18.1 – Adicionar Nodes
195
Instalar Oracle Database nas outras máquinas, a partir 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.1.0.2/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 18.2 – Adicionar Nodes
196
Flex ASM
196
197197
Flex ASM
198
LAB 19 – Flex ASM
Hands On !
198
199
Na máquina nerv01, verifique a configuração atual do Cluster.$ $GRID_HOME/bin/asmcmd showclustermode$ $GRID_HOME/bin/srvctl status asm$ $GRID_HOME/bin/srvctl config asm
Na máquina nerv01, execute a alteração para Flex ASM.$ $GRID_HOME/bin/asmca -silent -convertToFlexASM -asmNetworks eth1/192.168.3.0 -asmListenerPort 1522# /u01/app/oracle/cfgtoollogs/asmca/scripts/converttoFlexASM.sh
Na máquina nerv01, verifique a configuração atual do Cluster.$ $GRID_HOME/bin/srvctl status asm$ $GRID_HOME/bin/srvctl config asm$ $GRID_HOME/bin/srvctl modify asm -count 2 $ $GRID_HOME/bin/srvctl status asm$ $GRID_HOME/bin/srvctl config asm
Lab 19.1 – Flex ASM
200
Flex Cluster
200
201201
Flex Cluster
202
LAB 20 – Flex Cluster
Hands On !
202
203
Na máquina nerv01, verifique a configuração atual do Cluster.# /u01/app/12.1.0.2/grid/bin/crsctl get cluster mode status# /u01/app/12.1.0.2/grid/bin/srvctl config gns
Na máquina nerv01, altere a configuração do Cluster.# /u01/app/12.1.0.2/grid/bin/srvctl add gns -vip 192.168.15.191# /u01/app/12.1.0.2/grid/bin/srvctl start gns# /u01/app/12.1.0.2/grid/bin/crsctl set cluster mode flex
Na máquina nerv01, altere a configuração do Cluster.# /u01/app/12.1.0.2/grid/bin/crsctl get node role config -all# /u01/app/12.1.0.2/grid/bin/crsctl set node role leaf -node nerv07# /u01/app/12.1.0.2/grid/bin/crsctl set node role leaf -node nerv08# /u01/app/12.1.0.2/grid/bin/crsctl get node role config -all
Lab 20.1 – Flex Cluster
204
Melhores Práticas
204
205
- RAC de dois nós possui diversas limitações. - Utilize Hardware Certificado para sua implementação. - Elimine os POF: NICs, Switch, Storage, etc. - O Switch do Interconnect deve ser físico e exclusivo. - Utilize ASM. É a direção da Oracle. - Utilize GNS. É a direção da Oracle. - Utilize /etc/hosts, além do DNS. - No ASM, utilize DGs separados para DATA, FRA, OCR e VD. - Centralize os backups do OCR. - Utilize DATA e FRA com redundância no Storage ou ASM. - Utilize OCR e VD com redundância no Storage e ASM. - Use HOMEs locais, para GRID_HOME e ORACLE_HOME. - Logs (todos) devem ser centralizados. De nada vale um log que não existe. - Observe também os Logs do Sistema Operacional. - Utilize Jumbo Frames no Interconnect. - Utilize Huge Pages, e não utilize AMM. - O RAC torna aplicações boas em ótimas, e ruins em péssimas. - Esqueça SIDs. Aprenda Services. - Particione sua aplicação em Services. Sem Services, o RAC não é nada.
Melhores Práticas
206
E agora?
206
207
Fórum
208
Alunos
209
Blog
210
YouTube
211
Facebook / Twitter
212
Obrigado!
212