Oracle RAC 11gR2 - NERVnervinformatica.com.br/Downloads/Materiais/ORAC.pdf · 1 Oracle RAC 11gR2 1...

153
1 Oracle RAC 11gR2 1 Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative 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/.

Transcript of Oracle RAC 11gR2 - NERVnervinformatica.com.br/Downloads/Materiais/ORAC.pdf · 1 Oracle RAC 11gR2 1...

1

Oracle RAC 11gR2

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)• VIP - Virtual IP• ASM - Automatic Storage management• FAN - Fast Application Notification• 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.

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

10

Hardware

10

1111

Hardware

12

Sistema Operacional

12

13

Windows (32-Bit ou 64-Bit)• Windows Server 2003• Windows Server 2003 R2• Windows XP Professional• Windows Vista - Business, Enterprise, and Ultimate editions• Windows Server 2008 and Windows Server 2008 R2 - Standard, Enterprise, Datacenter, Web, and Foundation editions. The Server Core option is not supported.• Windows 7 - Professional, Enterprise, and Ultimate editions

Unix• AIX 5L V5.3 TL 09 SP1 / AIX 6.1 TL 02 SP1 / AIX 7.1 TL 0 SP1 • HP-UX PA-RISC 11i V3 / HP-UX Itanium 11i V3• Oracle Solaris 10 U6 x86-64 (64-Bit) / Oracle Solaris 10 U6 SPARC (64-Bit)• Oracle Solaris 11 11/11 x86-64 (64-Bit) / Oracle Solaris 11 11/11 SPARC (64-Bit)

Linux● Asianux Server 3 SP2● Red Hat Enterprise Linux / Oracle Enterprise Linux 4 Update 7● Red Hat Enterprise Linux / Oracle Enterprise Linux 5 Update 2● Red Hat Enterprise Linux / Oracle Enterprise Linux 6● SUSE Linux Enterprise Server 10 SP2● SUSE Linux Enterprise Server 11

13

Sistemas Operacionais suportados

14

RAM• x86: 64 GB• x86-64: 512 GB (1 TB teórico)• Itanium 64: 1024 GB (1024 TB teóricos)

Kernel 2.4.x• Limite de 256 Hard Disks• Limite de Partições de 2TB• Limite de 16 GB para x86• Boa escalabilidade com até 4 CPUs.

Kernel 2.6.x• Melhor desempenho de I/O• Novas configurações de I/O• Suporte nativo a Asyncronous I/O e Direct I/O• Melhorias da Memória Virtual• Boa escalabilidade com mais de 32 CPUs

14

Linux: Limites

15

User sets up the

Hardware,

network & storage

Sets up OCFS

( OPT )

Installs

Oracle Clusterware

Installs

RAC

Configures

RAC DB

-post hwos

-post cfs

-post crsinst

-pre crsinst

-pre dbinst

-pre dbcfg

-pre cfs

Cluster Verification Utility

15

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: Nerv2014, Nerv2014, 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.

19

Lab 2 – Configuração OEL 6

Hands On !

19

20

Nas máquinas nerv01 e nerv02, configure as placas de rede púplica e privada.

20

Lab 2.1 – Configuração OEL 6

21

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-11gR2-preinstall# yum -y install oracleasm-support# yum -y install unzip iscsi-initiator-utils java-1.7.0-openjdk parted# yum -y install unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686

21

Lab 2.2 – Configuração OEL 6

22

Nas máquinas nerv01 e nerv02, ACRESCENTAR AO FINAL do arquivo /etc/hosts:# Public192.168.0.101 nerv01.localdomain nerv01192.168.0.102 nerv02.localdomain nerv02# Private192.168.1.101 nerv01-priv.localdomain nerv01-priv192.168.1.102 nerv02-priv.localdomain nerv02-priv# Virtual192.168.0.111 nerv01-vip.localdomain nerv01-vip192.168.0.112 nerv02-vip.localdomain nerv02-vip# Storage192.168.0.201 nerv09.localdomain nerv09

