DBA Júnior. Ricardo Portlho Proni

Documentos relacionados
DBA Júnior. Ricardo Portilho 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:

INSTALAÇÃO DO LOGIX COM BANCO ORACLE

Como criar um banco de dados usando o mysql

DBA Júnior. Hugo Torralbo

Administração de Banco de Dados

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

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

Manual de instalação do SQL 2012

Oracle 12c: Multitenant Architecture

LABORATÓRIO 0 Revisão GNU/Linux

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

Criando um servidor de log

MÓDULO 01 INTRODUÇÃO AO LINUX

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

MANUAL DE INSTALAÇÃO SAMI HOTELEIRO. REV B

Introdução ao Sistema. Características

Instalação do KenCast Fazzt no CentOS.

Instalacao do Zabbix 2.x em Ambiente CentOS

Linux - comando essenciais

DBA Júnior. Hugo Torralbo

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

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

Configuração do Servidor Gateway Firewall e DHCP

ORACLE ARQUITETURA FÍSICA

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)

Minicurso Básico de Linux

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

Administração de Banco de Dados

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

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

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

Hotspot com Ubuntu Server Bits

Marcos Alexandruk Marcos Alexandruk

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

Instalando e Configurando o Oracle XE

ORACLE HETEROGENEUS SERVICES: CRIANDO UM DATABASE LINK COM MYSQL

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

Gerência de Banco de Dados

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

Linux Network Servers

Curso de Programação MINISTRADO POR LUCAS CATON. Comandos para o Terminal

SQL E MYSQL - COMANDOS BÁSICOS

Comandos Básicos Sistema Operacional GNU Linux

Instalando servidor Apache

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

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

Programação Shell Script: como dominar seu terminal

Tutorial de confguração de um cartão micro SD como área de swap e armazenamento para a DragonBoard 410c (DB410C)

Zabbix: Instalando o servidor

Comandos de Verificação. Alberto Felipe Friderichs Barros

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Linux. - Comando básicos

Instalando o MySQL Server 5.0

MySQL. Prof. César Melo. com a ajuda de vários

Comandos.::. Aplicativos > Sistema > Acessar Console

Instalando o SQL 2016 Express

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

Manual de Instalação do Servidor Orion Phoenix Versão Novembro/2010

MySql. Introdução a MySQL. Andréa Garcia Trindade

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:

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

Universidade Estadual de Feira de Santana

Linux Para Servidores Plano de Aula - 32 Aulas (Aulas de 1 hora).

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

Comandos de arquivos

Administração de Redes Linux

Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

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

TUTORIAL PARA INSTALAÇÃO DO MYSQL SERVER

Instalacao do Zabbix em Ambiente CentOS

O essencial do comando mysqladmin, através de 18 exemplos

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

Administração de Redes I Linux Prof: Frederico Madeira Lista de Exercícios 2

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

Simulado LPI Qual o comando que exibe a última vez em que o sistema de arquivos foi verificado. dumpe2fs

Guia de procedimentos de backups

Aula 14. Network File System. Prof. Roitier Campos

MSN-Proxy v0.7 no Debian 5 (Atualizado)

10. mkdir [pasta1] [pasta2] (cria pasta1 e pasta dois ao mesmo tempo) Exemplo: $ mkdir teste1 teste2

Oracle: Licenciamento

Análise de transcriptoma usando a base de dados Kegg Orthology

Transcrição:

DBA Júnior Ricardo Portlho Proni ricardo@nervinformatca.com.br Esta obra está licenciada sob a licença Creatve Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença, visite htp://creatvecommons.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 Linux (Sistema Operacional, Virtualização, Redes, Storage) MySQL Oracle 3 3

Produtos utlizados no Treinamento Oracle Enterprise Linux x64 6 Oracle VirtualBox x64 5.1 Windows Server 2008 x32 MySQL Community Server x64 5.6 Oracle Database Enterprise Editon x64 12cR2 4

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

Alta x Baixa plataforma 6 6

Plataformas e Arquiteturas Alpha (64 bits) ARM 32 (32 bits) ARM 64 (64 bits) AVR32 (32 bits) Blackfn (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) 7 7

História do Unix 8 8

Distribuições, Edições, Versões htps://upload.wikimedia.org/wikipedia/commons/1/1b/linux_ddistributon_dtiimeline.svg htp://upload.wikimedia.org/wikipedia/commons/e/ed/linuxdistrotiimeline.png 9 9

Distribuições, Edições, Versões 10 10

Linux Homologados para Oracle Database 12cR2 11 11

Download OEL 6 12 12

Download OEL 6 13 13

Download OEL 6 14 14

