LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl...

23
1 Alessandro “jekil” Tanasi [email protected] http://www.lonerunners.net/ LUGTrieste http://trieste.linux.it/

Transcript of LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl...

Page 1: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

1

Alessandro “jekil” [email protected]://www.lonerunners.net/

LUGTriestehttp://trieste.linux.it/

Page 2: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

2

L E   B A S I   D I   D A T I

● Database

Una collezione di dati, che contengono le informazioni di

interesse per il nostro sistema informativo

● Gestore del Database (DBMS Data Base Management System)

Si occupa della corretta gestione dei nostri dei dati (database)

✔ assicura integrità e consistenza

✔ sicurezza

✔ affidabilità e disponibilità

✔ efficienza e gestione errori

✔ condivisione

Page 3: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

3

P E R C H E   S C E G L I E R E   M y S Q L ?

Velocità Capacità Facilità d'uso Supporto del linguaggio SQL Connettività e sicurezza Portabilità Dimensioni ridotte Costi (licenza GPL e commerciale) Open Source Disponibile per oltre 20 piattaforme

Utilizzato da: NASA, Yahoo, Google Ad, Slashdot, HP, AOL

MySQL[1] è un RDBMS general purporse

Page 4: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

4

P R E S T A Z I O N I

Ha prestazioni di tutto rispetto, può confrontarsi con concorrenti commerciali.

Test eseguito dalla rivista eWeek nel febbraio 2002

fonte http://www.eweek.com

Page 5: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

5

I N S T A L L A Z I O N E

Metodi di installazione: binari precompilati con diversi compilatori per molte piattaforme compilazione dei sorgenti utilizzo del gestore di pacchetti della propria distribuzione

La procedura di installazione è accuratamente descritta nel file readme

Procedura: aggiunta di un gruppo e un utente copia dei binari creazione delle tabelle di sistema

ConfigurazioneLa configurazione di mysql e dei programmi relativi viene memorizzata nel file my.cnf

Page 6: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

6

F U N Z I O N A M E N T O

I dati vengono rappresentati sul file system con directory (database) e file (tabelle)

Le utenze sono memorizzate all'interno delle tabelle di sistema contenute nel database mysql

I registri di log memorizzano gli eventi generati dal DBMS:registro generale delle queryregistro delle query lenteregistro degli aggiornamenti (testo e binario)registro degli errori

Le variabili contengono:variabili di sistema: indicano come il server è stato configuratovariabili di sessione: mantenute per ogni client che si connettevariabili di stato: contengono informazioni statistiche

Page 7: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

7

T I P I   G E S T I T I

Tipi di tabelle: ISAM

Vecchio modello ad accesso sequenziale MyISAM

Maggiore dimensione, migliore gestione indici e compressione, portabilità

MERGECostrutto logico che incorpora più tabelle MyISAM

BDBIl gestore mette a disposizione transazioni e recovery automatico

InnoDBIl gestore mette a disposizione transazioni, locking migliorato, recovery automatico e gestione chiavi esterne

HEAPTabelle temporanee tenute in memoria

Tipi di dati:numerici, stringhe (caratteri e binari), temporali, speciali (OpenGIS)

Page 8: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

8

F U N Z I O N A L I T A '

Chiavi primarie e esterne

definizione di relazioni tra tabelle

Integrità referenziale

vincoli che mantengono i dati consistenti

Indici

su più colonne

fulltext, utili per fare ricerce nel testo

Transazioni

insieme di istruzioni che devono essere eseguite in modo atomico

Subquery

possibilità di annidare una query dentro l'altra, un'alternativa ai join

Page 9: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

9

N U O V E   F U N Z I O N A L I T A '

La versione 5.0 introduce:

Viste

tabella “virtuale” generata dal DBMS

Stored procedures/functions

blocco di istruzioni memorizzate e eseguite sul DBMS

Trigger

procedura scatenata da un evento

Cursori

il programma può accedere alle righe della tabella una alla volta

Information Schema

permette l'accesso ai metadati che definiscono i database

Altro...

Page 10: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

10

U T I L I Z Z O

Avvio mysqld : il demone server mysqld_safe : script che gestisce in modo sicuro il demone

Utilizzo mysql : client testuale strumenti grafici

Medoti di backup mysqldump: ritorna una rappresentazione SQL dei database mysqlhotcopy: script perl che esegue la copia fisica di tabelle e db

Controllo delle tabelle myisamchk: controlla e ripara mysqlcheck: controlla, ripara e ottimizza, usato con il server in

esecuzione

Page 11: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

11

C L I E N T

Page 12: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

12

O T T I M I Z Z A Z I O N E

Meccanismi di ottimizzazione automatici: l'ottimizzatore delle query la cache delle query