22

Lab 2.3 – Configuração OEL 6

23

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/11.2.0.4/grid# mkdir -p /u01/app/oracle/product/11.2.0.4/db_1# mkdir -p /u01/shared_config01# mkdir -p /u01/shared_config02# mkdir -p /u01/shared_config03

# chown -R oracle:oinstall /u01# chmod -R 775 /u01

# passwd oracle (Coloque como senha do usuário oracle: Nerv2014)

23

Lab 2.4 – Configuração OEL 6

24

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

24

Lab 2.5 – Configuração OEL 6

25

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/11.2.0.4/db_1export GRID_HOME=/u01/app/11.2.0.4/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

25

Lab 2.6 – Configuração OEL 6

26

Shared Storage

26

27

RAW Devices (Descontinuado para dados no 11gR1, e para tudo no 11gR2)• Plataformas: Todas• Arquivos não suportados: Software, Dump, Recovery

NFS• Plataformas: Linux, Solaris SPARC• Arquivos não suportados: Nenhum

LVM• Plataformas: HP-UX, HP Tru64 UNIX, Solaris SPARC Arquivos não suportados: Nenhum

Certified Vendor CFS• Plataformas: AIX, HP Tru64 UNIX, Solaris SPARC• Arquivos não suportados: Nenhum

OCFS2• Plataformas: Windows, Linux• Arquivos não suportados: Nenhum

ASM• Plataformas: Todas• Arquivos não suportados: OCR (11gR2 suporta), Voting Disk (11gR2 suporta), Software, Dump Areas

27

Opções de Shared Storage

28

Lab 3 – Storage

Hands On !

28

29

Na máquina nerv09, crie 3 diretórios.# mkdir /shared_config01# mkdir /shared_config02# mkdir /shared_config03

Na máquina nerv09, adicionar no arquivo /etc/exports:/shared_config01 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)/shared_config02 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)/shared_config03 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

Na máquina nerv09, iniciar o NFS Server:# service nfs start# chkconfig nfs on

29

Lab 3.1 – Storage (NFS)

30

Nas máquinas nerv01 e nerv02, adicionar no arquivo /etc/fstab as TRÊS linhas abaixo.nerv09:/shared_config01 /u01/shared_config01 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0nerv09:/shared_config02 /u01/shared_config02 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0nerv09:/shared_config03 /u01/shared_config03 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,noac 0 0

30

Lab 3.2 – Storage (NFS)

31

Nas máquinas nerv01 e nerv02, executar:# mount /u01/shared_config01# mount /u01/shared_config02# mount /u01/shared_config03

Na máquina nerv01, executar:# mkdir /u01/shared_config01/rac01# mkdir /u01/shared_config02/rac01# mkdir /u01/shared_config03/rac01# chown -R oracle:oinstall /u01/shared_config01/rac01# chown -R oracle:oinstall /u01/shared_config02/rac01# chown -R oracle:oinstall /u01/shared_config03/rac01

31

Lab 3.3 – Storage (NFS)

3232

Lab 3.4 – Storage (ASM)

Na máquinas nerv09, crie 4 partições de 10GB, sem formatar.

Na máquina nerv09, configure o iSCSI server.# cat /etc/tgt/targets.conf<target iqn.2010-10.com.nervinformatica:storage.asm01-01> backing-store /dev/sda5 initiator-address 192.168.0.101 initiator-address 192.168.0.102</target><target iqn.2010-10.com.nervinformatica:storage.asm01-02> backing-store /dev/sda6 initiator-address 192.168.0.101 initiator-address 192.168.0.102</target>...

# service tgtd start# chkconfig tgtd on

3333

Lab 3.5 – Storage (ASM)

Nas máquinas nerv01 e nerv02, ative o pacote iSCSI Initiator.# service iscsid start# chkconfig iscsid on

