MySQL para DBAs Oracle



Documentos relacionados
Administração de Usuários e Privilégios no Banco de Dados

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

Gerência de Banco de Dados

Sumário Agradecimentos Sobre.o.autor Prefácio Capítulo.1..Bem-vindo.ao.MySQL... 22

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

Apresentação. Objetivo. Dados Principais. Tecnologia Abordada Administração de Banco de Dados MySQL

MySQL: Controle de Acesso

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

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

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

Introdução ao Sistema. Características

LABORATÓRIO 0 Revisão GNU/Linux

Instalando servidor Apache

1 # yum install -y mysql mysql-devel mysql-server php-mysql. Instalação do openssl (necessário para comunicação web segura) 1 # yum install -y openssl

Administração de Banco de Dados

Administração de Banco de Dados

Prof. Carlos Majer Aplicações Corporativas UNICID

Transações Seguras em Bancos de Dados (MySQL)

Oracle Zero Downtime Migration (com Golden Gate)

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados.

Minicurso3 Introdução ao Banco de Dados MySQL

Criando um site com LAMP e Joomla em 30 minutos

Instalando o MySQL Server 5.0

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

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

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

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

- O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de ferramentas gráficas.

Tutorial Instalação e configuração do Wordpress

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

DBA Júnior. Hugo Torralbo

DBA Júnior Laboratórios Extra

Instalação Apache + MySQL + PHPMyAdmin CentOS

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Banco de Dados SQL (Structured Query Language) Ana Paula Toome Wauke

Guia de procedimentos de backups

Linux. - Comando básicos

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Manual Instalação MySQL/MariaDB em Linux

Telefonia IP MOT. Prática 1

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

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

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

Procedimentos armazenados e triggers o objectivo é implementar estes conceitos na versão 5.0 do MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Instalação e Conguração do Xoops. Rogério Vinhal Nunes 26 de março de 2007

Virtual Hosting com PureFTPd e MySQL

Instalação do Sistema. Treinamento OTRS Help Desk

Introdução à linguagem SQL

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Instalação e Configuração

Marcos Alexandruk Marcos Alexandruk

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos:

SQL E MYSQL - COMANDOS BÁSICOS

Treinamento PostgreSQL - Aula 03

SECRETARIA DA JUSTIÇA E DEFESA DA CIDADANIA FUNDAÇÃO DE PROTEÇÃO E DEFESA DO CONSUMIDOR - PROCON/SP MANUAL DE INSTALAÇÃO DO SISTEMA

EXERCÍCIOS PRÁTICOS. Banco de Dados

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Guia de instalação para ambiente de Desenvolvimento LINUX

PROCEDIMENTO OBRIGATÓRIO ANTES DO INICIO DOS CICLOS DA PRODUÇÃO PARARELA

<div align=center> <h2>gerência de serviços:</h2> <table border="3" cellspacing="0" cellpadding="3" bordercolor="#0e750c" bgcolor="#d5ffd4">

Servidor Apache - Instalação

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

MySQL BANCO DE DADOS PARA ORGANIZAR E INTERPRETAR

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

Bases de Dados. Lab 1: Introdução ao ambiente


Manual de Instalação e Configuração do SQL Express

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon

Linguagem SQL (Parte I)

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma

Linguagem de Consulta Estruturada SQL- DML

INICIAL. Guia de Criação da Base Produção Paralela IMPORTANTE: MESMO QUE SEJAM EXECUTADOS

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Banco de Dados. Conversão para o Banco de Dados SisMoura

trigger insert, delete, update

Marcando os pontos. O ExtSQL fornece estatísticas de uso detalhadas dos sistemas de banco de dados MySQL e PostgreSQL.

Manual de Instalação do TOMCAT JOSSO

Material de Banco de Dados

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

Documentação Symom. Agente de Monitoração na Plataforma Windows

DBA Júnior. Hugo Torralbo

História. Introdução ao MySQL

Instalação do Pentaho BI Server no Ubuntu Server ou Superior com OpenJDK

vtiger CRM Configuração Banco de Dados UTF-8 (Para MySQL)

Instalação do OpenERP Localização Brasileira no CentOS 6.4

Compartilhando arquivos com o samba

SQL Introdução ao Oracle

Instalando e Configurando o Oracle XE

Instalação do PHP no Linux

Banco de Dados. Maurício Edgar Stivanello

A criação de utilizadores no MySQL pode passar pela utilização de dois comandos: - Create user; - Grant;

INSTALANDO E CONFIGURANDO O MY SQL

Transcrição:

MySQL para DBAs Oracle 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/. 1

Por que MySQL? 2 2

Evolução MySQL Fonte: Apresentação Novidades do Universo MySQL, do GUOB Tech Day 2014 3 3

Evolução MySQL Fonte: Apresentação Novidades do Universo MySQL, do GUOB Tech Day 2014 4 4

Evolução MySQL Fonte: Apresentação Novidades do Universo MySQL, do GUOB Tech Day 2014 5 5

Edições 6 6

Edições 7 7

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

Instalação 9 9

Instalação 10 10

Lab 1: Instalação Instale o MySQL. # yum -y install wget # wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm # rpm -ivh mysql-community-release-el6-5.noarch.rpm # yum -y install mysql-server # chkconfig mysqld on # ls -lh /var/lib/mysql # service mysqld start # ls -lh /var/lib/mysql # /usr/bin/mysqladmin -u root password 'Nerv2015' Acesse o MySQL, e verifique a versão instalada. # mysql -u root -pnerv2015 mysql> exit; Verifique o Log do MySQL. # cat /var/log/mysqld.log Verifique o arquivo de parâmetros do MySQL. # cat /etc/my.cnf 11 11

