Upload
demonlichman
View
221
Download
0
Embed Size (px)
Citation preview
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
1/245
Ps Graduao em Banco de Dados e
Businness Inteligence com nfase emSoftware Livre
Arquitetura e Administrao de Bancode Dados
Prof Msc. Roberto Schaefer
Professor Mst. Roberto Schaefer 1
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
2/245
SGBD Sistema ou SoftwareGerenciador de Banco de Dados
Conjunto de aplicativos com objetivo de permitir acriao, manipulao e gerenciamento de bancosde dados.
Controla os objetos dos bancos de dados
Professor Mst. Roberto Schaefer 2
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
3/245
SGBD Sistema Gerenciador de Banco de Dados
SGBD Proprietrio Oracle
SQL Server DB2
SGBD Livre (Free) MySQL Postgre
Professor Mst. Roberto Schaefer 3
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
4/245
Objetos dos Bancos de Dados
TabelasndicesViewsProceduresFunctionsTriggers
Professor Mst. Roberto Schaefer 4
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
5/245
Professor Mst. Roberto Schaefer 5
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
6/245
Evoluo das ArquiteturasEvoluo dos SGBD
Perodo Fato Marcante Exemplo de Recurso
At 1960 Sistema de ArquivoArquivos IndexadosArquivos Integrados
ISAMVSAM
Anos 60 Modelo HierrquicoModelo de Rede
IMS (IBM)DMS (UNISYS)
IDMS (CA)Dcadade 70
Modelo Relacional (Codd) DB2 (IBM)
Dcadade 80
Modelo Relacional Estendido(Objeto-Relacional)
INFORMIXORACLE
Dcadade 90 athoje
Modelo Orientado ObjetoBD Inteligente
JASMINECACHKRISISOBJECTSTORE
Professor Mst. Roberto Schaefer 6
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
7/245
Arquitetura de um SGBD
Dados eMetadados
Gerente
Memria
Avaliador deConsulta
Gerente detransao
Alterao
esquema
Consultas Alteraes
Professor Mst. Roberto Schaefer 7
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
8/245
Estrutura de armazenamento de Dados
O SGBD recupera os dados em estruturas que chamamos de Pginas,que so listas sequenciais.
As pginas de dados so blocos de informaes com o tamanho quevaria conforme o SGBD. Elas so utilizados para leitura e gravao dosdados.Os dados so armazenados em 2 arquivos distintos, o de DATA e o deLOG (Transactions Log). Esses arquivos gravam seus dados em formade lista sequencial duplamente encadeada.Seus ndices so armazenados em um 3 arquivo e so lidos emforma de rvore binria ou em sequncia.
Professor Mst. Roberto Schaefer 8
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
9/245
l Os SGBDs armazenam
seu dados em 2 reasdistintas:l rea de Dadosl rea dos
Transactions Log
ou, simplesmente,rea de Log ou T-Log
l Toda transao com osdados feita na rea
de LOG
Dados eMetadados
GerenteMemria
Avaliador deConsulta
Gerente detransao
Alteraoesquema
Consultas Alteraes
ndice
T-LogDados
Professor Mst. Roberto Schaefer 9
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
10/245
l Os dados passam em definitivo para a rea de
DADOS somente aps sua confirmaol Os dados ficam armazenados na rea de LOG
sempre que for feita uma transao de Insert ouDelete ou Update
l Na aplicao deve ser aberta uma transao paraque isso ocorra de forma correta
l Aps a transao, se tudo tiver ocorrido de formacorreta, deve-se fazer uso do comando COMMIT
caso contrrio devemos voltar a transao ao seuestado anterior atravs do comando ROLLBACK
Professor Mst. Roberto Schaefer 10
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
11/245
l O Commit funciona da seguinte forma:l Os dados considerados corretos so transferidos da
rea de Log para a rea de Dados e apagados darea de Log
l Se no for aberta uma transao na aplicao o
Commit automtico, impossibilitando ocancelamento da transao com o Rollback
l Se no for feito o Commit a rea de Log cresceindiscriminadamente
Professor Mst. Roberto Schaefer 11
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
12/245
ndicesl
Os ndices so tabelas comdeterminados dadosordenados
l Os ndices so utilizados parafacilitar o acesso aos dados
l Os ndices so criados portabela
l Cada tabela pode ter Nndices
l Toda chave primria (PK) indexada de forma automticapelo SGBDlO MySQL cria o ndicePRIMARY
Dados eMetadados
GerenteMemria
Avaliador deConsulta
Gerente detransao
Alteraoesquema
Consultas Alteraes
ndice
T-LogDados
Professor Mst. Roberto Schaefer 12
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
13/245
Professor Mst. Roberto Schaefer 13
Dados
Log
Indice
rvore Binria
PK
FK
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
14/245
ndices
De um ponto de vista conceitual os ndices socompostos por uma chave de ndice e de umconjunto de ponteiros
Uma chave de ndice o ponto de referncia dondice
Os ponteiros apontam para a localizao dos dadosidentificados pela chave de ndice
Professor Mst. Roberto Schaefer 14
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
15/245
ndices Unique
Refere-se a um ndice, onde todas as linhas do ndicedeve ser exclusiva Ou seja, a mesma linha no pode ter valores no-NULL
idnticos para todas as colunas neste ndice como outra linha.
Para alm de ser usado para acelerar as consultas, osndices exclusivos podem ser usados para imporrestries sobre os dados, porque o sistema de bancode dados no permite essa regra valores distintos para
ser quebrado quando inserir ou atualizar dados.
Professor Mst. Roberto Schaefer 15
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
16/245
ndices FULLTEXT no MySQL
O MySQL, a partir da verso 3.25.25, prov omecanismo de ndicesfulltext, efetuando buscastextuais com maior preciso.
Este recurso mais poderoso que o uso de like,pois, alm de ordenar o resultado pelasimilaridade semntica, oferece mais opespara filtragem na consulta.
Professor Mst. Roberto Schaefer 16
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
17/245
Aplicaes com grande massa de texto que
precisam efetuar pesquisas baseadas narelevncia so candidatas ao uso de ndices
fulltext.
O exemplo mais comum so pginas de busca,
que retornam os resultados mais relevantes nafrente.
Podemos destacar tambm bibliotecas virtuais,pesquisas em arquivos de registro ou pesquisas em
documentos que esto armazenados no banco dedados.
Professor Mst. Roberto Schaefer 17
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
18/245
ndice B-Tree
So rvores de pesquisa balanceadasdesenvolvidas para trabalharem em discosmagnticos ou qualquer outro dispositivo de
armazenamento de acesso direto em memriasecundria
O ndice B-tree uma implementaodas rvores B de alta concorrncia propostas por
Lehman e Yao.
Professor Mst. Roberto Schaefer 18
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
19/245
ndice R-Tree
Tambm conhecido como rvores R Utiliza o algoritmo de partio quadrtica de
Guttman, sendo utilizada para indexar estrutura de
dados multidimensionais, cuja implementao estlimitada a dados com at 8Kbytes, sendo bastantelimitada para dados geogrficos reais
Utilizado normalmente com dados do tipo box, circle,point e outros
Professor Mst. Roberto Schaefer 19
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
20/245
ndice Hash
O ndice hash uma implementao dasdisperses lineares de Litwin
Na documentao do PostgreSQL est presente a seguintenota: "Os testes mostram que os ndiceshashdoPostgreSQL tm desempenho semelhante ou mais lentoque os ndices B-tree, e que o tamanho e o tempo deconstruo dos ndices hashso muito piores. Os ndiceshashtambm possuem um fraco desempenho sob altaconcorrncia. Por estas razes, a utilizao dos ndicesclass=LITERAL>hash desestimulada"
Professor Mst. Roberto Schaefer 20
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
21/245
ndices: Recomenda-se criar ndices para a(s)
coluna(s) envolvida(s) no comando SELECTatravs das clausulas:WHERE, ORDER BY, GROUP BY e HAVING
Para tirar vantagem dos ndices, deve-seescrever o comando de maneira que ele faauso dele
Deve-se tomar cuidado com o excesso de
ndices, pois eles podem degradar aperformance de acesso a tabela
Professor Mst. Roberto Schaefer 21
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
22/245
Deve-se utilizar ndices apenas em
colunas que possuem uma baixaporcentagem de linhas com valoresiguais
No deve-se utilizar ndices em colunasque so usadas apenas como funes eoperadores na clausula WHERE
Professor Mst. Roberto Schaefer 22
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
23/245
No indexe colunas que sofrequentemente modificadas ou quando
a eficincia ganha atravs da criao deum ndice no valha a pena devido perda de performance em operaes de
INSERT, UPDATE e DELETE.Com a criao do ndice, estas
operaes perdero em performancedevido necessidade de manter o
ndice correto.
Professor Mst. Roberto Schaefer 23
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
24/245
Desempenho em Acessos a Disco
Sem o uso do ndice: busca binria no arquivo de dados
[log23000] = 12
Com o uso do ndice: busca binria no arquivo de ndice
+
leitura do registro no arquivo dedados
[log245] + 1 = 6 + 1 = 7
Professor Mst. Roberto Schaefer 24
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
25/245
Banco de Dados Relacionais:
l So constitudos de tabelas e cada tabela constitudade tuplas e cada tupla constituda de dadosrelacionados entre si
l Tem como base o Teorema Booleano AlgebraRelacional
l Garante a integridade dos dados- Relacionamentos com restries (constraints)
- Chaves Primrias
- Chaves Estrangeiras
- ndices
Professor Mst. Roberto Schaefer 25
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
26/245
l Linguagem padronizada pelo ANSI
American National Standards Institutel Linguagem SQL Structured Query
Language, ou Linguagem de Consulta
Estruturada- DDL
- DML
- DCL
Professor Mst. Roberto Schaefer 26
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
27/245
a) Cada tabela chamada de relao
b) Uma linha e suas colunas chamam-se TUPLA
c) Cada coluna da tabela tem um nome e representaum atributo da tabela
d) A ordem das linhas irrelevante
e) No existem 2 linhas iguais
f) Usamos nomes para fazer referncia s colunas
g) A ordem das colunas tambm irrelevante
h) Cada tabela tem nome prprio, distinto de qualqueroutro objeto no banco de dados
Professor Mst. Roberto Schaefer 27
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
28/245
Arquitetura lgica do servidor MySQL
Professor Mst. Roberto Schaefer 28
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
29/245
Otimizao e Execuo:
MySQL interpreta consultas para criar umaestrutura interna (a rvore deinterpretao), e, ento, aplica uma
variedade de otimizaes. Estas podemincluir reescrever a consulta, determinar aordem na qual ela vai ler as tabelas,escolher quais ndices usar e assim por
diante.
Professor Mst. Roberto Schaefer 29
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
30/245
Pode-se passar dicas ao otimizador por
meio de palavras-chave especiais naconsulta, afetando seu processo detomada de deciso.
Pode-se, tambm, pedir ao servidor paraexplicar vrios aspectos da otimizao. Isso permite que se saiba quais decises o
servidor est tomando e d um ponto de
referncia para repetir consultas, esquemas econfiguraes para fazer tudo rodar o maiseficientemente possvel.
Professor Mst. Roberto Schaefer 30
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
31/245
O otimizador no se importa por qual ferramenta
de armazenamento uma tabela particular usa,mas a ferramenta de armazenamento realmenteafeta como o servidor otimiza a consulta.
O otimizador pergunta ferramenta de
armazenamento sobre algumas das suascapacidades e o custo de certas operaes, epede por estatsticas sobre os dados da tabela.Por exemplo, algumas ferramentas de
armazenamento suportam tipos de ndice quepodem ser teis para certas consultas.
Professor Mst. Roberto Schaefer 31
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
32/245
Antes mesmo de interpretar a consulta o
servidor consulta o cache de consulta, quepode armazenar somente expresses SELECT,junto com seus conjuntos de resultado.
Se algum executar uma consulta que idnticaquela que j est no cache, o servidor noprecisa interpretar, otimizar ou executar aconsulta ele pode simplesmente passar devolta o conjunto de resultado armazenado
Professor Mst. Roberto Schaefer 32
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
33/245
Controle de Concorrncia:
Toda vez que mais de uma consultaprecisar alterar dados ao mesmo tempo,o problema de controle de concorrncia
surge. O MySQL faz isso em dois nveis: no nveldo servidor e no nvel da ferramenta dearmazenamento.
Professor Mst. Roberto Schaefer 33
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
34/245
Sistemas que lidam com acesso deleitura/escrita concorrenteimplementam um sistema de bloqueio
que consiste em dois tipos de bloqueio.Estes so geralmente conhecidos comobloqueios compartilhados e bloqueiosexclusivos, ou bloqueios de leitura ebloqueios de escrita.
Professor Mst. Roberto Schaefer 34
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
35/245
Granularidade de Bloqueio
Uma maneira de melhorar a concorrncia de umrecurso compartilhado ser mais seletivo sobreo que bloquear.
Em vez de bloquear todo o recurso, bloqueiesomente a parte que contm os dados que necessitaalterao.
Minimizar a quantidade de dados que voc bloqueia deuma vez permite que alteraes a um dado recurso
ocorram simultaneamente, desde que elas no seconflitem com as outras.
Professor Mst. Roberto Schaefer 35
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
36/245
O problema que bloqueios consomem
recursos. Toda operao de bloqueio obterum bloqueio, checar para ver se um bloqueioest liberado, liberar um bloqueio e assim pordiante causa problemas.
Se o sistema gastar muito tempo gerenciandobloqueios em vez de armazenar e restaurardados, o desempenho pode sofrer.
A maioria dos SGBDs no d muita escolha:
bloqueio a nvel de linha nas suas tabelas asoluo.
Professor Mst. Roberto Schaefer 36
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
37/245
Deadlocks
Um deadlock quando duas ou mais transaesesto mutuamente mantendo e solicitandobloqueios nos mesmos recursos, criando um ciclo
de dependncias. Deadlocks ocorrem quando transaes tentambloquear recursos em uma ordem diferente.
Eles podem acontecer sempre que mltiplas
transaes bloqueiam os mesmos recursos.
Professor Mst. Roberto Schaefer 37
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
38/245
Por exemplo, considere estas duas transaes sendo
executadas na tabela StockPrice: Transao n.1 START TRANSACTION;
UPDATE StockPrice SET close = 45.50 WHERE stock_id = 4 and date = '2002-05-01';
UPDATE StockPrice SET close = 19.80 WHERE stock_id = 3 and date = '2002-05-02';
COMMIT;
Transao n.2 START TRANSACTION;
UPDATE StockPrice SET high = 20.12 WHERE stock_id = 3 and date = '2002-05-02';
UPDATE StockPrice SET high = 47.20 WHERE stock_id = 4 and date = '2002-05-01';
COMMIT;
Professor Mst. Roberto Schaefer 38
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
39/245
Se voc no tiver sorte, cada transao vai
executar sua primeira consulta e atualizaruma linha de dados, bloqueando-a noprocesso.
Cada transao vai, ento, tentar atualizar suasegunda linha, apenas para descobrir que jest bloqueada.
As duas transaes vo esperar eternamente
para que cada uma complete, a menos quealgo interfira para quebrar o deadlock.
Professor Mst. Roberto Schaefer 39
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
40/245
Para combater este problema, SGBDs
implementam vrias formas de deteco dedeadlock e intervalos.
Os sistemas mais sofisticados, como a ferramenta dearmazenamento InnoDB, vai perceber dependncias
circulares e retornar um erro instantaneamente. Isso , na verdade, algo muito bom do contrrio,deadlocks iriam se manifestar como consultas muito lentas.
Outros vo desistir depois da consulta exceder otempo limite de espera de um bloqueio, o que no muito bom.
Professor Mst. Roberto Schaefer 40
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
41/245
A maneira que o InnoDB atualmente lida comdeadlocks desfazer a transao que tem omenor nmero de bloqueios de linhaexclusivos (uma mtrica aproximada para aqual ser mais fcil desfazer).
Deadlocks possuem uma natureza dupla:alguns so inevitveis por causa dos conflitosde dados verdadeiros, e alguns so causadosdevido a forma de como a ferramenta de
armazenamento trabalha.
Professor Mst. Roberto Schaefer 41
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
42/245
Tuning (afinao):
Em geral, os SGBD`s no soferramentas auto suficientes no que dizrespeito ao acesso aos dados e por esse
motivo, esforos so despendidos nointuito de aperfeioar seufuncionamento interno, melhorando a
organizao das informaes e comoelas so obtidas
Professor Mst. Roberto Schaefer 42
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
43/245
Ajustar e otimizar uma consulta e oprprio BD tornam-se fatoresimportantes, podendo-se ter um ganho
de performance aceitvel, visto quecada consulta tratada de formadiferente
Professor Mst. Roberto Schaefer 43
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
44/245
Tuning a sintonia ou ajuste de algo
para que o SGBD apresente melhorresultado, fazendo-se com quepequenos ajustes afetem
significativamente a performance doBD, transformando uma tarefa de altocusto e complexidade em um processosimples e rpido
Professor Mst. Roberto Schaefer 44
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
45/245
Em termos didticos, pode-se dividir asaes de tuning em trs grandes tipos:
(1) Refinamento do esquema das relaes e as
consultas/atualizaes feitas no BD;(2) Configurao do sistema operacional em
uso; e
(3) Configurao dos parmetros dos SGBDs
Professor Mst. Roberto Schaefer 45
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
46/245
Professor Mst. Roberto Schaefer 46
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
47/245
Dentre os problemas de desempenho que
um SGBD abrange, esto includos o consumode processamento, utilizao ineficaz decomandos SQL, bloqueios, esperas eatividade de disco (DIAS, 2005)
Diante das afirmativas conclumos quegrande parte dos problemas relacionadosao desempenho de acesso aos dados em umBD deve-se a preparao de consultas
(Query) e utilizao de Index
Professor Mst. Roberto Schaefer 47
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
48/245
Problemas Comuns:
Proporcionalmente, os problemas delentido esto em:60% dos problemas so relacionados ao mau uso de
expresses SQL
20% dos problemas so relacionados a mmodelagem do banco de dados
10% dos problemas so relacionados a mconfigurao do SGDB
10% dos problemas so relacionados a mconfigurao do Sistema Operacional
Professor Mst. Roberto Schaefer 48
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
49/245
Em Tuning, comumente sero utilizadas
informaes de estatsticas de uso de HW:
Utilizao do processador
Atividade de I/O
Paginao
Memria utilizada
...
Professor Mst. Roberto Schaefer 49
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
50/245
Equvocos de Arquitetura:
Concentrao de regras de negcio na
aplicao para processos em lote
Integridade referencial na aplicao
Mal dimensionamento de I/O (CPU,Plataforma, Disco)
Ambientes virtualizados (Vmware, XEN,
etc..) em AMD64/EMT64.
Uso de configuraes padres do SO e/ou do
SGBDProfessor Mst. Roberto Schaefer 50
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
51/245
Servidor ...
Servidores dedicados para o SGBD Storage com Fiber Channel, iSCSI: Grupos de
RAID dedicados
SCSI > SAS > SATA > IDE
RAID 5 ou 10: por Hardware
Mais memria! (At 4GB em 32 bits)
Processadores de 64 bits: Performance at 3
vezes do que os 32 bits (AMD64 e EMT64 -Intel)
Professor Mst. Roberto Schaefer 51
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
52/245
RAID 5:
As informaes sobre paridade para os dadosdo array so distribudas ao longo de todosos discos do array , ao invs de seremarmazenadas num disco dedicado,oferecendo assim maior desempenho etolerncia a falhas
Sistema complexo de controle dos HDs
Professor Mst. Roberto Schaefer 52
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
53/245
RAID 10 ou 1+0:
Exige ao menos 4 discos rgidos.Cada par ser espelhado, garantindo redundncia, e os pares
sero distribudos, melhorando desempenho.
At metade dos discos pode falhar simultaneamente, semcolocar o conjunto a perder, desde que no falhem os doisdiscos de um espelho qualquer razo pela qual usam-sediscos de lotes diferentes de cada lado do espelho.
o nvel recomendado para bases de dados, por ser omais seguro e dos mais velozes, assim como qualqueroutro uso onde a necessidade de economia no se
sobreponha segurana e desempenho.
Professor Mst. Roberto Schaefer 53
Discos ou parties distintos para:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
54/245
Discos ou parties distintos para:
Logs de transaes ndices: Ext2
Tabelas (particionar tabelas grandes)
Tablespace temporrio (em ambiente BI)* Archives
SO + SGBD
Log de Sistema
Professor Mst. Roberto Schaefer 54
O otimizador de consultas o
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
55/245
O otimizador de consultas ocomponente do SGBD que tenta
determinar o modo mais eficiente deexecutar uma consulta
O SGBD usa algumas estatsticas
mantidas em tabelas do sistema paradirecionar o otimizador.
Se essas estatsticas estiveremdesatualizadas, provavelmente no se
obter o melhor plano para a consulta.
Professor Mst. Roberto Schaefer 55
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
56/245
Para atualizar as estatsticas, deve-seexecutar o comando ANALYZE.
possvel ver o plano que o otimizador deconsultas do PostgreSQL gera, usando aclusula EXPLAIN antes da consulta.
Adicionando a clusula EXPLAIN ANALYZEantes da consulta, ela de fatoexecutada, de forma que pode-se ter amedida do tempo
Professor Mst. Roberto Schaefer 56
Sintaxe no Postgre:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
57/245
Sintaxe no Postgre:EXPLAIN [ ANALYZE ] [ VERBOSE ]
statement
ANALYZE
Executar o comando e mostra os tempos reaisde execuo
VERBOSE
Mostrar a representao interna completa doplano de execuo. Normalmente, esta opos til para propsitos de depurao
Qualquer instruo DML: SELECT, INSERT,UPDATE, DELETE, EXECUTE ou DECLARE
Professor Mst. Roberto Schaefer 57
Sintaxe no MySQL:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
58/245
Sintaxe no MySQL:
EXPLAIN EXTENDED comando select
No uso do parmetro EXPLAIN oMySQL mostrar as informaes do
plano de execuo montado para ocomando SELECT, mostrandoinformaes das tabelas e do join
O uso do EXPLAIN EXTENDED
mostrar informaes adicionais
Professor Mst. Roberto Schaefer 58
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
59/245
Professor Mst. Roberto Schaefer 59
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
60/245
Professor Mst. Roberto Schaefer 60
Aspectos que tornam acesso aos
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
61/245
dados lentos:
ndices inadequados ou falta de ndices; Excesso de ndices, principalmente se a
aplicao faz muitos INSERTS ou DELETES
em tabelas; Falta de chaves primrias em tabelas;
Uso do SELECT trazendo todas as colunas
da tabela select * from AAA.
Professor Mst. Roberto Schaefer 61
Uso do condicionador LIKE
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
62/245
Uso do condicionador LIKEEvite "%XXX%" como pesquisa.
Se precisar de LIKE por algum motivo, ponhao "%" apenas no final, ou seja, "XXX%"(que ser convertido pela maioria dosSGBDs em algo parecido com "BETWEENXXX AND XXX_".
Se isso no puder ser evitado e se atabela for muito grande, use algumasoluo de "full text search" do seubanco - isso vai envolver o uso dealgum SQL especfico do banco para
efetuar as querys de "full text search";
Professor Mst. Roberto Schaefer 62
Aspectos que parecem que
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
63/245
ajudam mas no fazem diferena:
Mexer na ordem das condies doWHERE ou dos JOINs
Normalmente os SGBDs ignoram a ordem dascondies do WHERE ou dos JOINs e usamalguma estatstica prpria e algumaheurstica;
Professor Mst. Roberto Schaefer 63
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
64/245
Deixar todas as colunas com tamanhos fixos(CHAR em vez de VARCHAR)
isso s ocupa espao em disco e no
acelera o acesso, muitas vezes at deixamais lento porque o banco fica maior emenos dados cabem no cache.
Professor Mst. Roberto Schaefer 64
Boas Prticas em Acesso a Dados:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
65/245
Usar da clausula WHERE ao invs da HAVINGpara filtrar linhas- evitar o uso da clausula HAVING junto com GROUP BY
em uma coluna indexada, pois neste caso o ndice
no utilizado pelo SGBD Especificar as colunas principais do ndice na
clausula WHERE- em um ndice composto a consulta apenas utilizar o
ndice se as principais colunas do ndice estiveremespecificada na clausula WHERE
Professor Mst. Roberto Schaefer 65
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
66/245
Comparar o INDEX SCAN com o FULLTABLE SCAN - se estiver selecionandomais de 15 % das linhas de uma tabela,um FULL TABLE SCAN geralmente maisrpido do que o acesso pelo ndice.Quando o acesso por ndice causar lentido ao
invs de apresentar um ganho de performancepode utilizar algumas tcnicas para eliminar o usodo ndice
Professor Mst. Roberto Schaefer 66
Informar os campos que devem
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
67/245
p qaparecer na consulta, evitando utilizar o
famoso select * from ; Quando for utilizar operadores de
comparao, evitar o uso do NOT em
condies de pesquisa, pois podemdiminuir a velocidade de recuperao dedados porque todos os registros emuma tabela so avaliados
Professor Mst. Roberto Schaefer 67
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
68/245
Analisar a possibilidade de se usar o
operador UNION ALL em substituio aoUNION DISTINCT
Utilizar COUNT(1) ou COUNT
(NomeDoCampo) ao invs de COUNT(*) Utilizar as funes COALESCE (retorna o
1 elemento no nulo) e IS NULL
Professor Mst. Roberto Schaefer 68
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
69/245
Utilizar variveis do tipo TABLE emsubstituio a tabelas temporrias
No utilizar Functions, Stored
Procedure e Trigger Utilizar ndices sempre que
necessrio
Professor Mst. Roberto Schaefer 69
Criar VIEWS sempre que uma
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
70/245
p qdeterminada query for executada
diversas vezes em pontos do sistema epor diversos usurios
Otimizar a clausula WHERE:Simples exemplos so o uso de > e
>=. Se voc quer retornar todas as
pessoas de uma tabela que temidade > 3, use no where >=4,
dessa forma o banco no far oscan das pginas at encontrar o 3
Professor Mst. Roberto Schaefer 70
P ili l l WHERE
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
71/245
Procurar utilizar na clausula WHERE
todos (ou a maioria) dos campos chaveou que so indexados.
Mesmo que no tenha um valor, procureestabelecer um intervalo e utiliz-lo.
Por exemplo: A data de um pedido serobrigatoriamente maior que a data docadastro do cliente e menor que a data
atual
Professor Mst. Roberto Schaefer 71
Usar sempre o tipo de dados correto para
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
72/245
Usar sempre o tipo de dados correto paraarmazenar os dados.
Por exemplo, no armazene sexo (M ou F)em um campo VARCHAR, use apenas 1caractere: CHAR(1) ou, nesse casoespecfico, o ENUM
Em JOINS de tipos de dados diferentes, oSGBD vai ter que converter o tipo para ooutro tipo a fim de efetuar a comparao,converta-o para o mesmo tipo ao efetuar a
query.Exemplo ==>
Professor Mst. Roberto Schaefer 72
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
73/245
Por exemplo, se o atributo codigo_cliente databela Cliente for Numeric(10) e o mesmo
atributo da tabela PEDIDO for Numeric(5),converta-o para o mesmo tipo ao efetuar oJOIN
Professor Mst. Roberto Schaefer 73
Substituir as clausulas "OR" por um novo
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
74/245
SELECT com o "UNION":
Exemplo: Select id_cliente from clienteWhere tipo = J OR (idade > 30 and tipo =F)
Alterar para: Select id_cliente from clienteWhere tipo = J UNION Select id_cliente
from cliente Where idade > 30 and tipo = F
Evitar grandes operaes de classificaoenvolvendo ORDER BY, GROUP BY e HAVING.Subconjunto de dados so armazenados na
memria ou em disco sempre que operaesde classificao so realizadas
Professor Mst. Roberto Schaefer 74
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
75/245
Ao realizar uma query, evitar o usode aspas em dados que so do tipointeiros, pois o SGBD converter os
caracteres para CHAR.Por exemplo: SELECT codigoFROM tbteste WHERE idade =
20
Professor Mst. Roberto Schaefer 75
Evitar a tcnica do curto-circuito:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
76/245
v ta a tc ca do cu to c cu to
Exemplo: ...Where @x=0 OR codigo=@X
Procure executar no banco a instruo jmontada:
Utilize:
SE @x > 0 Select nome from cliente WHERE
codigo = @X
SENO
Select nome from cliente
Professor Mst. Roberto Schaefer 76
Checkpoint:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
77/245
p
Periodicamente, ou por necessidade, se faznecessrio limpar as reas de buffer e oarquivo de log de transaes (commitforado)
O checkpoint s funciona em tabelas do tipoInnoDB tabelas que aceitam transaes e
join, garantindo a integridade dos dadosatravs de Commit ou Rollback
Professor Mst. Roberto Schaefer 77
InnoDB implementa mecanismo deh k i t h id " f
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
78/245
checkpoint conhecido como " fuzzy
"checkpoint. InnoDB libera pginas do banco de dados
alterados a partir da rea de buffer empequenos lotes.
No h necessidade de descarregar a rea debuffer em um nico lote, o que, na prtica,para o processamento das instrues SQLdo usurio durante o processo de
checkpoint.
Professor Mst. Roberto Schaefer 78
Durante a recuperao de falhas o
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
79/245
Durante a recuperao de falhas o
InnoDB procura o endereo doponto de verificao escrito nosarquivos de log
Ele sabe que todas as modificaesno banco de dados antes desseendereo esto presentes naimagem do disco do banco dedados
Professor Mst. Roberto Schaefer 79
Como fazer o Checkpoint:1 Parar o servio do MySQL Shutdown
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
80/245
1. Parar o servio do MySQL Shutdown
2. Alterar o arquivo de inicalizao doMySQL my.ini no Windows ou my.cnfno Linux colocandoinnodb_force_recovery = 4
3. Inicalizar o servio do MySQL
4. Colocar o banco de dados em uso
5. Voltar o arquivo de inicializao doMySQL como estava anteriormente
6. Parar e reinicalizar o servio do MySQL
Professor Mst. Roberto Schaefer 80
Clusterizao:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
81/245
A CLUSTERIZAO esta associada a garantia
da disponibilidade ou escalabilidade dosdados no MySQLA disponibilidade se refere capacidade de lidar
com, e, se necessrio recuperar, as falhas no host,
incluindo as falhas do MySQL, do sistemaoperacional ou do hardware
A escalabilidade refere-se a capacidade de espalhara carga de consultas de seu aplicativo em vrios
servidores MySQL
Professor Mst. Roberto Schaefer 81
No MySQL temos duas solues para resolver
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
82/245
as questes de disponibilidade e
escalabilidade:MySQL Replication
MySQL Cluster o mais adequado para nossocaso uma soluo sncrona que permiteque vrias instncias de MySQL entrem emao simultaneamente
Ao contrrio da replicao, os dados emum cluster podem ser lidos ou escritosem qualquer n do cluster, e ainformao distribuda para os outrosns.
Professor Mst. Roberto Schaefer 82
Vantagens:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
83/245
Oferece mltiplas escritas e
leituras nos dados armazenadosPrevem controle de falhaautomtico entre ns, garantindo
que somente o n ativo serafetado
Dados atualizados em um ns
automaticamente distribudos paraos demais ns
Professor Mst. Roberto Schaefer 83
Desvantagens:Disponibilidade limitada de
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
84/245
Disponibilidade limitada de
plataformasNs dentro de um cluster deve serligado atravs de uma LAN;
Ns separados geograficamenteno so suportados
Pode-se replicar a partir de umcluster para outro usando a
replicao MySQL
Professor Mst. Roberto Schaefer 84
Usos recomendados:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
85/245
Os aplicativos que precisam dedisponibilidade muito alta,como as telecomunicaes ebancrio.
Os aplicativos que requerem umnmero igual ou maior de
gravao em relao leitura.Professor Mst. Roberto Schaefer 85
O MySQL possui recursos para implementar o
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
86/245
y p p pcluster nativamente, ou seja, no preciso
instalar nenhum software adicional, alm daverso do MySQL j preparada para receber ocluster
NDBCluster o componente do MySQL que
permite a criao de clusters e funciona comoum engine do banco de dados
O cluster do MySQL age de forma transparente,ou seja, a aplicao cliente no precisa saber
que o cluster do MySQL est sendo utilizado
Professor Mst. Roberto Schaefer 86
Do ponto de vista de desenvolvimento, no
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
87/245
h nenhuma mudana significativa: basta
apenas continuar conectando em umendereo IP normalmente
J para quem administra preciso cuidados
especiais- algumas configuraes no so replicadaspelo cluster.
Por exemplo, os logins e as permissesdevem ser configuras nos servidores deforma independente
Professor Mst. Roberto Schaefer 87
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
88/245
Professor Mst. Roberto Schaefer 88
Arquitetura do MySQL:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
89/245
Professor Mst. Roberto Schaefer 89
A arquitetura interna do MySQL provida de
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
90/245
q y pduas camadas principais:# camada de parser e otimizao de consultas SQL e# camada onde esto conectadas as Engenharias de
Armazenamento - Stored Engine - de formamodular
A Engenharia de Armazenamento INNODB, temno diretrio do banco de dados um arquivo.frm, que armazena a estrutura da tabela.
Os dados e os ndices ficam localizados em um
tablespace no mesmo diretrio.
Professor Mst. Roberto Schaefer 90
O INNODB tem um tablespacepadro de nome ibdata que
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
91/245
padro de nome ibdata que
utilizado para armazenar ndices edados de todas as tabelas de todosos bancos de dados contidos em um
servidor MySQL.Pode-se configurar tablespaces emlocais personalizados do filesystem ouutilizar um tablespace para cada tabela
criada.
Professor Mst. Roberto Schaefer 91
INNODB tem multi-versionamento e bloqueio
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
92/245
qem nvel de linha, ou seja, caso uma transaoA esteja atualizando uma determinada linha deuma tabela, esta ser bloqueada at que hajaum COMMIT ou ROLLBACK
O multi-versionamento prov transao umaviso prpria do estado do banco de dados,combinado com o bloqueio em nvel de linha,prov o mnimo possvel de contenes
Professor Mst. Roberto Schaefer 92
O tablespace do INNODB portvel
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
93/245
O tablespace do INNODB portvel
e pode ser copiado diretamentepara outro servidor, juntamentecom os arquivos .frm
Alguns pontos devem seranalisados com cuidado para queno haja problemas com o backup
fsico do banco de dados
Professor Mst. Roberto Schaefer 93
Log do MySQL:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
94/245
Professor Mst. Roberto Schaefer 94
Tipos de tabelas:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
95/245
Professor Mst. Roberto Schaefer 95
Tipos de tabelas (cont.):
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
96/245
Professor Mst. Roberto Schaefer 96
Recuperao de BaseCorrompida:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
97/245
Antes de subir o banco, o argumentodentro do arquivo de inicalizao doMySQL dseve ser alterda:innodb_force_recovery = 4
Faa um dump (backup) completo de todasos bancos de dadosCom o dump feito todos os bancos de dados
devem ser dropados
Professor Mst. Roberto Schaefer 97
Mova o diretrio base do MySQL para outrodiretrio
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
98/245
diretrio
Exemplo 'data-old' Recrie a pasta 'data' do MySQL e coloque como
owner desta pasta o usurio de execuo do'mysqld'
Crie um novo banco de dados e restaure obackup feito
Banco recriado e informaes persistidas semmais erros de 'Innodb'
- INNODB prov auto_recovery aps um crashou queda no servidor onde o MySQL roda
Professor Mst. Roberto Schaefer 98
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
99/245
Instalao do MySQL Serverinstalao do MySQL Workbench
Professor Mst. Roberto Schaefer 99
Download do MySQL:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
100/245
Professor Mst. Roberto Schaefer 100
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
101/245
Professor Mst. Roberto Schaefer 101
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
102/245
Professor Mst. Roberto Schaefer 102
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
103/245
Professor Mst. Roberto Schaefer 103
Instalao completa:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
104/245
Professor Mst. Roberto Schaefer 104
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
105/245
Professor Mst. Roberto Schaefer 105
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
106/245
Professor Mst. Roberto Schaefer 106
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
107/245
Professor Mst. Roberto Schaefer 107
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
108/245
Professor Mst. Roberto Schaefer 108
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
109/245
Professor Mst. Roberto Schaefer 109
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
110/245
Professor Mst. Roberto Schaefer 110
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
111/245
Professor Mst. Roberto Schaefer 111
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
112/245
Professor Mst. Roberto Schaefer 112
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
113/245
Professor Mst. Roberto Schaefer 113
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
114/245
Professor Mst. Roberto Schaefer 114
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
115/245
Professor Mst. Roberto Schaefer 115
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
116/245
Professor Mst. Roberto Schaefer 116
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
117/245
Professor Mst. Roberto Schaefer 117
Instalao s do MySQL Server:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
118/245
Professor Mst. Roberto Schaefer 118
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
119/245
Professor Mst. Roberto Schaefer 119
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
120/245
Professor Mst. Roberto Schaefer 120
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
121/245
Professor Mst. Roberto Schaefer 121
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
122/245
Professor Mst. Roberto Schaefer 122
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
123/245
Professor Mst. Roberto Schaefer 123
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
124/245
Professor Mst. Roberto Schaefer 124
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
125/245
Professor Mst. Roberto Schaefer 125
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
126/245
Professor Mst. Roberto Schaefer 126
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
127/245
Professor Mst. Roberto Schaefer 127
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
128/245
Professor Mst. Roberto Schaefer 128
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
129/245
Professor Mst. Roberto Schaefer 129
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
130/245
Professor Mst. Roberto Schaefer 130
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
131/245
Professor Mst. Roberto Schaefer 131
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
132/245
Professor Mst. Roberto Schaefer 132
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
133/245
Professor Mst. Roberto Schaefer 133
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
134/245
Professor Mst. Roberto Schaefer 134
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
135/245
Professor Mst. Roberto Schaefer 135
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
136/245
Professor Mst. Roberto Schaefer 136
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
137/245
Professor Mst. Roberto Schaefer 137
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
138/245
Professor Mst. Roberto Schaefer 138
Instalao s do MySQLWorkbench:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
139/245
Professor Mst. Roberto Schaefer 139
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
140/245
Professor Mst. Roberto Schaefer 140
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
141/245
Professor Mst. Roberto Schaefer 141
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
142/245
Professor Mst. Roberto Schaefer 142
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
143/245
Professor Mst. Roberto Schaefer 143
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
144/245
Professor Mst. Roberto Schaefer 144
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
145/245
Professor Mst. Roberto Schaefer 145
Desinstalao:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
146/245
Professor Mst. Roberto Schaefer 146
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
147/245
Professor Mst. Roberto Schaefer 147
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
148/245
Professor Mst. Roberto Schaefer 148
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
149/245
Professor Mst. Roberto Schaefer 149
Servio do MySQL
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
150/245
Professor Mst. Roberto Schaefer 150
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
151/245
Professor Mst. Roberto Schaefer 151
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
152/245
Professor Mst. Roberto Schaefer 152
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
153/245
Professor Mst. Roberto Schaefer 153
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
154/245
Professor Mst. Roberto Schaefer 154
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
155/245
Professor Mst. Roberto Schaefer 155
Definio de instncias de
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
156/245
Definio de instncias deacesso ao MySQL
Professor Mst. Roberto Schaefer 156
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
157/245
Professor Mst. Roberto Schaefer 157
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
158/245
Professor Mst. Roberto Schaefer 158
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
159/245
Professor Mst. Roberto Schaefer 159
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
160/245
Professor Mst. Roberto Schaefer 160
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
161/245
Professor Mst. Roberto Schaefer 161
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
162/245
Professor Mst. Roberto Schaefer 162
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
163/245
Professor Mst. Roberto Schaefer 163
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
164/245
Professor Mst. Roberto Schaefer 164
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
165/245
Professor Mst. Roberto Schaefer 165
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
166/245
Professor Mst. Roberto Schaefer 166
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
167/245
Professor Mst. Roberto Schaefer 167
Mdulo Server Administrator:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
168/245
Professor Mst. Roberto Schaefer 168
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
169/245
Professor Mst. Roberto Schaefer 169
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
170/245
Professor Mst. Roberto Schaefer 170
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
171/245
Professor Mst. Roberto Schaefer 171
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
172/245
Professor Mst. Roberto Schaefer 172
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
173/245
Professor Mst. Roberto Schaefer 173
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
174/245
Professor Mst. Roberto Schaefer 174
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
175/245
Professor Mst. Roberto Schaefer 175
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
176/245
Professor Mst. Roberto Schaefer 176
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
177/245
Professor Mst. Roberto Schaefer 177
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
178/245
Professor Mst. Roberto Schaefer 178
Mdulo SQL Development (Editor)
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
179/245
Professor Mst. Roberto Schaefer 179
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
180/245
Professor Mst. Roberto Schaefer 180
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
181/245
Professor Mst. Roberto Schaefer 181
Mdulo Data Modeling
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
182/245
Professor Mst. Roberto Schaefer 182
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
183/245
Professor Mst. Roberto Schaefer 183
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
184/245
Professor Mst. Roberto Schaefer 184
Configuraes:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
185/245
Professor Mst. Roberto Schaefer 185
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
186/245
Professor Mst. Roberto Schaefer 186
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
187/245
Professor Mst. Roberto Schaefer 187
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
188/245
Professor Mst. Roberto Schaefer 188
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
189/245
Professor Mst. Roberto Schaefer 189
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
190/245
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
191/245
Professor Mst. Roberto Schaefer 191
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
192/245
Professor Mst. Roberto Schaefer 192
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
193/245
Professor Mst. Roberto Schaefer 193
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
194/245
Professor Mst. Roberto Schaefer 194
Bancos de Dados de controle doMySQL:
1. Information_schema2. Performance_schema
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
195/245
3. MySQL
Professor Mst. Roberto Schaefer 195
1. information_schema:
Fornece acesso ao banco de dados de
metadados, com informaes sobre o servidorMySQL como: nome de um banco de dados ou tabela
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
196/245
c
tipo de dados de uma coluna
privilgios de acesso. Outros termos que so utilizados para obteressas informaes so: dicionrio de dadosecatlogo do sistema.
Professor Mst. Roberto Schaefer 196
um banco de dados dentro de cada instnciaMySQL
local que armazena informaes sobre todos osoutros bancos de dados que o servidor MySQLmantm
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
197/245
formado por vrias tabelas somente para
leitura No h nenhum diretrio de banco de dados
com esse nome.
Professor Mst. Roberto Schaefer 197
2. performance_schema:
Monitora a execuo interna do MySQL
Server em um nvel baixo, em tempo deexecuo
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
198/245
Ele se concentra principalmente em dados
de desempenho, se diferenciando doINFORMATION_SCHEMA que serve para ainspeo de metadados.
Professor Mst. Roberto Schaefer 198
Ele monitora eventos do servidor Em geral, um evento pode ser uma chamada de
funo, uma espera para o sistema operacional,um estgio de uma execuo da instruo SQL,
tais como a anlise ou classificao, ou umadeclarao completa ou grupo de instrues
Sua configurao pode ser modificada
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
199/245
Sua configurao pode ser modificadadinamicamente por atualizao de tabelas no
performance_schema atravs de comandosSQL.
As alteraes de configurao afetam a coleta dedados imediatamente.
Professor Mst. Roberto Schaefer 199
3. mysql:
Banco de dados que guarda as
informaes necessrias paraadministrao geral do MySQL Server
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
200/245
g y
Por exemplo, os dados dos usurios
catalogados no server, bem como, osdatabases, servidores, eventos, ...
Professor Mst. Roberto Schaefer 200
Uso de outras ferramentas
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
201/245
Professor Mst. Roberto Schaefer 201
Algumas ferramentas grtisutilizadas para o MYSQL so:
Ferramentas de Monitoramento
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
202/245
Professor Mst. Roberto Schaefer 202
Cacti
Algumas ferramentas pagasutilizadas para o MYSQLso:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
203/245
Professor Mst. Roberto Schaefer 203
Estatsticas
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
204/245
Professor Mst. Roberto Schaefer 204
Servio de Controle
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
205/245
Professor Mst. Roberto Schaefer 205
Nagios
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
206/245
Professor Mst. Roberto Schaefer 206
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
207/245
Professor Mst. Roberto Schaefer 207
INSTALAO ECONFIGURAO DESERVIDORES DE BANCO DE
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
208/245
SERVIDORES DE BANCO DEDADOS POSTGRESQL
Professor Mst. Roberto Schaefer 208
INSTALAO E CONFIGURAO DO SGBDPOSTGRESQL:
O PostgreSQL pode ser instalado por qualquer
usurio sem privilgios, porque nenhum acesso desuper-usurio (root) necessrio.
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
209/245
Baixe o programa emhttp://postgrecenter.pgopen.com.br/
1 passo:
Professor Mst. Roberto Schaefer 209
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
210/245
Professor Mst. Roberto Schaefer 210
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
211/245
Professor Mst. Roberto Schaefer 211
Se voc desejar que o PostgreSQL seja instalado comoum servio no Windows habilite o checkbox "Instalar comoservio".l Aqui vem uma das partes mais crticas da instalao,
que a definio do usurio que vai rodar o servio.l Esse usurio no um usurio do SGBD, mas sim do
prprio Windows.
l Este usurio no pode ser administrador e tambm nopode ser um usurio sem senha.
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
212/245
Professor Mst. Roberto Schaefer 212
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
213/245
Professor Mst. Roberto Schaefer 213
Nessa tela ser definida a linguagem que o
banco de dados ir trabalhar. O Postgresqlsuporta vrias linguagens de banco, mas necessrio baixar mdulos extras parafuncionar. Neste caso vamos manter oPL/pgsql(Procedure LanguagemPostgresql) que a linguagem proceduraldo Postgresql.
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
214/245
Professor Mst. Roberto Schaefer 214
Instalao de Mdulosopcionais. Marque se desejar,abaixo segue uma brevedescrio de cada item:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
215/245
Professor Mst. Roberto Schaefer 215
Incio da Instalao:
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
216/245
Professor Mst. Roberto Schaefer 216
Concluso da Instalao.
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
217/245
Professor Mst. Roberto Schaefer 217
Administrando o Postgre como pgAdmin III
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
218/245
o pgAdmin III
Professor Mst. Roberto Schaefer 218
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
219/245
Professor Mst. Roberto Schaefer 219
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
220/245
Professor Mst. Roberto Schaefer 220
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
221/245
Professor Mst. Roberto Schaefer 221
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
222/245
Professor Mst. Roberto Schaefer 222
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
223/245
Professor Mst. Roberto Schaefer 223
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
224/245
Professor Mst. Roberto Schaefer 224
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
225/245
Professor Mst. Roberto Schaefer 225
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
226/245
Professor Mst. Roberto Schaefer 226
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
227/245
Professor Mst. Roberto Schaefer 227
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
228/245
Professor Mst. Roberto Schaefer 228
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
229/245
Professor Mst. Roberto Schaefer 229
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
230/245
Professor Mst. Roberto Schaefer 230
Ferramentas WEB para AdministraophpMyAdmin e phpPgAdmin
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
231/245
Professor Mst. Roberto Schaefer 231
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
232/245
Professor Mst. Roberto Schaefer 232
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
233/245
Professor Mst. Roberto Schaefer 233
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
234/245
Professor Mst. Roberto Schaefer 234
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
235/245
Professor Mst. Roberto Schaefer 235
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
236/245
Professor Mst. Roberto Schaefer 236
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
237/245
Professor Mst. Roberto Schaefer 237
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
238/245
Professor Mst. Roberto Schaefer 238
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
239/245
Professor Mst. Roberto Schaefer 239
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
240/245
Professor Mst. Roberto Schaefer 240
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
241/245
Professor Mst. Roberto Schaefer 241
COMPARANDO O MySQL x PostgreSQL
l MySQL ou Postgre, qual usar?l Ambos so muito bons e no fazem feio
diante das alternativas pagas.l Ambos possuem recursos e vantagens
em comum , o que significa que , para amaioria das aplica es eles podem serusados
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
242/245
usados.l Na verdade , o correto n o tentar
descobrir qual o melhor , mas em quesituao um ou outro deve ser utilizado.
Professor Mst. Roberto Schaefer 242
l O PostgreSQL otimizado paraaplicaes orientada a objetos.
l O MySQL muito bem aceito parasistemas de com rcio eletr nico de
porte m dio /alto , j que esse SGBD capaz de lidar de maneira satisfat ria eeficiente com o volume de dados geradopelas operaes de consulta e venda.
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
243/245
l O MySQL , por sua vez , focado naagilidade.
Professor Mst. Roberto Schaefer 243
l Assim , se sua aplica o necessita deretornos r pidos e n o envolveopera es complexas , o MySQL aopo mais adequada, pois otimizado
para proporcionar processamento rpidodos dados e tempo curto de respostasem exigir muito do hardware.l Se voc precisa, por exemplo, de um banco
de dados para armazenar o conte do doseu site de seu frum ou necessita manter
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
244/245
seu site, de seu frum ou necessita manterum cadastro de usu rios de um portal , oMySQL serve como uma luva , pois taisaplica es n o necessitam dos recursosavanados que o PostgreSQL oferece.
Professor Mst. Roberto Schaefer 244
7/25/2019 Aulas - Arquitetura e Adminisrao de Banco de Dad.pdf
245/245
Professor Mst. Roberto Schaefer 245