Upload
ricardo-portilho-proni
View
3.579
Download
12
Embed Size (px)
DESCRIPTION
Neste Treinamento cada participante irá executar todo o processo para instalar um RAC com 2 Nós, utilizando 2 máquinas cada um, instalando Linux, Configurar um Storage com NFS e ASM, instalar o Oracle 11gR2 Grid Infrastructure e o Oracle Database 11gR2. Não é um Treinamento com RAC simulado com VMware, e sim um RAC com dois servidores e mais um Storage, como um ambiente real de Produção. Saberá como configurar e preparar o Sistema Operacional corretamente para a instalação do Oracle RAC. Iremos configurar o Storage, passando pelas opções existentes de Discos Compartilhados para Dados, Oracle Cluster Registry e Voting Disk, verificar as opções possíveis para instalação do Clusterware e do Software RDBMS Oracle, as opções de uso do ASM (Automatic Storage Management), e finalmente subir e utilizar um Banco de Dados em RAC. Iremos abordar as tarefas de administração de um RAC já existente, e como elas diferem de uma implementação Single Instance do Oracle: Backup e Restore, Archives, manutenções no Storage, Backups e Restore do OCR e Voting Disk, Adicionar e Remover Nós, e executar Rolling Upgrades (aplicações de patch sem indisponibilidade).
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