<?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>Stardata.it &#187; db</title>
	<atom:link href="http://www.stardata.it/tag/db/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stardata.it</link>
	<description>Stardata - Database is our business</description>
	<lastBuildDate>Fri, 11 Sep 2009 13:13:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Creare un mysqldump con LIMIT</title>
		<link>http://www.stardata.it/creare-un-mysqldump-con-limit-78/</link>
		<comments>http://www.stardata.it/creare-un-mysqldump-con-limit-78/#comments</comments>
		<pubDate>Sat, 02 May 2009 18:58:16 +0000</pubDate>
		<dc:creator>Stardata</dc:creator>
				<category><![CDATA[Tips'n'Tricks]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[LIMIT]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[schema]]></category>

		<guid isPermaLink="false">http://www.stardata.it/?p=78</guid>
		<description><![CDATA[Potrebbe essere necessario a volte creare un campione dei dati di uno o più database, per esempio per poter chiedere assistenza a un consulente o per poter dare assistenza a un utente.
In questi casi, il classico strumento mysqldump non aiuta, perché fra le sue varie utilità non c&#8217;è quella di impostare una clausola LIMIT. È [...]]]></description>
			<content:encoded><![CDATA[<p>Potrebbe essere necessario a volte creare un campione dei dati di uno o più database, per esempio per poter chiedere assistenza a un consulente o per poter dare assistenza a un utente.</p>
<p>In questi casi, il classico strumento <code>mysqldump</code> non aiuta, perché fra le sue varie utilità non c&#8217;è quella di impostare una clausola LIMIT. È vero che si può filtrare con WHERE, ma questo è valido solo se si vogliono estrarre i dati di una tabella alla volta e anche in questo caso la clausola WHERE dovrebbe essere cambiata volta per volta.</p>
<p>Esistono alternative e la più spiccia è quella di creare un programma di estrazione in Perl, per poter prendere con un colpo solo la struttura e N record di tutte le tabelle di tutti i database.</p>
<p>Il semplice script che segue è una semplificazione (ma perfettamente funzionante) di uno strumento analogo che viene usato in StarData per acquisire campioni di dati dagli utenti.</p>
<p>Per limitare la portata dell&#8217;output, qualora non si volesse fornire la lista di tutti i database, è sufficiente eseguire questo script con i privilegi di un utente abilitato solo alla visione di alcuni database.</p>
<p><code><br />
#!/usr/bin/perl -w<br />
use strict;<br />
use DBI;<br />
</code></p>
<p><code><br />
my $host     = 'localhost';<br />
my $user     = 'gmax';       # cambiare<br />
my $password = '';           # cambiare<br />
my $port     = "3306";<br />
my $limit    = 1;<br />
my $db       = "test";<br />
my $DSN      = "DBI:mysql:$db;host=$host;port=$port;"<br />
               . "mysql_read_default_file=$ENV{HOME}/.my.cnf";<br />
</code></p>
<p><code><br />
my $dbh =<br />
  DBI->connect( $DSN, $user, $password, { RaiseError => 1,<br />
    PrintError => 1 } )<br />
  or die "$DBI::errstr\n";<br />
</code></p>
<p><code><br />
for my $db (@{$dbh->selectcol_arrayref("SHOW DATABASES})")<br />
{<br />
    print STDERR "# ------ DATABASE $db\n";<br />
    print "# ------ DATABASE $db\n";<br />
    print "CREATE DATABASE IF NOT EXISTS $db;\n";<br />
    print "USE $db;\n";<br />
    for my $table (@{$dbh->selectcol_arrayref("SHOW TABLES FROM `$db`")})<br />
    {<br />
        print "# TABELLA ($db) $table\n";<br />
        print STDERR "# TABELLA ($db) $table\n";<br />
        my $sth = $dbh->prepare(qq{SHOW CREATE TABLE `$db`.`$table`});<br />
        $sth->execute ;<br />
        my ( $null, $create ) = $sth->fetchrow_array;<br />
        $sth->finish;<br />
        $create =~ s/(?<=CREATE TABLE)/ IF NOT EXISTS /;<br />
        print " $create;\n";<br />
        $sth = $dbh->prepare(<br />
           "SELECT * FROM `$db`.`$table` LIMIT $limit");<br />
        $sth->execute;<br />
        while ( my $rec = $sth->fetchrow_arrayref )<br />
        {<br />
            print qq{INSERT INTO `$db`.`$table` (};<br />
            print join ",", map { "`$_`" } @{ $sth->NAME} };<br />
            print ") VALUES (";<br />
            print join ( ",", map( { $dbh->quote($_) } @$rec ) );<br />
            print ");\n";<br />
        }<br />
    }<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stardata.it/creare-un-mysqldump-con-limit-78/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supporto completo (outsourcing) dei database MySQL e relativi server</title>
		<link>http://www.stardata.it/supporto-completo-outsourcing-dei-database-mysql-e-relativi-server-120/</link>
		<comments>http://www.stardata.it/supporto-completo-outsourcing-dei-database-mysql-e-relativi-server-120/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 14:40:19 +0000</pubDate>
		<dc:creator>Stardata</dc:creator>
				<category><![CDATA[In Evidenza]]></category>
		<category><![CDATA[Servizi]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[soluzioni]]></category>
		<category><![CDATA[supporto]]></category>

		<guid isPermaLink="false">http://www.stardata.it/?p=120</guid>
		<description><![CDATA[Il servizio di outsourcing di database di Stardata è un impegno completo nella cura, amministrazione, monitoraggio ed assistenza di database MySQL.
Stardata ha una lunga e consolidata esperienza nel trattamento dati, con diversi clienti di classe Enterprise e può liberare le aziende dall&#8217;onerosa incombenza di gestire i database MySQL.
Il nostro servizio di outsourcing dei database è [...]]]></description>
			<content:encoded><![CDATA[<p>Il servizio di outsourcing di database di Stardata è un impegno completo nella cura, amministrazione, monitoraggio ed assistenza di database MySQL.<br />
Stardata ha una lunga e consolidata esperienza nel trattamento dati, con diversi clienti di classe Enterprise e può liberare le aziende dall&#8217;onerosa incombenza di gestire i database MySQL.<br />
Il nostro servizio di outsourcing dei database è una soluzione sicura per i problemi di gestione e manutenzione dei database.<br />
Il servizio di Stardata si applica alla cura di database singoli e replicazioni complesse, instaurando sistemi di monitoraggio e controllo per garantire una piena efficienza dei database continua nel tempo.<br />
Abbiamo soluzioni personalizzate per ogni tipo di azienda. Contattateci!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stardata.it/supporto-completo-outsourcing-dei-database-mysql-e-relativi-server-120/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