Download OEL 6 15 15

Instalação OEL 6 16 16

Instalação OEL 6 17 17

Instalação OEL 6 18 18

Instalação OEL 6 19 19

Instalação OEL 6 20 20

Instalação OEL 6 21 21

Instalação OEL 6 22 22

Instalação OEL 6 23 23

Instalação OEL 6 24 24

Instalação OEL 6 25 25

Instalação OEL 6 26 26

Instalação OEL 6 27 27

Instalação OEL 6 28 28

Instalação OEL 6 29 29

Instalação OEL 6 30 30

Instalação OEL 6 31 31

Instalação 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

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

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 fzeram? 52 52

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

Gerenciamento de Pacotes Coloque o DVD. Verifque 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++ 54 54

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

Partcionamento e Sistema de Arquivos Crie um diretório, e monte o dispositvo nele. # mkdir /u01 # mount /dev/sda8 /u01 Faça este sistema de arquivos ser montado automatcamente. # vi /etc/fstab... /dev/sda8 /u01 ext4 defaults 1 2... Teste se o arquivo /etc/fstab está correto. # umount /u01 # mount /u01 56 56

Services Verifque se o Apache está confgurado para iniciar automatcamente. # 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 57 57

Usuários, Grupos, Permissões Verifque 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 58 58

Usuários, Grupos, Permissões Torne-se o usuário oracle, e verifque 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? 59 59

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

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

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

Processos Verifque 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? 63 63

Desempenho 64 64

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

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

Virtualização Hard x Sof 67 67

Produtos de Virtualização Oracle 68 68

Produtos de Virtualização Oracle 69 69

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

Criação VMs 71 71

Criação VMs 72 72

Criação VMs 73 73

Criação VMs 74 74

Criação VMs 75 75

Criação VMs 76 76

Criação VMs 77 77

Confguração VMs 78 78

Confguração VMs 79 79

Confguração VMs 80 80

Confguração VMs 81 81

Confguração VMs 82 82

Confguração VMs 83 83

Confguração VMs 84 84

Confguração VMs 85 85

Confguração VMs 86 86

Confguração VMs 87 87

Confguração VMs 88 88

Confguração VMs 89 89

Confguração VMs 90 90

Confguração VMs 91 91

Confguração VMs 92 92

Confguração VMs 93 93

Confguração VMs 94 94

Clone VMs 95 95

Clone VMs 96 96

Clone VMs 97 97

Clone VMs 98 98

Snapshot VMs 99 99

Snapshot VMs 100 100

Snapshot VMs 101 101

Export / Import Appliance 102 102

Export / Import Appliance 103 103

Export / Import Appliance 104 104

Export / Import Appliance 105 105

Export / Import Appliance 106 106

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

Confguração de Rede Confgure as placas de rede. 108 108

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

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

VNC / Xserver Execute logon remoto gráfco no computador do seu vizinho. # vncviewer 192.168.0.102 Por que não funciona? Execute logon remoto no computador do seu vizinho. # ssh -CX root@192.168.0.102 # firefox 111 111

Windows Share Crie um compartlhamento 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 compatbilidade com Samba em seu computador. # yum -y install samba-client samba-common cifs-utils Monte este compartlhamento em seu computador. # mkdir /mnt/windows # mount -t cifs //192.168.0.40/temp -o username=administrator,password=nerv2017 /mnt/windows 112 112

Tecnologias Storage - IDE, ATiA, SATiA, SCSI - SSD, Cache - RAID (próxima página) - SAN (Storage Area Network), NAS (Network Atached Storage) - Cluster Filesystems Protocolos - iscsi - Fiber Channel (FC) - ATiA-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) - Tihe SCSTi Linux SCSI target sofware stack - Linux LIO Unifed Tiarget sofware stack - Service Locaton Protocol 113 113

RAID 114 114

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 chkconfig rpc on service nfs start service rpc start 115 115

NFS Client Adicionar no arquivo /etc/fstab a linha abaixo. nerv09:/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? 116 116

iscsi Initator Instale e atve o pacote iscsi Initator nos dois Nodes. # yum -y install iscsi-initiator-utils # service iscsid start # chkconfig iscsid on Verifque os Discos exportados no Storage, nos dois Nodes. # iscsiadm -m discovery -t sendtargets -p 192.168.0.201 -l Verifque se o disco foi confgurado localmente. # fdisk -l 117 117

iscsi Initator Partcione 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 partção deste novo disco. 118

MySQL 119 119

Por que MySQL? 120 120

Evolução MySQL 121 121

Edições - Community 122 122

Edições - Enterprise 123 123

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 ~]# 124 124

Instalação 125 125

