DBA Júnior. Ricardo Portilho Proni

Documentos relacionados
DBA Júnior. Ricardo Portlho Proni

MySQL para DBAs Oracle

Oracle Zero Downtime Migration

Administração de Banco de Dados

Oracle Zero Downtime Migration (com Golden Gate)

Em nosso exemplo, o banco de dados XE está trabalhando no modo NOARCHIVELOG, e para verificar isso, basta executar as seguintes tarefas:

DBA Júnior. Hugo Torralbo

Como criar um banco de dados usando o mysql

Administração de Banco de Dados

Backup e Restauração Banco de Dados. Evandro Deliberal

Manual de instalação do SQL 2012

INSTALAÇÃO DO LOGIX COM BANCO ORACLE

Mercado de Trabalho para DBAs

Instalação e configuração Linux CentOS 6.x

Introdução ao Sistema. Características

Oracle 12c: Multitenant Architecture

IoT-FND: Incapaz de verificar a Conexão ao base de dados. Exceção: java.sql.sqlexception: ORA-28001: a senha expirou

DBA Júnior. Hugo Torralbo

MANUAL DE INSTALAÇÃO SAMI HOTELEIRO. REV B

LABORATÓRIO 0 Revisão GNU/Linux

Instalação do KenCast Fazzt no CentOS.

Criando um servidor de log

Instalacao do Zabbix 2.x em Ambiente CentOS

Manual de Instalação e Configuração MySQL

Instalando o MySQL Server 5.0

CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES LABORATÓRIO Disciplina: Administração de Serviços de Redes Aluno(a):

b. Causa parada do processo c. Reinicia um processo parado d. O processo é enviado para primeiro plano e. O processo é enviado para segundo plano 5)

MÓDULO 01 INTRODUÇÃO AO LINUX

CEFET SC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO EM TELECOMUNICAÇÕES REDES DE COMPUTADORES/TELEFONIA DISCIPLINA DE SISTEMAS OPERACIONAIS

Instalação Oracle Database 10g Release 2 em distribuições Red Hat / Fedora, Suse ou Debian

Questões e dicas. Servidores: Samba Sistema: Discos e partições Sistema: Rede Servidores: SSH Cliente: SSSD Servidores: BareOS/Bacula

Guia de Instalação e Configuração do Noosfero

Zabbix: Instalando o servidor

Linux - comando essenciais

Administração de Banco de Dados

Gestão de Sistemas Operacionais

ORACLE ARQUITETURA FÍSICA

Comandos de Verificação. Alberto Felipe Friderichs Barros

Administração dos serviços de redes utilizando linux

Linha de Sistemas Folhamatic

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

Configuração do Servidor Gateway Firewall e DHCP

ADMINISTRAÇÃO DE REDES I LINUX. Shell Script. Frederico Madeira LPIC 1, CCNA

Hotspot com Ubuntu Server Bits

X-RiteColor Master Web Edition

LABORATÓRIO UNIDADES 1 REVISÃO LINUX E COMANDOS BÁSICOS ABRINDO A MÁQUINA VIRTUAL UBUNTU SERVER PELO VIRTUALBOX

Programação Shell Script: como dominar seu terminal

Instalando servidor Apache

Aula 14. Network File System. Prof. Roitier Campos

Gerência de Banco de Dados

Configurar a plataforma NFS para o backup ACS 5.x em Windows e em Linux

Comissionamento RBS6000 LTE. Elaborado por FERNANDO SOUZA SUPORTE N3 Em Março/2015

Responsáveis: Bruno Silva, André Coelho, Wellington Silva, Marcelo Hirano. Atualizado em: 08/09/2017 CONFIGURAÇÃO DE BACKUP DE ORIGEM LINUX

Gerência de Redes de Computadores Zabbix Instalação. Prof. Alex Furtunato

Curso. Virtualização com vsphere Free

Minicurso Básico de Linux

Um Banco de Dados Oracle não funciona sem o arquivo de controle. O arquivo de controle é binário e dentro dele são armazenadas informações como:

Telefonia IP MOT. Prática 1

SQL E MYSQL - COMANDOS BÁSICOS

Upgrade do Sophos Enterprise Console (SEC) 5.x para 5.5.0

Backup do Samba 4. Introdução. Backup do samba4

Guia de procedimentos de backups

Marcos Alexandruk Marcos Alexandruk

Instalando o software de gerencia (ANM2000)

Autor: Hernandes Martins. Março de Zabbix 2.4 CentOS 7 Tutorial Instalação

Configuração. Ubuntu Server Sistemas Distribuídos Engenharia da Computação

Instalação Wiser. Sistema Operacional Linux Red Hat

Informática. Linux. Professor Márcio Hunecke.

Pesquisando defeitos problemas de TFTP no Resource Manager Essentials

INSTALANDO O HYPER-V EM SISTEMAS OPERACIONAIS WINDOWS

Oracle: Licenciamento

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