Nas máquinas nerv01 e nerv02, verifique os Discos exportados no Storage.# iscsiadm -m discovery -t sendtargets -p 192.168.0.201# iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-01 -p 192.168.0.201 -l# iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-02 -p 192.168.0.201 -l# iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-03 -p 192.168.0.201 -l# iscsiadm -m node -T iqn.2010-10.com.nervinformatica:storage.asm01-04 -p 192.168.0.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-04

3434

Lab 3.6 – 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>

3535

Lab 3.7 – Storage (ASM)Na máquinas nerv01, particione os novos discos.# fdisk /dev/sddn <enter>p <enter>1 <enter><enter><enter>w <enter>

# fdisk /dev/sden <enter>p <enter>1 <enter><enter><enter>w <enter>

Nas máquinas nerv02, execute a detecção dos novos discos.# partprobe /dev/sdb# partprobe /dev/sdc# partprobe /dev/sdd# partprobe /dev/sde

36

Nas máquinas nerv01 e nerv02, configure a ASMLib.# /etc/init.d/oracleasm configureoracle <enter>oinstall <enter>y <enter>y <enter># /etc/init.d/oracleasm status

Na máquina nerv01, crie os discos do ASM.# /etc/init.d/oracleasm createdisk DISK00 /dev/sdb1# /etc/init.d/oracleasm createdisk DISK01 /dev/sdc1# /etc/init.d/oracleasm createdisk DISK02 /dev/sdd1# /etc/init.d/oracleasm createdisk DISK03 /dev/sde1

Na máquina nerv02, execute a detecção dos discos criados.# /etc/init.d/oracleasm scandisks

36

Lab 3.8 – Storage (ASM)

37

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 DISK00# /etc/init.d/oracleasm querydisk -v -p DISK01# /etc/init.d/oracleasm querydisk -v -p DISK02# /etc/init.d/oracleasm querydisk -v -p DISK03

Nas máquinas nerv01 e nerv02, verifique se os discos estão corretos.# ls -lh /dev/oracleasm/disks/brw-rw----. 1 oracle oinstall 8, 17 Mar 3 08:40 DISK00brw-rw----. 1 oracle oinstall 8, 33 Mar 3 08:40 DISK01brw-rw----. 1 oracle oinstall 8, 49 Mar 3 08:40 DISK02brw-rw----. 1 oracle oinstall 8, 65 Mar 3 08:40 DISK03

37

Lab 3.9 – Storage (ASM)

38

Oracle Grid Infrastructure

38

39

- Oracle Cluster Registry- Voting Disk (Quorum Disk)- VIPs e SCAN- Daemons: evmd, ocssd, crs- Utilitários: crsctl, crs_stat, srvctl

39

Componentes

40

Lab 4 - Grid Infraestructure

Hands On !

40

41

Na máquina nerv01, com o usuário oracle, descompacte e execute o instalador do Grid Infrastructure.$ cd /home/oracle$ unzip -q p13390677_112040_Linux-x86-64_3of7.zip$ cd grig$ ./runInstaller

41

Lab 4.1 – Grid Infrastructure

4242

Lab 4.2 – Grid Infrastructure

4343

Lab 4.3 – Grid Infrastructure

4444

Lab 4.4 – Grid Infrastructure

4545

Lab 4.5 – Grid Infrastructure

4646

Lab 4.6 – Grid Infrastructure

4747

Lab 4.7 – Grid Infrastructure

4848

Lab 4.8 – Grid Infrastructure

4949

Lab 4.9 – Grid Infrastructure

5050

Lab 4.10 – Grid Infrastructure

5151

Lab 4.11 – Grid Infrastructure

5252

Lab 4.12 – Grid Infrastructure

5353

Lab 4.13 – Grid Infrastructure

5454

Lab 4.14 – Grid Infrastructure

5555

Lab 4.15 – Grid Infrastructure

5656

Lab 4.16 – Grid Infrastructure

5757

Lab 4.17 – Grid Infrastructure

5858

Lab 4.18 – Grid Infrastructure

5959

Lab 4.19 – Grid Infrastructure

6060

Lab 4.20 – Grid Infrastructure

6161

Lab 4.21 – Grid Infrastructure

