<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dasini.net - Journal d'un expert MySQL &#187; general log</title>
	<atom:link href="http://dasini.net/blog/tag/general-log/feed/" rel="self" type="application/rss+xml" />
	<link>http://dasini.net/blog</link>
	<description>Repousser les frontières de la connaissance</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:06:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Les nouveautés de MySQL 5.1 &#8212; (part 3/5)</title>
		<link>http://dasini.net/blog/2008/12/06/les-nouveautes-de-mysql-51-part-35/</link>
		<comments>http://dasini.net/blog/2008/12/06/les-nouveautes-de-mysql-51-part-35/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 23:27:07 +0000</pubDate>
		<dc:creator>freshdaz</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[general log]]></category>
		<category><![CDATA[MySQL 5.1]]></category>
		<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[slow query log]]></category>

		<guid isPermaLink="false">http://dasini.net/blog/?p=295</guid>
		<description><![CDATA[MySQL propose une solution de haute disponibilité : MySQL Cluster. Cette technologie permet de mettre en place une architecture cluster shared nothing à l'aide de tables au format NDBCluster. Jusqu'à MySQL 5.0, MySQL Cluster ne fonctionnait qu'entièrement en mémoire. Ceci excluait donc certaines bases de données trop volumineuses. La nouvelle version 5.1 lève cette limitation en permettant de mettre les données sur disque.]]></description>
			<content:encoded><![CDATA[<p><!-- 	 	 --><br />
<em>(<a title="Les nouveautés de MySQL 5.1 -- (part 2/5)" href="http://dasini.net/blog/2008/12/03/les-nouveautes-de-mysql-51-part-25/">&lt;- précédent</a>)</em><br />
<!-- 	 	 --></p>
<h2>MySQL Cluster : support des données sur disque</h2>
<p>MySQL propose une solution de haute disponibilité : MySQL Cluster. Cette technologie permet de mettre en place une architecture cluster <em><strong>shared nothing</strong></em> à l&#8217;aide de tables au format <em><strong>NDBCluster</strong></em>. Jusqu&#8217;à MySQL 5.0, MySQL Cluster ne fonctionnait qu&#8217;entièrement en mémoire. Ceci excluait donc certaines bases de données trop volumineuses. La nouvelle version 5.1 lève cette limitation en permettant de mettre les données sur disque.</p>
<p>Pour enregistrer ses données sur le disque, il faut au préalable définir deux nouveaux objets : un <strong>LOGFILE GROUP</strong> et un <strong>TABLESPACE</strong>.</p>
<p><strong>LOGFILE GROUP</strong> : permet gérer les <em><strong>undo log</strong></em> et le <em><strong>crash-recovery</strong></em></p>
<p>Pour créer un logfile group:</p>
<pre>CREATE LOGFILE GROUP lg_1
   ADD UNDOFILE 'undo_1.dat'
   INITIAL_SIZE 16M
   UNDO_BUFFER_SIZE 2M
   ENGINE NDB;
ALTER LOGFILE GROUP lg_1
   ADD UNDOFILE 'undo_2.dat'
   INITIAL_SIZE 12M
   ENGINE NDB;</pre>
<p align="left"><strong>TABLESPACE</strong> : pour stocker les données. A noter que le <em><strong>tablespace</strong></em> utilise le <em><strong>logfile group</strong></em> créé</p>
<p align="left">
<p align="left">On peut maintenant créer la table et l&#8217;associer au <em><strong>tablespace</strong></em></p>
<p align="left">
<p>Création d&#8217;un tablespace:</p>
<pre>CREATE TABLESPACE ts_1
   ADD DATAFILE 'data_1.dat'
   USE LOGFILE GROUP lg_1
   INITIAL_SIZE 32M
   ENGINE NDB;
ALTER TABLESPACE ts_1
   ADD DATAFILE 'data_2.dat'
   INITIAL_SIZE 48M
   ENGINE NDB;</pre>
<p align="left">
<p>Création d&#8217;une table au format NDBCluster avec données sur disque:</p>
<pre>CREATE TABLE 'City' (
   'ID' int(11) NOT NULL AUTO_INCREMENT,
   'Name' char(35) NOT NULL DEFAULT '',
   'Population' int(11) NOT NULL DEFAULT '0',
   PRIMARY KEY ('ID')
) TABLESPACE ts_1
   STORAGE DISK
   ENGINE=NDB;</pre>
<h2>Les tables de journalisation</h2>
<p>MySQL offre la possibilité de journaliser l&#8217;activité du serveur. en activant le <strong>general log</strong>. Il est aussi est possible de journaliser seulement les requêtes lentes (celles qui s&#8217;exécutent en un temps supérieur au seuil que vous aurez préalablement fixé) en activant le <strong>slow_query_log</strong>.</p>
<p>MySQL 5.1 permet toujours de journaliser ces informations dans un fichier, et ajoute la possibilité de le faire en plus dans une table.</p>
<p>Cerise sur le gâteau, la journalisation peut être démarrée ou arrêtée à chaud.</p>
<p>Les commandes <strong>SHOW VARIABLES LIKE &#8216;general_log&#8217;</strong> et <strong>SHOW VARIABLES LIKE &#8216;log_output&#8217;</strong> permettent, respectivement, de savoir si le <strong>general_log</strong> est activé et sous quelle forme.</p>
<p>Pour afficher l&#8217;état du general_log:</p>
<pre>mysql&gt; SHOW VARIABLES LIKE 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | OFF   |
+---------------+-------+
1 row in set (0.03 sec)

mysql&gt; SHOW VARIABLES LIKE 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | TABLE |
+---------------+-------+</pre>
<p align="left">
<p align="left">Le <strong>general_log</strong> peut être activé dynamiquement avec la commande <strong>SET</strong> :</p>
<p align="left">
<pre>mysql&gt; SET GLOBAL general_log = 1;
Query OK, 0 rows affected (0.04 sec)</pre>
<p>Le format de sortie peut lui aussi être changé dynamiquement :</p>
<pre>+---------------------+-------------------------+-----------+-----------
+--------------+---------------------------------------+
| event_time          | user_host               | thread_id | server_id
| command_type | argument                              |
+---------------------+-------------------------+-----------+-----------
+--------------+---------------------------------------+
| 2008-02-21 15:51:06 | daz[daz] @ localhost [] |        10 |        51
| Query        | SET GLOBAL log_output = ‘TABLE, FILE' |
| 2008-02-21 15:51:06 | daz[daz] @ localhost [] |        10 |        51
| Query        | SELECT * FROM mysql.general_log       |
+---------------------+-------------------------+-----------+-----------
+--------------+---------------------------------------+
2 rows in set (0.00 sec)</pre>
<pre>mysql&gt; SET GLOBAL log_output = 'TABLE,FILE';
Query OK, 0 rows affected (0.00 sec)</pre>
<p><!-- 	 	 --></p>
<p>Les mêmes opérations sont possibles sur le <strong>slow_query_log</strong> :</p>
<pre>mysql&gt; SHOW VARIABLES LIKE 'slow_query_log';
+----------------+-------+
| Variable_name | Value  |
+----------------+-------+
| slow_query_log | ON    |
+----------------+-------+
1 row in set (0.00 sec)

mysql&gt; SELECT * FROM mysql.slow_log;
+------------+----------------------+-----------+-----------+---------------+-----+
| start_time | user_host query_time | lock_time | rows_sent | rows_examined | db |
      | last_insert_id | insert_id | server_id | sql_text
-----------------------------------------------------------------------------------
| 2008-02-21 15:57:13 | daz[daz] @ localhost [] | 00:00:00 | 00:00:00 | 0 | 0 |
      | test | 0 | 0 | 51 | SELECT * FROM mysql.slow_log |
| 2008-02-21 15:57:38 | daz[daz] @ 640m [192.168.1.106] | 00:00:00 | 00:00:00 | 268 |
      | 268 | mysql | 0 | 0 | 51 | SELECT * FROM information_schema.
      GLOBAL_VARIABLES G |
| 2008-02-21 15:57:43 | daz[daz] @ localhost [] | 00:00:00 | 00:00:00 | 2 | 2 | test |
      | 0 | 0 | 51 | SELECT * FROM mysql.slow_log |
+------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)</pre>
<p><em>(<a title="Les nouveautés de MySQL 5.1 -- (part 4/5)" href="http://dasini.net/blog/2008/12/13/les-nouveautes-de-mysql-51-part-45/">à suivre&#8230; Le moteur de stockage CSV &amp; Le support de XML/XPath</a>)</em></p>
<p align="left">
]]></content:encoded>
			<wfw:commentRss>http://dasini.net/blog/2008/12/06/les-nouveautes-de-mysql-51-part-35/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