Instalando e Configurando o Oracle XE

Pedro F. Carvalho Analista de Sistemas RMAN: Ambiente de backup

Comandos Básicos Sistema Operacional GNU Linux

Instalação do IBM SPSS Modeler Entity Analytics

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo

Instalação do serviço de FTP com o Proftpd

MA de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página

Instalando o SQL 2016 Express

2. Instalação do WinThor Anywhere (Linux ambiente terminal/console)... 10

Aprenda a instalar a plataforma de monitorização Cacti

Meios de Comunicação de Dados.

Tutorial Zabbix Migração 2.4 para 3.0 CentOS 7.1 Português via Pacote

Sophos SafeGuard Enterprise 8.0.1

Instalacao do Zabbix em Ambiente CentOS

Transcrição:

DBA Júnior Ricardo Portilho Proni ricardo@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/.

Comandos no Treinamento Comando com o usuário root: # ls -lh Comando com um usuário normal: $ ls -lh Adicionar texto a um arquivo: # vi /etc/my.cnf... log-bin=mysql-bin... Comando no MySQL: mysql> show databases; Comando no Oracle: SQL> SELECT STATUS FROM V$INSTANCE; Quando algo dá errado propositalmente: O que aconteceu? 2

Agenda Mercado de Trabalho Linux - Sistema Operacional, Virtualização, Redes, Storage MySQL Oracle 3 3

Produtos utilizados no Treinamento Oracle Enterprise Linux x64 6 Oracle VirtualBox x64 6.0 Windows Server 2008 x32 MySQL Community Server x64 5.7 Oracle Database Enterprise Edition x64 12cR2 4

Por que é difícil tornar-se DBA? 5

DBA Júnior, Pleno, e Sênior Não é apenas uma questão de tempo. Concurso Público? Empresa? DataCenter? Consultoria? Tenho X anos, posso começar agora? 6

Tarefas do DBA Júnior Extração simples de dados (SELECT). Manipulação simples de dados (INSERT, UPDATE, DELETE) Instalação do SGBD (mas não Upgrade). Criação de Bancos de Dados. Verificação e alteração de parâmetros (mas não a decisão a respeito). 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). 7

Formação DBAs: CVs Gradução / Pós-graduação / etc. Treinamentos. Experiência. Conhecimentos Certificação. Inglês. Múltiplos Bancos de Dados. Alguma linguagem de script: Shell, Perl, BAT, VBScript. Linguagem SQL. Linguagem SQL proprietária (PL/SQL, T-SQL, etc.) Outra linguagem de programação (pode ser uma porta de entrada). Certificações de tecnologias acessórias. Me envie seu CV. 8

Planejamento: Quero ser um DBA - Ter um ambiente de estudo - Ter uma rotina de estudo - Prosseguir com Formação (Graduação, Pós, MBA, etc) - Fazer um Treinamento Oficial (mais teoria) - Fazer um Treinamento não Oficial (mais prática) - Aperfeiçoar Inglês (Leitura) - Ler, ler, ler. - Participar de Grupos de Discussão - Acompanhar Blogs - Ir a Eventos (Networking) - Estudar e tirar primeiro nível de Certificação - Se candidatar a vagas de DBA Júnior - Se candidatar a vagas de Infraestrutura - Se candidatar a vagas de Programação 9

Planejamento: Já sou um DBA - Ter um ambiente de estudo - Ter uma rotina de estudo - Prosseguir com Formação (Graduação, Pós, MBA, etc) - Fazer um Treinamento Oficial (mais teoria) - Fazer um Treinamento não Oficial (mais prática) - Aperfeiçoar Inglês (Escrita e Conversação) - Ler, ler, ler. - Participar de Grupos de Discussão - Acompanhar Blogs - Ir a Eventos (Networking) - Estudar e tirar segundo nível de Certificação - Espere um ano pelo menos... - E então se candidatar a vagas com maior possibilidade de crescimento. 10

Livros: Oracle 11

Livros: Oracle 12

Comunidades List Yahoo Oracle Br https://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ GPO https://www.profissionaloracle.com.br Glufke http://glufke.net/ GUOB http://www.guob.com.br/ Database Cast http://databasecast.com.br/wp/ Certificação BD http://certificacaobd.com.br/ DBA Brasil https://dbabrasil.net.br/ 13

Treinamentos Oficiais Oracle Database Administration Workshop 14

Treinamentos Nerv Quero ser um DBA Treinamento DBA Júnior Treinamento DBA Júnior II Treinamento Oracle Backup e Recovery Já trabalho como DBA e enfrento problemas de desempenho: Treinamento Oracle Performance Diagnostic e Tuning Treinamento Oracle Performance Tuning SQL Já sou um DBA, e usamos RAC: Treinamento Oracle RAC Já sou um DBA, e usamos Data Guard: Treinamento Oracle Data Guard Já sou um DBA, e usamos MySQL: Treinamento MySQL

Certificação 16

