Alphorm.com Formation MySQL Administration(1Z0-883)

269
Présentation de la formation: MySQL : Administration (1Z0-883) MySQL : Administration (1Z0-883) alphorm.com™© Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum (1Z0-883) Noureddine DRISSI Expert consultant bases de données Contact : [email protected]

description

La formation complète est disponible ici: http://www.alphorm.com/tutoriel/formation-en-ligne-mysql-1z0-883 MySQL est devenu le serveur de bases de données issu du monde libre le plus largement adopté par les entreprises. A l'issue de cette formation, vous saurez installer et administrer MySQL au quotidien, d'une manière efficace et sécurisée. Cette formation traite aussi des notions avancées de MySQL : réplication, sécurité, sauvegarde, performances et optimisation.

Transcript of Alphorm.com Formation MySQL Administration(1Z0-883)

  • 1. Prsentation de la formation:MySQL : Administration(1Z0-883)Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com

2. Le formateur Noureddine DRISSI Expertise dans le domaine des bases de donnes 15 annes dexprience sur tous les SGBDR du march (Mysql, Oracle, SQL Server,Postgresql,DB2, MongoDB) Issue de lenvironnement bancaire [email protected] Mon profil sur alphorm.com : http://www.alphorm.com/auteur/noureddine-drissi Mes formations sur alphorm.comMySQL : Administration (1Z0-883) alphorm.com 3. Connaissances pralables Connaissances du systme dexploitation Linux/UNIX Exprience professionnelle du langage SQL Exprience professionnelle des bases de donnes relationnelles Exprience en matire de conception de bases de donnesMySQL : Administration (1Z0-883) alphorm.com 4. A propos de ce cours Objectifs : Comprendre et dcrire larchitecture de MySQL Installer et mettre jour MySQL Administrer et configurer MySQL Utiliser les outils MySQL tel que MySQL WorkBench Comprendre et mettre en oeuvre les diffrents moteurs de stockage (InnoDB, MyISAM,MEMORY, CSV...) Comprendre et grer la scurit sous MySQL Comprendre et mettre en oeuvre la rplication sous MySQL Comprendre et dcrire les techniques doptimisation de MYSQL Raliser les oprations de sauvegarde et restaurationMySQL : Administration (1Z0-883) alphorm.com 5. Plan du cours Module 1 : Introduction MySQL Module 2 : Architecture de MySQL Module 3 : Installation de MySQL Module 4 : Configuration de MySQL Module 5 : Clients et outils MySQL Module 6 : Types de donnes MySQL Module 13 : Maintenance des tables sousMySQL Module 14 : Import et export des donnessous MySQL Module 15 : Programmation dans MySQL Module 16 : Sauvegarde et restauration sousMySQL Module 7 : Obtention des mtadonnes Module 8 : Transactions et verrous Module 9 : Moteur de stockage MySQL Module 10 : Le partionnnement sous MySQL Module 11 : Gestion des utilisateurs Module 12 : Gestion de la scurit Module 17 : Rplication sous MySQL Module 18 : Introduction loptimisation desperformances Module 19 : ConclusionMySQL : Administration (1Z0-883) alphorm.com 6. CertificationCette formation vous prpare l'examen de la certification:MySQL for Database Administrators (1Z0-883)MySQL : Administration (1Z0-883) alphorm.com 7. Liens utiles Formations et certifications MySQL http://education.oracle.com Tlchargement MySQL http://www.oracle.com/fr/downloads/index.html Guide officiel : http://www.amazon.com/MySQL-Database-Administrator-Guide-1Z0-883/dp/0071775781MySQL : Administration (1Z0-883) alphorm.com 8. GOMySQL : Administration (1Z0-883) alphorm.com 9. Prsentation de la formation:LenvironnementSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 10. Environnement Prs-requis Espace disque de 20G OS Linux Centos 6.x ou Windows (Server, XP, ...)InternetNom: pyramide01IP: 192.168.1.117Espace disque: 20GoCPU: i7 (4 coeurs)RAM: 1GoOS: Centos 6.3MySQL 5.6MySQL : Administration (1Z0-883) alphorm.com C: 11. Introduction MySQLMySQL : Administration (1Z0-883) alphorm.com 12. Prsentation de MysqlSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 13. Prsentation de MySQL Historique de MySQL Cre par la socit TCX Le 23 mai 1995: premire version de MySQL Maintenue par la socit sudoise MySQL AB Floue sur lorigine du nom MySQL Le 16 janvier 2008: rachat de MySQL AB par Sun Microsystems pour 1 milliardde dollars 2009: acquisition de Sun Microsystems par Oracle Corporation aprsautorisation de la commission europenne 2009: cration de MariaDB en tant que projet Open SourceMySQL : Administration (1Z0-883) alphorm.com 14. Prsentation de MySQL MySQL Systme de gestion de base de donnes Open Source Rapide, robuste et facile dutilisation Architecture client/serveur Fourni avec de nombreux outils Compatibilit avec de nombreux langages de programmation Forte interoprabilit avec le langage PHP Multiplateformes (Unix, Linux et Windows) Interrogeable via SQLMySQL : Administration (1Z0-883) alphorm.com 15. Prsentation de MySQL Les apports de la version 5 Les procdures stockes Les fonctions Les triggers Les curseurs Les vues Possibilit dmuler les vues matrialises Partitionnement des tables Rplication au niveau lignesMySQL : Administration (1Z0-883) alphorm.com 16. Prsentation de MySQLInstallation de MySQLMySQL : Administration (1Z0-883) alphorm.com 17. Installation de MySQLInstallation via packageSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 18. Installation via package Caractristiques La plus simple Ncessite deux packages au minimum- mysql-server-version.rpm- mysql-client-version.rpmExemple de commande sous Centos:shell yum install mysql-server mysql-clientMySQL : Administration (1Z0-883) alphorm.com 19. Pr-installationInstallation partir des sourcesMySQL : Administration (1Z0-883) alphorm.com 20. Installation de MySQLInstallation sous WindowsSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 21. Installation sous Windows Deux solutions Utiliser linstalleur- Simple et rapide Pr-requis: installation de .Net Framework 4.0 Utiliser les binaires- Ncessite de crer un fichier de configuration de linstanceNote: tlchargement de Mysql partir du site http://www.mysql.comMySQL : Administration (1Z0-883) alphorm.com 22. Installation sous WindowsMise jour de MySQLMySQL : Administration (1Z0-883) alphorm.com 23. Installation de MySQLMise jour de MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 24. Mise jour de MySQL Bonnes pratiques En terme de version- Limiter le nombre dcart en terme de version Possibilt de passer dune version mineure une autre version mineure sanspasser par toutes les versions mineures- Passer par toutes les versions manjeures dans le cas dune mise jour duneversion majeure une autre version majeureMySQL : Administration (1Z0-883) alphorm.com 25. Mise jour de MySQL Bonnes pratiques La prparation- Lire la documentation de la version cible- Raliser une sauvegarde complte systmatiquement avant toute opration demise jour (logique et physique)MySQL : Administration (1Z0-883) alphorm.com 26. Mise jour de MySQL Bonnes pratiques Les tapes- Sauvegarde logique et physique- Arrt du serveur MySQL- Mise jour les binaires MySQL- Dmarrage de MySQL- Vrification des tables mysql_upgrade (vrifie toutes les tables + rparation si ncessaire +adaptation des droits)MySQL : Administration (1Z0-883) alphorm.com 27. Installation sous WindowsInstallation de la base factMySQL : Administration (1Z0-883) alphorm.com 28. Installation de MySQLInstallation de la base factSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 29. Installation de la base fact Sources (tlchargeable partir de la plateforme Alphorm) Excution du script fact.sql shellmysql -uroot [ -P ] numero_port [ -p ]/chemin_du_scriptMySQL : Administration (1Z0-883) alphorm.com 30. Installation de la base factArchitecture de MySQLMySQL : Administration (1Z0-883) alphorm.com 31. Architecture de MySQLInstance MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 32. Instance MySQL Une instance est caractrise par Un fichier de configuration (my.cnf pour UNIX/Linux et my.ini pour Windows) Un processus serveur mysqld Une socket (accs local) ou port dcoute TCP/IP (par defaut 3306) Un moteur MySQL (basedir) Un rpertoire de stockage des donnes (datadir) Un cache mmoire (avec des sous caches) Des fichiers de logs (log binaire, log derreur, log des requtes lentes, log gnral) Des bases de donnes (mysql, information_schema et performance_schema)MySQL : Administration (1Z0-883) alphorm.com 33. Instance MySQL Configuration type du fichier my.cnf[mysql]port=3307[mysqld]bind-address=0.0.0.0port=3307basedir=/usrdatadir=/u101/mysql/data/instance01socket=/u101/mysql/sockets/instance01/mysql3307.socklog-error=/u101/mysql/log/instance01/mysqld3307.logMySQL : Administration (1Z0-883) alphorm.com 34. Instance MySQL Les tapes dinitialisation dune nouvelle instance Cration de laborescence Attribution des droits Cration du fichier my.cnf Excution du script mysql_install_db pour initialiser les bases systmes(mysql)shell mysql_install_db --basedir=chemin_moteur --datadir=chemin_de_stockage Dmarrage de linstanceshell mysqld --defaults-file=chemin/fichier_my.cnfMySQL : Administration (1Z0-883) alphorm.com 35. Instance MySQLArrt et dmarrage dune instanceMySQL : Administration (1Z0-883) alphorm.com 36. Architecture de MySQLArrt et dmarrage duneinstanceSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 37. Arrt et dmarrage dune instance Dmarrage de MySQL Sous UNIX/LINUX- En utilisant le script /etc/init.d/mysqldshell /etc/init.d/mysqld start | restart- En utilisant le script mysqld_safeshell mysqld_safe --defaults-file=path --basedir=chemin_moteur --datadir=chemin_data --log-log-error=chemin_log --user=user_mysql- En utilisant directement le programme mysqld Sous Windows- En utilisant le gestionnaire de services- Via la commande: net start nom_serviceMySQL : Administration (1Z0-883) alphorm.com 38. Arrt et dmarrage dune instance Arrt de MySQL Sous UNIX/LINUX- En utilisant le script /etc/init.d/mysqldshell /etc/init.d/mysqld stop- En utilisant le programme mysqladminshell mysqladmin [ -u user ] [ -p ] [ -h hostname ] shutdown Sous Windows- En utilisant le gestionnaire de services- Via la commande: net stop nom_serviceMySQL : Administration (1Z0-883) alphorm.com 39. Arrt et dmarrage dune instanceLe cache MySQLMySQL : Administration (1Z0-883) alphorm.com 40. Architecture de MySQLLe cache MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 41. Le cache MySQL Architecture (cache dune instance)Mmoire partage Mmoire par threadkey_buffer_sizeinnodb_buffer_pool_sizetmp_table_sizesort_buffer_sizetable_cachequery_cacheread_buffer_size......MySQL : Administration (1Z0-883) alphorm.com 42. Le cache MySQLLes logs MySQLMySQL : Administration (1Z0-883) alphorm.com 43. Architecture de MySQLLes bases de donnessous MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 44. Les bases de donnes sous MySQL Racine datadirBases dedonnesJournauxJournauxbinaires pourle moteurbinaires pourle moteurinnodbinnodbFichier datapour lestablesinnodbMySQL : Administration (1Z0-883) alphorm.com 45. Les bases de donnes sous MySQL Gnralits Une base MySQL est constitue dun rpertoire identique au nom de la base Le rpertoire contient des fichiers- Extension: .frm (structure de la table) Lemplacement des bases est spcifi via le paramtre datadir Une base = schema Il existe trois bases de donnes par dfaut lors de linstallation- mysql = base systme- information_schema = dictionnaire de donnes (virtuelle)- performance_schema (depuis a version 5.5)MySQL : Administration (1Z0-883) alphorm.com 46. Les bases de donnes sous MySQL Caractristiques Le nom de la base de donnes est sensible la casse- lower_case_table_names = 1 (pour forcer la cration en miniscule) Pour travailler, une session doit possder une base de donnes courante. Une rfrence une table sans prfixe dsigne cette table dans la base de donnescourante Pour connatre la base de donnes courantemysql SELECT database(); Pour changer de base de donnes courantemysql use nom_baseMySQL : Administration (1Z0-883) alphorm.com 47. Les bases de donnes sous MySQL Cration et suppression La commande CREATE DATABASE permet de crer une base de donnes. Syntaxe gnralemysql CREATE DATABASE nom_base; La commande DROP DATABASE permet de supprimer une base de donnes Syntaxe gnralemysql DROP DATABASE nom_base;MySQL : Administration (1Z0-883) alphorm.com 48. Les bases de donnes sous MySQLLa configuration de MySQLMySQL : Administration (1Z0-883) alphorm.com 49. Configuration de MySQLLes mthodes deconfiguartionSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 50. Les mthodes de configuration Prsentation Configuration lors de la compilation avec le script configure Dans le fichier de configuaration my.cnf (my.ini sous Windows) Directement en tant que paramtre avec le programme mysqld Dune manire dynamique chaudMySQL : Administration (1Z0-883) alphorm.com 51. Les mthodes de configuration Configuration via le fichier my.cnf Localisaton- Linux /etc/, /etc/mysql, SYSCONFDIR, $MYSQL_HOME/ et ~/, .SYSCONFDIR Visualisation la liste des rprtoires utiliss par MySQL$ mysqld --help --verbose | grep less- Windows WINDIRmy.ini, WINDIRmy.cnf, C:my.ini, C:my.cnf, INSTALLDIRmy.ini etINSTALLDIRmy.cnfNote: le fichier my.cnf est utilis par tous les programmes fournis par MySQL(mysqld, mysql, mysqldump, mysqld_safe, myisamchk...)MySQL : Administration (1Z0-883) alphorm.com 52. Les mthodes de configuration Organisation du fichier my.cnf Organiser en section- Chaque section correspond un nom de programme sous la forme [ nom_programme ]- my_print_defaultsnom_sectionpermet de visualiser les options dune section Chaque paramtre est de la forme- nom_paramtre = valeur Pour les options binaires, il suffit de spcifier le nom du paramtre- enable-innodb Les lignes en commentaires commencent par # ou un ; Possibilit dinclure des fichiers- !include nom_fichier.cnf et !includedirchemin MySQL : Administration (1Z0-883) alphorm.com 53. Les mthodes de configuration Modles de fichier my.cnf my-small.cnf (poste de travail) my-medium.cnf (poste de travail) my-large.cnf (serveur avec mois de 2 de Go de RAM) my-huge.cnf (pour les serveurs avec 2Go de RAM) my-heavy-4G.cnf (pour les serveurs avec 4Go de RAM)MySQL : Administration (1Z0-883) alphorm.com 54. Les mthodes de configuration Paramtrage via le programme mysqld Les paramtres sont prcds par -- Les mmes que ceux spcifis dans le fichier my.cnf Pour connatre la liste exhaustive des paramtresmysqld --help --verbose Possibilit de spcifier un fichier en paramtre mysqld- --defaults-file=fichier.cnf- --defaults-extra-file=fichier.cnfMySQL : Administration (1Z0-883) alphorm.com 55. Les mthodes de configuration Paramtrage dynamique de MySQL Deux niveaux de modifications- Au niveau session: SET SESSION paramtre = valeur Toutes les variables nont pas une porte au niveau session- Au niveau serveur: SET GLOBAL paramtre = valeur Toutes les variables nont pas une porte SESSION et GLOBAL Ncssite davoir le privilge SUPER Stocks en cache uniquement (perte aprs redmarrage du serveur)MySQL : Administration (1Z0-883) alphorm.com 56. Les mthodes de configurationAffichage de la configurationMySQL : Administration (1Z0-883) alphorm.com 57. Configuration de MySQLAffichage de laconfigurationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 58. Affichage de la configuration Les mthodes de visualisation des paramtres MySQL Directement dans le fichier my.cnf En utilisant la commande SHOW GLOBAL VARIABLES En utilisant les tables GLOBAL_VARIABLES du schma virtuel INFORMATION_SCHEMA- Pour visualiser les variables de niveau session, il faut utiliser la table SESSION_VARIABLES En utilisant la commande SELECT @@global.nom_variable En utilisant la commande STATUS pour afficher ltat du serveurMySQL : Administration (1Z0-883) alphorm.com 59. Affichage de la configurationPrsentation des principauxparamtres MySQLMySQL : Administration (1Z0-883) alphorm.com 60. Configuration de MySQLLes principaux paramtresMySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 61. Les principaux paramtres MySQL Configuration des logsParamtres Descriptionlog-bin Activation des logs binaireslog_output Permet de dfinir le type de journalisation (table, fichier ou aucun)slow_query_log_file Permet de dfinir lamplacement du journal des requtes lentesslow_query_log Activation du journal des requtes lenteslong_query_time Permet de dfinir la dure dxecution dune requte avant de la journaliserlog-error Permet de spcifier le journal des erreursgeneral_log_file Permet de spcifier le journal des traces gnrales...MySQL : Administration (1Z0-883) alphorm.com 62. Les principaux paramtres MySQL Configuration de linstanceParamtres Descriptionport Numro de port dcoute pour les connexions TCP/IPsocket Socket UNIX pour les connexions localesbasedir Emplacement du moteur MySQLdatadir Emplacement de stockages des donnestmpdir Emplacement pour stocker les objets temporairesdefault_storage_engine Moteur de stockage du serveurdefaults-file Fichier dinialisation de linstancemax_connections Nombre de connexions maximum linstanceMySQL : Administration (1Z0-883) alphorm.com 63. Les principaux paramtres MySQL Configuration du cache mmoireParamtres Descriptioninnodb_buffer_pool_size Taille du cache pour les donnes et indexes innodbinnodb_file_per_table Permet de crer un fichier .ibd par tableinnodb_log_buffer_size Taille du cache des journaux dinnodbinnodb_log_file_size Taille des fichiers journaux dinnodbinnodb_log_files_in_group Nombre de fichier journaux dinnodbmax_heap_table_size Taille maximale des tables de type MEMORYtmp_table_size Taille maximale en mmoire des tables temporaires...MySQL : Administration (1Z0-883) alphorm.com 64. Les principaux paramtres MySQLClients et outils MySQLMySQL : Administration (1Z0-883) alphorm.com 65. Clients et outils MySQLLoutil mysqlSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 66. Loutil mysql Caractristiques Permet dxecuter les commandes SQL: mysql [ options ]- Les principales optionsOptions Description--help Laide en ligne-h La machine qui hberge linstance MySQL-u Le user qui se connecte MySQL-p Le mot de passe-e Le script xcuter-P Le port dcoute de linstance-D Nom de la base...MySQL : Administration (1Z0-883) alphorm.com 67. Loutil mysqlLoutil mysqlshowMySQL : Administration (1Z0-883) alphorm.com 68. Clients et outils MySQLLoutil mysqlshowSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 69. Loutil mysqlshow Caractristiques Permet de lister la liste des bases, tables et colonnes- Utilise les mmes options de connection que le client MySQL Syntaxe mysqlshow [OPTIONS] | [BASE] | [TABLE] | [CHAMP]MySQL : Administration (1Z0-883) alphorm.com 70. Loutil mysqlshowLoutil mysqladminMySQL : Administration (1Z0-883) alphorm.com 71. Clients et outils MySQLLoutil mysqladminSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 72. Loutil mysqladmin Caractristiques Utilitaire pour xcuter des commandes dadministration- Utilise les mmes options de connection que le client MySQLCommandes Descriptioncreate Permet de crer une base de donnesdrop Permet de supprimer une base de donnesping Permet de tester laccs une instance MySQLprocesslist Permet dafficher les sessions en coursrefresh Vide de la mmoire toutes les tables, puis ferme et rouvre les fichiers de logsstatus Affiche des statistiques dutilisation de linstanceshutdown Permet darrter une instancevariables Affiche la liste des variables de linstanceversion Affiche la version de MySQL...MySQL : Administration (1Z0-883) alphorm.com 73. Loutil mysqladminLes outils graphiquesdadministrationMySQL : Administration (1Z0-883) alphorm.com 74. Clients et outils MySQLLes interfaces graphiquesdadministrationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 75. Les interfaces graphiques dadministration Les principaux outils graphiques PHPMyAdmin (Open Source) Pr-requis:- Un serveur web : Apache, IIS- Un interprteur PHP Plus maintenus- MySQL Administrator- MySQL Query Browser- MySQL Migration ToolkitMySQL : Administration (1Z0-883) alphorm.com 76. Les interfaces graphiques dadministration Les principaux outils graphiques MySQL Workbench (anciennement MySQL Administrator)- Tlchargement: http://dev.mysql.com/downloads/tools/workbench/- Documentation : http://dev.mysql.com/doc/workbench/en/index.html- Dmos : http://www.mysql.fr/products/workbench/demo.html- MySQL Workbench Community: gratuit- MySQL Workbench Standard : environ 80/an (version pro, incluant notamment desfonctionnalits de synchronisation, de validation et de documentation)- Diffrences entre les 2 versions : http://www.mysql.fr/products/workbench/features.html- Multi-plateforme: Windows, Linux et Mac OSMySQL : Administration (1Z0-883) alphorm.com 77. Les interfaces graphiques dadministration MySQL Workbench (outil unifi) Permet- Crer,modifier ou supprimer des objets- De grer les comptes utilisateurs- Deffectuer toutes les oprations dadministration dune base de donnes- De faire de la modlisation (Design)- Du dveloppement (Develop)- De ladministration (Administer)- De migrer des donnes dun autre SGBDR vers MySQLMySQL : Administration (1Z0-883) alphorm.com 78. Les interfaces graphiques dadministrationLes types de donnes MySQLMySQL : Administration (1Z0-883) alphorm.com 79. Les types de donnes MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 80. Les types de donnes MySQL Les diffrents types Trois grands types- Les types numriques- Les types Date et heure- Les types de chanesMySQL : Administration (1Z0-883) alphorm.com 81. Les types de donnes MySQL Les types numriques Types de donnes entiersType Intervalle Taille (octets) DescriptionTINYINT[(TM)] -127 128 1 Entiers trs courtsTINYINT[(TM)] UNSIGNED 0 255 1 Entiers trs courtsSMALLINT[(TM)] UNSIGNED -32768 32767 2 Entiers trs courtsMEDIUMINT[(TM)] -8388608 8388607 3 Entiers de taille moyenneMEDIUMINT[(TM)] UNSIGNED 0 16777215 3 Entiers de taille moyenneINT[(TM)] -2^31 2^31-1 4 EntiersINT[(TM)] UNSIGNED 0 2^32-1 4 EntiersBIGINT[(TM)] -2^63 2^63-1 8 Entiers largesBIGINT[(TM)] UNSIGNED 0 2^64-1 8 Entiers largesMySQL : Administration (1Z0-883) alphorm.com 82. Les types de donnes MySQL Les types numriques Types de donnes virgule flottanteType Intervalle Taille (octets) DescriptionFLOAT(prcision) Dpend de la prcision varie =24 pour un nombre simple24 et =53 pour un nombreen double prcisionFLOAT[(TM,P)] + ou -1.175494351E-384 Simple prcision = FLOAT(4)+ ou -3.402823466E+38DOUBLE[(TM,P)] + ou -1.797693134862357E+308+ ou -2.2250738585072014E-3088 Double prcision = FLOAT(8)DECIMAL[(TM,P)] varie Enregistr dans un CHARMySQL : Administration (1Z0-883) alphorm.com 83. Les types de donnes MySQL Les types Date et heure Types de donnes date et heureType Intervalle DescriptionDATE 1000-01-01 9999-12-31 Date affiche au format YYYY-MM-DDTIME -838:59:59 838:59:59 Heure affiche au format HH:MM:SSDATETIME 1000-01-01 00:00:00Date et heure affiches au format YYYY-MM-MySQL9999-12-3 23:59:59MM-DDHH:MM:SSTIMESTAMP[(TM)] 1970-01-01 00:00:00 HorodatageYEAR[(TM)] 70 69 (1970 2069) Anne affichs sur 2 ou 4 digits: Administration (1Z0-883) alphorm.com 84. Les types de donnes MySQL Les types de chanes Types de donnes de chane classiqueType Intervalle Description[NATIONAL] CHAR(TM) 1 255 Chane de longueur fixe[NATIONAL] VARCHAR(TM) 1 255 Chane de longueur variableMySQL : Administration (1Z0-883) alphorm.com 85. Les types de donnes MySQL Les types de chanes Types de donnes de chane TEXT et BLOBType Intervalle DescriptionTINYBLOB 255 (2^8-1) Objet binaire courtTINYTEXT 255 (2^8-1) Text courtBLOB 65535 (2^16-1) Objet binaire de taille normaleTEXT 65535 (2^16-1) Texte de taille normaleMEDIUMBLOB 16777215 (2^24-1) Objet binaire de taille moyenneMEDIUMTEXT 16777215 (2^24-1) Texte de taille moyenneLONGBLOB 4294967295 (2^32-1) Objet binaire de grande tailleLONGTEXT 4294967295 (2^32-1) Texte de grande tailleMySQL : Administration (1Z0-883) alphorm.com 86. Les types de donnes MySQL Les types de chanes Types de donnes de chane ENUM et SETType Nombre de valeur MAX DescriptionENUM(valeur1,valeur2,valeur2,...)65535 Les valeurs doivent obligatoirement trescontenu dans la listeSET(valeur1,valeur2,...) 64 Text courtMySQL : Administration (1Z0-883) alphorm.com 87. Les types de donnes MySQL Optimisation du typeshell SELECT colonne from TABLE PROCEDURE ANALYSE() GMySQL : Administration (1Z0-883) alphorm.com 88. Les types de donnes MySQLObtention des mtadonnesMySQL : Administration (1Z0-883) alphorm.com 89. Obtention des mtadonnesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 90. Obtention des mtadonnes La base INFORMATION_SCHEMA Constitue le dictionnaire de donnes MySQL Disponible depuis la version 5.0.2 de MySQL Les objets sont des vues (non modifiable) Base de donnes (schma) virtuelle: pas de fichiers physiques Fournis un accs aux mtadonnes sur Les bases Les tables, les colonnes, les contraintes, les vues, etc., des bases de donnes stockes sur leserveur MySQL. Les types de donnes des colonnes ...MySQL : Administration (1Z0-883) alphorm.com 91. Obtention des mtadonnes La base INFORMATION_SCHEMA Les principales vuesVues DescriptionSCHEMATA Fournit des informations sur les bases de donnesTABLES Fournit des informations sur les tablesCOLUMNS Fournit des informations sur les colonnes dans les tablesSTATISTICS Fournit des informations sur les tables dindexUSER_PRIVILEGES Fournit des informations sur les droits globauxSCHEMA_PRIVILEGES Fournit des informations sur les droits des schmasTABLES_PRIVILEGES Fournit des informations sur les droits des tablesCOLUMN_PRIVILEGES Fournit des informations sur les droits relis aux colonnesCHARACTER_SETS Fournit des informations sur les jeux de caractrs disponbiblesROUTINES Fournit des informations sur les procdures stockes et les fonctionsVIEWS Fournit des informations sur les vues dans les bases...MySQL : Administration (1Z0-883) alphorm.com 92. Obtention des mtadonnesMoteurs de stockage MySQLMySQL : Administration (1Z0-883) alphorm.com 93. Moteurs de stockage MySQLPrsentationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 94. Moteurs de stockage MySQL Caractristiques MySQL Un moteur de stockage, cest quoi ? Spcifie la manire dont seront stocks et utiliss les donnes Les plus utiliss: INNODB, MYISAM et MEMORY Architecture pluggable storage engine Possibilit dutiliser plusieurs moteurs dans une mme base de donnes Le choix du moteur se fait lors de la cration de la table Le choix du moteur est rversible (ALTER TABLE)MySQL : Administration (1Z0-883) alphorm.com 95. Moteurs de stockage MySQL Le choix du moteur Dpend de La manire de stocker les donnes La criticit des donnes La gestion ou pas des transactions La stratgie de sauvegarde/restauration Les types de verrous La persistance des donnes La rplicationMySQL : Administration (1Z0-883) alphorm.com 96. Moteurs de stockage MySQL Les moteurs les plus connus INNODB MYISAM MEMORY ARCHIVE CSV FEDERATED ...MySQL : Administration (1Z0-883) alphorm.com 97. Moteurs de stockage MySQL Quelques commandes utilesCommandes DescriptionSHOW ENGINES Affiche la liste des moteurs disponiblesSELECT * FROM INFORMATION_SCHEMA.ENGINES; Idem que SHOW ENGINESSHOW CREATE TABLE nom_table; Affiche des informations sur la structure dune tableSHOW TABLE STATUS LIKE 'CATEGORIES' G Fournit des informations sur la structure dune tableSELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,ENGINEFROM TABLESWHERE TABLE_SCHEMA=nom_base';Fournit des informations sur les tables dune base dedonnes en utilisation la base INFORMATION_SCHEMAMySQL : Administration (1Z0-883) alphorm.com 98. Moteurs de stockage MySQLLe moteur INNODBMySQL : Administration (1Z0-883) alphorm.com 99. Moteurs de stockage MySQLLe moteur InnoDBSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 100. Le moteur InnoDB Caractristiques gnrales du moteur InnoDB Moteur par dfaut Les donnes et les indexes sont stocks dans des fichiers appels espace de table (tablespace) InnoDB fournit MySQL un gestionnaire de table transactionnelle Conforme la norme ACID (Atomique, Cohrent, Isol et Durable) Prise en compte de COMMIT et ROLLBACK Capacits de restauration aprs crash InnoDB utilise un verrouillage au niveau des lignes Fournit des lectures cohrentes comme Oracle, sans verrous Supportent les contraintes de cls trangres (FOREIGN KEY) et lintgrit rfrentielle Possibilit de raliser des sauvegardes chaud (logique et physique)MySQL : Administration (1Z0-883) alphorm.com 101. Le moteur InnoDB Gestion du stockage du moteur InnoDB MySQL enregistre la structure de table dans le fichier .frm (dans le rpertoire de base de donnes) Deux types de stockage pour les donnes Un fichier par table avec lextension .ibd (par defaut depuis la version 5.6.6)- innodb_file_per_table = ON- Possibilit de stocker le fichier .ibd dans un emplacement spcifique (depuis la version 5.6) CREATE TABLE spcifications DATA DIRECTORY = chemin. CREATE INDEX nom_index ON nom_table(nom_champ) INDEX DIRECTORY = chemin; Dans un un ou plusieurs tablespaces (fichiers ibdata)- innodb_data_file_path = ibdata1:12M:autoextend Contient le dictionnaire de donnes et les undo logs pour lannulation des transactionsMySQL : Administration (1Z0-883) alphorm.com 102. Le moteur InnoDB Architecture globale du moteur Innodb Utilise deux journaux de transactions: ib_logfile0 et ib_logfile1- Permet de maintenir la cohrene des donnes aprs un arrt intempestif- Nombre de fichiers journaux dfini dans le paramtre innodb_log_files_in_group- Possibilit de modifier la taille des fichiers journaux innodb_log_file_sizeUtilise des undo logs pour lannulation des transactions (rollback) - Stocks dans le fichier spcifi par le paramtre innodb_data_file_path- Possibilit (depuis la 5.6) de sparer les undo logs dans un tablespace ddi innodb_undo_directory : rprtoire pour le tablespace des undo logs innodb_undo_logs : nombre de rollback segments du tablespace innodb_undo_tablespaces : nombre de tablespace contenant des undo logs MySQL : Administration (1Z0-883) alphorm.com 103. Le moteur InnoDB Fonctionnement du moteur InnodbMmoireinnodb_innodb_log_buffer_size buffer_pool_sizeinnodb_flush_log_at_trx_commitcommitDisquesib_logfile0.ibdibdata1innodb_data_file_pathinnodb_log_files_in_groupinnodb_log_file_sizeCHECKPOINTSMySQL : Administration (1Z0-883) alphorm.com 104. Le moteur InnoDBLe moteur MyISAMMySQL : Administration (1Z0-883) alphorm.com 105. Moteurs de stockage MySQLLe moteur MyISAMSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 106. Le moteur MyISAM Caractristiques gnrales du moteur MyISAM Ses particularits sont : Rapidit en lecture Recherche fulltexte Verrouillage au niveau des tables Pas de sauvegarde chaud MyISAM utilise trois fichiers Un fichier pour la structure de la table (.frm) par table: nom_table.frm Un fichier de donnes (.MYD): nom_table.MYD Un fichier d'index (.MYI) par table: nom_table.MYI Non transactionnel Ne supporte pas les cls trangresMySQL : Administration (1Z0-883) alphorm.com 107. Le moteur MyISAM Types de format pour les tables MyISAM Statique (par dfaut sauf pour les types VARCHAR, VARBINARY, BLOB et TEXT) Rapide Moins sensible aux crashs Dynamique Prend moins de place sur le disque Moins rapide et plus sensible aux crashs tant donn les enttes ncessaires Compress La table utilise trs peu d'espace En lecture seule Les performances en lectures sont peu impactes Compression avec myisampack et dcompression + mise jour des indexes avec myisamchkMySQL : Administration (1Z0-883) alphorm.com 108. Le moteur MyISAMLe moteur MEMORYMySQL : Administration (1Z0-883) alphorm.com 109. Moteurs de stockage MySQLLe moteur MEMORYSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 110. Le moteur MEMORY Caractristiques gnrales du moteur MEMORY Existe depuis la version 3.23.25 Moteur non-transactionnel et non support des cls trangres Utilise des index hachs au lieu du standard B-Tree Les indexes et les donnes des tables sont stockes en mmoire uniquement (sauf la structure .frm) Avantage : table extrmement rapides Inconvnient : un plantage du serveur mne une perte des donnes Domaines d'application : Donnes volatiles Tables temporaires Fort besoin en accs rapide aux donnes ;MySQL : Administration (1Z0-883) alphorm.com 111. Le moteur MEMORYLes autres moteurs MYSQLMySQL : Administration (1Z0-883) alphorm.com 112. Moteurs de stockage MySQLLe autres moteurs MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 113. Les autres moteurs MySQL Le moteur Archive Utilise un fichier .frm pour la structure et un fichier .ARZ pour les donnes Compression des donnes lors du stockage Utilis pour stocker des donnes brutes Moteur non-transactionnel et non support des cls trangres Seules deux commandes sont possibles : SELECT et INSERT Domaines d'application :- Enregistrement de logsMySQL : Administration (1Z0-883) alphorm.com 114. Les autres moteurs MySQL Le moteur CSV Stock les donnes au format CSV (Comma Separated Values) La table est reprsente par- Un fichier nom_table.CSV pour les donnes, un fichier nom_table.frm pour la structure et un fichiernom_table.CSM pour ltat ltat et le nombre de ligne Non transactionnel Pas de sauvegarde chaud Refus dindex Verrou au niveau tableMySQL : Administration (1Z0-883) alphorm.com 115. Les autres moteurs MySQL Le moteur MERGE Offre la possibilit de grouper des tables de structures identique pour enfaciliter la manipulation Une table MERGE est identifiable par un fichier dextension .frm qui est la structure de la table de dfinition et unfichier dextension .MRG qui contient la liste des fichiers index (.MYI) Toutes les tables utilises par la table MERGE doivent se trouver dans lamme base de donnes que la table MERGEMySQL : Administration (1Z0-883) alphorm.com 116. Les autres moteurs MySQL Le moteur FEDERATED Permet de dporter les donnes sur un serveur distant Seule une copie de la dfinition de la table est stocke sur le serveur local Accde des tables dans une base de donnes distante, plutt que dans des fichiers locaux Avantages Permet de rpartir la charge Pointer sur plusieurs bases de donnes distantes si elles acceptent les accs distants Supporte les indexesMySQL : Administration (1Z0-883) alphorm.com 117. Les autres moteurs MySQL Autres moteurs NDB Cluster XtraDBMySQL : Administration (1Z0-883) alphorm.com 118. Les autres moteurs MySQL Rcapitulatif des caractristiques pour les principaux moteursMoteurs Type de verrous Gestion des transactions Stockage sur disque Sauvegarde chaudInnodb LigneMyISAM TableMemory TableArchive LigneCSV TableFederated TableNDB Cluster LigneXtraDB LigneMySQL : Administration (1Z0-883) alphorm.com 119. Les autres moteurs MySQLTransactions et verrousMySQL : Administration (1Z0-883) alphorm.com 120. Les trasactions et verrousLe autres moteurs MySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 121. Les autres moteurs MySQL Le moteur Archive Utilise un fichier .frm pour la structure et un fichier .ARZ pour les donnes Compression des donnes lors du stockage Utilis pour stocker des donnes brutes Moteur non-transactionnel et non support des cls trangres Seules deux commandes sont possibles : SELECT et INSERT Domaines d'application :- Enregistrement de logsMySQL : Administration (1Z0-883) alphorm.com 122. Les autres moteurs MySQL Le moteur CSV Stock les donnes au format CSV (Comma Separated Values) La table est reprsente par- Un fichier nom_table.CSV pour les donnes, un fichier nom_table.frm pour la structure et un fichiernom_table.CSM pour ltat ltat et le nombre de ligne Non transactionnel Pas de sauvegarde chaud Refus dindex Verrou au niveau tableMySQL : Administration (1Z0-883) alphorm.com 123. Les autres moteurs MySQL Le moteur FEDERATED Permet de dporter les donnes sur un serveur distant Seule une copie de la dfinition de la table est stocke sur le serveur local Accde des tables dans une base de donnes distante, plutt que dans des fichiers locaux Avantages Permet de rpartir la charge Pointer sur plusieurs bases de donnes distantes si elles acceptent les accs distants Supporte les indexesMySQL : Administration (1Z0-883) alphorm.com 124. Les autres moteurs MySQL Autres moteurs NDB Cluster XtraDBMySQL : Administration (1Z0-883) alphorm.com 125. Les autres moteurs MySQL Rcapitulatif des caractristiques pour les principaux moteursMoteurs Type de verrous Gestion des transactions Stockage sur disque Sauvegarde chaudInnodb LigneMyISAM TableMemory TableArchive LigneCSV TableFederated TableNDB Cluster LigneXtraDB LigneMySQL : Administration (1Z0-883) alphorm.com 126. Les autres moteurs MySQLTransactions et verrousMySQL : Administration (1Z0-883) alphorm.com 127. Les transactions et verrousLes niveaux disolationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 128. Les niveaux disolation Les niveaux disolation MySQL offre quatre niveaux disolation- REPEATABLE-READ (par dfaut)- READ-COMMITTED- READ-UNCOMMITTED- SERIALIZABLE Identique REPEATABLE-READ et toutes les lectures sont converties en SELECT ... LOCKIN SHARE MODE Pour connatre le niveau disolation du serveur MySQL- show global variables like %isolation%;- select @@global.tx_isolation;MySQL : Administration (1Z0-883) alphorm.com 129. Les niveaux disolation Possibilit de modifier le niveau disolation Au niveau instance- Dans le fichier my.cnf Paramtre transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED| REPEATABLE-READ | SERIALIZABLE}- Avec la commande SET GLOBAL Au niveau session Avec la commande SET SESSION Syntaxe de la commande SET SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED |REPEATABLE READ | SERIALIZABLE}MySQL : Administration (1Z0-883) alphorm.com 130. Les niveaux disolationLes verrousMySQL : Administration (1Z0-883) alphorm.com 131. Les transactions et verrousLes verrousSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 132. Les verrous Mthodes de verrouillage Verrouillage au niveau table pour les moteurs (MyISAM, MEMORY) Verrouillage au niveau ligne (InnoDB)- Mcanisme de MVCC (MultiVersion Concurrency Control) Types de verrous Verrous en lecture (partag) Verrous en criture (exclusif) Le processus de verrouillage Si il n'y a pas de verrou sur la table, pose un verrou en criture dessus. Sinon, soumet une requte de verrouillage dans la queue de verrous d'critureMySQL : Administration (1Z0-883) alphorm.com 133. Les verrous Verrou explicite La commande utiliser est LOCK TABLES- READ pose un verrou partag ;- WRITE pose un verrou exclusif ;- READ_LOCAL pose un verrou partag permettant les insertions concurrentes pour les tables MyISAM.MySQL : Administration (1Z0-883) alphorm.com 134. Les verrousLe partitionnementMySQL : Administration (1Z0-883) alphorm.com 135. Le partitionnementPrsentationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 136. Le partitionnement Introduction Permet de diviser une table physique en plusieurs partitions en fonction des donnesquelle contient Pourquoi partitionner ? Pour grer la monte en charge Pour grer de gros volumes de donnes Pour limiter les accs aux niveau des IO Pour parallliser les oprations de lecture et dcriture au niveau disque Effacer rapidement les donnes (scaling back)MySQL : Administration (1Z0-883) alphorm.com 137. Le partitionnement Les pr-requis pour utiliser le partitionnementmysql SHOW PLUGINS Les contraintes lis au partitionnement Toutes les partitions dune mme table doivent utiliser le mme moteur de stockage Limiter 8192 partitions sous-partitions comprisesMySQL : Administration (1Z0-883) alphorm.com 138. Le partitionnement Les principaux types de partitionnement Le partitionnement de type RANGE Le partitionnement de type LIST Le partitionnement de type HASH Le partitionnement de type KEYMySQL : Administration (1Z0-883) alphorm.com 139. Le partitionnementLe partitionnement par RANGEMySQL : Administration (1Z0-883) alphorm.com 140. Le partitionnementLe partitionnement detype RANGESite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 141. Le partitionnement de type RANGE Le partitionnement de type RANGE Caractristiques- Permet de sparer physiquements les donnes dune table par intervalles de valeurs SyntaxeCREATE TABLE nom_table (champ1 type contrainte,... )PARTITION BY RANGE (expression)PARTITION nom_partition VALUES LESS THAN (valeur),..PARTITION nom_partition VALUES LESS THAN MAXVALUE);MySQL : Administration (1Z0-883) alphorm.com 142. Le partitionnement de type RANGE Le partitionnement de type RANGE COLUMNS Caractristiques- A partir de MySQL 5.5- Permet deffectuer le partitionnement dune table en fonction dune ou plusieurs colonnes SyntaxeCREATE TABLE nom_table (champ1 type contrainte,... )PARTITION BY RANGE (champ,champ)PARTITION nom_partition VALUES LESS THAN (valeur,valeur),..PARTITION nom_partition VALUES LESS THAN (MAXVALUE,MAXVALUE));MySQL : Administration (1Z0-883) alphorm.com 143. Le partitionnement de type RANGELe partitionnement de type LISTMySQL : Administration (1Z0-883) alphorm.com 144. Le partitionnementLe partitionnement detype LISTSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 145. Le partitionnement de type LIST Le partionnement de type LIST Caractristiques- Permet de dfinir une liste de nombres entiers unique pour chaque partition- MySQL dclenche une erreur lors dinsertion avec des valeurs non compris dans la liste desvaleurs partitionnes SyntaxeCREATE TABLE nom_table (champ1 type contrainte,... )PARTITION BY LIST (expression)PARTITION nom_partition VALUES IN (NULL),PARTITION nom_partition VALUES IN (valeur,valeur,...)..);MySQL : Administration (1Z0-883) alphorm.com 146. Le partitionnement de type LIST Le partionnement de type LIST COLUMNS Caractristiques- Permet de sparer physiquement les donnes dune table en fonction dune ou plusieurscolonnes (ENTIER, CHAR, VARCHAR, BINARY ou VARBINARY)- Pas de possibilit davoir une expression comme critre de partitionnement- La comparaison lors de laffectation des donnes se fait sur lensemble des valeursMySQL : Administration (1Z0-883) alphorm.com 147. Le partitionnement de type LISTLe partitionnement de type HASHMySQL : Administration (1Z0-883) alphorm.com 148. Le partitionnementLe partitionnement detype HASHSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 149. Le partitionnement de type HASH Le partionnement de type HASH Caractristiques- Permet de distribuer dune manire quitable les donnes dune table sur un nombre departitions dfini SyntaxeCREATE TABLE nom_table (champ1 type contrainte,... )PARTITION BY HASH (expression)PARTITIONS nombre_partition;MySQL : Administration (1Z0-883) alphorm.com 150. Le partitionnement de type HASHLe partitionnement de type KEYMySQL : Administration (1Z0-883) alphorm.com 151. Le partitionnementLe partitionnement detype KEYSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 152. Le partitionnement de type KEY Le partionnement de type KEY Caractristiques- Presque identique au type HASH Diffrences Cl de partitionnement vide support La cl de partitionnement peut tre de type chine Les donnes ne sont pas distribues de manire homogme sur toutesles partitionsMySQL : Administration (1Z0-883) alphorm.com 153. Le partitionnement de type KEY Le partionnement de type KEY SyntaxeCREATE TABLE nom_table (champ1 type contrainte,... )PARTITION BY KEY (liste_de_colonne)PARTITIONS nombre_partition;MySQL : Administration (1Z0-883) alphorm.com 154. Le partitionnement de type KEYLe sous partitionnementMySQL : Administration (1Z0-883) alphorm.com 155. Le partitionnementLe sous-partitionnementSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 156. Le sous-partitionnement Caractristiques Consiste partitionner une partition de type RANGE ou LIST Les sous-partitions doivent tres de type HASH ou KEY SyntaxeCREATE TABLE nom_table (champ1 type contrainte,... )PARTITION BY RANGE | LIST (expression)SUBPARTITION BY HASH | KEY (expression)SUBPARTITION nom_partition (definition_des_partitions)MySQL : Administration (1Z0-883) alphorm.com 157. Le sous-partitionnementGestion des utilisateursMySQL : Administration (1Z0-883) alphorm.com 158. Gestion des utilisateursLa gestion des comptesMySQLSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 159. La gestion des comptes MySQL Prsentation Bas sur un systme de privilges simple et performant Chaque utilisateur qui souhaite se connecter doit sauthentifier auprs duserveur MySQL Aucun lien entre les utilisateurs MySQL et les utilisateurs Linux ou Windows. Lidentification est une combinaison de trois critres lhte (la machine) depuis lequel la connexion est initie un nom dutilisateur un mot de passe.MySQL : Administration (1Z0-883) alphorm.com 160. La gestion des comptes MySQL Caractristiques Deux utilisateurs cres aprs linstallation root : super utilisateur (sans mot de passe) Lutilisateur anonyme, cest--dire tout utilisateur non connu du systme..MySQL : Administration (1Z0-883) alphorm.com 161. La gestion des comptes MySQL Systme dauthentification Les utilisateurs et les privilges sont stocks la base de donnes mysql Les tables suivantes sont utilises pour grer les privilges des utilisateurs user db host tables_priv columns_priv procs_privMySQL : Administration (1Z0-883) alphorm.com 162. La gestion des comptes MySQL Systme dauthentification Accs au serveur Contrle de laccs en deux temps- Vrification de lidentit de lutilisateur sa connexion (via lhte deconnexion, le nom de lutilisateur et le mot de passe).- Vrification de chacune des requtes envoyes au serveur pour sassurer quelutilisateur a les privilges ncessaires.MySQL : Administration (1Z0-883) alphorm.com 163. La gestion des comptes MySQL Systme dauthentification Description des tapes de connexion Etape 1:- MySQL utilise la table user pour vrifier quun utilisateur est autoris seconnecter.- Les champs (Host, User et Password) sont utiliss pour valider la connexion. Etape 2:- MySQL vrifie chaque requte envoye afin de sassurer que lutilisateur a lesprivilges ncessaires son excution.- Ces privilges sont vrifis partir des tables user, db, table_priv etcolumns_privMySQL : Administration (1Z0-883) alphorm.com 164. La gestion des comptes MySQL Systme dauthentification Description des tapes de connexion Etape 1:- MySQL utilise la table user pour vrifier quun utilisateur est autoris seconnecter.- Les champs (Host, User et Password) sont utiliss pour valider la connexion. Etape 2:- MySQL vrifie chaque requte envoye afin de sassurer que lutilisateur a lesprivilges ncessaires son excution.- Ces privilges sont vrifis partir des tables user, db, tables_priv etcolumns_privMySQL : Administration (1Z0-883) alphorm.com 165. La gestion des comptes MySQL Gestion des comptes utilisateurs Cration dun compte utilisateur Syntaxe:CREATE USER utilisateur@hte IDENTIFIED BY mot_de_passe; Modification du mot de passe Syntaxe:SET PASSWORD FOR utilisateur@hte=PASSWORD(mot_de_passe); Suppression dun compte utilisateur Syntaxe:DROP USER utilisateur@hte;MySQL : Administration (1Z0-883) alphorm.com 166. La gestion des comptes MySQLGestion des privilges utilisateursMySQL : Administration (1Z0-883) alphorm.com 167. Gestion des utilisateursLa gestion privilgesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 168. La gestion des privilges Les commandes GRANT/REVOKE GRANT permet dattribuer des privilges Permet de crer des utilisateurs Syntaxe gnraleGRANT privileges [ columns ], ...ON item | [ * ] | [ *.* ]TO username [ IDENTIFIED BY password ][ WITH GRANT OPTION ]MySQL : Administration (1Z0-883) alphorm.com 169. La gestion des privilges Les commandes GRANT/REVOKE REVOKE permet de retirer des privilges Ne permet pas de supprimer des utilisateurs Syntaxe gnraleREVOKE privileges [columns] | ALL, ...ON item | [ * ] | [ *.* ]FROM username;MySQL : Administration (1Z0-883) alphorm.com 170. La gestion des privilges La commande SHOW GRANTS Permet de visualiser les droits des utilisateurs Syntaxe gnraleSHOW GRANTS FOR username;MySQL : Administration (1Z0-883) alphorm.com 171. La gestion des privilges Vrification des requtes MySQL vrifie chaque requte envoye afin de sassurer que lutilisateur a lesprivilges ncessaires son excution. Ces privilges sont vrifis partir des tables user, db, table_priv etcolumns_priv Transcription du calcul fait sur une requte Accs = privilges globaux OU privilges db OU privilges de table OUprivilges de colonnes.MySQL : Administration (1Z0-883) alphorm.com 172. La gestion des privilges Les privilges globaux (instance) Stocks dans la table user de la base mysql Liste- CREATE TEMPORARY TABLES, CREATE USER, FILE, GRANT OPTION, LOCKTABLES, PROCESS, PROXY, RELOAD, REPLICATION CLIENT, REPLICATIONSLAVE, SHOW SCHEMAS/DATABASES, SHUTDOWN et SUPERMySQL : Administration (1Z0-883) alphorm.com 173. La gestion des privilges Les privilges au niveau bases Stocks dans la table db de la base mysql Liste- ALTER, CREATE, CREATE TEMPORARY TABLE, CREATE VIEW, DROP, EVENT,GRANT OPTION, INDEX, INSERT, LOCK TABLES, SELECT, SHOW VIEW etUPDATEMySQL : Administration (1Z0-883) alphorm.com 174. La gestion des privilges Les privilges au niveau objets (tables) et colonnes Stocks dans les tables tables_priv et columns_priv de la base mysql Liste au niveau des tables- ALTER, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, SELECT,TRIGGER et UPDATE Liste au niveau des colonnes- INSERT, SELECT et UPDATEMySQL : Administration (1Z0-883) alphorm.com 175. La gestion des privilges Les privilges au niveau procdures et fonctions stockes Stocks dans la table procs_priv de la base mysql Liste- CREATE ROUTINE, ALTER ROUTINE, EXECUTE et GRANT OPTIONMySQL : Administration (1Z0-883) alphorm.com 176. La gestion des privilgesGestion de la scuritMySQL : Administration (1Z0-883) alphorm.com 177. Gestion de la scuritSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 178. Gestion de la scurit Les bonnes pratiques Suppression des comptes anonymes Mot de passe et privilges Audit des comptes avec le privilge FILE et PROCESSLIST Cryptage des donnes sensibles ( PASSWORD(), ENCRYPT(), ENCODE(),DECODE() ou MD5() ) Scuriser lchange avec SSH et SSLMySQL : Administration (1Z0-883) alphorm.com 179. Gestion de la scurit Les plug-ins Plug-ins dauthentification ( partir de MySQL 5.6) mysql_native_password- par dfaut mysql_old_password- mthode de hachage des versionsMySQL 4.1.1 sha256_password- Utilisation de lalgorithme de hachage SHA-256- Paramtre authentication-plugin de la section [ mysqld ]- Paramtrable lors de la cration de lutilisateurMySQL : Administration (1Z0-883) alphorm.com 180. Gestion de la scurit Les plug-ins Plug-ins de validation des mots de passe validate_password- Permet de tester le degr de scurt dun mot de passe Utilise 6 variables validate_password_policy_number LOW ou 0, MEDIUM ou 1, STRONG ou 2 validate_password_length validate_password_number_count validate_password_mixed_case_count validate_password_special_char_countMySQL : Administration (1Z0-883) alphorm.com 181. Gestion de la scurit Les plug-ins Plug-ins de validation des mots de passe La fonction VALIDATE_PASSWORD_STRENGTH()- Permet de renvoyer un code en fonction du niveau de scurit du mot depasse 0 : taille4 25 : = 4 et la valeur de validate_password_length 50 : si validate_password_policy_number=LOW est respecte 75 : si validate_password_policy_number=MEDIUM est respecte 100 : si validate_password_policy_number=STRONG est respecteMySQL : Administration (1Z0-883) alphorm.com 182. Gestion de la scurit Expiration du mot de passe Possibilit de forcer le changement dun mot de passe ALTER USER username PASSWORD EXPIRE;MySQL : Administration (1Z0-883) alphorm.com 183. Gestion de la scurit Utilitaire de configuration des mots de passe Outil mysql_config_editor Nouveaut MySQL 5.6 Utilitaire en ligne de commande Permet de stocker les informations dauthentification dans un fichiercrypt nomm ~/.mylogin.cnf. Permet de se connecter MySQL sans avoir connatre ou taper un motde passe MySQL Les commandes- set, print, remove, resetMySQL : Administration (1Z0-883) alphorm.com 184. Gestion de la scuritMaintenance des tablesMySQL : Administration (1Z0-883) alphorm.com 185. Maintenance des tablesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 186. Maintenance des tables La maintenance du serveur MySQL Dfragmentation des tables Mise jour des statistiques Dtection des donnes corrompus Rparation des tables endommagsMySQL : Administration (1Z0-883) alphorm.com 187. Maintenance des tables La commande CHECK TABLE Vrifie la structure Vrifie le contenu des tables Verrouillage des tables en lecture Moteurs supports- MyISAM- InnoDB- Archive et CSVMySQL : Administration (1Z0-883) alphorm.com 188. Maintenance des tables La commande CHECK TABLE SyntaxeCHECK TABLE table1 [, table2 ] [ option [option] ] Options- QUICK : ne cherche pas les enregistrements orphelins.- FAST: Ne vrifie que les tables dont la fermeture ne sest pas effectue proprement.- CHANGED: Ne vrifie que les tables qui ont subi des modifications depuis la dernirevrification- MEDIUM (dfaut): Vrifie les enregistrements et calcule une cl dintgrit (checksum).- EXTENDED: Vrifie les enregistrements et calcule une cl dintgrit pour chaqueenregistrement.MySQL : Administration (1Z0-883) alphorm.com 189. Maintenance des tables La commande CHECK TABLE Retourne une table avec quatre champs- Table- Op (toujours check)- Msg_type (status=tat de la table,error=messagederreur,info(information),warning=message avertissement)- Msg_textMySQL : Administration (1Z0-883) alphorm.com 190. Maintenance des tables La commande REPAIR TABLE Corrige des tables en erreurs (CHECK TABLE) Moteurs supports- MyISAM- Archive et CSV SyntaxeREPAIR TABLE table1 [, table2 ] [ NO_WRITE_TO_BINLOG ] [ QUICK ] [EXTENDED ] [ USE_FRM ]MySQL : Administration (1Z0-883) alphorm.com 191. Maintenance des tables La commande CHECKSUM TABLE Calcul la somme de contrle (checksum) dune table (droit de select) Moteur support- InnoDB, CSV SyntaxeCHECKSUM TABLE table1 [, table2 ] [ QUICK ] [ EXTENDED ]MySQL : Administration (1Z0-883) alphorm.com 192. Maintenance des tables La commande ANALYZE TABLE Analyse et enregistre les statistiques sur une ou plusieurs tables Moteurs supports- MyISAM- InnoDB Verrou en lecture pour les tables MyISAM SyntaxeANALYZE TABLE table1 [, table2 ] [ NO_WRITE_TO_BINLOG ]MySQL : Administration (1Z0-883) alphorm.com 193. Maintenance des tables La commande OPTIMISE TABLE Permet de rduire la fragmentation Rcupre lespace inutilis Trie les indexes Met jour les statistiques Moteurs supports- MyISAM SyntaxeOPTIMISE [ NO_WRITE_TO_BINLOG ] TABLE table1 [, table2 ]MySQL : Administration (1Z0-883) alphorm.com 194. Maintenance des tables Utilitaire myisamchk quivalent [ CHECK | REPAIR | ANALYZE ] TABLE Travail directement sur les fichiers MyISAM au niveau systme Syntaxemyisamchk [ options ] table1 [ table2 ]MySQL : Administration (1Z0-883) alphorm.com 195. Maintenance des tables Utilitaire mysqlcheck quivalent [ CHECK | REPAIR | ANALYZE ] TABLE Travail directement au niveau base ou table Syntaxemysqlcheck [ options ] | --all-databases | databases base1 [ base2 ]MySQL : Administration (1Z0-883) alphorm.com 196. Maintenance des tablesImport et export des donnes sousMySQLMySQL : Administration (1Z0-883) alphorm.com 197. Import et export des donnesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 198. Import et export des donnes Export des donnes SELECT ... INTO OUTFILE Permet dexporter les donnes lues dans un fichier texte sur le serveur Ncessite davoir le privilge FILE Si le fichier existe dj lopration choue SyntaxeSELECT champ1, ... INTO OUTFILE fichier FIELDS TERMINATED BY sparateurOPTIONNALY ENCLOSED BY dlimiteur LINES TERMINATED BY sparateurFROM table;MySQL : Administration (1Z0-883) alphorm.com 199. Import et export des donnes Chargement des donnes LOAD DATA INFILE SyntaxeLOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL]INFILE 'file_name.txt'[REPLACE | IGNORE]INTO TABLE tbl_name [FIELDS[TERMINATED BY 't'] [[OPTIONALLY]ENCLOSED BY ''] [ESCAPED BY '' ] ] [LINES[STARTING BY ''] [TERMINATED BY 'n'] ][IGNORE number LINES][(col_name,...)]MySQL : Administration (1Z0-883) alphorm.com 200. Import et export des donnes mysqldump Outil de sauvegarde logique Syntaxemysqldump -u username -p [ OPTIONS ] dbname [ tables ]mysqldump [ OPTIONS ] --databases [ OPTIONS ] dbname1 [ dbname2, ... ]mysqldump [ OPTIONS ] --all-databases [ OPTIONS ]MySQL : Administration (1Z0-883) alphorm.com 201. Import et export des donnes mysqldump Import dune sauvegarde logique Syntaxemysql [ OPTIONS ] dbnamefichier.sqlmysql [ OPTIONS ] dbname -e fichiersqlMySQL : Administration (1Z0-883) alphorm.com 202. Maintenance des tablesProgrammation dans MySQLMySQL : Administration (1Z0-883) alphorm.com 203. Programmation sous MySQLLes procdures stockesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 204. Les procdures stockes La notion de routine Programmes stocks dans le moteur MySQL- Les procdures stockes et les fonctions Fonctions- Centraliser le traitement des requtes- Une meilleur gestion de la scurit- De meilleurs temps de traitement- Faciliter le dveloppement et lvolution des applicationsMySQL : Administration (1Z0-883) alphorm.com 205. Les procdures stockes Langage de programmation dune procdure stocke Langage LMD et LDD Dclaration des variables avec DECLARE et SET Utilisation des oprateurs logiques et des fonctions SQL prdfinis Utilisation des fonctions de contrle (IF, ELSE, LOOP, CASE ...) Utilisation de curseurs pour le parcour et le traitement des lignesMySQL : Administration (1Z0-883) alphorm.com 206. Les procdures stockes Quest ce quune procdure stocke ? Programme (routine) qui na pas de valeur de retour SyntaxeCREATE[ DEFINER = { user | CURRENT_USER }]PROCEDURE nom_procedure ( [ parametre1 [,...]])[ caractristique ][ BEGIN ] corps_routine [ END ]MySQL : Administration (1Z0-883) alphorm.com 207. Les procdures stockes Les paramtres[ IN | OUT | INOUT ] param_name typetype : type MySQL valide Les caractristiquesLANGUAGE SQL | [ NOT ] DETERMINISTIC | { CONTAINSSQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }| SQL SECURITY { DEFINER | INVOKER } | COMMENTstringMySQL : Administration (1Z0-883) alphorm.com 208. Les procdures stockes Commandes sur les procdures stocks Suppression- SyntaxeDROP PROCEDURE IF EXISTE nom_procstock; Modification- SyntaxeALTER PROCEDURE IF EXISTE nom_procstock;MySQL : Administration (1Z0-883) alphorm.com 209. Les procdures stockesLes fonctionsMySQL : Administration (1Z0-883) alphorm.com 210. Programmation sous MySQLLes fonctionsSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 211. Les fonctions Quest ce quune fonction ? Programme (routine) qui renvoi un rsultat SyntaxeCREATE[ DEFINER = { user | CURRENT_USER }]FUNCTION nom_fonction ( [ parametre1 [,...]])[ RETURNS type ][ caractristique ][ BEGIN ] corps_routine [ END ]MySQL : Administration (1Z0-883) alphorm.com 212. Les fonctions Les caractristiquesLANGUAGE SQL | [ NOT ] DETERMINISTIC | { CONTAINSSQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }| SQL SECURITY { DEFINER | INVOKER } | COMMENTstringMySQL : Administration (1Z0-883) alphorm.com 213. Les fonctions Commandes sur les procdures stocks Suppression- SyntaxeDROP FUNCTION IF EXISTE nom_fonction; Modification- SyntaxeALTER FUNCTION IF EXISTE nom_fonction;MySQL : Administration (1Z0-883) alphorm.com 214. Les fonctionsLes triggersMySQL : Administration (1Z0-883) alphorm.com 215. Programmation sous MySQLLes triggersSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 216. Les triggers Quest ce quun trigger (dclencheur) ? Associ une table Sactive lorsquun vnement particulier survient- BEFORE (avant) ou AFTER (aprs), INSERT, UPDATE, DELETEMySQL : Administration (1Z0-883) alphorm.com 217. Les triggers Cas dutilisation Log des utilisateurs/changements Excuter des rgles mtier Renforcer les contraintes dintgrit Dupliquer des donnes Amliorer les performances et les changementsMySQL : Administration (1Z0-883) alphorm.com 218. Les triggers Cration dun trigger SyntaxeCREATE TRIGGER dclencheurBEFORE | AFTERINSERT | DELETE | UPDATE ON nom_tableFOR EACH ROW[condition]actionMySQL : Administration (1Z0-883) alphorm.com 219. Les triggers Informations sur les triggers VueINFORMATION_SCHEMA.TRIGGERS Suppression dun triggerSyntaxe DROP TRIGGER dclencheur;MySQL : Administration (1Z0-883) alphorm.com 220. Les triggersLe planificateur dvnementsMySQL : Administration (1Z0-883) alphorm.com 221. Programmation sous MySQLLe planificateurdvnementsSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 222. Le planificateur dvnements Quest ce que le planificateur dvnements Permet dautomatiser des tches- Intervalles rguliers- Heure fixe Tourne sous forme de processus lger (thread) Ncessite le privilge EVENT ActivationSHOW GLOBAL VARIABLES LIKE 'event_scheduler';SET GLOBAL event_scheduler = 1;MySQL : Administration (1Z0-883) alphorm.com 223. Le planificateur dvnements Cration dun vnement SyntaxeCREATE[DEFINER = { user | CURRENT_USER }]EVENT [IF NOT EXISTS] nom_vnementON SCHEDULE moment[ON COMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT commentaire]DOcorps_evenement;MySQL : Administration (1Z0-883) alphorm.com 224. Le planificateur dvnements Cration dun vnement Syntaxemoment:AT timestamp [+ INTERVAL intervalle] ...| EVERY interval[STARTS timestamp [+ INTERVAL intervalle] ...][ENDS timestamp [+ INTERVAL intervalle] ...]MySQL : Administration (1Z0-883) alphorm.com 225. Le planificateur dvnements Modification dun vnement SyntaxeALTER EVENT nom_vnement ... Suppression dun vnement SyntaxeDROP EVENT [IF EXISTS] nom_vnement; Les mtadonnesinformation_schema.eventsMySQL : Administration (1Z0-883) alphorm.com 226. Le planificateur dvnementSauvegarde et restauration sousMySQLMySQL : Administration (1Z0-883) alphorm.com 227. Sauvegarde et restaurationIntroductionSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 228. Sauvegarde et restauration Les questions se poser Que sauvegarder A quel frquence La tolrence de perte des donnes La dure de rtention des sauvegardes Les bonnes pratiques Sauvegarder le fichier de configuration de MySQL Activer les journaux binaires (log-bin) Tester les sauvegardesMySQL : Administration (1Z0-883) alphorm.com 229. Sauvegarde et restaurationLes sauvegardes logiquesMySQL : Administration (1Z0-883) alphorm.com 230. Sauvegarde et restaurationLes sauvegardes logiquesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 231. Les sauvegardes logiques Les outils de sauvegarde SELECT ... INTO OUTFILE mysqldump Sauvegarde cohrente avec mysqldumpOptionsMoteur MYSIAM --opt (intgre loption --lock-tables) --lock-all-tables (pour les exports multibases) Moteur InnoDB --single-transactionMySQL : Administration (1Z0-883) alphorm.com 232. Les sauvegardes logiquesLes sauvegardes physiquesMySQL : Administration (1Z0-883) alphorm.com 233. Sauvegarde et restaurationLes sauvegardesphysiquesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 234. Les sauvegardes physiques Caractristiques Copie physique de tous les fichiers (datadir) au niveau OS Peut-tre ralise base ouverte ou fermeMySQL : Administration (1Z0-883) alphorm.com 235. Les sauvegardes physiques Sauvegarde fichiers MyISAM Les fichiers sauvegarder: .frm, .MYD et .MYI Base ouverte Ncessite un verrou au niveau table: LOCK TABLE nom READ; Possibilit de verrouiller toutes les tables LOCK TABLES table1 READ, table2 READ, ...; Possibilit de verrouiller toutes les tables de linstance FLUSH TABLES WITH READ LOCK; Ncessit denlever le verrou aprs la sauvegarde: UNLOCK TABLES;MySQL : Administration (1Z0-883) alphorm.com 236. Les sauvegardes physiques Sauvegarde MyISAM Les tapes Pose dun verrou sur les tables sauvegarder LOCK TABLE Forcer la synchronisation entre le cache MySQL et les fichiers FLUSH TABLE Copie des fichiers .frm, .MYD et .MYI (tar, cp, gzip, cpio, ...) Dvrouillage des tables UNLOCK TABLES;MySQL : Administration (1Z0-883) alphorm.com 237. Les sauvegardes physiques Sauvegarde fichiers InnoDB Les fichiers sauvegarder innodb_data_file_path: .frm, ibdatanumro innodb_file_per_table: .frm, nom_table.ibd Base ouverte Ncessite un verrou au niveau table: LOCK TABLE nom READ; Possibilit de verrouiller toutes les tables LOCK TABLES table1 READ, table2 READ, ...; Possibilit de verrouiller toutes les tables de linstance FLUSH TABLES WITH READ LOCK; Ncessit denlever le verrou aprs la sauvegarde: UNLOCK TABLES;MySQL : Administration (1Z0-883) alphorm.com 238. Les sauvegardes physiques Sauvegarde fichiers InnoDB Les tapes Poser un verrou global en lecture sur lensemble des tables FLUSH TABLES WITH READ LOCK Sauvegarde de tous les fichiers au niveau de lOS (cp, tar, gzip, cpio, ...) Dvrouillage des tables UNLOCK TABLESMySQL : Administration (1Z0-883) alphorm.com 239. Les sauvegardes physiquesLa restaurationMySQL : Administration (1Z0-883) alphorm.com 240. Sauvegarde et restaurationLa restaurationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 241. La restauration Dpend du type de sauvegarde Restauration partir dune sauvegarde froid Restauration partir dun export Type de restauration Restauration FULL, base, table Restauration PITR- Ncessite lutilisation des journaux binaire- Utilisation de loutil mysqlbinlogMySQL : Administration (1Z0-883) alphorm.com 242. La restaurationLa rplicationMySQL : Administration (1Z0-883) alphorm.com 243. La rplicationIntroductionSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 244. Introduction Quest-ce que la rplication ? Permet de diposer de plusieurs serveurs avec les mmes donnes Utilise les logs binairesMySQL : Administration (1Z0-883) alphorm.com 245. Introduction Pourquoi utiliser la rplication Monte en charge Rpartition de la charge Haute disponibilit SauvegardeMySQL : Administration (1Z0-883) alphorm.com 246. Introduction Fonctionnement de la rplicationMAITREESCLAVECopie lestransactions dumaitre dans les relaylogBinlogsIO_THREADIO_THREAD (relay log)SQL_THREADESCLAVEApplique lestransactions desrelay log dans MySQLTransfert du contenudes logs binaire versles esclavesIO_THREAD (relay log)SQL_THREADMySQL : Administration (1Z0-883) alphorm.com 247. Introduction Les diffrentes topologies Matre/Esclave Matre/Matre- Actif - Actif- Actif - Passif Les modes de rplication SBR (Statement Based Replication: antrieure MySQL 5.1) RBR (Row Based Replication: partir de MySQL 5.1) La rplication semi-sychrone (depuis la version 5.5)- Ncessite lactivation sur le matre et les esclavesMySQL : Administration (1Z0-883) alphorm.com 248. IntroductionMise en oeuvre de la rplicationMySQL : Administration (1Z0-883) alphorm.com 249. Sauvegarde et restaurationLa restaurationSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 250. La restauration Dpend du type de sauvegarde Restauration partir dune sauvegarde froid Restauration partir dun export Type de restauration Restauration FULL Restauration PITR- Ncessite lutilisation des journaux binaireMySQL : Administration (1Z0-883) alphorm.com 251. La restaurationLa rplicationMySQL : Administration (1Z0-883) alphorm.com 252. La rplicationSWITCHOVERSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 253. SWITCHOVER Les principales variables de configuration server-id log-bin binlog-do-db, binlog-do-table,binlog-ignore-db,binlog-ignore-table replicate-do-db, replicate-ignore-db, replicate-do-table, replicate-ignore-table expire_log_days sync_binlog ...MySQL : Administration (1Z0-883) alphorm.com 254. SWITCHOVER Les commandes SQL SHOW MASTER STATUS SHOW SLAVE STATUS START | STOP SLAVE {IO_THREAD | SQL_THREAD } SHOW BINARY LOGS PURGE BINARY LOG options RESET MASTER RESET SLAVE CHANGE MASTER TOMySQL : Administration (1Z0-883) alphorm.com 255. SWITCHOVER Rappel de la configuration du LABMAITRE: 192.168.1.200ESCLAVE: 192.168.1.202Copie lestransactions dumaitre dans les relaylogbinlogsIO_THREADIO_THREAD (relay log)SQL_THREAD Applique lestransactions desrelay log dans MySQLTransfert du contenudes logs binaire versles esclavesMySQL : Administration (1Z0-883) alphorm.com 256. SWITCHOVER Les tapes Arrter les critures sur le nouveau matre et activer les log binaires Relever la position des journaux binaires sur le futur matre (SHOWMASTER STATUS) Configurer la rplication sur lancien matre (CHANGE MASTER TO) Dmarrer la rplication sur lancien matre (START SLAVE) Arrter la rplication sur le nouveau matre (STOP SLAVE)MySQL : Administration (1Z0-883) alphorm.com 257. SWITCHOVERIntroduction loptimisation desperformancesMySQL : Administration (1Z0-883) alphorm.com 258. Introduction loptimisation desperformancesSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 259. Introduction loptimisation des performances Les lments de performances Matriel- CPU, Mmoire, Disque (type, RAID 0-1-5-10) Logiciel- Caches MySQL, paramtres MySQL, OS, mthode de synchronisation Applicatif- Schma de donnes, indexes, plan dxcutionMySQL : Administration (1Z0-883) alphorm.com 260. Introduction loptimisation des performances Elments logiciel Le cache de requte- query_cache_type (active ou pas le cache de requte) 0 = pas de cache1 = met en cache toutes les requetes sauf celles qui ont le flag SELECT SQL_NO_CACHE2 = met en cache seulement les requetes qui comportent le flag SELECT SQL_CACHE- query_cache_size (taille du cache de requte)- RESET QUERY CACHE (rinitialise le cache de requte)- query_cache_limit (taille maximale des donnes mis en cache)- ... Le cache de table- table_open_tables- open_table_definitionsMySQL : Administration (1Z0-883) alphorm.com 261. Introduction loptimisation des performances Elments logiciel MyISAM- key_buffer_size (taille du cache dindex) InnoDB- innodb_buffer_size (taille du cache mmoire)- Innodb_log_buffer_size (taille du tampon de log) Paramtre par client- sort_buffer_size (taille du tampon de tri)MySQL : Administration (1Z0-883) alphorm.com 262. Introduction loptimisation des performances Elment applicatif Les indexes- Quand crer un index ? Sur un champ utiliser dans une clause WHERE, ORDER BY ou GROUP BY Sur des tables assez volumineuses Sur les cls trangres Un index implicite est crer lors de la cration dun PRIMARY KEYMySQL : Administration (1Z0-883) alphorm.com 263. Introduction loptimisation des performances Elment applicatif Les indexes- Les types dindex Index uniques Cl primaire Index sur plusieurs colonnes Index sur un prfixe de colonne ...MySQL : Administration (1Z0-883) alphorm.com 264. Introduction loptimisation des performances Elment applicatif La commande EXPLAIN- Permet dafficher le plan dxecution dune requteMySQL : Administration (1Z0-883) alphorm.com 265. Introduction loptimisation des performancesConclusionMySQL : Administration (1Z0-883) alphorm.com 266. ConclusionLe mot de la finSite : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forumNoureddine DRISSIExpert consultant bases de donnesContact : [email protected] : Administration (1Z0-883) alphorm.com 267. Conlusion Rappel des objectifs de la formation: Comprendre et dcrire larchitecture de MySQL Installer et mettre jour MySQL Administrer et configurer MySQL Utiliser les outils MySQL tel que MySQL WorkBench Comprendre et mettre en oeuvre les diffrents moteurs de stockage (InnoDB, MyISAM,MEMORY, CSV...) Comprendre et grer la scurit sous MySQL Comprendre et mettre en oeuvre la rplication sous MySQL Comprendre et dcrire les techniques doptimisation de MYSQL Raliser les oprations de sauvegarde et restaurationMySQL : Administration (1Z0-883) alphorm.com 268. Conlusion A venir: MySQL TuningMySQL : Administration (1Z0-883) alphorm.com 269. ConclusionFINMerci pour votre attentionMySQL : Administration (1Z0-883) alphorm.com