SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
MySQL LOGS 
Wagner Bianchi 
Certified MySQL 5.0 Developer 
Certified MySQL 5.0 Database Administrator 
Certified MySQL 5.1 Cluster Database Administrator
O que veremos… 
! O MySQL Server escreve muitas informações em vários arquivos de log e 
veremos: 
– General Query Log; 
– Binary Log; 
– Relay Logs; 
– Slow Query Log; 
– Error Log; 
– Status File;
General Query Log 
! O Log geral, chamado de General Query Log, armazena informações de 
start e shutdown do servidor de bancos de dados MySQL e toda consulta 
SQL recebida por ele; 
! Consultas que foram executadas com sucesso e também aquelas que não 
tiveram sucesso serão escritas neste log, que fica localizado no DATADIR 
do MySQL; 
! O conteúdo deste arquivo é escrito pelo SGBD MySQL linha a linha na 
ordem em que estes conteúdos vão sendo enviados ao SGBD; 
! Para habilitar este log em um servidor de bancos de dados MySQL, inicie o 
mysqld standalone ou adicione a opção no arquivo de opção my.ini ou 
my.cnf: log [=nome_arquivo]
General Query Log 
root@vagrant-centos65 mysql]# cat vagrant-centos65.log! 
/usr/sbin/mysqld, Version: 5.6.21-70.0-log (Percona Server (GPL), Release 70.0, Revision 
688). started with:! 
Tcp port: 0 Unix socket: /var/lib/mysql/mysql.sock! 
Time Id Command Argument! 
141105 12:42:44 ! 1 Connect !root@localhost on! 
! ! 1 Query !select @@version_comment limit 1! 
! ! 1 Query !select count(*) from mysql.user! 
! ! 1 Quit! 
! ! 2 Connect !root@localhost on! 
! ! 2 Query !select @@version_comment limit 1! 
! ! 2 Query !select count(*) from mysql.user! 
! ! 2 Quit! 
! ! 3 Connect !root@localhost on! 
! ! 3 Query !select @@version_comment limit 1! 
! ! 3 Query !select count(*) from mysql.user! 
! ! 3 Quit! 
! ! 4 Connect !root@localhost on! 
! ! 4 Query !select @@version_comment limit 1! 
! ! 4 Query !select count(*) from mysql.user! 
! ! 4 Quit!
Binary Log 
! O log binário é responsável para armazenar os logs de interações com o 
servidor que são consultas que modificam o estado de um banco de dados; 
! Declarações UPDATE e DELETE são escritas no log binário, mas SELECT’s 
não; 
! São informações são armazenadas em formato binário; 
! Os comandos são escritos no log tão logo que são executados. Quando 
estes fazem parte de uma transação, eles são escritos logo após 
receberem um COMMIT, ou seja, são escritos no log como unidades 
transacionais; 
! É utilizado para tornar replicação entre servidores uma realidade; 
! Para habilitar o log binário, adicione ao arquivo de opções, dentro do 
agrupamento [mysqld] a opção log_bin [=nome_arquivo]
Binary Log 
! Em uma instalação padrão, o log binário se encontra no diretório de dados 
do servidor de bancos de dados MySQL, o DATADIR; 
! O path relacionado com a ativação deste log, pode ser alterado, informando 
o novo caminho no arquivo de opções: 
log-bin=/var/lib/mysql/logs/log-bin 
! Ao habilitarmos o log binário, outro arquivo, com extensão “.index” será 
criado no mesmo diretório. Este arquivo armazena os arquivo utilizados 
para armazenar uma lista dos arquivos de log binário utilizados atualmente 
no servidor de bancos de dados MySQL; 
! O conteúdo do arquivo “.index” é texto puro;
Binary Log 
! Caso haja alguma replicação habilitada em seu ambiente entre os 
servidores de bancos de dados MySQL, não apague os logs antigos antes 
de se certificar que nenhum servidor “slave” esteja lendo estes arquivos; 
! O mysqlbinlog é o utilitário para leitura do log binário; 
[root@vagrant-centos65 mysql]# mysqlbinlog /var/lib/mysql/mysql-bin.000001! 
# at 218! 
#141105 12:45:15 server id 1 end_log_pos 391 CRC32 0xf93a3092 !Query !thread_id=11 
!exec_time=0 !error_code=0! 
SET TIMESTAMP=1415191515/*!*/;! 
insert into test.t1 set id=1! 
/*!*/;! 
# at 391! 
#141105 12:45:15 server id 1 end_log_pos 422 CRC32 0x75d10a99 !Xid = 34! 
COMMIT/*!*/;!
Relay Logs 
! Relay logs são arquivo que armazenam em formato binário o 
mesmo conteúdo dos logs binário do servidor MASTER; 
! Tais logs só existirão em uma instância de bancos de dados 
MySQL quando em replicação e em servidores que são 
SLAVEs; 
! Estes arquivos de log são lidos pela SQL_THREAD do 
sistema de replicação nativo e após a leitura, o arquivo é 
descartado; 
– Como se trata de um arquivo com dados binários, o 
mysqlbinlog, programa cliente precisa ser utilizado na sua leitura 
pelo usuário;
Slow Query Log 
! O Slow Query Log ou ainda log para consultas lentas, é um log em que o 
servidor de bancos de dados MySQL utiliza para escrever as consultas com 
tempo maior que o tempo definido em log_query_time; 
! O MySQL (mysqld) escreve uma consulta lenta neste log, logo após a sua 
execução. O tempo de espera em via de um LOCK TABLES explícito não é 
contabilizado; 
! O tempo mínimo que pode ser definido é 1 e o máximo é 10, medidos em 
minutos; 
! Além de consultas lentas, outras consultas também podem utilizar o Slow 
Query Log, que pode ser habilitado, alterando o arquivo de opções, 
adicionando ao agrupamento [mysqld] 
log-slow-queries [=nome_arquivo]
Slow Query Log 
! Podemos adicionar ao my.ini ou my.cnf as seguinte opções para verificar 
outros problemas: 
– log-queries-not-using-indexes 
Escreve no log de consultas lentas, as consultas que realizam table scan, ou 
seja, consultas que não utilizam índices; 
– log-slow-admin-statements 
Escreve no log de consultas lentas, as declarações de cunho administrativo que 
apresentam lentidão, como OPTIMIZE TABLE, ANALYZE TABLE e ALTER 
TABLE, sendo o último em alguns casos o mais complicado;
Slow Query Log 
#: LOGS! 
general_log=1 ! 
log_bin=mysql-bin! 
slow_query_log=1 # habilita o slow queries! 
long_query_time=2 # tempo para logar a query! 
log_queries_not_using_indexes! 
log_slow_admin_statements! 
log-error=/var/log/mysqld.log! 
pid-file=/var/run/mysqld/mysqld.pid!
Error Log 
! O log de erros, chamado de Error Log, também está localizado no diretório 
de dados do servidor de bancos de dados MySQL; 
! O log de erros é um aruivo com extensão “.err” e contém informações que 
indicam quando o servidor de bancos de dados MySQL, o mysqld, foi 
iniciado e foi parado e alguns outros erros críticos de quando o servidor 
estava rodando; 
! Erros de inicialização de Storage Engines, no caso o InnoDB, são 
facilmente encontrados no log de erros; 
! Podemos habilitar o log de erros, adicionando ao arquivo de opções, dentro 
do agrupamento [mysqld], a seguinte linha: 
log-error [=nome_arquivo]
Error Log 
! Podemos ainda, incluir no log também todos os warnings enviados pelo 
SGBD MySQL, adicionando ao arquivo de opções a seguinte linha: 
log-warnings [=nome_arquivo]
Status File 
! O servidor de bancos de dados MySQL cria muitos arquivos de status. 
Muitos deles localizados no diretório de dados, DATADIR, mas não todos; 
! Nesses arquivos são inseridas informações de estado de processos (ID e 
PID) que são utilizados para enviar sinais à outros programas; 
! Tais arquivos tem extensão “.pid”. Para habilitar a criação destes arquivos 
que são utilizados por outros aplicativos, adicione ao arquivos de opções, 
dentro do agrupamento [mysqld], a seguinte linha: 
pid-file [=arquivo_nome]
Exercícios 
! Com base no conteúdo apresentado, “Logs”, resolva a Lista 7 de 
exercícios. 
! Referência bibliográfica: 
– Manual on-line; 
Sakila on the beach!