6262

Lab 4.22 – Grid Infrastructure

63

Lab 5 – Oracle Database Software

Hands On !

63

64

Na máquina nerv01, com o usuário oracle, adeque o Response File, descompacte e execute o instalador do Oracle Database Software.$ cd /home/oracle$ unzip -q p13390677_112040_Linux-x86-64_1of7.zip$ unzip -q p13390677_112040_Linux-x86-64_2of7.zip$ cd database$ ./runInstaller

64

Lab 5.1 – Oracle Database Software

6565

Lab 5.2 – Oracle Database Software

6666

Lab 5.3 – Oracle Database Software

6767

Lab 5.4 – Oracle Database Software

6868

Lab 5.5 – Oracle Database Software

6969

Lab 5.6 – Oracle Database Software

7070

Lab 5.7 – Oracle Database Software

7171

Lab 5.8 – Oracle Database Software

7272

Lab 5.9 – Oracle Database Software

7373

Lab 5.10 – Oracle Database Software

7474

Lab 5.11 – Oracle Database Software

7575

Lab 5.12 – Oracle Database Software

7676

Lab 5.13 – Oracle Database Software

7777

Lab 5.14 – Oracle Database Software

7878

Lab 5.15 – Oracle Database Software

79

LAB 6 – ASM

Hands On !

79

80

Na máquina nerv01, crie a Instância ASM, com o DISKGROUP DATA.$ $GRID_HOME/bin/crsctl status res -t

$ $GRID_HOME/bin/asmca -silent -configureASM -sysAsmPassword Nerv2014 \ -asmsnmpPassword Nerv2014 -diskGroupName DATA -diskList \ '/dev/oracleasm/disks/DISK00,/dev/oracleasm/disks/DISK01' -redundancy NORMAL \-au_size 1 -compatible.asm '11.2.0.0.0' -compatible.rdbms '11.2.0.0.0' \-diskString '/dev/oracleasm/disks/*'

$ $GRID_HOME/bin/crsctl status res -t

80

Lab 6.1 – ASM

81

Na máquina nerv01, crie o DISKGROUP FRA, e o habilite no outro Nó.$ export ORACLE_HOME=$GRID_HOME$ export ORACLE_SID=+ASM1$ sqlplus / AS SYSASMSQL> CREATE DISKGROUP FRA NORMAL REDUNDANCY DISK '/dev/oracleasm/disks/DISK02' NAME DATA_0002, '/dev/oracleasm/disks/DISK03' NAME DATA_0003;SQL> EXIT;$ srvctl start diskgroup -g FRA -n nerv02$ srvctl enable diskgroup -g FRA -n nerv02$ $GRID_HOME/bin/crsctl status res -t

81

Lab 6.2 – ASM

82

Oracle Database

82

83

✔ Novos 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 (RMSn)• RSMN: Remote Slave Monitor

✔ PFILE / SPFILE (1x)✔ Control Files (1x)✔ Online Redo Log Threads (x Nodes)✔ UNDO Tablespaces / Datafiles (x Nodes)✔ Datafiles (1x)

83

RAC Database

84

Na máquina nerv01, crie o Banco de Dados.$ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1$ export ORACLE_SID=ORCL1$ $ORACLE_HOME/bin/dbca -silent -createDatabase -templateName General_Purpose.dbc \ -gdbName ORCL -sid ORCL \ -sysPassword Nerv2014 -systemPassword Nerv2014 \ -storageType ASM -asmsnmpPassword Nerv2014 \ -diskGroupName DATA -recoveryAreaDestination FRA \ -nodelist nerv01,nerv02 \ -characterSet WE8IS08859P15 -listeners LISTENER \ -memoryPercentage 40 \ -sampleSchema true \ -emConfiguration NONE \ -continueOnNonFatalErrors false

84

Lab 7.1 – Oracle Database

8585

Lab 7.2 – Oracle Database

Para 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.V$ASM_DISKV$ASM_DISKGROUP