Certificação - Suas Certificações devem seguir sua carreira. - Não passar na prova faz parte do jogo. 17

Certificações 1o Nível Bancos de Dados Oracle: Oracle Database Administrator Certified Associate SQL Server: Microsoft Certified Solutions Associate MySQL: Oracle Certified Associate, MySQL 5 Infraestrutura Linux: LPIC-1 Linux: Red Hat Certified System Administrator AIX: IBM Certified Operator Virtualização: VMware Certified Associate Virtualização: Hyper-V: MCITP: Virtualization Administrator Windows Server: Microsoft Certified Solutions Associate CISCO: CCENT Cisco Certified Entry Networking Technician Storage: IBM Certified Specialist - High Volume Storage Fundamentals Storage: NetApp Certified Data Management Administrator Gerenciamento ITIL 18

Brain Dumps

Múltiplos Bancos de Dados 20

Múltiplos Bancos de Dados 21

Linux Sistema Operacional, Virtualização, Redes, Storage 22 22

Alta x Baixa plataforma 23 23

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

História do Unix 25 25

Distribuições, Edições, Versões https://upload.wikimedia.org/wikipedia/commons/1/1b/linux_distribution_timeline.svg http://upload.wikimedia.org/wikipedia/commons/e/ed/linuxdistrotimeline.png 26 26

Distribuições, Edições, Versões 27 27

Linux Homologados para Oracle Database 12cR2 28 28

Download OEL 6 29 29

Download OEL 6 30 30

Download OEL 6 31 31

Download OEL 6 32 32

Instalação OEL 6 33 33

Instalação OEL 6 34 34

Instalação OEL 6 35 35

Instalação OEL 6 36 36

Instalação OEL 6 37 37

Instalação OEL 6 38 38

Instalação OEL 6 39 39

Instalação OEL 6 40 40

Instalação OEL 6 41 41

Instalação OEL 6 42 42

Instalação OEL 6 43 43

Instalação OEL 6 44 44

Instalação OEL 6 45 45

Instalação OEL 6 46 46

Instalação OEL 6 47 47

Instalação OEL 6 48 48

Instalação OEL 6 49 49

Instalação OEL 6 50 50

Instalação OEL 6 51 51

Instalação OEL 6 52 52

Instalação OEL 6 53 53

Instalação OEL 6 54 54

Instalação OEL 6 55 55

Instalação OEL 6 56 56

Instalação OEL 6 57 57

Instalação OEL 6 58 58

Instalação OEL 6 59 59

Instalação OEL 6 60 60

Instalação OEL 6 61 61

Instalação OEL 6 62 62

Instalação OEL 6 63 63

Instalação OEL 6 64 64

Instalação OEL 6 65 65

Instalação OEL 6 66 66

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.) # yum -y update Abra outro terminal, e 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 67 67

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 # cp install.log install.log.backup # mv install.log install.log.new # rm install.log.backup # touch install.log # mkdir teste # cp install.log teste O que estes comandos fizeram? 68 68

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 ESC e depois x ESC e depois dd ESC e depois :w ESC e depois :q ESC e depois :wq ESC e depois :q! --- insere texto. --- remove uma letra. --- remove uma linha. --- salva as alterações. --- sai do vi. --- salva as alterações, e sai do vi. --- sai do vi sem salvar as alterações. # clear O que a seta para cima faz? # cat.bash_history 69 69

Gerenciamento de Pacotes Coloque o DVD. Verifique se o DVD já está montado. # df -h Vá até o diretório onde estão os pacotes no DVD. # cd /media/<...>/packages Tente instalar o gcc. # rpm -ivh gcc-c++* O que aconteceu? # yum install gcc-c++ 70 70

Particionamento e Sistema de Arquivos Crie uma partição com o espaço livre. # findmnt # findmnt -l # fdisk -l # fdisk /dev/sda Digite: p <Enter> Digite: n <Enter> <Enter> <Enter> Digite: p <Enter> Digite: w <Enter> # fdisk -l Formate esta partição com o Sistema de Arquivos ext4. # mkfs.ext4 /dev/sda8 O que aconteceu? 71 71

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... /dev/sda8 /u01 ext4 defaults 1 2... Teste se o arquivo /etc/fstab está correto. # umount /u01 # mount /u01 72 72

Services Verifique se o Apache está configurado para iniciar automaticamente. # chkconfig # chkconfig grep httpd # chkconfig --level 35 httpd on # chkconfig grep httpd Inicie e teste o serviço do Apache. # service httpd status # firefox localhost # service httpd start # service httpd status # firefox localhost 73 73

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

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? 75 75

Shell Com o usuário oracle, crie um script Bash. $ vi teste.sh... #!/bin/bash date echo Teste... Execute-o: $ teste.sh O que aconteceu? $ sh teste.sh $ /home/oracle/teste.sh $./teste.sh O que aconteceu? $ chmod +x /home/oracle/teste.sh $ /home/oracle/teste.sh $./teste.sh 76 76

