Oracle RAC 12cR1 - Nervnervinformatica.com.br/Downloads/Materiais/ORAC-12c.pdf · ... Automatic...

Post on 15-Apr-2018

229 views 7 download

transcript

1

Oracle RAC 12cR1

1

Ricardo Portilho Proniricardo@nervinformatica.com.br

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