Mysql: Lista di controllo giornaliero

 

Poi lasciare un piccolo post su come montare una notifica automatica via e-mail che ci dice qual è lo stato del nostro database. Per esempio siamo in grado di gestire un po 'prima di iniziare la nostra giornata di lavoro e prima di partire o durante le vacanze (.. jaja.). Questo esempio è circa un 5.x di MySQL in esecuzione su Debian. Passi nel modo seguente:

  • Controlla uptime del server, memoria e spazio su disco.
     
  • Controlla le ultime copie di backup o tronchi dello stesso
     
  • Ottenere la qualifica di banca dati
     
  • Log di errore dal database.
     
  • Notifica via mail.

Il sistema è quello di costruire uno script che si basa la nostra relazione in un file e poi per posta. Inoltre, in questo esempio lo stato del database arrivare a mysqlreport *. Questo ci dà informazioni sufficienti per sapere che è successo di recente nel database e in grado di rilevare alcun problema se sappiamo che cosa la linea di base.

* Fate attenzione perché è disponibile da versione 5.x

Passo 1) Modificare lo script basato checklist.sh báscia. Come si può vedere non ha alcun segreto perché è sempre giusto redirigere l'output di un comando specifico in un file temporaneo che viene poi attaccato come il corpo di mail o allegati. Il formato e stile e sono cose di ogni ...

 

 

#!/bin/bash

#

#Daily Checklist mysql

#

# I parametri

LOG=/scripts/checklist/check.txt

 

# Qui inizia l'azione con palangari

TXT=''

SL=''

# Machine Stato

TXT='>>> 0.UPTIME'

echo $TXT > $LOG

w >> $LOG

# Memoria Server

TXT='>>> 1.MEMORIA'

echo $SL >> $LOG

echo $TXT >> $LOG

free -m >> $LOG

# Spazio su disco

TXT='>>> 2.Disk Spazio

echo $SL >> $LOG

echo $TXT >> $LOG

df -h >> $LOG

# Últimos backups

TXT='>>>3.BACKUPS'

echo $SL >> $LOG

echo $TXT >> $LOG

ls -lh -t /var/backups_mysql/ >> $LOG

# Stato mysql

TXT='>>>4.Stato   MYSQL'

echo $SL >> $LOG

echo $TXT >> $LOG

mysqlreport –user root –password pwd –all >> $LOG

 

#  Notifica via e-mail

echo “Checklist”|mail .s “MYSQL > Daily Checklist ” ilmasacratore@dataprix.com < $LOG

# Elimina file temp

rm $LOG

 

 

 

 

Passo 2) Autorizzazioni di esecuzione e di programmazione 

Per i sistemi Unix si può usare crontab per pianificare l'esecuzione, dopo aver assegnato i permessi di esecuzione al file per l'utente che la metta in cron

Esempio di e-mail:

 

 

 

0.UPTIME
 09:00:01 up 13:20,  0 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

>>> 1.MEMORIA
             total       used       free     shared    buffers     cached
Mem:           884        877          6          0         44        745
-/+ buffers/cache:         88        795
Swap:          737          0        737

>>> 2.Disk Spazio
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              17G  8.4G  7.9G  52% /
tmpfs                 443M     0  443M   0% /lib/init/rw
tmpfs                 443M     0  443M   0% /dev/shm

>>> 3.BACKUPS
>>> 4.ESTAT MYSQL
MySQL 5.0.32-Debian_7et  uptime 0 13:9:20       Wed Jul 14 09:00:01 2010

__ Key _________________________________________________________________
Buffer used   387.00k of  16.00M  %Used:   2.36
  Current       1.84M            %Usage:  11.52
Write ratio      0.03
Read ratio       0.10

__ Questions ___________________________________________________________
Total           7.61k    0.16/s
  Com_          5.47k    0.12/s  %Total:  71.93
  COM_QUIT        807    0.02/s           10.61
  DMS             665    0.01/s            8.74
  +Unknown        602    0.01/s            7.92
  QC Hits          61    0.00/s            0.80
Slow                6    0.00/s            0.08  %DMS:   0.90
DMS               665    0.01/s            8.74
  SELECT          648    0.01/s            8.52         97.44
  UPDATE           12    0.00/s            0.16          1.80
  DELETE            4    0.00/s            0.05          0.60
  INSERT            1    0.00/s            0.01          0.15
  REPLACE           0    0.00/s            0.00          0.00
Com_            5.47k    0.12/s           71.93
  show_create   1.15k    0.02/s           15.10
  show_status     797    0.02/s           10.48
  show_variab     797    0.02/s           10.48

__ SELECT and Sort _____________________________________________________
Scan            3.92k    0.08/s %SELECT: 605.09
Range               0    0.00/s            0.00
Full join           1    0.00/s            0.15
Range check         0    0.00/s            0.00
Full rng join       0    0.00/s            0.00
Sort scan           7    0.00/s
Sort range          1    0.00/s
Sort mrg pass       0    0.00/s

__ Query Cache _________________________________________________________
Memory usage  106.50k of  16.00M  %Used:   0.65
Block Fragmnt   0.68%
Hits               61    0.00/s
Inserts            65    0.00/s
Prunes              1    0.00/s
Insrt:Prune      65:1    0.00/s
Hit:Insert     0.94:1

__ Table Locks _________________________________________________________
Waited              0    0.00/s  %Total:   0.00
Immediate       1.32k    0.03/s

__ Tables ______________________________________________________________
Open               64 of   64    %Cache: 100.00
Opened          2.01k    0.04/s

__ Connections _________________________________________________________
Max used            3 of  100      %Max:   3.00
Total             810    0.02/s

__ Created Temp ________________________________________________________
Disk table      1.19k    0.03/s
Table           3.52k    0.07/s
File                5    0.00/s

 

 

Ora, chi vuole o sa un po 'di argomento che si può pensare mille cose da aggiungere o le cose che mancano. Per alcune domande specifiche come etc processos numero può essere usato da linea di comando mysqladmin-u-p <utente> <key> <option> per maggiori informazioni interessanti ... Tutti coloro che lo rende a modo suo!