Contenu connexe

Tendances

Novidades da versão 9.0 do PostgreSQL
Novidades da versão 9.0 do PostgreSQLNovidades da versão 9.0 do PostgreSQL
Novidades da versão 9.0 do PostgreSQLMatheus Espanhol
 
ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?Rodrigo Almeida
 
UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6Wagner Bianchi
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosEduardo Legatti
 
Oracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosOracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosDaniela Macedo
 
Estrategias de backup e recovery
Estrategias de backup e recoveryEstrategias de backup e recovery
Estrategias de backup e recoveryRodrigo Crespi
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataRodrigo Almeida
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLMatheus Espanhol
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Estratégia de backup - RMAN
Estratégia de backup - RMANEstratégia de backup - RMAN
Estratégia de backup - RMANEduardo Legatti
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
IT security - Fail2ban, fail2sql e googlemaps (PT Language)
IT security  - Fail2ban, fail2sql e googlemaps (PT Language)IT security  - Fail2ban, fail2sql e googlemaps (PT Language)
IT security - Fail2ban, fail2sql e googlemaps (PT Language)Carlos Domingues
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 

Tendances (20)

Novidades da versão 9.0 do PostgreSQL
Novidades da versão 9.0 do PostgreSQLNovidades da versão 9.0 do PostgreSQL
Novidades da versão 9.0 do PostgreSQL
 
ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?
 
UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - Nagios
 
Oracle 11g
Oracle 11gOracle 11g
Oracle 11g
 
Oracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosOracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de Dados
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
Estrategias de backup e recovery
Estrategias de backup e recoveryEstrategias de backup e recovery
Estrategias de backup e recovery
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para Exadata
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQL
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Estratégia de backup - RMAN
Estratégia de backup - RMANEstratégia de backup - RMAN
Estratégia de backup - RMAN
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
IT security - Fail2ban, fail2sql e googlemaps (PT Language)
IT security  - Fail2ban, fail2sql e googlemaps (PT Language)IT security  - Fail2ban, fail2sql e googlemaps (PT Language)
IT security - Fail2ban, fail2sql e googlemaps (PT Language)
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 

En vedette

UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6Wagner Bianchi
 
MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?MySQL Brasil
 
UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6Wagner Bianchi
 
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksQuery Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksJaime Crespo
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016Wagner Bianchi
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6Wagner Bianchi
 

En vedette (7)

UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6
 
MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?
 
UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6
 
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksQuery Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6
 

Similaire à UNIFAL - MySQL Logs - 5.0/5.6

InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLWagner Bianchi
 
Diego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysqlDiego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysqlDiego Rivera Tavares
 
Diego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysqlDiego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysqlDiego Rivera Tavares
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005Andre Nascimento
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Wagner Bianchi
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sqlrobinhoct
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceSaveincloud
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29Juliana Nascimento
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
Capítulo 16 rsyslog
Capítulo 16   rsyslogCapítulo 16   rsyslog
Capítulo 16 rsyslogPaulo Kutwak
 
PostgreSQL Conceitos e aplicações - FSA
PostgreSQL  Conceitos e aplicações - FSAPostgreSQL  Conceitos e aplicações - FSA
PostgreSQL Conceitos e aplicações - FSAFabio Telles Rodriguez
 
Apresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESApresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESSergioBernardes11
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPedro Fernandes Vieira
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 

Similaire à UNIFAL - MySQL Logs - 5.0/5.6 (20)

InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
 
Diego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysqlDiego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysql
 
Diego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysqlDiego araujo-introdução-a-banco-de-dados-livre-–-mysql
Diego araujo-introdução-a-banco-de-dados-livre-–-mysql
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
Sqlite
Sqlite Sqlite
Sqlite
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
TechEd_OFC302
TechEd_OFC302TechEd_OFC302
TechEd_OFC302
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performance
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
Capítulo 16 rsyslog
Capítulo 16   rsyslogCapítulo 16   rsyslog
Capítulo 16 rsyslog
 
Apostila ib
Apostila ibApostila ib
Apostila ib
 
PostgreSQL Conceitos e aplicações - FSA
PostgreSQL  Conceitos e aplicações - FSAPostgreSQL  Conceitos e aplicações - FSA
PostgreSQL Conceitos e aplicações - FSA
 
Apresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESApresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCES
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 

Plus de Wagner Bianchi

Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18Wagner Bianchi
 
Maxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoinMaxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoinWagner Bianchi
 
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoMeetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoWagner Bianchi
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Wagner Bianchi
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleWagner Bianchi
 
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source ReplicationWebinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source ReplicationWagner Bianchi
 
UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6Wagner Bianchi
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6Wagner Bianchi
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)Wagner Bianchi
 
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi
 
MySQL Cluster Product Overview
MySQL Cluster Product OverviewMySQL Cluster Product Overview
MySQL Cluster Product OverviewWagner Bianchi
 

Plus de Wagner Bianchi (11)

Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18
 
Maxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoinMaxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoin
 
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoMeetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de Uso
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source ReplicationWebinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
 
UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
 
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
 
MySQL Cluster Product Overview
MySQL Cluster Product OverviewMySQL Cluster Product Overview
MySQL Cluster Product Overview
 

UNIFAL - MySQL Logs - 5.0/5.6

  • 1. MySQL LOGS Wagner Bianchi Certified MySQL 5.0 Developer Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator
  • 2. O que veremos… ! O MySQL Server escreve muitas informações em vários arquivos de log e veremos: – General Query Log; – Binary Log; – Relay Logs; – Slow Query Log; – Error Log; – Status File;
  • 3. General Query Log ! O Log geral, chamado de General Query Log, armazena informações de start e shutdown do servidor de bancos de dados MySQL e toda consulta SQL recebida por ele; ! Consultas que foram executadas com sucesso e também aquelas que não tiveram sucesso serão escritas neste log, que fica localizado no DATADIR do MySQL; ! O conteúdo deste arquivo é escrito pelo SGBD MySQL linha a linha na ordem em que estes conteúdos vão sendo enviados ao SGBD; ! Para habilitar este log em um servidor de bancos de dados MySQL, inicie o mysqld standalone ou adicione a opção no arquivo de opção my.ini ou my.cnf: log [=nome_arquivo]
  • 4. General Query Log root@vagrant-centos65 mysql]# cat vagrant-centos65.log! /usr/sbin/mysqld, Version: 5.6.21-70.0-log (Percona Server (GPL), Release 70.0, Revision 688). started with:! Tcp port: 0 Unix socket: /var/lib/mysql/mysql.sock! Time Id Command Argument! 141105 12:42:44 ! 1 Connect !root@localhost on! ! ! 1 Query !select @@version_comment limit 1! ! ! 1 Query !select count(*) from mysql.user! ! ! 1 Quit! ! ! 2 Connect !root@localhost on! ! ! 2 Query !select @@version_comment limit 1! ! ! 2 Query !select count(*) from mysql.user! ! ! 2 Quit! ! ! 3 Connect !root@localhost on! ! ! 3 Query !select @@version_comment limit 1! ! ! 3 Query !select count(*) from mysql.user! ! ! 3 Quit! ! ! 4 Connect !root@localhost on! ! ! 4 Query !select @@version_comment limit 1! ! ! 4 Query !select count(*) from mysql.user! ! ! 4 Quit!
  • 5. Binary Log ! O log binário é responsável para armazenar os logs de interações com o servidor que são consultas que modificam o estado de um banco de dados; ! Declarações UPDATE e DELETE são escritas no log binário, mas SELECT’s não; ! São informações são armazenadas em formato binário; ! Os comandos são escritos no log tão logo que são executados. Quando estes fazem parte de uma transação, eles são escritos logo após receberem um COMMIT, ou seja, são escritos no log como unidades transacionais; ! É utilizado para tornar replicação entre servidores uma realidade; ! Para habilitar o log binário, adicione ao arquivo de opções, dentro do agrupamento [mysqld] a opção log_bin [=nome_arquivo]
  • 6. Binary Log ! Em uma instalação padrão, o log binário se encontra no diretório de dados do servidor de bancos de dados MySQL, o DATADIR; ! O path relacionado com a ativação deste log, pode ser alterado, informando o novo caminho no arquivo de opções: log-bin=/var/lib/mysql/logs/log-bin ! Ao habilitarmos o log binário, outro arquivo, com extensão “.index” será criado no mesmo diretório. Este arquivo armazena os arquivo utilizados para armazenar uma lista dos arquivos de log binário utilizados atualmente no servidor de bancos de dados MySQL; ! O conteúdo do arquivo “.index” é texto puro;
  • 7. Binary Log ! Caso haja alguma replicação habilitada em seu ambiente entre os servidores de bancos de dados MySQL, não apague os logs antigos antes de se certificar que nenhum servidor “slave” esteja lendo estes arquivos; ! O mysqlbinlog é o utilitário para leitura do log binário; [root@vagrant-centos65 mysql]# mysqlbinlog /var/lib/mysql/mysql-bin.000001! # at 218! #141105 12:45:15 server id 1 end_log_pos 391 CRC32 0xf93a3092 !Query !thread_id=11 !exec_time=0 !error_code=0! SET TIMESTAMP=1415191515/*!*/;! insert into test.t1 set id=1! /*!*/;! # at 391! #141105 12:45:15 server id 1 end_log_pos 422 CRC32 0x75d10a99 !Xid = 34! COMMIT/*!*/;!
  • 8. Relay Logs ! Relay logs são arquivo que armazenam em formato binário o mesmo conteúdo dos logs binário do servidor MASTER; ! Tais logs só existirão em uma instância de bancos de dados MySQL quando em replicação e em servidores que são SLAVEs; ! Estes arquivos de log são lidos pela SQL_THREAD do sistema de replicação nativo e após a leitura, o arquivo é descartado; – Como se trata de um arquivo com dados binários, o mysqlbinlog, programa cliente precisa ser utilizado na sua leitura pelo usuário;
  • 9. Slow Query Log ! O Slow Query Log ou ainda log para consultas lentas, é um log em que o servidor de bancos de dados MySQL utiliza para escrever as consultas com tempo maior que o tempo definido em log_query_time; ! O MySQL (mysqld) escreve uma consulta lenta neste log, logo após a sua execução. O tempo de espera em via de um LOCK TABLES explícito não é contabilizado; ! O tempo mínimo que pode ser definido é 1 e o máximo é 10, medidos em minutos; ! Além de consultas lentas, outras consultas também podem utilizar o Slow Query Log, que pode ser habilitado, alterando o arquivo de opções, adicionando ao agrupamento [mysqld] log-slow-queries [=nome_arquivo]
  • 10. Slow Query Log ! Podemos adicionar ao my.ini ou my.cnf as seguinte opções para verificar outros problemas: – log-queries-not-using-indexes Escreve no log de consultas lentas, as consultas que realizam table scan, ou seja, consultas que não utilizam índices; – log-slow-admin-statements Escreve no log de consultas lentas, as declarações de cunho administrativo que apresentam lentidão, como OPTIMIZE TABLE, ANALYZE TABLE e ALTER TABLE, sendo o último em alguns casos o mais complicado;
  • 11. Slow Query Log #: LOGS! general_log=1 ! log_bin=mysql-bin! slow_query_log=1 # habilita o slow queries! long_query_time=2 # tempo para logar a query! log_queries_not_using_indexes! log_slow_admin_statements! log-error=/var/log/mysqld.log! pid-file=/var/run/mysqld/mysqld.pid!
  • 12. Error Log ! O log de erros, chamado de Error Log, também está localizado no diretório de dados do servidor de bancos de dados MySQL; ! O log de erros é um aruivo com extensão “.err” e contém informações que indicam quando o servidor de bancos de dados MySQL, o mysqld, foi iniciado e foi parado e alguns outros erros críticos de quando o servidor estava rodando; ! Erros de inicialização de Storage Engines, no caso o InnoDB, são facilmente encontrados no log de erros; ! Podemos habilitar o log de erros, adicionando ao arquivo de opções, dentro do agrupamento [mysqld], a seguinte linha: log-error [=nome_arquivo]
  • 13. Error Log ! Podemos ainda, incluir no log também todos os warnings enviados pelo SGBD MySQL, adicionando ao arquivo de opções a seguinte linha: log-warnings [=nome_arquivo]
  • 14. Status File ! O servidor de bancos de dados MySQL cria muitos arquivos de status. Muitos deles localizados no diretório de dados, DATADIR, mas não todos; ! Nesses arquivos são inseridas informações de estado de processos (ID e PID) que são utilizados para enviar sinais à outros programas; ! Tais arquivos tem extensão “.pid”. Para habilitar a criação destes arquivos que são utilizados por outros aplicativos, adicione ao arquivos de opções, dentro do agrupamento [mysqld], a seguinte linha: pid-file [=arquivo_nome]
  • 15. Exercícios ! Com base no conteúdo apresentado, “Logs”, resolva a Lista 7 de exercícios. ! Referência bibliográfica: – Manual on-line; Sakila on the beach!