Shell Execute-o diretamente desta vez. $ teste.sh $ echo $PATH $ export PATH=/home/oracle/:$PATH $ echo $PATH $ teste.sh O que aconteceu? 77 77

crontab Agende o script na crontab. $ crontab -l $ crontab -e... * * * * * /home/oracle/teste.sh >> /home/oracle/teste.log... $ crontab -l $ tail /home/oracle/teste.log $ tail -f /home/oracle/teste.log 78 78

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? 79 79

Desempenho 80 80

Desempenho $ free $ vmstat $ vmstat 2 $ vmstat 5 $ iostat -xd $ iostat -xd 2 $ iostat -xd 5 $ top 81 81

Logs Verifique os logs mais atuais, e que informação eles têm. $ ls -lh /var/log $ su # ls -lh /var/log # cat /var/log/messages 82 82

Virtualização Hard x Soft 83 83

Produtos de Virtualização Oracle 84 84

VMs e Containers 85 85

Produtos de Virtualização Oracle 86 86

Instalação Oracle VirtualBox # ls -lh /root/ # rpm -ivh /root/virtualbox* 87 87

Criação VMs 88 88

Criação VMs 89 89

Criação VMs 90 90

Criação VMs 91 91

Criação VMs 92 92

Criação VMs 93 93

Criação VMs 94 94

Configuração VMs 95 95

Configuração VMs 96 96

Configuração VMs 97 97

Configuração VMs 98 98

Configuração VMs 99 99

Configuração VMs 100 100

Configuração VMs 101 101

Configuração VMs 102 102

Configuração VMs 103 103

Configuração VMs 104 104

Configuração VMs 105 105

Configuração VMs 106 106

Configuração VMs 107 107

Configuração VMs 108 108

Configuração VMs 109 109

Configuração VMs 110 110

Configuração VMs 111 111

Configuração VMs 112 112

Pause VMs 113 113

Clone VMs 114 114

Clone VMs 115 115

Clone VMs 116 116

Clone VMs 117 117

Snapshot VMs 118 118

Snapshot VMs 119 119

Snapshot VMs 120 120

Export / Import Appliance 121 121

Export / Import Appliance 122 122

Export / Import Appliance 123 123

Export / Import Appliance 124 124

Export / Import Appliance 125 125

Redes TCP/IP IP / Mask/ Gateway / DNS DHCP Routing / Firewall / Proxy IDS / IPS VLAN Qual seu IP / Mask / Gateway / DNS? 126 126

Configuração de Rede Configure as placas de rede. 127 127

ssh / scp / ftp Execute logon remoto no computador do seu vizinho. # ssh root@192.168.15.102 # exit Copie um arquivo do computador do seu vizinho para o seu. # # # # scp scp scp scp root@192.168.15.102:/root/install.log root@192.168.15.102:/root/install.log root@192.168.15.102:/root/install.log root@192.168.15.102:/root/install.log /tmp/ /tmp/install.log /tmp/install.tmp. Copie um arquivo de seu computador para o do seu vizinho. # scp /root/install.log root@192.168.15.102:/root/desktop/install.log 128 128

mstsc / rdesktop Execute logon remoto no Windows Server de sua VM. # rdesktop IpDaVMWindows Por que não funciona? 129 129

VNC / Xserver Execute logon remoto gráfico no computador do seu vizinho. # vncviewer 192.168.15.102:1 Por que não funciona? E xecute logon remoto no computador do seu vizinho. # ssh -CX root@192.168.15.102 # firefox 130 130

Windows Share Crie um compartilhamento no Windows Server, em sua VM. Crie uma pasta (sem espaços no nome) no C:\. Clique com o botão direito em uma pasta -> Share -> 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.15.40/temp -o username=administrator,password=nerv2019 mnt/windows 131 131 /

Tecnologias Storage - IDE, ATA, SATA, SCSI - SSD, Cache - RAID (próxima página) - SAN (Storage Area Network), NAS (Network Attached Storage) - Cluster Filesystems - LUN Protocolos - 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 132 132

RAID 133 133

NFS Server Crie um diretório para o NFS Server. # yum install nfs-utils 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 134 134

NFS Client Adicionar no arquivo /etc/fstab a linha abaixo. 192.168.15.201:/shared_data /u01/oradata nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0 Monte o Filesystem NFS. # mkdir /u01/oradata # mount /u01/oradata # touch /u01/oradata/teste-nerv01.txt O vizinho consegue vizualizar seu arquivo? O vizinho consegue alterar seu arquivo? 135 135

iscsi Initiator Instale e ative o pacote iscsi Initiator. # yum -y install iscsi-initiator-utils # service iscsi start # chkconfig iscsi on Verifique os Discos exportados no Storage. # iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l Verifique se o disco foi configurado localmente. # fdisk -l 136 136