Instalação 126 126

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 O que aconteceu? # vi /etc/yum.repos.d/mysql-community.repo... name=mysql 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/ enabled=1... name=mysql 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=0 gpgcheck=1... # # # # yum -y install mysql-server chkconfig mysqld on service mysqld start /usr/bin/mysqladmin -u root password 'Nerv2017' 127 127

Verifcação Acesse o MySQL. # mysql -u root -pnerv2017 mysql> exit; Verifque se o MySQL está atvo. # mysqladmin -u root -pnerv2017 status Verifque o Log do MySQL. # tail /var/log/mysqld.log 128 128

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

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

Processos e Threads Execute um teste de carga no MySQL. # yum -y install mysql-test # mysqlslap --user=root --password=nerv2017 --auto-generatesql --concurrency=10 --iterations=10 --number-char-cols=10 --number-int-cols=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 -pnerv2017 status # mysql -u root -pnerv2017 mysql> SHOW PROCESSLIST; mysql> SHOW FULL PROCESSLIST; htp://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html 131 131

Parâmetros de otmizaçã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 Verifque o perfl de conexões no MySQL. mysql> SHOW STATUS LIKE 'Threads%'; 132 132

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 Verifque o perfl de tabelas temporárias no MySQL. mysql> SHOW STATUS LIKE 'Created_tmp%'; 133 133

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

Estruturas fsicas # 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 135 135

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 fsicas? 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 fsicas? 136 136

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

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

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

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

INFORMATION_SCHEMA Verifque as tabelas do banco de dados INFORMATION_SCHEMA. Quantas tabelas você possui em todo o MySQL? E em seu banco de dados? 141 141

Alta Disponibilidade MySQL Replicaton 142 142

Alta Disponibilidade DRBD / Pacemaker / Corosync 143

Alta Disponibilidade Windows Server Failover Clustering 144

Alta Disponibilidade MySQL Cluster 145

Alta Disponibilidade MySQL Fabric 146

Oracle 147 147

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

Versões e Edições 149 149

Instalação Oracle 150

Instalação Oracle Com o usuário oracle, ACRESCENTAR NO FINAL do arquivo /home/oracle/.bash_profle 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 151 151

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 Sofware. $ $ $ $ cd /home/oracle unzip -q linuxx64_12201_database.zip cd database./runinstaller 152

Instalação Oracle 153

Instalação Oracle 154

Instalação Oracle 155

Instalação Oracle 156

Instalação Oracle 157

Instalação Oracle 158

Instalação Oracle 159

Instalação Oracle 160

Instalação Oracle 161

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

Instalação Oracle 163

Confguração Listener - netca 164

Confguração Listener 165

Confguração Listener 166

Confguração Listener 167

Confguração Listener 168

Confguração Listener 169

Confguração Listener 170

Confguração Listener 171

Criação do Banco de Dados - dbca 172

Criação do Banco de Dados 173

Criação do Banco de Dados 174

Criação do Banco de Dados 175

Criação do Banco de Dados 176

Criação do Banco de Dados 177

Criação do Banco de Dados 178

Criação do Banco de Dados 179

Criação do Banco de Dados 180

Criação do Banco de Dados 181

Criação do Banco de Dados 182

Criação do Banco de Dados 183

Criação do Banco de Dados 184

Criação do Banco de Dados 185

Criação do Banco de Dados 186

Criação do Banco de Dados 187

Criação do Banco de Dados 188

Criação do Banco de Dados 189

Arquitetura Oracle 190 190

Enterprise Manager 191 191

Enterprise Manager 192 192

Enterprise Manager Express Execute logon no Enterprise Manager Express como SYSTEM. 193 193

Enterprise Manager Express Execute logon no Enterprise Manager Express como SYSTEM. 194 194

SQL Developer Execute o SQL Developer, e crie uma conexão ao seu banco de dados. $ $ORACLE_HOME/sqldeveloper/sqldeveloper.sh 195 195

SQL Developer 196 196

SQL*Plus Verifque 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/Nerv2017@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 197 197

SQL*Plus Verifque 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 verifcação da instância em um arquivo. SQL> DEFINE _EDITOR=vi SQL> EDIT Execute o arquivo no SQL*Plus. SQL>!vi verifica_host.sql SQL> @verifica_host.sql SQL> START verifica_host.sql 198 198

SQL*Plus 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 verifque o que mudou. 199 199

Alert Log Verifque o Alert Log. $ vi /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log $ tail -f /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log 200 200

