Treinamento DBA Júnior - Nerv Informática Ltda
Upcoming SlideShare
Loading in...5
×
 

Treinamento DBA Júnior - Nerv Informática Ltda

on

  • 1,989 views

Neste Treinamento, com o balanceamento adequado entre rápidas teorias que reforçam o que foi aprendido na faculdade, com laborários práticos intensivos, o aluno será preparado para executar ...

Neste Treinamento, com o balanceamento adequado entre rápidas teorias que reforçam o que foi aprendido na faculdade, com laborários práticos intensivos, o aluno será preparado para executar tarefas administrativas básicas em bancos de dados Oracle, SQL Server e MySQL, além de ser corretamente orientado a respeito da carreira e seus futuros focos de aprendizado.

Statistics

Views

Total Views
1,989
Views on SlideShare
977
Embed Views
1,012

Actions

Likes
0
Downloads
63
Comments
0

4 Embeds 1,012

http://www.nervinformatica.com.br 799
http://nervinformatica.com.br 208
http://www.f2suporte.com 3
https://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Treinamento DBA Júnior - Nerv Informática Ltda Treinamento DBA Júnior - Nerv Informática Ltda Presentation Transcript

    • DBA Júnior Hugo Torralbo hugo@nervinformatica.com.br 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/. 1
    • Aprendizado • Visão: 5% • Audição: 8% • Visão e Audição: 12% • Execução: 22% • Execução com erro: 42% E 50% é perdido em 2 anos... 2
    • Instrutor - Team Leader for Performance Testing - IBM - DBA – IBM - Bacharelado em Sistemas de Informação – Centro Universitário Fundação Santo André (2007) Empresas http://www.ibm.com.br http://www.nervinformatica.com.br Redes Sociais http://twitter.com/nervinformatica https://facebook.com/nervinformaticaltda http://facebook.com/hugotorralbo http://br.linkedin.com/in/hugotorralbo/ 3
    • Instrutor Certificações • Oracle Database 10g Administrator Certified Associate • Oracle Database 10g Administrator Certified Professional • ITIL Foundation V3 4
    • Alunos - Se apresente. - Trabalha, estuda? - Comente sua experiência com TI. 5
    •  Introdução  Linux  Virtualização  Redes  Storage  MySQL  Oracle 6 Agenda 6
    • 7 Formação DBAs  Gradução / Pós-graduação / Doutorado.  Certificação.  Inglês.  Múltiplos SGBD. 7
    • 8 Júnior? 8
    • 9 DBA Júnior, Pleno, e Sênior 9
    • 10 Tarefas do DBA Júnior  Instalação (mas não Upgrade).  Criação de Bancos de Dados.  Verificação e alteração de parâmetros.  Execução de scripts.  Manutenção de usuários e permissões.  Manutenção de objetos (Tabelas, Índices, etc.).  Manutenção de espaço.  Execução de Backup físico e lógico (mas não Restore).  Transporte de objetos entre servidores.  Verificação de disponibilidade.  Início de verificação de problemas (Troubleshooting).  Início de análise de desempenho (Tuning). 10
    • 11 Bancos de Dados 11
    • Linux 12 12
    • 13 Teoria: Alta x Baixa plataforma 13
    • 14 Teoria: Plataformas e Arquiteturas  Alpha (64 bits)  ARM 32 (32 bits)  ARM 64 (64 bits)  AVR32 (32 bits)  Blackfin (32 bits)  DLX (32 bits)  ESi-RISC (16/32 bits)  Itanium (IA-64) (64 bits)  M32R (32 bits)  m68k (16/32 bits)  Mico32 (32 bits)  MIPS (64 bits)  MMIX (64 bits)  PA-RISC (64 bits)  PowerPC (32/64 bits)  S+core (16/32 bits)  Series 32000 (32 bits)  SPARC (64 bits)  SuperH (32 bits)  System/360 / System/370 / z/Architecture (64 bits)  VAX (32 bits)  x86 (32 bits)  x86-64 (64 bits) 14
    • 15 Teoria: História do Unix 15
    • 16 Teoria: Distribuições, Edições, Versões http://upload.wikimedia.org/wikipedia/commons/e/ed/LinuxDistroTimeline.png 16
    • 17 Teoria: Distribuições, Edições, Versões RHEL 2, 3 e 4 Red Hat Enterprise Linux AS (mission-critical/enterprise computer systems) Red Hat Enterprise Linux ES (supported network servers) Red Hat Enterprise Linux WS (technical power user) Red Hat Desktop (single-user desktop) RHEL 5 Red Hat Enterprise Linux Advanced Platform (antigo AS) Red Hat Enterprise Linux (antigo ES) (limitado a 2 CPUs) Red Hat Enterprise Linux Desktop with Workstation and Multi-OS option Red Hat Enterprise Linux Desktop with Workstation option (antigo WS) Red Hat Enterprise Linux Desktop with Multi-OS option Red Hat Enterprise Linux Desktop (antigo Desktop) Fedora e RHEL Fedora Core 3 → Red Hat Enterprise Linux 4 Fedora Core 6 → Red Hat Enterprise Linux 5 Fedora 12, 13 → Red Hat Enterprise Linux 6 Linux homologados pela Oracle para Oracle Database 11gR2 Asianux Server 3 SP2 Red Hat Enterprise Linux / Oracle Enterprise Linux (4.7, 5.2, 6.1) SUSE Linux Enterprise Server 10 SP2 SUSE Linux Enterprise Server 11 17
    • 18 Prática: Instalação OEL 6 18
    • 19 Prática: Instalação OEL 6 19
    • 20 Prática: Instalação OEL 6 20
    • 21 Prática: Instalação OEL 6 21
    • 22 Prática: Instalação OEL 6 22
    • 23 Prática: Instalação OEL 6 23
    • 24 Prática: Instalação OEL 6 24
    • 25 Prática: Instalação OEL 6 25
    • 26 Prática: Instalação OEL 6 26
    • 27 Prática: Instalação OEL 6 27
    • 28 Prática: Instalação OEL 6 28
    • 29 Prática: Instalação OEL 6 29
    • 30 Prática: Instalação OEL 6 30
    • 31 Prática: Instalação OEL 6 31
    • 32 Prática: Instalação OEL 6 32
    • 33 Prática: Instalação OEL 6 33
    • 34 Prática: Instalação OEL 6 34
    • 35 Prática: Instalação OEL 6 35
    • 36 Prática: Instalação OEL 6 36
    • 37 Prática: Instalação OEL 6 37
    • 38 Prática: Instalação OEL 6 38
    • 39 Prática: Instalação OEL 6 39
    • 40 Prática: Instalação OEL 6 40
    • 41 Prática: Instalação OEL 6 41
    • 42 Prática: Instalação OEL 6 42
    • 43 Prática: Instalação OEL 6 43
    • 44 Prática: Instalação OEL 6 44
    • 45 Prática: Instalação OEL 6 45
    • 46 Prática: Instalação OEL 6 46
    • 47 Prática: Instalação OEL 6 47
    • 48 Prática: Manipulação de Arquivos Execute logon como root. Habilite a rede (Clique com o botão esquerdo no ícone de rede, e em eth0). Abra um terminal (Clique com o botão direito no Desktop, e então em “Open In Terminal”.) Verifique os arquivos existentes no diretório: # ls # ls -l # pwd # cd .. # pwd # ls # ls -l # ls -lh # ls -lA # ls -lh *.log # cd .. # pwd # ls -lh # man ls 48
    • 49 Prática: Manipulação de Arquivos # cd # pwd Em que diretório você está? # ls -lh # file Desktop # file install.log # cat install.log # head install.log # tail install.log # tail -f install.log O que aconteceu? # cp install.log install.log.backup # mv install.log install.log.new # rm install.log.backup # touch install.log O que estes comandos fizeram? 49
    • 50 Prática: Manipulação de Arquivos # cat install.log # cat install.log.new > install.log # cat install.log # grep xorg install.log # grep xorg install.log | grep fonts # grep xorg install.log | grep -v fonts # watch ls -lh # vi install.log ESC e depois I --- insere texto. ESC e depois x --- remove uma letra. ESC e depois dd --- remove uma linha. ESC e depois :w --- salva as alterações. ESC e depois :q --- sai do vi. # clear O que as setas para cima e para baixo fazem? 50
    • 51 Prática: Gerenciamento de Pacotes Coloque o DVD. Verifique se o DVD já está montado. # df -h Se não estiver, monte-o: # mount /dev/sr0 /mnt # df -h Vá até o diretório onde estão os pacotes no DVD. # cd /media/<...>/Packages Procure o Java Jdk e instale-o. # ls *java* # rpm -ivh java-1.7.0-openjdk* Tente instala-lo novamente, e remova-o. # rpm -ivh java-1.7.0-openjdk* # rpm -e java-1.7.0-openjdk 51
    • 52 Prática: Gerenciamento de Pacotes Tente instalar o gcc. # rpm -ivh gcc-4.4* O que aconteceu? # yum install gcc 52
    • 53 Prática: Particionamento e Sistema de Arquivos Crie uma partição com o espaço livre. # fdisk -l # fdisk /dev/sda Digite: p Digite: n <Enter> <Enter> Digite: p Digite: w # fdisk -l Formate esta partição com o Sistema de Arquivos ext4. # mkfs.ext4 /dev/sda8 O que aconteceu? 53
    • 54 Prática: Particionamento e Sistema de Arquivos Crie um diretório, e monte o dispositivo nele. # mkdir /u01 # mount /dev/sda8 /u01 Faça este sistema de arquivos ser montado automaticamente. # vi /etc/fstab 54
    • 55 Prática: Services Verifique se o Apache está configurado para iniciar automaticamente. # chkconfig # chkconfig | grep httpd # chkconfig --level 35 httpd on # chkconfig | grep httpd # chkconfig httpd on Inicie e teste o serviço do Apache. # service httpd status # firefox localhost # service httpd start # service httpd status # firefox localhost 55
    • 56 Usuários, Grupos, Permissões Verifique qual é o seu usuário, e que permissões ele tem. # whoami # id # ls -lh /root/ # cat /etc/passwd # cat /etc/group Adicione grupos e o usuário oracle. # groupadd -g 1000 oinstall # groupadd -g 1200 dba # groupadd -g 1300 oper # useradd -u 1100 -g oinstall -G dba,oper oracle # passwd oracle # id oracle # cat /etc/passwd # cat /etc/group 56
    • 57 Usuários, Grupos, Permissões Torne-se o usuário oracle, e verifique suas permissões. # su – oracle $ whoami $ id $ pwd $ ls -lh /root/ O que aconteceu? Dê permissão para um arquivo ao usuário oracle, e teste. $ exit # chown oracle:dba /root/install.log # su – oracle $ ls -lh /root/ $ ls -lh /root/install.log O que aconteceu? 57
    • 58 Shell Com o usuário oracle, crie um script Bash. $ vi teste.sh <ESC> Digite: i ls –lh <ESC> Digite: :w <ESC> Digite: :q Execute-o: $ sh teste.sh Adicione a seguinte linha ao início deste arquivo: #!/bin/bash 58
    • 59 Shell Execute-o diretamente desta vez. $ /home/oracle/teste.sh O que aconteceu? Corrija e reexcute. $ ls -lh $ chmod +x /home/oracle/teste.sh $ ls -lh $ /home/oracle/teste.sh Proteja o script contra alterações. $ chmod -w /home/oracle/teste.sh Como retirar esta proteção? Acrescente mais comandos ao script. 59
    • 60 Prática: CRONTAB Agendador de tarefas. 60
    • 61 Prática: Variáveis de ambiente Verifique seus caminhos de executáveis. $ echo $PATH $ teste.sh $ cd /home/oracle $ ./teste.sh $ export PATH=/home/oracle/:$PATH $ echo $PATH $ teste.sh O que aconteceu? Crie uma variável de ambiente. $ export MINHAVARIAVEL=Teste $ echo $MINHAVARIAVEL Adicione uma variável ao seu script, e utilize-a para algo útil. Agende seu script para ser executado via crontab. $ crontab -e 61
    • 62 Prática: Processos Verifique os processos em execução. $ ps $ ps a $ ps aux $ ps aux | grep gnome $ pstree Qual a diferença entre estes comandos? Finalize o seu processo bash. $ ps a $ kill 2120 $ kill -9 2120 O que aconteceu? 62
    • 63 Prática: Processos Verifique seus caminhos de executáveis. $ vi teste.sh & $ fg O que aconteceu? $ vi teste.sh & $ vi teste02.sh & $ fg $ fg O que aconteceu? 63
    • 64 Prática: Desempenho $ free $ vmstat $ vmstat 2 $ vmstat 5 $ iostat $ iostat 2 $ iostat 5 $ top O que estes comandos fazem? 64
    • 65 Prática: Logs Verifique os logs mais atuais, e que informação eles têm. $ ls -lh /var/log $ su - # ls -lh /var/log # ls -lhtr /var/log 65
    • 66 Teoria: Documentação / Livros Livros livres - The Art of Unix Programming - Linux Device Drivers (O'Reilly) - Linux Kernel in a Nutshell (O'Reilly) - Linux Network Administrator's Guide (O'Reilly) Documentação Linux - http://www.tldp.org/ - https://access.redhat.com/knowledge/docs/ - https://www.suse.com/documentation/ AIX - http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp - http://www.ibm.com/developerworks/aix/ - http://www.redbooks.ibm.com/ 66
    • 67 Teoria: Certificações / Mercado de Trabalho - LPIC-1, LPIC-2, LPIC-3 - Red Hat Certified System Administrator — RHCSA - Red Hat Certified Engineer — RHCE - Red Hat Certified Virtualization Administrator — RHCVA - Red Hat Certified Security Specialist — RHCSS - Red Hat Certified Datacenter Specialist — RHCDS - Red Hat Certified Architect — RHCA - IBM Certified Operator - IBM Certified System Administrator - IBM Certified System Administrator - AIX 7 - IBM Certified Advanced Technical Expert - IBM Certified Systems Expert - Enterprise Technical Support for AIX and Linux v2 - IBM Certified Systems Expert - Virtualization Technical Support for AIX and Linux v2 - IBM Certified Systems Expert - Virtualization Technical Support for IBM i -v1 - IBM Certified Systems Expert - High Availability for AIX Technical Support and Administration -v2 67
    • Virtualização 68 68
    • 69 Teoria: Hard x Soft 69
    • 70 Teoria: Hard x Soft 70
    • 71 Prática: Instalação Oracle VirtualBox # ls -lh /root # rpm -ivh /root/VirtualBox* Verifique os erros do log, corrija sua causa, remova e reinstale o VirtualBox. 71
    • 72 Prática: Criação VMs 72
    • 73 Prática: Criação VMs 73
    • 74 Prática: Criação VMs 74
    • 75 Prática: Criação VMs 75
    • 76 Prática: Criação VMs 76
    • 77 Prática: Criação VMs 77
    • 78 Prática: Criação VMs 78
    • 79 Prática: Configuração VMs 79
    • 80 Prática: Configuração VMs 80
    • 81 Prática: Configuração VMs 81
    • 82 Prática: Configuração VMs 82
    • 83 Prática: Configuração VMs 83
    • 84 Prática: Clone VMs 84
    • 85 Prática: Clone VMs 85
    • 86 Prática: Clone VMs 86
    • 87 Prática: Snapshot VMs 87
    • 88 Prática: Export / Import Appliance 88
    • 89 Teoria: Documentação / Livros Documentação VMware http://www.vmware.com/support/pubs/ Documentação Microsoft Hyper-V http://technet.microsoft.com/pt-br/library/cc753637%28v=ws.10%29.aspx Documentação Oracle VM http://www.oracle.com/technetwork/documentation/vm-096300.html Documentação Oracle Solaris Zones http://docs.oracle.com/cd/E26502_01/html/E29024/index.html Documentação Oracle VirtualBox https://www.virtualbox.org/wiki/Documentation 89
    • 90 Teoria: Certificações / Mercado de Trabalho VMware VMware Certified Professional – Cloud (VCP-Cloud) NEW VMware Certified Advanced Professional – Cloud Infrastructure Design (VCAP-CID) NEW VMware Certified Advanced Professional – Cloud Infrastructure Administration Coming Soon VMware Certified Advanced Professional – Cloud Governance Coming Soon VMware Certified Design Expert – Cloud (VCDX-Cloud) NEW VMware Certified Professional 5 – Datacenter Virtualization (VCP5-DV) VMware Certified Advanced Professional 5 - Datacenter Administration (VCAP5-DCA) VMware Certified Advanced Professional 5 - Datacenter Design (VCAP5-DCD) VMware Certified Design Expert 5 - Datacenter Virtualization (VCDX5-DV) NEW VMware Certified Associate 4 - Desktop (VCA4-DT) VMware Certified Professional 4 - Desktop (VCP4-DT) VMware Certified Professional 5 - Desktop (VCP5-DT) VMware Certified Advanced Professional - Desktop Design (VCAP-DTD) NEW VMware Certified Design Expert – Desktop (VCDX-DT) NEW Certified Spring Professional Certified Spring Web Application Developer Certified Spring Enterprise Integration Specialist Hyper-V MCITP: Virtualization Administrator 90
    • Redes 91 91
    • 92 Teoria: TCP/IP 92
    • 93 Teoria: TCP/IP  IP  Mask  Gateway  DNS Qual seu IP / Mask / Gateway / DNS? 93
    • 94 Teoria: TCP/IP  DHCP  Routing  Firewall  Proxy  IDS  IPS  VLAN 94
    • 96 Prática: ssh / scp / ftp Execute logon remoto no computador do seu vizinho. # ssh root@192.168.0.102 Copie um arquivo do computador do seu vizinho para o seu. # scp root@192.168.0.102:/root/install.log /root Copie um arquivo de seu computador para o do seu vizinho. # scp /root/install.log root@192.168.0.102:/root/Desktop/install.log 96
    • 97 Prática: mstsc / rdesktop / vnc Execute logon remoto no Windows Server de sua VM. # rdesktop <IP> Por que não funciona? Execute logon remoto gráfico no computador do seu vizinho. # vncviewer 192.168.0.102 Por que não funciona? 97
    • 98 Prática: Xserver Execute logon remoto no computador do seu vizinho. # ssh -CX root@192.168.0.102 # firefox 98
    • 99 Prática: Windows Share Crie um compartilhamento no Windows Server, em sua VM. Clique com o botão direito em uma pasta -> Share with -> Specifc people -> Share -> Yes -> Done. Instale a compatibilidade com Samba em seu computador. # yum -y install samba-client samba-common cifs-utils Monte este compartilhamento em seu computador. # mkdir /mnt/windows # mount -t cifs //192.168.56.101/Users/Administrator/Downloads -o username=Administrator,password=Nerv2013 /mnt/windows 99
    • 100 Teoria: Documentação / Livros Linux Network Administrators Guide http://oreilly.com/openbook/linag2/book/index.html Cisco Documentation http://www.cisco.com/cisco/web/docs/iam/unified/ipt802/Cisco_Documentation.html 100
    • 101 Teoria: Certificações / Mercado de Trabalho CompTIA CompTIA A+ / CompTIA Network+ / CompTIA Security+ ISC(2) SSCP - Systems Security Certified Practitioner CAP - Certified Authorization Professional CSSLP - Certified Secure Software Lifecycle Professional CISSP - Certified Information Systems Security Professional 101
    • 102 Teoria: Certificações / Mercado de Trabalho Cisco CCENT - Cisco Certified Entry Networking Technician CCT - Cisco Certified Technicians CCDA - Cisco Certified Design Associate CCDP - Cisco Certified Design Professional CCDE - The Cisco Certified Design Expert CCNA - Cisco Certified Network Associate CCNP - Cisco Certified Network Professional CCNA Video CCNA / CCNP / CCIE - Data Center CCNA / CCNP / CCIE - Security CCNA / CCNP / CCIE - Service Provider CCNA / CCNP / CCIE - Service Provider Operations CCNA / CCNP / CCIE - Voice CCNA / CCNP / CCIE - Wireless CCIE Routing & Switching CCIE Storage Networking CCAr - Cisco Certified Architect 102
    • Storage 103 103
    • 104 Teoria: Produtos IBM DS8000 Series - DS8100 - DS8300 - DS8700 - DS8800 - DS8870 XIV SONAS Storwize V7000 Storwize V7000 Unified Storwize V3700 DS3500 Series - DS3512/DS3524 DCS3700 DS5000 Series - DS5020 - DS5100 - DS5300 N Series 104
    • 105 Teoria: Produtos NetApp FAS/V-Series Storage Systems - FAS6200 Series - FAS6000 Series - FAS3200 Series - FAS3100 Series - FAS2200 Series - V-Series E-Series Storage Technology - E5400 - E2600 Oracle / Sun Sun ZFS Storage 7120 Sun ZFS Storage 7320 Sun ZFS Storage 7420 Pillar Axiom 600 Storage System Pillar Axiom Software 105
    • 106 Teoria: Tecnologias - IDE, ATA, SATA, SCSI - SSD, Cache - RAID (0, 1, 5 [50, 60], 1+0) - SAN, NAS - Cluster Filesystems - ISCSI, - Fiber Channel (FC) - ATA-over-Ethernet (AoE) - Fibre Channel over Ethernet (FCoE) - Fibre Channel over IP (FCIP) - HyperSCSI SCSI over Ethernet frames instead of IP (as iSCSI is) - ISCSI Extensions for RDMA (iSER) - Internet Fibre Channel Protocol (iFCP) - Internet Storage Name Service (iSNS) - The SCST Linux SCSI target software stack - Linux LIO Unified Target software stack - Service Location Protocol 106
    • Crie um diretório para o NFS Server. # mkdir /shared_data Adicionar no arquivo /etc/exports a linha abaixo. /shared_data *(rw,sync,no_wdelay,insecure_locks,no_root_squash) Inicie o serviço NFS Server. # chkconfig nfs on # service nfs restart 107 Prática: NFS Server 107
    • Adicionar no arquivo /etc/fstab a linha abaixo. nerv02:/shared_data /u01/oradata nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,a ctimeo=0 0 0 Monte o Filesystem NFS. # mkdir /u01/oradata # mount /u01/oradata # touch /u01/oradata/teste.txt O vizinho consegue vizualizar seu arquivo? O vizinho consegue alterar seu arquivo? 108 Prática: NFS Client 108
    • 109 Prática: iSCSI Initiator Instale e ative o pacote iSCSI Initiator nos dois Nodes. # rpm -Uvh iscsi-initiator-utils-*.x86_64.rpm # service iscsid start # chkconfig iscsid on Verifique os Discos exportados no Storage, nos dois Nodes. # iscsiadm -m discovery -t sendtargets -p 192.168.0.202 # iscsiadm -m node -T iqn.2008-05.br.com.nervinformatica:asm.asm01 -p 192.168.0.202 -l Verifique se o disco foi configurado localmente, nos dois Nodes. # fdisk -l 109
    • 110 Particione o novo disco, na máquina nerv01. # fdisk /dev/sdb Digite: n Digite: p Digite: 1 <Enter> <Enter> Digite: w Prática: iSCSI Initiator
    • Deixe APENAS o novo disco no arquivo /etc/iscsi/initiatorname.iscsi, nos dois Nodes. InitiatorName=iqn.2010-10.com.nervinformatica:storage.asm01 Crie um diretório, e monte-o na partição iSCSI. 111 Prática: iSCSI Initiator 111
    • 112 Teoria: Documentação / Livros http://en.wikipedia.org/wiki/SCSI http://en.wikipedia.org/wiki/ISCSI http://en.wikipedia.org/wiki/RAID http://en.wikipedia.org/wiki/Storage_area_network http://en.wikipedia.org/wiki/Network-attached_storage 112
    • 113 Teoria: Certificações / Mercado de Trabalho IBM IBM Certified Specialist - Midrange Storage Sales V1 IBM Certified Specialist - Enterprise Storage Sales V3 IBM Certified Specialist - High Volume Storage Fundamentals V2 IBM Certified Specialist - Midrange Storage Technical Support V3 IBM Certified Specialist - Enterprise Storage Technical Support V3 IBM Certified Specialist - Storwize V7000 Technical Solutions V2 IBM Certified Specialist - Storwize V7000 Technical Solutions V1 IBM Certified Specialist - XIV Storage System Technical Solutions Version 3 IBM Certified Specialist - System Storage DS8000 Technical Solutions V3 IBM Certified Specialist - High-End Disk for Open Systems V2 IBM Certified Specialist - High-End Tape Technical Solutions V7 IBM Certified Specialist - High-End Tape V6 NetApp NetApp Certified Data Management Administrator NetApp Certified Data Management Administrator NetApp Certified B & R Implementation Engineer NetApp Certified SAN Implementation Engineer 113
    • MySQL 114 114
    • 115 Teoria: Versões e Edições Edições MySQL Community Edition MySQL Standard Edition MySQL Enterprise Edition MySQL Cluster Carrier Grade Edition http://www.mysql.com/products/ Versões 5.0 5.1 5.5 115
    • 116 Prática: Instalação  yum  Download de Pacotes RPMs 116
    • 117 Prática: Instalação e inicialização # rpm -Uvh MySQL-* # service mysql start # chkconfig mysql on # /usr/bin/mysqladmin -u root password 'Nerv2013' # cat /var/log/mysqld.log # cat /etc/my.cnf 117
    • 118 Prática: Programas Cliente # mysql -u root -pNerv2013 mysql> exit; # mysql -u root -pNerv2013 -e “SHOW STATUS” # mysql -u root -pNerv2013 -e “SHOW STATUS” > status.txt # cat status.txt # echo “SHOW STATUS” >> script.sql # cat script.sql # mysql -u root -pNerv2013 < script.sql # rm status.txt # mysql -u root -pNerv2013 < script.sql > status.txt O que este último comando fez? # mysqladmin -u root -pNerv2013 status O que mais o comando mysqladmin faz? 118
    • 119 Teoria: Engines  MyISAM  InnoDB  Memory  CSV  Archive  Blackhole  Merge  Federated  Example 119
    • 120 Prática: Processos e Threads Abra o top em um terminal e altere sua visualização padrão. # top Pressione: 1 Pressione: c Pressione: T Pressione: W Abra outro terminal , e execute: # watch -d –interval=1 mysqladmin -u root -pNerv2013 status No top, que comportamento é apresentado? Abra outros 3 terminais executando o mesmo comando do mysqladmin, e observer o top. 120
    • 121 Prática: Parâmetros de otimização max_connections = 800 table_open_cache = 100 thread_cache_size = 16 innodb_buffer_pool_size = 1G innodb_thread_concurrency = 32 key_buffer = 128M read_buffer_size = 2M read_rnd_buffer_size = 2M query_cache_limit = 2M query_cache_min_res_unit = 4096 query_cache_size = 1G query_cache_type = 1 sort_buffer = 2M join_buffer_size = 2M 121
    • 122 Prática: Parâmetros de recuperação tmp_table_size = 8M tmpdir = /tmp/ slow_query_log_file = /var/log/mysql-slow.log long_query_time = 5 Altere todos os parâmetros abaixo no my.cnf, de acordo com sua máquina, e reinicie o mysql. innodb_log_file_size = 512M innodb_log_files_in_group = 7 innodb_log_buffer_size = 64M innodb_flush_log_at_trx_commit = 1 122
    • 123 Prática: Bancos de Dados # mysql -u root -pNerv2013 mysql> show databases; mysql> create database nerv; mysql> show databases; mysql> use nerv; mysql> show tables; 123
    • 124 Prática: Estruturas físicas # ls -lh /var/lib/mysql/ total 29M -rw-rw----. 1 mysql mysql 18M Jan 24 14:45 ibdata1 -rw-rw----. 1 mysql mysql 5.0M Jan 24 14:45 ib_logfile0 -rw-rw----. 1 mysql mysql 5.0M Jan 24 14:45 ib_logfile1 drwx--x--x. 2 mysql mysql 4.0K Jan 24 14:43 mysql srwxrwxrwx. 1 mysql mysql 0 Jan 24 14:45 mysql.sock drwx------. 2 mysql mysql 4.0K Jan 24 15:12 nerv drwx------. 2 mysql mysql 4.0K Jan 24 14:43 performance_schema -rw-rw----. 1 mysql mysql 6 Jan 24 14:45 Proni-PC.localdomain.pid -rw-r--r--. 1 root root 112 Jan 24 14:43 RPM_UPGRADE_HISTORY -rw-r--r--. 1 mysql mysql 112 Jan 24 14:43 RPM_UPGRADE_MARKER-LAST drwxr-xr-x. 2 mysql mysql 4.0K Jan 24 14:43 test # ls -lh /var/lib/mysql/nerv/ total 4.0K -rw-rw----. 1 mysql mysql 65 Jan 24 15:12 db.opt 124
    • 125 Prática: Estruturas lógicas  Tablespaces?  Schemas? 125
    • 126 Prática: Tabelas mysql> use nerv; mysql> CREATE TABLE teste (coluna1 int, coluna2 char(50), coluna3 varchar(255)) Engine=InnoDB; mysql> show tables; O que a criação desta tabela alterou nas estruturas físicas? mysql> CREATE TABLE teste2 (coluna1 int, coluna2 char(50), coluna3 varchar(255)) Engine=MyISAM; mysql> show tables; O que a criação desta tabela alterou nas estruturas físicas? 126
    • 127 Prática: INSERT, UPDATE, DELETE, SELECT Exemplos INSERT INTO Employee (EmployeeID, EmpName, DeptID) VALUES (1, 'Ricardo Portilho Proni', 1); UPDATE Employee SET EmpName = 'Portilho' WHERE EmployeeID = 1; DELETE FROM Employee WHERE EmployeeID = 2; SELECT EmpName, DeptID FROM Employee WHERE EmployeeID = 1; Execute INSERT de 10 registros, UPDATE de 2, DELETE de 2, e 2 SELECTs diferentes. 127
    • 128 Prática: Transações e Isolamento Execute um UPDATE de seu modelo de dados, em todas os registros da Employee. Abra outra sessão, e execute SELECT em todos os dados da tabela. O que aconteceu? Repita a operação, mas antes do UPDATE, coloque como abaixo. BEGIN TRANSACTION UPDATE ... GO O que aconteceu? 128
    • 129 Prática: System States SHOW PROCESSLIST SHOW FULL PROCESSLIST After create altering table Analyzing checking permissions Checking table cleaning up closing tables committing alter table to storage engine converting HEAP to MyISAM copy to tmp table Copying to group table Copying to tmp table Copying to tmp table on disk Creating index Creating sort index Creating table Creating tmp table deleting from main table http://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html 129
    • 130 Prática: Importação e Exportação Exemplos SELECT * FROM Cars INTO OUTFILE '/tmp/cars.txt'; LOAD DATA INFILE '/tmp/cars' INTO TABLE Cars; SELECT * FROM Cars INTO OUTFILE '/tmp/cars.csv' FIELDS TERMINATED BY ','; LOAD DATA INFILE '/tmp/cars.csv' INTO TABLE Cars FIELDS TERMINATED BY ','; Execute este procedimento para as tabelas que você criou. 130
    • 131 Prática: Bin Logs Adicione no /etc/my.cnf a linha abaixo, e reinicie o mysql. log-bin=mysql-bin O que aconteceu no diretório de dados? 131
    • 132 Prática: Backup MyISAM Coloque uma tabela MyISAM em LOCK, e a copie para outro diretório. LOCK TABLE <nome_tabela> WRITE; FLUSH TABLE <nome_tabela>; Cópia... FLUSH TABLE <nome_tabela>; UNLOCK TABLES; 132
    • 133 Prática: mysqldump Execute um backup via mysqldump. $ mysqldump -u root -pNerv2013 nerv > nerv.sql Edite o arquivo gerado. O que ele contém? Como utilizar este backup? Quais suas desvantagens? 133
    • 134 Prática: INFORMATION_SCHEMA Verifique as tabelas do banco de dados INFORMATION_SCHEMA. Quantas tabelas você possui em todo o MySQL? E em seu banco de dados? 134
    • 135 Prática: System Status Execute no MySQL o comando abaixo. SHOW STATUS; Que informações que este comando gera são úteis? 135
    • 136 Teoria: Alta Disponibilidade  MySQL Replication  MySQL Cluster 136
    • 137 Teoria: Documentação / Livros Documentação oficial http://dev.mysql.com/doc/refman/5.0/en/index.html http://dev.mysql.com/doc/refman/5.1/en/index.html http://dev.mysql.com/doc/refman/5.5/en/index.html http://dev.mysql.com/doc/refman/5.6/en/index.html Livros MySQL 5.0 Certification Study Guide High Performance MySQL (O'Reilly) 137
    • 138 Teoria: Certificações / Mercado de Trabalho  Oracle Certified Associate, MySQL 5  Oracle Certified Professional, MySQL 5 Developer  Oracle Certified Professional, MySQL 5 Database Administrator  Oracle Certified Expert, MySQL 5.1 Cluster Database Administrator 138
    • Oracle 139 139
    • 140 Teoria: Versões e Edições  Oracle Database Standard Edition One  Oracle Database Standard Edition  Oracle Database Enterprise Edition  Oracle Database Express Edition  Oracle Database Personal Edition 140
    • 141 Teoria: Versões e Edições 141
    • 142 Prática: Instalação Instale os pacotes necessários para o Oracle Database. # yum -y install binutils # yum -y install compat-libcap1 # yum -y install compat-libstdc++-33 compat-libstdc++-33.i686 # yum -y install gcc # yum -y install gcc-c++ # yum -y install glibc glibc.i686 # yum -y install glibc-devel glibc-devel.i686 # yum -y install ksh # yum -y install libgcc.i686 # yum -y install libgcc # yum -y install libstdc++ libstdc++.i686 # yum -y install libstdc++-devel libstdc++-devel.i686 # yum -y install libaio libaio.i686 libaio-devel libaio-devel.i686 # yum -y install make # yum -y install sysstat # yum -y install elfutils-libelf-devel # yum -y install unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686 142
    • Editar o arquivo /etc/sysctl.conf e ACRESCENTAR AO FINAL: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586 Em seguida, execute: # sysctl -p Editar o arquivo /etc/security/limits.conf e ACRESCENTAR AO FINAL: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 143 Prática: Instalação 143
    • Executar os comandos abaixo. # mkdir -p /u01/app/oracle/product/11.2.0.3/db_1 # mkdir -p /u01/oradata # chown -R oracle:oinstall /u01 # chmod -R 775 /u01 144 Prática: Instalação 144
    • Com o usuário oracle, ACRESCENTAR NO FINAL do arquivo /home/oracle/.bash_profile as linhas abaixo. export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=nerv01.localdomain export ORACLE_UNQNAME=ORCL export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1 export ORACLE_SID=ORCL export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 145 Prática: Instalação 145
    • 146 Prática: Instalação Execute logon como oracle no ambiente gráfico, e descompacte o instalador. $ unzip -q p10404530_112030_Linux-x86-64_1of7.zip $ unzip -q p10404530_112030_Linux-x86-64_2of7.zip Execute o instalador. $ cd database/ $ ./runInstaller 146
    • 147 Prática: Instalação 147
    • 148 Prática: Instalação 148
    • 149 Prática: Instalação 149
    • 150 Prática: Instalação 150
    • 151 Prática: Instalação 151
    • 152 Prática: Instalação 152
    • 153 Prática: Instalação 153
    • 154 Prática: Instalação 154
    • 155 Prática: Instalação 155
    • 156 Prática: Instalação 156
    • 157 Prática: Instalação 157
    • 158 Prática: Instalação 158
    • 159 Prática: Instalação Execute, como root, os scripts indicados nesta tela, e depois clique em OK. 159
    • 160 Prática: Instalação 160
    • 161 Prática: Listener Verifique se seu arquivo /etc/hosts está similar a este. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.168.0.101 nerv01.localdomain nerv01 Execute o Network Configuration Assistant. $ netca 161
    • 162 Prática: Listener 162
    • 163 Prática: Listener 163
    • 164 Prática: Listener 164
    • 165 Prática: Listener 165
    • 166 Prática: Listener 166
    • 167 Prática: Listener 167
    • 168 Prática: Listener 168
    • 169 Prática: Listener 169
    • 170 Prática: Listener Verifique o estado o Listener. $ lsnrctl status $ lsnrctl stop $ lsnrctl start 170
    • 171 Prática: Criação Banco de Dados 171
    • 172 Prática: Criação Banco de Dados 172
    • 173 Prática: Criação Banco de Dados 173
    • 174 Prática: Criação Banco de Dados 174
    • 175 Prática: Criação Banco de Dados 175
    • 176 Prática: Criação Banco de Dados 176
    • 177 Prática: Criação Banco de Dados 177
    • 178 Prática: Criação Banco de Dados 178
    • 179 Prática: Criação Banco de Dados 179
    • 180 Prática: Criação Banco de Dados 180
    • 181 Prática: Criação Banco de Dados 181
    • 182 Prática: Criação Banco de Dados 182
    • 183 Prática: Criação Banco de Dados 183
    • 184 Prática: Criação Banco de Dados 184
    • 185 Prática: Criação Banco de Dados 185
    • 186 Prática: Criação Banco de Dados 186
    • 187 Prática: Criação Banco de Dados 187
    • 188 Prática: Criação Banco de Dados 188
    • 189 Prática: Criação Banco de Dados 189
    • 190 Prática: Criação Banco de Dados 190
    • 191 Prática: Criação Banco de Dados 191
    • 192 Prática: Criação Banco de Dados 192
    • 193 Teoria: Arquitetura 193
    • 194 Database Instance x Database Files 194 Instância: - estruturas de memórias (SGA, PGA, Log Buffer, Database Cache e etc); - Processos backgrounds (CKPT, LGWR, DWRn, SMON, PMON, MMON, RECO e outros) Arquivos: - data file e temp file; - online redo files; - archived redo files; - control files;
    • 195 Prática: SQL*Plus Execute logon no SQL*Plus via Sistema Operacional. $ sqlplus / AS SYSDBA Por que isto funcionou? Execute logon no SQL*Plus via SQL*Net. $ sqlplus SYSTEM/Nerv2013@ORCL Por que isto funcionou? Como executar logon no computador do vizinho? 195
    • 196 Prática: SQL Developer Execute o SQL Developer e crie uma conexão ao seu banco de dados. $ sh /u01/app/oracle/product/11.2.0.3/db_1/sqldeveloper/sqldeveloper.sh 196
    • 197 Prática: Enterprise Manager Execute logon como SYS no Enterprise Manager. 197
    • 198 Prática: Parâmetros de memória memory_max_target memory_target sga_max_size sga_target pga_aggregate_target db_cache_size (db_2k_cache_size, db_4k_cache_size, db_8k_cache_size...) buffer_pool_keep, buffer_pool_recycle shared_pool_size, shared_pool_reserved_size large_pool_size java_pool_size streams_pool_size log_buffer Aumente em 100MB a memória utilizada pelo Oracle. 198
    • 199 Teoria: STARTUP / SHUTDOWN Estados da Instância SHUTDOWN STARTUP MOUNT OPEN Comandos SQL> STARTUP; SQL> STARTUP NOMOUNT; SQL> ALTER DATABASE MOUNT; SQL> STARTUP MOUNT; SQL> ALTER DATABASE OPEN; SQL> STARTUP RESTRICT; SQL> STARTUP FORCE; SQL> SHUTDOWN NORMAL; SQL> SHUTDOWN IMMEDIATE; SQL> SHUTDOWN TRANSACTIONAL; SQL> SHUTDOWN ABORT; 199
    • 200 Database 200 Estruturas de Armazenamento: Lógica e Física
    • 201 Teoria: Estruturas lógicas e físicas  TABLESPACE  SEGMENTS EXTENTS DATA BLOCKS 201  DATA FILE
    • 1 - Criando uma tablespace: SQL> CREATE TABLESPACE tbs_teste DATAFILE '/u01/oradata/ORCL/teste01.dbf' SIZE 10M AUTOEXTEND ON SEGMENT SPACE MANAGEMENT AUTO EXTENT MANAGEMENT LOCAL; 2 - Consultando a tablespace e o datafile criado: SQL> SELECT tablespace_name, file_name, bytes/1024/1024 MB SQL> FROM dba_data_files SQL> WHERE tablespace_name='TBS_TESTE' SQL> ORDER BY 2; 3 - Alterando uma tablespace, adicionando um datafile: SQL> ALTER TABLESPACE TBS_TESTE ADD DATAFILE '/u01/oradata/ORCL/teste_02.dbf' SIZE 10M; Tablespaces e DatafilesPrática: Tablespaces e Datafiles 202
    • 4 – Consulte a tablespace novamente; 5 - Reajuste o tamanho de um DATAFILE com a instrução abaixo, em seguida, consulte novamente a tablespace SQL> ALTER DATABASE DATAFILE '/u01/oradata/ORCL/teste_02.dbf' RESIZE 20M; 6 - Excluindo uma tablespace: SQL> DROP TABLESPACE TBS_TESTE; Novamente, execute o passo 1. O que aconteceu? Tablespaces e DatafilesPrática: Tablespaces e Datafiles 203
    • 7 - Consultando o tamanho dos objetos (SEGMENTS), em cada tablespace. SQL> SELECT tablespace_name, SUM(bytes/1024/1024) MB FROM dba_segments GROUP BY tablespace_name ORDER BY 2 DESC; 8 – Consultando o tamanho dos objetos (SEGMENTS) do schema HR SQL> SELECT segment_name, segment_type, SUM(bytes/1024/1024) MB FROM dba_segments WHERE owner =‘HR’ GROUP BY segment_name, segment_type ORDER BY 3 DESC; Tablespaces e DatafilesPrática: Tablespaces e Datafiles 204
    • 205 Prática: Estruturas físicas  DATAFILEs  TEMPFILEs  UNDO DATAFILEs  CONTROLFILEs  REDO LOGs  ARCHIVED REDO LOGs  PFILE / SPFILE 205
    • 206 Prática: Modo ARCHIVELOG Altere o Banco de Dados para o modo NOARCHIVELOG. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE NOARCHIVELOG; SQL> ALTER DATABASE OPEN; Altere o Banco de Dados para o modo ARCHIVELOG. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; 206
    • 207 Database 207 Usuários, Schemas e privilégios
    • Usuários e privilégiosTeoria: O que é um schema? 208 A coleção de objetos gerenciados por um usuário é um SCHEMA
    • Usuários e privilégios 1. Crie um usuário SQL> CREATE USER usuario1 IDENTIFIED BY 123; 2. Altere a senha do usuário SQL> ALTER USER usuario1 IDENTIFIED BY minhasenha; 3. Consulte o usuário criado. SQL> SELECT username, account_status, default_tablespace FROM dba_users WHERE username='USUARIO1'; 4. Alterando a TABLESPACE padrão do USUARIO1 para TBS_TESTE SQL> ALTER USER usuario1 DEFAULT TABLESPACE tbs_teste; Prática: Usuários 209
    • Usuários e privilégios 5. Alterando a quota de espaço do USUARIO1 na tablespace TBS_TESTE SQL> ALTER USER usuario1 QUOTA 200M ON tbs_teste; 6. Alterando o usuário para conexão externa I. Altere o modo de autenticação do usuário SQL> ALTER USER usuario1 IDENTIFIED EXTERNALLY; II. Agora, crie um usuário no S.O como o mesmo nome do usuário do banco # useradd usuario1 # passwd Nerv2014 III. Abra uma sessão no Linux, com o usuario1 e exporte as variáveis de ambiente do Oracle $ export ORACLE_HOME= /u01/app/oracle/product/11.2.0.3/db_1 $ export ORACLE_SID=ORCL $ export PATH=$ORACLE_HOME/bin:$PATH Prática: Usuários 210
    • Usuários e privilégios IV. Tente conectar na instância ORCL. $ sqlplus / O que aconteceu? Prática: Usuários 211
    • Usuários e privilégios 1. Tente conectar no SQL*Plus com esse usuário: $ sqlplus usuario1/minhasenha@ORCL 2. Conceda o privilégio de sistema CREATE SESSION para conectar na instância. Em seguida, tente se logar novamente no SQL*Plus com o usuário: SQL> GRANT create session TO usuario1; 3. Voltando no SQL*Plus como SYS, conceda privilégio de leitura, escrita, exclusão e alteração na tabela EMP do usuário SCOTT. SQL> GRANT insert, delete, update, select ON scott.emp TO usuario1; 4. Consulte os privilégios concedidos para o USUARIO1. SQL> SELECT grantee, owner, table_name, privilege, grantor SQL> FROM dba_tab_privs SQL> WHERE grantee='USUARIO1' SQL> AND owner='SCOTT' SQL> AND table_name='EMP'; Prática: Privilégios 212
    • Usuários e privilégios 7. Revogue os privilégios concedidos para o USUARIO, na tabela do schema SCOTT. SQL> REVOKE delete,insert,update,select ON scott.emp FROM usuario1; Prática: Privilégios 213
    • 214 Database 214 Linguagem SQL (Structured Query Language)
    • 215 Teoria: Query, DML, DDL, DCL DDL (Data Definition Language) CREATE ALTER DROP TRUNCATE DCL (Data Control Language) GRANT REVOKE DML (Data Manipulation Language) SELECT INSERT UPDATE DELETE TCL (Transaction Control Language) COMMIT SAVEPOINT ROLLBACK SET TRANSACTION 215
    • 216 Prática: Tabelas, Índices e Views 216 CREATE TABLE Employee ( EmployeeID int, EmpName nvarchar2(100), DeptID int); CREATE TABLE HR.Dept ( DeptID int, DeptName nvarchar2(100) ) TABLESPACE USERS; CREATE INDEX IX_Employee ON Employee (EmployeeID); CREATE VIEW EmployeesList AS SELECT EmpName FROM Employee;
    • 217 Prática: PK, FK, Unique, Check, NOT NULL PK CREATE TABLE Employee (EmployeeID int PRIMARY KEY CLUSTERED, EmpName nvarchar(100), DeptID int); FK CREATE TABLE Employee (EmployeeID int, EmpName nvarchar(100), DeptID int REFERENCES Dept(DeptID); UNIQUE CREATE TABLE Employee (EmployeeID int PRIMARY KEY, EmpName nvarchar(100) NONCLUSTERED, DeptID int); CHECK CREATE TABLE Employee (EmployeeID int CHECK (EmployeeID >= 1), EmpName nvarchar(100), DeptID int); NOT NULL CREATE TABLE Employee (EmployeeID int, EmpName nvarchar(100) NOT NULL, DeptID int); Combine todos estes recursos em seu banco de dados de testes. 217
    • 218 Prática: INSERT, UPDATE, DELETE, SELECT Exemplos INSERT INTO Employee (EmployeeID, EmpName, DeptID) VALUES (1, 'Ricardo Portilho Proni', 1); UPDATE Employee SET EmpName = 'Portilho' WHERE EmployeeID = 1; DELETE FROM Employee WHERE EmployeeID = 2; SELECT EmpName, DeptID FROM Employee WHERE EmployeeID = 1; Execute INSERT de 10 registros, UPDATE de 2, DELETE de 2, e 2 SELECTs diferentes. 218
    • 219 Teoria PL/SQL: Procedures Criação CREATE PROCEDURE remove_emp (employee_id NUMBER) AS tot_emps NUMBER; BEGIN DELETE FROM hr.employees WHERE employees.employee_id = remove_emp.employee_id; tot_emps := tot_emps - 1; END; / Execução EXECUTE remove_emp(1); 219
    • 220 Teoria PL/SQL: Functions Criação CREATE FUNCTION get_bal(acc_no IN NUMBER) RETURN NUMBER IS acc_bal NUMBER(11,2); BEGIN SELECT order_total INTO acc_bal FROM orders WHERE customer_id = acc_no; RETURN(acc_bal); END; / Execução SQL> SELECT get_bal(165) FROM DUAL; GET_BAL(165) ------------ 2519 220
    • 221 Teoria: Triggers Criação CREATE TRIGGER hr.salary_check BEFORE INSERT OR UPDATE OF salary, job_id ON hr.employees FOR EACH ROW WHEN (new.job_id <> 'AD_VP') pl/sql_block (…) 221
    • 222 Prática: Transações e Isolamento Execute um UPDATE de seu modelo de dados, em todas os registros da Employee. Abra outra sessão, e execute SELECT em todos os dados da tabela. O que aconteceu? Repita a operação, mas antes do UPDATE, coloque como abaixo. BEGIN TRANSACTION UPDATE ... GO O que aconteceu? 222
    • 223 Prática: V$SESSION_WAIT Execute novamente o cenário de Transação e Isolamento, e veja o que há na V$SESSION_WAIT. SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT; SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT WHERE WAIT_CLASS != 'Idle'; Qual a diferença da V$SESSION_WAIT antes, durante e após a execução? 223
    • 224 Prática: V$SESSION Execute novamente o cenário de Transação e Isolamento, e veja o que há na V$SESSION. SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION WAIT; Qual a diferença da V$SESSION antes, durante e após a execução? Que colunas são importantes da V$SESSION? 224
    • 225 Prática: V$SQL Encontre na V$SQL um SQL que você tenha executado. SQL> SELECT SQL_ID, SQL_TEXT SQL> FROM V$SQL SQL> WHERE SQL_TEXT LIKE '%SELECT FUNC FROM EMP%'; Que colunas são importantes na V$SQL? 225
    • 226 Prática: exp / imp e expdp / impdp Exemplos exp / imp exp USERID=SCOTT/TIGER FULL=Y FILE=expSCOTT.dmp imp SCOTT/TIGER FILE=expSCOTT.dmp FROMUSER=SCOTT expdp / impdp expdp SCOTT/TIGER@ORCL tables=EMP,DEPT directory=TEST_DIR dumpfile=expdpSCOTT.dmp logfile=expdpSCOTT.log impdp SCOTT/TIGER@ORCL tables=EMP,DEPT directory=TEST_DIR dumpfile=expdpSCOTT.dmp logfile=impdpSCOTT.log Execute exp / imp e expdp / impdp das tabelas que você criou. 226
    • 227 Prática: Configuração Básica RMAN Execute os comandos abaixo no RMAN. $ rman target / RMAN> CONFIGURE BACKUP OPTIMIZATION ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET; RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF RELEASE 'DEFAULT'; O que estes três comandos fazem? 227
    • 228 Prática: Backup Básico RMAN Execute os comandos abaixo no RMAN. RMAN> BACKUP DATABASE; RMAN> BACKUP DATABASE FORMAT '/home/oracle/ORCL_%U.bkp'; RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT; Qual a diferença do resultado destes três comandos? 228
    • 229 Prática: Alert Log Encontre o Alert Log. SQL> show parameter dump $ tail -f /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alertORCL.log Encontre no Alert Log quando o banco de dados foi iniciado. 229
    • 230 Teoria: Alta Disponibilidade  Oracle RAC  Oracle Data Guard  Oracle Golden Gate  Oracle Streams 230
    • 231 Teoria: Documentação / Livros Documentação  http://docs.oracle.com/  http://profissionaloracle.com.br/  http://br.groups.yahoo.com/group/GPOracle/  http://br.groups.yahoo.com/group/oracle_br/  https://forums.oracle.com Livros  Expert Oracle Database Architecture (Tom Kyte)  Oracle Wait Interface: A Pratical Guide to Perform Performance Diagnostics & Tuning  Oracle Insights: Tales Of The Oak Table 231
    • 232 Teoria: Certificações / Mercado de Trabalho  Oracle Real Application Clusters 11g Certified Implementation Specialist  ORACLE MASTER Bronze Oracle Database 11g (Available only in Japan)  Oracle Database 11g Security Certified Implementation Specialist  Oracle Database 11g Performance Tuning Certified Expert  Oracle Database 11g Certified Implementation Specialist  Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator  Oracle Data Warehousing 11g Certified Implementation Specialist  Oracle Database 11g Administrator Certified Master  Oracle Database 11g Administrator Certified Professional  Oracle Database 11g Administrator Certified Associate  Oracle Database 10g Administrator Certified Master  Oracle Database 10g Managing Oracle on Linux Certified Expert  ORACLE MASTER Bronze Oracle Database 10g (Available only in Japan)  Oracle Database 10g Real Applications Clusters Administrator Certified Expert  Oracle Database 10g Administrator Certified Professional  Oracle Database 10g Administrator Certified Associate  Oracle Spatial 11g Certified Implementation Specialist  Oracle9i Database Administrator Certified Associate  Oracle9i Database Administrator Certified Professional  Oracle Certified Professional, Database Cloud Administrator  Oracle Certified Master, Database Cloud Administrator 232
    • 233 Teoria: Certificações / Mercado de Trabalho - Oracle Database 11g Administrator Certified Associate - Oracle Database 11g Administrator Certified Professional - Oracle Database 11g Administrator Certified Master - ORACLE MASTER Bronze Oracle Database 11g (Available only in Japan) - Oracle Database 11g Certified Implementation Specialist - Oracle Database 11g Performance Tuning Certified Expert - Oracle Database 11g Security Certified Implementation Specialist - Oracle Data Warehousing 11g Certified Implementation Specialist - Oracle Spatial 11g Certified Implementation Specialist - Oracle Database 10g Managing Oracle on Linux Certified Expert - Oracle Database 10g Real Applications Clusters Administrator Certified Expert - Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - Oracle Real Application Clusters 11g Certified Implementation Specialist - Oracle Certified Professional, Database Cloud Administrator - Oracle Certified Master, Database Cloud Administrator - Oracle Enterprise Manager 12c Certified Implementation Specialist - Oracle Enterprise Manager 11g Application Quality Management Certified Implementation Specialist - Oracle Enterprise Manager 11g Certified Implementation Specialist - Oracle GoldenGate 10 Certified Implementation Specialist - Oracle Exadata 11g Certified Implementation Specialist - Oracle Certified Expert, Oracle Exadata Database Machine Administrator, Software Release 11.x - Exalogic Elastic Cloud X2-2 Certified Implementation Specialist 233
    • E agora? 234 234
    • 235 Os 7 Passos do Troubleshooting  Passo 0: Acredite.  Passo 1: Redução.  Passo 2: Isolamento.  Passo 3: Reprodução.  Passo 4: Informação.  Passo 5: Pesquisa.  Passo 6: Correção & Validação.  Passo 7: Documentação. http://nervinformatica.com.br/blog/2013/01/07/os-7-passos-do-troubleshooting-2/ 235
    • 236 Como aprender um novo SGBD Fase 1 – Encontre a documentação oficial. – Instale. – Execute logon como administrador. – Crie um novo usuário, e conecte-se com ele. – Pare e inicie o SGBD, incluindo o sistema operacional. – Não entre em pânico. – Entenda e encontre sua estrutura física. – Entenda e encontre sua estrutura lógica. – Procure o log de erros. – Execute backup, físico e lógico. Fase 2 – Descubra como saber o que está acontecendo no SGBD. – Exporte e importe dados em arquivos texto. – Leia e entenda todos os parâmetros do SGBD. Fase 3 – Execute RESTORE. – Recupere o banco de dados em outro servidor. – Cause lentidão. – Implante Disaster Recovery. http://nervinformatica.com.br/blog/2013/01/07/como-aprender-um-novo-banco-de-dados/ 236
    • Treinamentos Nerv - Oracle Performance Diagnostics & Tuning - Oracle Backup & Recovery - Oracle RAC - Oracle Data Guard 237
    • Vagas - APInfo - Ceviu - Catho 238