Crie uma TABLESPACE no ASM.SQL> CREATE TABLESPACE nerv DATAFILE '+DATA';Deve ser feito na Instance ASM ou na Instance Database?

Execute o asmcmd, e navegue pelos diretórios do Disk Group.$ asmcmd -pASMCMD [+] > help

Pelo asmcmd, copie um DATAFILE do ASM para o /home/oracle de um Node.

8686

Lab 7.3 – Oracle Database

Execute um Backup do Banco de Dados.$ rman target /RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;Por que não funcionou?

87

Administração

87

8888

Comandos depreciados no 11gR2

● crs_stat● crs_register● crs_unregister● crs_start● crs_stop● crs_getperm● crs_profile● crs_relocate● crs_setperm● crsctl check crsd● crsctl check cssd● crsctl check evmd● crsctl debug log● crsctl set css votedisk● crsctl start resources● crsctl stop resources

8989

Dificuldades

● $GRID_HOME x $ORACLE_HOME● oracle X root

90

Daemons

90

9191

● Cluster Ready Services (CRS)● Cluster Synchronization Services (CSS)● Oracle ASM● Cluster Time Synchronization Service (CTSS)● Event Management (EVM)● Oracle Notification Service (ONS)● Oracle Agent (oraagent)● Oracle Root Agent (orarootagent)● Cluster Logger Service (ologgerd)● System Monitor Service (osysmond)● Grid Plug and Play (GPNPD)● Grid Interprocess Communication (GIPC)● Multicast Domain Name Service (mDNS)● Oracle Grid Naming Service (GNS)

Daemons

9292

Cluster Startup

9393

Alert Log$GRID_HOME/log/<node>/alert<node>.log

CRS – Cluster Ready Services (crsd)$GRID_HOME/log/<node>/crsd

CSS – Cluster Syncronization Services (cssd)$GRID_HOME/log/<node>/cssd

EVM – Event Manager (evmd)$GRID_HOME/log/<node>/evmd

Outros LogsVIP e ONS$GRID_HOME/log/<node>/racg

OCR Applications$GRID_HOME/log/<node>/client

SCAN$GRID_HOME/log/diag/tnslsnr/<node>/listener_scan1

Daemons - Logs

94

LAB 8 – Daemons

Hands On !

94

95

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 $GRID_HOME/log/nerv02/alertnerv02.log

Ligue a máquina nerv01.Veja o que acontece no Alert Log do nerv02 enquanto o nerv01 é ligado.$ tail -f $GRID_HOME/log/nerv02/alertnerv02.log

Familiarize-se com os diretórios de logs.

Veja o que foi atualizado nos Logs.