Confguração de Memória SGA Manual e PGA Manual (< 9i) db_dcache_dsize = 10G shared_dpool_dsize = 2G large_dpool_dsize = 128M java_dpool_dsize = 128M streams_dpool_dsize = 128M sort_darea_dsize = 1M / sort_darea_dretained_dsize = 1M / hash_darea_dsize = 1M / bitmap_dmerge_darea_dsize = 1M / create_dbitmap_darea_dsize = 1M SGA Manual e PGA Automátca (>= 9i) sga_dmax_dsize = 15G db_dcache_dsize = 10G shared_dpool_dsize = 2G large_dpool_dsize = 128M java_dpool_dsize = 128M streams_dpool_dsize = 128M pga_daggregate_dtarget = 1G 201

Confguração de Memória Semi-automátco ASMM (Automatc Segment Memory Management) (>= 10g) sga_dmax_dsize = 15G sga_dtarget = 15G pga_daggregate_dtarget = 1G pga_daggregate_dlimit = 2G (>= 12c) db_dcache_dsize = 10G Automátco ASMM (Automatc Segment Memory Management) (>= 11g) memory_dmax_dtarget = 0 memory_dtarget = 0 sga_dmax_dsize = 15G sga_dtarget = 15G pga_daggregate_dtarget = 1G pga_daggregate_dlimit = 2G (>= 12c) Automátco AMM (Automatc Memory Management) (>= 11g) memory_dmax_dtarget = 16G memory_dtarget = 16G sga_dtarget = 0 pga_daggregate_dtarget = 0 pga_daggregate_dlimit = 2G (>= 12c) 202 202

Parâmetros de memória Verifcando parâmetros: SQL> SHOW PARAMETER SGA Alterando parâmetro dinâmico: SQL> ALTER SYSTEM SET SGA_TARGET=512M; Alterando parâmetro estátco: SQL> ALTER SYSTEM SET SGA_MAX_SIZE=1G SCOPE=SPFILE; 203 203

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> SQL> SQL> SQL> SHUTDOWN SHUTDOWN SHUTDOWN SHUTDOWN NORMAL; IMMEDIATE; TRANSACTIONAL; ABORT; 204 204

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

Estruturas Físicas e Lógicas 206 206

Estruturas lógicas e fsicas TiABLESPACE SEGMENTiS EXTiENTiS DATiA BLOCKS DATiAFILE 207 207

Tablespaces e Datafles Verifque o Espaço Físico. SQL> SELECT TABLESPACE_NAME, FILE_NAME, TO_CHAR(BYTES) FROM DBA_DATA_FILES ORDER BY 1; Verifque 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 verifque novamente os Espaços Físico e Lógico. SQL> CREATE TABLESPACE TESTE DATAFILE '/u01/app/oracle/oradata/orcl/teste01.dbf' SIZE 10M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; Adicione um DATAFILE, e verifque 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; 208

Tablespaces e Datafles Reajuste o tamanho de um DATAFILE, e verifque novamente os Espaços Físico e Lógico. SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/orcl/teste_02.dbf' RESIZE 20M; Exclua a TABLESPACE. SQL> DROP TABLESPACE TESTE INCLUDING CONTENTS AND DATAFILES; Crie novamente a TABLESPACE. 209

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

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 Nerv2017; Tente conectar com o usuário TESTE. $ sqlplus TESTE/Nerv2017 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; 211

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 212 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 verifque. SQL> REVOKE DELETE,INSERT,UPDATE,SELECT ON SYSTEM.HELP FROM TESTE; 213

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

exp / imp e expdp / impdp Exemplos exp / imp $ exp FULL=Y $ exp SYSTEM/Nerv2017 OWNER=HR $ imp FILE=expdat.dmp FROMUSER=HR TOUSER=TESTE expdp / impdp (Data Pump: >= 10g) $ expdp FULL=Y DUMPFILE=FULL.dump $ expdp SYSTEM/Nerv2017 SCHEMAS=HR $ impdp SYSTEM/Nerv2017 REMAP_SCHEMA=HR:TESTE 215 215

Estruturas fsicas SQL> SELECTi FILE_DNAME FROM DBA_DDATiA_DFILES; SQL> SELECTi FILE_DNAME FROM DBA_DTiEMP_DFILES; SQL> SELECTi FILE_DNAME FROM DBA_DDATiA_DFILES WHERE TiABLESPACE_DNAME = UNDOTiBS1 ; SQL> SELECTi NAME FROM V$CONTiROLFILE; SQL> SELECTi MEMBER FROM V$LOGFILE; RMAN> LISTi ARCHIVELOG ALL; SQL> SHOW PARAMETiER SPFILE; 216 216

Confguraçã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'; 217 217

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

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

Perguntas? Ricardo Portlho Proni ricardo@nervinformatca.com.br 220