iscsi Initiator Particione o novo disco. # fdisk /dev/sdb Digite: n <Enter> Digite: p <Enter> Digite: 1 <Enter> <Enter> <Enter> Digite: w <Enter> Formate, crie um ponto de montagem, e monte a partição deste novo disco. 137

MySQL 138 138

Por que MySQL? 139 139

Evolução MySQL 140 140

Edições - Community 141 141

Edições - Enterprise 142 142

Instalação [root@melquior ~]# yum -y install mysql-server... [root@melquior ~]# rpm -qa grep mysql mysql-server-5.1.73-3.el6_5.x86_64 mysql-libs-5.1.73-3.el6_5.x86_64 mysql-5.1.73-3.el6_5.x86_64 [root@melquior ~]# 143 143

Instalação 144 144

Instalação 145 145

Instalação Instale o MySQL. # yum -y install https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm # yum -y install mysql-server # chkconfig mysqld on # service mysqld start # grep password /var/log/mysqld.log # /usr/bin/mysqladmin -p -u root password 'Nerv2019.' # mysql -u root -pnerv2019. 146 146

Verificação Acesse o MySQL. # mysql -u root -pnerv2019. mysql> exit; Verifique se o MySQL está ativo. # mysqladmin -u root -pnerv2019. status Verifique o Log do MySQL. # tail /var/log/mysqld.log 147 147

Programas Cliente # mysql -u root -pnerv2019. mysql> SHOW STATUS; mysql> EXIT; # mysql -u root -pnerv2019. -e SHOW STATUS # # # # # # mysql -u root -pnerv2019. -e SHOW STATUS > status.txt cat status.txt mysql -t -u root -pnerv2019. -e SHOW STATUS > status.txt cat status.txt mysql -E -u root -pnerv2019. -e SHOW STATUS > status.txt cat status.txt # # # # # echo SHOW STATUS >> script.sql cat script.sql mysql -t -u root -pnerv2019. < script.sql mysql -u root -pnerv2019. < script.sql > status.txt cat status.txt 148 148

Engines MyISAM InnoDB Memory Archive CSV Merge Federated NDB Blackhole Example MariaDB / Aria Percona XtraDB Percona XtraDB Cluster Percona TokuDB mysql> CREATE TABLE teste (coluna1 int) Engine=InnoDB; mysql> CREATE TABLE teste2 (coluna1 int) Engine=MyISAM; 149 149

Processos e Threads Execute um teste de carga no MySQL. # yum -y install mysql-test # mysqlslap --user=root --password=nerv2019. --auto-generate-sql -concurrency=10 --iterations=10 --number-char-cols=10 --number-intcols=5 --engine=innodb Durante a execução do teste, acompanhe no Linux, via top. Durante a execução do teste, acompanhe no MySQL, via mysqladmin. # mysqladmin -u root -pnerv2019. status # mysql -u root -pnerv2019. mysql> SHOW PROCESSLIST; mysql> SHOW FULL PROCESSLIST; http://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html 150 150

Parâmetros de otimização Altere todos os parâmetros abaixo no arquivo de parâmetros, e reinicie o MySQL. # vi /etc/my.cnf... [mysqld] max_connections = 800 thread_cache_size = 100 innodb_buffer_pool_size key_buffer_size = 128M = 512M read_buffer_size = 2M read_rnd_buffer_size = 2M sort_bufer_size = 2M join_bufer_size = 2M 151 151

Parâmetros de recuperação Altere todos os parâmetros abaixo no arquivo de parâmetros, e reinicie o MySQL. tmp_table_size = 8M tmpdir = /tmp/ slow_query_log_file = /var/log/mysql-slow.log long_query_time = 5 innodb_log_file_size = 32M innodb_log_files_in_group = 7 innodb_log_buffer_size = 64M innodb_flush_log_at_trx_comit = 1 Verificar parâmetros: mysql> SHOW VARIABLES LIKE 'read%buffer_size'; 152 152

Bancos de Dados Crie um novo banco de dados. # mysql -u root -pnerv2019. mysql> show databases; mysql> create database nerv; mysql> show databases; mysql> use nerv; mysql> show tables; 153 153

Estruturas físicas # ls -lh /var/lib/mysql/ total 29M -rw-rw----. 1 mysql mysql -rw-rw----. 1 mysql mysql -rw-rw----. 1 mysql mysql drwx--x--x. 2 mysql mysql srwxrwxrwx. 1 mysql mysql drwx------. 2 mysql mysql drwx------. 2 mysql mysql -rw-rw----. 1 mysql mysql -rw-r--r--. 1 root root -rw-r--r--. 1 mysql mysql drwxr-xr-x. 2 mysql mysql 18M 5.0M 5.0M 4.0K 0 4.0K 4.0K 6 112 112 4.0K Jan Jan Jan Jan Jan Jan Jan Jan Jan Jan Jan 24 24 24 24 24 24 24 24 24 24 24 14:45 14:45 14:45 14:43 14:45 15:12 14:43 14:45 14:43 14:43 14:43 ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock nerv performance_schema Proni-PC.localdomain.pid RPM_UPGRADE_HISTORY RPM_UPGRADE_MARKER-LAST test # ls -lh /var/lib/mysql/nerv/ total 4.0K -rw-rw----. 1 mysql mysql 65 Jan 24 15:12 db.opt 154 154

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? 155 155