(Para ver o que está funcionando, utilize “crsctl status resource –t”.

95

Lab 8.1 – Daemons

96

Acompanhe os Alert Logs dos dois nós.

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.crsctl get css reboottimecrsctl get css misscountcrsctl get css disktimeoutcrsctl set css reboottime 1crsctl set css misscount 2crsctl set css disktimeout 3

96

Lab 8.2 – Daemons

97

Crie uma tabela de testes, e duplique-a 8 vezes.SQL> CREATE TABLE TESTE AS SELECT * FROM ALL_OBJECTS;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;O que aconteceu?

97

Lab 8.3 – Daemons

98

srvctl

98

99

● A partir de qualquer Node, controla todos.● Deve ser utilizado com o usuário oracle.● 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.

99

srvctl

100

LAB 9 – srvctl

Hands On !

100

101

● 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.

(Para ver o que está funcionando, utilize “crsctl status resource –t”)

101

Lab 9.1 – srvctl

102

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;

102

Lab 9.2 – srvctl

103

crsctl

103

104

● 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 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.

104

crsctl

105

LAB 10 – crsctl

Hands On !

105

106

Verifique as opções do crsctl, digitando “crsctl”, sem opções.

Verifique o status dos Daemons:crsctl check crscrsctl check cssdcrsctl check crsdcrsctl check evmdSe estes comandos estão deprecated, qual é seu substituto?

crsctl check ctssQue informação é importante neste comando?

Verifique a versão instalada e ativa.crsctl query crs activeversioncrsctl query crs softwareversion

106

Lab 10.1 – crsctl

107

Liste os módulos do Cluster.crsctl lsmodules crscrsctl lsmodules csscrsctl lsmodules evmTente executar os comando acima com o usuário oracle.

Coloque um dos módulos informados pelo comando anterior (lsmodules), e coloque ele em modo Debug.crsctl debug log crs “CRSCOMM:2”crsctl debug log res “ora.scan1.vip:5”Se estes comandos estão deprecated, qual é seu substituto?

Pare todo o Node.crsctl stop cluster

Pare o outro Node.crsctl stop cluster -n nerv02

Inicie todo o Cluster.crsctl start cluster -all

107

Lab 10.2 – crsctl

108

Liste todos os parâmetros de um recurso.crsctl status res ora.orcl.db -f

Altere um dos parâmetros.crsctl modify resource ora.orcl.db -attr RESTART_ATTEMPTS=5

108

Lab 10.3 – crsctl

109

OCR

109

110

● É 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.

110

OCR – Oracle Cluster Registry

111

LAB 11 – OCR

Hands On !

111

112

Execute o ocrdump, e analise o conteúdo do dump (OCRDUMPFILE).

Execute o ocrcheck, e verifique o resultado.

Ao executar o ocrcheck, um log é gerado no diretório de Logs.$GRID_HOME/log/<hostname>/client/ocrcheck_<pid>.log

Verifique o OCR pelo Cluster Verification Utility.cluvfy comp ocr -n nerv01,nerv02Por que não funciona?

Adicione um mirror.

112

Lab 11.1 – OCR

113

Verifique os backups físicos existentes do OCR.ocrconfig -showbackup

Faça um backup físico manual.Em que Node o Backup foi armazenado?

Faça um backup lógico.ocrconfig -export /home/oracle/OCR.bkp

Apague o OCR, e todos os Mirrors.

Restaure um Backup FÍSICO./u01/app/11.2.0/grid/bin/ocrconfig -restore ...O que aconteceu?

Inicie novamente o crs, em todos Nodes, e verifique o OCR.crsctl start cluster -all

113

Lab 11.2 – OCR

114

Voting Disks

114

115

● É 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).

115

Voting Disk

116

LAB 12 – Voting Disk

Hands On !

116

117

Verifique o status do Voting Disk.crsctl query css votedisk

Adicione três Mirrors.crsctl stop cluster -allcrsctl add css votedisk /u01/shared_config/rac01/votingdisk-mirrorPor que não funcionou?

Verifique o status do Voting Disk e Mirrors.crsctl query css votedisk

Remova um dos novos Voting Disks.crsctl delete css votedisk /u01/shared_config/rac01/votingdisk-mirror

117

Lab 12.1 – Voting Disk

118

Remova o Voting Disk e todos os mirrors.

Desabilite o início automático do CRS nos dois Nodes./u01/app/11.2.0/grid/bin/crsctl disable crs

Reinicie os dois Nodes.

Reinicie um dos Nodes em modo exclusivo./u01/app/11.2.0.4/grid/bin/crsctl start crs -excl

Adicione um Voting Disk./u01/app/11.2.0.4/grid/bin/crsctl add css votedisk /u01/shared_config/rac01/vdsk

Habilite o início automático do CRS nos dois Nodes./u01/app/11.2.0.4/grid/bin/crsctl enable crs

Reinicie os dois Nodes.

118

Lab 12.2 – Voting Disk

119

oifcfg

119

120

● 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).

120

oifcfg

121

LAB 13 – oifcfg

Hands On !

121

122

Execute um backup físico do OCR.

Verifique as Interfaces atuais, nos dois Nodes. Guarde o resultado.oifcfg getifsrvctl config nodeapps -n nerv01 -asrvctl config nodeapps -n nerv02 -a