Lab 2: Programas Cliente # mysql -u root -pnerv2015 mysql> SHOW STATUS; mysql> EXIT; # mysql -u root -pnerv2015 -e SHOW STATUS # mysql -u root -pnerv2015 -e SHOW STATUS > status.txt # cat status.txt # echo SHOW STATUS >> script.sql # cat script.sql # mysql -u root -pnerv2015 < script.sql # rm -f status.txt # mysql -u root -pnerv2015 < script.sql > status.txt # cat status.txt # mysqladmin # mysqladmin -u root -pnerv2015 status 12 12

Instância x Banco de Dados 13 13

Engines MyISAM InnoDB Memory CSV Archive Blackhole Merge Federated Example 14 14

Lab 3: Processos e Threads Execute um teste de carga no MySQL. # yum -y install mysql-test # mysqlslap --user=root --password=nerv2015 --auto-generate-sql --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 -pnerv2015 status 15 15

Lab 4.1: Parâmetros de otimização Altere todos os parâmetros abaixo no arquivo de parâmetros, e reinicie o MySQL. max_connections = 800 table_open_cache = 100 thread_cache_size = 16 innodb_buffer_pool_size = 128M innodb_thread_concurrency = 32 key_buffer = 128M read_buffer_size = 2M read_rnd_buffer_size = 2M sort_buffer = 2M join_buffer_size = 2M query_cache_type = 1 query_cache_size = 16M query_cache_limit = 2M query_cache_min_res_unit = 4096 16 16

Lab 4.2: 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_commit = 1 mysql> show variables like '%slow%'; mysql> show variables; set = ALTER SESSION set global = ALTER SYSTEM 17 17

Lab 5: Bancos de Dados Crie um novo banco de dados. # mysql -u root -pnerv2015 mysql> show databases; mysql> create database nerv; mysql> show databases; mysql> use nerv; mysql> show tables; Banco mysql = Schema SYSTEM 18 18

Usuários e Permissões mysql> CREATE USER 'portilho'@'localhost' IDENTIFIED BY 'Nerv2015'; mysql> CREATE USER 'portilho'@'192.168.0.5' IDENTIFIED BY 'Nerv2015'; mysql> CREATE USER 'portilho'@'*' IDENTIFIED BY 'Nerv2015'; mysql> GRANT SELECT ON nerv.teste TO 'portilho'@'localhost'; mysql> GRANT SELECT ON nerv.* TO 'portilho'@'localhost'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'portilho'@'localhost'; Conexão remota $ mysql -u root -pnerv2015 -h 192.168.0.2 Tabela mysql.user = Tabela DBA_USERS 19 19

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

Lab 6: 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? mysql> use mysql; mysql> desc user; mysql> desc nerv.teste; innodb_file_per_table 21 21

Lab 7: INSERT, UPDATE, DELETE, SELECT Execute INSERT de 10 registros diferentes nas tabelas que você criou. 22 22

Lab 8: Transações e Isolamento 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? Execute INSERT,UPDATE, DELETE e SELECT nas tabelas que você criou. 23 23

Lab 9: System States Execute novamente o teste de carga, e acompamnhe pelos comandos abaixo. mysql> SHOW PROCESSLIST; mysql> SHOW FULL PROCESSLIST; http://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html 24 24

Lab 10: Importação e Exportação Exemplos SELECT * FROM Cars INTO OUTFILE '/tmp/cars.txt'; LOAD DATA INFILE '/tmp/cars.txt' 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. 25 25

Lab 11: 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? expire_logs_days 26 26

Lab 12: Backup MyISAM Coloque uma tabela MyISAM em LOCK, e a copie para outro diretório. LOCK TABLE teste2 WRITE; FLUSH TABLE teste2; Execute a cópia pelo sistema operacional. # cp -rf /var/lib/mysql/nerv /root UNLOCK TABLEs; 27 27

Lab 13: mysqldump Execute um backup via mysqldump. $ mysqldump -u root -pnerv2015 nerv > nerv.sql $ mysqldump -u root -pnerv2015 --all_databases > nerv01.sql Edite o arquivo gerado. O que ele contém? Como utilizar este backup? Quais suas desvantagens? 28 28

Lab 14: 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? 29 29

Lab 15: System Status Execute no MySQL o comando abaixo. mysql> SHOW STATUS; Que informações que este comando gera são úteis? 30 30

Alta Disponibilidade MySQL Replication 31 31

MySQL Replication Master mysql> CREATE USER 'replicator'@'192.168.0.2' IDENTIFIED BY 'Nerv2015'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'192.168.0.3'; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; Backup no Master / Restore no Slave mysql> UNLOCK TABLES; Slave mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.4', MASTER_USER='replicator', MASTER_PASSWORD='Nerv2015', MASTER_LOG_FILE='mysql-bin.000087', MASTER_LOG_POS=197872700; mysql> START SLAVE; mysql> SHOW SLAVE STATUS; 32 32

Alta Disponibilidade MySQL Proxy 33 33

Alta Disponibilidade MySQL Cluster 34 34

Alta Disponibilidade MySQL Fabric 35 35

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 http://dev.mysql.com/doc/refman/5.7/en/index.html Livros MySQL 5.0 Certification Study Guide High Performance MySQL (O'Reilly) 36 36

Certificações Oracle Certified Professional, MySQL 5.6 Database Administrator Oracle Certified Professional, MySQL 5.6 Developer 37 37