Transações e Isolamento Execute INSERT de 10 registros em cada uma das tabelas que você criou. Execute um UPDATE em todas os registros da teste. 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. mysql> START TRANSACTION; mysql> UPDATE... O que aconteceu? 156 156

Importação e Exportação Exemplos mysql> SELECT * FROM t1 INTO OUTFILE '/var/lib/mysql-files/t1.txt'; mysql> LOAD DATA INFILE '/var/lib/mysql-files/t1.txt' INTO TABLE t1; Execute este procedimento para as tabelas que você criou. 157 157

Bin Logs Adicione no /etc/my.cnf a linha abaixo, e reinicie o mysql. server-id=1 log-bin=mysql-bin expire_logs_days=7 O que aconteceu no diretório de dados? 158 158

mysqldump Execute um backup via mysqldump. # mysqldump -u root -pnerv2019. nerv > nerv.sql # mysqldump -u root -pnerv2019. --all-databases > nerv01.sql Edite o arquivo gerado. O que ele contém? Como utilizar este backup? Quais suas desvantagens? 159 159

Alta Disponibilidade MySQL Replication 160 160

Alta Disponibilidade DRBD / Pacemaker / Corosync 161

Alta Disponibilidade Windows Server Failover Clustering 162

Alta Disponibilidade MySQL Cluster 163

Alta Disponibilidade MySQL Fabric 164

Oracle 165 165

Versões e Edições Oracle Database Express Edition Oracle Database Personal Edition Oracle Database Standard Edition One (<= 11gR2) Oracle Database Standard Edition (<= 11gR2) Oracle Database Standard Edition 2 Oracle Database Enterprise Edition 166 166

Versões e Edições 167 167

Instalação Oracle 168

Instalação Oracle Com o usuário oracle, acrescenter ao 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/12.2.0.1/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 169 169

Instalação Oracle Com o usuário root, execute os pré-requisitos de instalação. # # # # yum -y install oracle-database-server-12cr2-preinstall mkdir -p /u01/app/oracle/product/12.2.0.1/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01 Com o usuário oracle, descompacte e execute o instalador do Oracle Database Software. $ $ $ $ cd /home/oracle unzip -q linuxx64_12201_database.zip cd database./runinstaller 170

Instalação Oracle 171

Instalação Oracle 172

Instalação Oracle 173

Instalação Oracle 174

Instalação Oracle 175

Instalação Oracle 176

Instalação Oracle 177

Instalação Oracle 178

Instalação Oracle 179

Instalação Oracle # /u01/app/orainventory/orainstroot.sh # /u01/app/oracle/product/12.2.0.1/db_1/root.sh Enter the full pathname of the local bin directory: [/usr/local/bin]: <ENTER>... Do you want to setup Oracle Trace File Analyzer (TFA) now? yes [no] : yes 180...

Instalação Oracle 181

Configuração Listener - netca 182

Configuração Listener 183

Configuração Listener 184

Configuração Listener 185

Configuração Listener 186

Configuração Listener 187

Configuração Listener 188

Configuração Listener 189

Criação do Banco de Dados - dbca 190

Criação do Banco de Dados 191

Criação do Banco de Dados 192

Criação do Banco de Dados 193

Criação do Banco de Dados 194

Criação do Banco de Dados 195

Criação do Banco de Dados 196

Criação do Banco de Dados 197

Criação do Banco de Dados 198

Criação do Banco de Dados 199

Criação do Banco de Dados 200

Criação do Banco de Dados 201

Criação do Banco de Dados 202

Criação do Banco de Dados 203

Criação do Banco de Dados 204

Criação do Banco de Dados 205

Criação do Banco de Dados 206

Criação do Banco de Dados 207

SQL*Plus Verifique o LISTENER. $ lsnrctl status $ lsnrctl stop $ lsnrctl status $ lsnrctl start $ lsnrctl status 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/Nerv2019@ORCL Por que isto funcionou? Como executar logon no computador do vizinho? Crie uma entrada no arquivo tnsnames.ora para executar logon no computador do vizinho. $ vi $ORACLE_HOME/network/admin/tnsnames.ora 208 208

SQL*Plus Verifique o status da instância. SQL> SELECT STATUS FROM V$INSTANCE; SQL> SELECT HOST_NAME FROM V$INSTANCE; SQL> / SQL> LIST Salve o SQL de verificação da instância em um arquivo. SQL> DEFINE _EDITOR=vi SQL> EDIT Execute o arquivo no SQL*Plus. SQL> HOST OU SQL>! SQL> HOST vi verifica_host.sql OU SQL>!vi verifica_host.sql SQL> START verifica_host.sql OU SQL> @verifica_host.sql 209 209