Em apenas um Node, adicione a nova Interface ao Interconnect.oifcfg setif -global eth1/192.168.3.0:cluster_interconnect

Pare o Cluster nos dois Nodes.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 os dois Nodes.

122

Lab 13.1 – oifcfg

123

Em apenas um Node, remova a antiga Interface, após o CRS iniciar.oifcfg delif -global eth1/192.168.1.0

Execute um backup físico do OCR.

123

Lab 13.2 – oifcfg

124

Rolling Upgrades

124

125

● 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.● Só é possível utilizando-se um ORACLE_HOME para cada Node.

125

Rolling Upgrades

126

LAB 14 – Rolling Upgrades

Hands On !

126

127

Pare a Instance ORCL1 da máquina nerv01 usando srvctl.

Aplique o Patch na máquina nerv01.$ unzip -q p18139690_112040_Linux-x86-64.zip$ cd /home/oracle/18139690$ORACLE_HOME/OPatch/opatch napply

Após a aplicação, inicie a Intance ORCL1 do nerv01.

Pare a Instance ORCL2 da máquina nerv02.

Aplique o CPU Patch April 2014 na máquina nerv02.

Após a aplicação, inicie a Intance ORCL2 da máquina nerv02.

Aplique o SQL do Patch, em apenas um Node, conforme README.cd $ORACLE_HOME/rdbms/adminsqlplus / AS SYSDBASQL> @catbundle.sql cpu napplySQL> QUIT

127

Lab 14 – Rolling Upgrades

128

Single Instance x RAC

128

129129

● Full Table Scans● Optimizer Statistics, Histograms, System Statistics● Bind Variables / Cursor Sharing● Sequences / Sequences Artificiais● Locally Managed Tablespaces / ASSM● Reverse Key Indexes● Job x Scheduler● DBMS_ALERT● DBMS_PIPE● V$SESSION● UTL_FILE● Directories / External Tables / Data Pump● BFILEs● Partitioning

Single Instance x RAC

130

LAB 15 – Sequences

Hands On !

130

131

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_lenta.sql

Analise e execute o script insert_sequence_rapida.sql

Repita os scripts de insert algumas vezes e veja se o resultado continua similar.

É possível melhorar este tempo?

131

Lab 15.1 – Sequences

132

Load Balance (Client)

132

133

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 ) ) )

133

Load Balance (Client)

134

Load Balance (Server)

134

135135

Load Balance (Server)

136

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

136

Load Balance (Server)

137

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

Services Distributed Transaction ProcessingTRUEFALSE

137

Load Balance (Server)

138

srvctl add servicesrvctl remove servicesrvctl modify servicesrvctl relocate servicesrvctl status servicesrvctl start servicesrvctl stop servicesrvctl enable servicesrvctl disable service

138

Load Balance (Server)

139

LAB 16 – Load Balance (Server)

Hands On !

139

140

Veja os Services configurados.$ srvctl config database -d ORCL

Crie Services para OLTP, BATCH, e DBA.Utilize opções específicas para cada tipo de Service (GOAL, CLB, etc.).

Exemplo:srvctl add service -d ORCL -s OLTP_SERVICE -r ORCL1 -a ORCL2 -w 1 -z 10 -P PRECONNECT -e SESSION -m BASIC -j SHORT -B SERVICE_TIME

Como ver detalhes de um Service já configurado?

Altere o tnsnames.ora para utilizar os novos Services.

Teste o Failover.

140

Lab 16.1 – Load Balance (Server)

141

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;/

141

Lab 16.2 – Load Balance (Server)

142

Benchmark

142

143

Tipos● TCP-C: OLTP (Rede Varejista)● TPC-E: OLTP (Telefonia)● TCP-H: Data Warehouse

Ferramentas● Hammerora● Swingbench

143

Benchmark

144

LAB 17 – Benchmark

Hands On !

144

145

Copie o swingbench para a máquina nerv01, como usuário oracle.

Descompacte o swingbench.zip.

Crie uma Tablespace chamada SOE.

Crie o Schema do Benchmark:$ cd swingbench/bin$ ./oewizard