Per i programmatori: usare gli indici usare poco il casting e le funzioni non sprecare spazio dichiarare le colonne NOT NULL provare query scritte in vari modi usare OPTIMIZE TABLE

Per gli amministratori: utilizzo della cache disabilitare i gestori non usati compilare con librerie statiche

Page 13: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

13

S I C U R E Z Z A

Impedire accesso al file system, gli utenti non devono poter leggere la directory dei dati Proteggere i file di opzioni Rimuovere account anonimi (vengono installati di default!!) Specificare gli host da cui si collegano gli utenti se possibile Usare connessioni SSL Volendo il server puo' essere messo in una jail chroot Se utilizzato in locale il server deve ascoltare solo su localhost

Page 14: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

14

S T R U M E N T I

Strumenti per amministratori PhpMyAdmin [2]

interfaccia web, amministrazione MySqlAdministrator [3]

amministrazione, controllo, setup MySqlCc [4]

amministrazione base, modifica dati

Strumenti per programmatori QueryBrowser [5]

creazione query assistita DbDesigner [6]

diagrammi logici AquaStudio [7]

creazione query e struttura

Page 15: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

15

I N T E R F A C C I A M E N T O

Esistono API per tutti i linguaggi di programmazione più utilizzati, ad esempio:● C / C++ / C#● Java● Perl● Python● Delphi● Ruby● PHP● e molti altri..

Possibilità di includere il server in modo embedded nell'applicazione.

Page 16: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

16

A L T A   A F F I D A B I L I T A '

Idea: una serie di macchine che condividono gli stessi dati, se unacade le altre prendono il suo posto

inizialmente i dati sono replicati su tutte le macchine gli slave vengono aggiornati

attraverso il binary log del master se il master cade gli slave

prendono il suo posto

Vantaggi: fault tolerance niente single point of failure fail over automatico facilità

Page 17: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

17

C L U S T E R

Idea: distribuire il carico di lavoro su un pull di macchine

la macchina MGM coordina i nodi i nodi DBx contengono il database

e soddisfano le richieste

il motore NDB cluster gestisce il cluster in modo trasparente al sistema operativo

Page 18: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

18

M A X D B

Implementazione di MySQL certificata per l'utilizzo con SAP®

studiato per gestire un gran numero di transazioni supportava già le stored procedures distribuito con interfaccia grafica e web funzioni di amministrazione (job scheduling, eventi, allarmi) disponibile per poche piattaforme supporta sistemi di backup online

Page 19: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

19

C R I T I C H E

Funzionalità non supportate: -- come commento Privilegi a livello di record Mancanza del supporto a particolari tipi di query (ad es. alberi) Supporto ai trigger non completo Supporto elementare ai cursori

[*] supportato dalla versione 5

Vecchie versioni non supportano: l'integrità referenziale le subquery Trigger [*] Stored Procedure [*] Viste [*]

Page 20: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

20

R I F E R I M E N T I

“SQL” M. J. Hernandez, Mondadori

“Basi di dati, modelli e linguaggi di interrogazione” P. Atzeni, McGraw-Hill

“Basi di dati, architetture e linee di evoluzione” P. Atzeni, McGraw-Hill

“MySQL” P. DuBois, Pearson

“SQL The Complete Reference” J. R. Groff, McGraw-Hill

“Foundamentals of database systems” Elmasri/Navathe, Addison Wesley

“MySQL Reference Manual” http://dev.mysql.com/doc/

Page 21: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

21

L I N K S

[1] Homepage MySQL http://www.mysql.com

[2] PhpMyAdmin http://www.phpmyadmin.net

[3] MySQL Administrator http://www.mysql.com/products/administrator/

[4] MySQLCc http://www.mysql.com/products/mysqlcc/

[5] Query Browser http://www.mysql.com/products/query-browser/

[6] DbDesigner http://www.fabforce.net/dbdesigner4/

[7] Aqua Studio http://www.aquafold.com

Page 22: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

22

D O M A N D E

DOMANDE.. 

Grazie per la Vostra attenzione

Page 23: LUGTrieste // · Il gestore mette a disposizione transazioni e recovery automatico ... script perl che esegue la copia fisica di tabelle e db ... MAXDB Implementazione di ...

23

C O P Y R I G H T

Questo documento viene rilasciato sotto licenza Alcoolware, la quale non è altro che una normale licenza Creative Commons Attribute­NonCommercial­ShareALike [1] ma con l'aggiunta che se mi incontrate dobbiamo andare a bere qualcosa.In sintesi è liberamente distribuibile per usi non commerciali, copiabile e modificabile purchè citiate l'autore e la fonte.Se volete distribuire questo documento sul vostro sito siete pregati per favore di comunicarmelo in modo che possa spedirvi le nuove versioni.

[1] http://creativecommons.org/licenses/by-nc-sa/2.0/