SQL*Plus Execute o SQL abaixo: SQL> SELECT FILE_ID, FILE_NAME FROM DBA_DATA_FILES; Crie o arquivo abaixo, com os seguintes comandos. $ORACLE_HOME/sqlplus/admin/glogin.sql SET LINESIZE 300 SET PAGESIZE 1000 COLUMN FILE_NAME FORMAT A40 SET TIMING ON SET TIME ON SET SQLPROMPT '&_user@&_connect_identifier> ' DEFINE _EDITOR=vi Execute logon no SQL*Plus, e verifique o que mudou. 210 210

Alert Log Verifique o Alert Log. $ tail -f /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log $ tail -f $ORACLE_BASE/diag/rdbms/<BancoEmMinúsculo>/<Instância EmMaiúsculo>/trace/alert_<InstânciaEmMaiúsculo>.log 211 211

Parâmetros de memória Verificando parâmetros: SQL> SHOW PARAMETER SGA Alterando parâmetro dinâmico: SQL> ALTER SYSTEM SET SGA_TARGET=3G; Alterando parâmetro estático: SQL> ALTER SYSTEM SET SGA_MAX_SIZE=5G; SQL> ALTER SYSTEM SET SGA_MAX_SIZE=5G SCOPE=SPFILE; SQL> SHOW PARAMETER SGA 212 212

STARTUP / SHUTDOWN Estados da Instância SHUTDOWN STARTUP MOUNT OPEN Comandos START SQL> STARTUP; SQL> STARTUP NOMOUNT; SQL> ALTER DATABASE MOUNT; SQL> STARTUP MOUNT; SQL> ALTER DATABASE OPEN; SQL> STARTUP RESTRICT; SQL> STARTUP FORCE; Comandos SHUTDOWN SQL> SHUTDOWN NORMAL; SQL> SHUTDOWN TRANSACTIONAL; SQL> SHUTDOWN IMMEDIATE; SQL> SHUTDOWN ABORT; 213 213

Modo ARCHIVELOG Altere o Banco de Dados para o modo NOARCHIVELOG. SQL> SELECT LOG_MODE FROM V$DATABASE; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE NOARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> SELECT LOG_MODE FROM V$DATABASE Altere o Banco de Dados para o modo ARCHIVELOG. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> SELECT LOG_MODE FROM V$DATABASE; 214 214

Estruturas Físicas e Lógicas 215 215

Estruturas lógicas e físicas TABLESPACE SEGMENTS EXTENTS DATA BLOCKS DATAFILE 216 216

Estruturas lógicas e físicas 217 217

Tablespaces e Datafiles Verifique o Espaço Físico. SQL> SELECT TABLESPACE_NAME, FILE_NAME, TO_CHAR(BYTES) FROM DBA_DATA_FILES ORDER BY 1; Verifique o Espaço Lógico. SQL> SELECT TABLESPACE_NAME, TO_CHAR(SUM(BYTES)) FROM DBA_SEGMENTS GROUP BY TABLESPACE_NAME ORDER BY 1; Crie uma TABLESPACE, e verifique novamente os Espaços Físico e Lógico. SQL> CREATE TABLESPACE TESTE DATAFILE '/u01/app/oracle/oradata/orcl/teste01.dbf' SIZE 10M; Crie uma tabela na TABLESPACE, e verifique novamente os Espaços Físico e Lógico. SQL> CREATE TABLE TESTE TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS; O que aconteceu? 218

Tablespaces e Datafiles Aumente o DATAFILE, crie a tabela, insira dados nela, e verifique novamente os Espaços Físico e Lógico. SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/teste01.dbf' RESIZE 100M; SQL> CREATE TABLE TESTE TABLESPACE 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> COMMIT; O que aconteceu? Altere o DATAFILE, crie a tabela, insira mais dados nela, e verifique novamente os Espaços Físico e Lógico. SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/teste01.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; Adicione um DATAFILE, insira mais dados na tabela, e verifique novamente os Espaços Físico e Lógico. SQL> ALTER TABLESPACE TESTE ADD DATAFILE '/u01/app/oracle/oradata/orcl/teste_02.dbf' SIZE 10M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; 219

O que é um schema? A coleção de objetos gerenciados por um usuário é um SCHEMA 220

Usuários e Permissões Como SYSTEM, crie o usuário TESTE. SQL> CREATE USER TESTE IDENTIFIED BY MinhaSenha; Como SYSTEM, altere a senha do usuário TESTE. SQL> ALTER USER TESTE ACCOUNT UNLOCK IDENTIFIED BY Nerv2019; Tente conectar com o usuário TESTE. $ sqlplus TESTE/Nerv2019 O que aconteceu? Como SYSTEM, Conceda o privilégio CREATE SESSION para o usuário TESTE. Em seguida, tente se logar novamente no SQL*Plus com o usuário TESTE. SQL> GRANT CREATE SESSION TO TESTE; Crie uma tabela com o usuário TESTE. SQL> CREATE TABLE TABELA_TESTE (C1 NUMBER); O que aconteceu? Como SYSTEM, conceda o privilégio de sistema RESOURCE para o usuário TESTE. Em seguida, tente criar novamente a tabela com o usuário TESTE. SQL> GRANT RESOURCE TO TESTE; 221