Execute o Benchmark:$ ./charbench -cs //rac01-scan/ORCL -uc 10

Execute o Benchmark no Service ORCL, e em um Service que só utilize um Node.

145

Lab 17.1 – Benchmark

146

Implemente Jumbo Frames e refaça o Benchmark no ORCL:ifconfig eth0 mtu 9000

Teste o ping de 8192 bytes em todos os Nodes.ping -s 8192 -M do nerv01-priv -c 5

146

Lab 17.2 – Benchmark

147

Adicionar e Remover Nodes

147

148

Sequência para adicionar Node:● Instalar Hardware;● Instalar Sistema Operacional;● Configurar Storage;● Instalar Grid Infraestruture a partir de um Node existente:● Instalar Oracle a partir de um Node existente;● Configurar o Listener;● Adicionar Instances.

Sequência para remover Node:● Remover Instance (Database e ASM);● Remover Listener;● Remover Oracle;● Alterar Inventories dos outros Nodes;● Remover configurações de rede do OCR (oifconfig);● Remover o Node do OCR;● Remover Clusterware;● Alterar Inventories dos outros Nodes.

148

Adicionar e Remover Nodes

149

LAB 18 – Adicionar Nodes

Hands On !

149

150

Manter apenas 1 RAC ativo na sala, para criar um RAC de 8 Nós.

No restante das máquinas, refazer os Labs 1, 2, e 3.

Para todas as máquinas, configurar SSH sem senha para o usuário oracle.

Instalar Grid Infraestruture nas outras máquinas, a partir de um Node existente:$ cd $GRID_HOME/oui/bin$ ./addNode.sh -silent “CLUSTER_NEW_NODES={<new node>}” “CLUSTER_NEW_VIRTUAL_HOSTNAMES={<new node VIP>}”

Nas outras máquinas, com o usuário root, execute os seguintes scripts.# /u01/app/oraInventory/orainstRoot.sh# /u01/app/11.2.0.4/grid/root.sh

Instalar Oracle Database nas outras máquinas, a partir de um Node existente:$ cd $ORACLE_HOME/oui/bin$ ./addNode.sh -silent "CLUSTER_NEW_NODES={<new node>}"

Nas outras máquinas, com o usuário root, execute o script abaixo.# /u01/app/oracle/product/11.2.0.4/db_1/root.sh

150

Lab 18.1 – Adicionar Nodes

151

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 DATABASE ADD LOGFILE THREAD 3;SQL> ALTER DATABASE ADD LOGFILE THREAD 3;SQL> ALTER DATABASE ENABLE PUBLIC THREAD 3;SQL> ALTER SYSTEM SET THREAD=3 SID='ORCL3' SCOPE=SPFILE;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

151

Lab 18.2 – Adicionar Nodes

152

Melhores Práticas

152

153

- RAC de dois nós não é Cluster, é Disaster Recovery de luxo. - Utilize Hardware Certificado para sua implementação. - Tenha redundância em tudo, incluindo NICs e Switch. - O Switch do Interconnect deve ser exclusivo. - Use ASM para DATAFILEs. - Use OCFS2 ou NFS para OCR e Voting Disk. - No ASM, utilize dois DGs: DATA e FRA. - Use HOMEs locais, para GRID_HOME e ORACLE_HOME. - Logs (todos) devem ser centralizados. De nada vale um log que não existe. - Utilize cinco Voting Disks. - Utilize Jumbo Frames. - Utilize Large Pages. - Utilize /etc/hosts, e não apenas DNS. Não utilize DHCP. - O Cluster Verification Utility é sua principal ferramenta de Troubleshooting. - Aumente seus Redo Logs e utilize o MTTR. - Observe também os Logs do Sistema Operacional. - Saiba que uma operação atômica será mais lenta em Oracle RAC do que em Single Instance. - Esqueça SIDs. Aprenda Services. - Particione sua aplicação em Services. Sem Services, o RAC não é nada.

153

Melhores Práticas