Usuários e Permissões Com o usuário TESTE, insira dados na tabela. SQL> INSERT INTO TABELA_TESTE VALUES (1); O que aconteceu? Como SYSTEM, consulte o usuário criado. SQL> SELECT DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME='TESTE'; Como SYSTEM, altere a TABLESPACE padrão do usuário TESTE. SQL> ALTER USER TESTE DEFAULT TABLESPACE TESTE; SQL> ALTER USER TESTE QUOTA 200M ON TESTE; Como usuário TESTE, mova a Tabela para a TABLESPACE TESTE. SQL> ALTER TABLE TABELA_TESTE MOVE TABLESPACE TESTE; Com o usuário TESTE, insira dados na tabela. SQL> INSERT INTO TABELA_TESTE VALUES (1); Como SYSTEM, consulte os Segmentos do usuário TESTE. SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE, sum(bytes) FROM DBA_SEGMENTS WHERE OWNER ='TESTE' GROUP BY SEGMENT_NAME, SEGMENT_TYPE 222 ORDER BY 3 DESC;

Usuários e Permissões Como SYSTEM, conceda privilégios em uma tabela se outro SCHEMA ao usuário TESTE. SQL> GRANT INSERT, DELETE, UPDATE, SELECT ON SYSTEM.HELP TO TESTE; Como TESTE, consulte a tabela SYSTEM.HELP. SQL> SELECT * FROM SYSTEM.HELP; Como SYSTEM, consulte os privilégios concedidos para o TESTE. SQL> SELECT GRANTEE, OWNER, TABLE_NAME, PRIVILEGE, GRANTOR FROM DBA_TAB_PRIVS WHERE GRANTEE='TESTE' AND OWNER='SYSTEM' AND TABLE_NAME='HELP'; Como SYSTEM, revogue os privilégios concedidos para o usuário TESTE, e verifique. SQL> REVOKE DELETE,INSERT,UPDATE,SELECT ON SYSTEM.HELP FROM TESTE; 223

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? 224 224

exp / imp e expdp / impdp Exemplos exp / imp $ exp '"/ AS SYSDBA"' FULL=Y FILE=/home/oracle/FULL.dmp $ exp '"/ AS SYSDBA"' OWNER=HR FILE=HR.dmp $ imp '"/ AS SYSDBA"' FILE=HR.dmp FROMUSER=HR TOUSER=TESTE expdp / impdp (Data Pump: >= 10g) $ expdp '"/ AS SYSDBA"' FULL=Y DUMPFILE=FULL.dump $ expdp '"/ AS SYSDBA"' SCHEMAS=HR DUMPFILE=HR.dump SQL> GRANT UNLIMITED TABLESPACE TO TESTE; $ impdp '"/ AS SYSDBA"' REMAP_SCHEMA=HR:TESTE DUMPFILE=HR.dump impdp '"/ AS SYSDBA"' TABLES=HR.EMPLOYEES REMAP_TABLE=HR.EMPLOYEES:EMPLOYEES2 DUMPFILE=HR.dump 225 225

Estruturas físicas SQL> SELECT FILE_NAME FROM DBA_DATA_FILES; SQL> SELECT FILE_NAME FROM DBA_TEMP_FILES; SQL> SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = UNDOTBS1 ; SQL> SELECT NAME FROM V$CONTROLFILE; SQL> SELECT MEMBER FROM V$LOGFILE; SQL> SHOW PARAMETER SPFILE; $ rman target / RMAN> LIST ARCHIVELOG ALL; 226 226

Configuração Básica RMAN Execute os comandos abaixo no RMAN. $ rman target / RMAN> SHOW All; RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 7; RMAN> CONFIGURE BACKUP OPTIMIZATION ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET; RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF RELEASE 'DEFAULT'; 227 227

Backup Básico RMAN Execute os comandos abaixo no RMAN. RMAN> BACKUP DATABASE; RMAN> RMAN> RMAN> RMAN> RMAN> LIST ARCHIVELOG ALL; BACKUP ARCHIVELOG ALL; LIST ARCHIVELOG ALL; BACKUP ARCHIVELOG ALL DELETE INPUT; LIST ARCHIVELOG ALL; RMAN> LIST ARCHIVELOG ALL; RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT; RMAN> LIST ARCHIVELOG ALL; 228 228

Alta Disponibilidade Oracle RAC Oracle Data Guard Oracle Golden Gate Oracle Streams 229 229

Perguntas? Ricardo Portilho Proni ricardo@nervinformatica.com.br 230