giovedì 22 marzo 2012
Rossella Urru LIBERA!
martedì 13 marzo 2012
A Better Way To Program
Enjoy
giovedì 8 marzo 2012
Mirroring di MySQL
- realizzare un sistema ridondante che garantisca l’immediata disponibilità dei dati in caso di problemi tecnici sul server che ospita il master. In questo modo è possibile commutare sul server che ospita lo slave interrompendo il processo produttivo per un tempo minimo.
- ottenere un efficace sistema per il bilanciamento del carico del sistema, che consenta di eseguire le operazioni di scrittura sul master e quelle di lettura sullo slave.
- consentire backup frequenti dei dati senza inficiare le prestazioni del master.
Configurazione del master
- Nel file di configurazione di MySql (my.ini o my.cnf a seconda che il database sia ospitato su server Windows o Linux), individuare il gruppo di parametri sotto la chiave [mysqld], ed aggiungere le seguenti chiavi:
server-id=1
log-bin=mysql-bin - Riavviare il server, riavviando il relativo servizio mysqld;
- Creare un nuovo utente con privilegi di replica, seguendo I seguenti passi:
- Accedere ad una shell di comando mysql con il comando
mysql –u <username> –p<password> - mysql> GRANT REPLICATION SLAVE ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘password’;oppuremysql> GRANT REPLICATION SLAVE ON *.* TO ‘user’@’IP dello slave’ IDENTIFIED BY ‘password’;mysql> CREATE USER ‘user’@’IP dello slave’ IDENTIFIED BY ‘password’
Per precisione l’utente ‘user’ dovrebbe essere creato con il comando:
mysql> CREATE USER ‘user’@’%’ IDENTIFIED BY ‘password’
o
ma l’esecuzione del solo comando GRANT ha come effetto la creazione dell’utente nel caso quest’ultimo non esista.
-
- Bloccare le scritture sul server per consentirne la ‘clonazione’ sullo slave, eseguendo sulla shell di mysql il comando:
FLUSH TABLES WITH READ LOCK; - Copiare il database dal master allo slave copiando fisicamente I files di mysql o mediante il comando mysqldump
mysqldump –u ‘user’ –p’password’ db_instance>db_instance.sql;
mysql –u ‘user’ –p’password’ db_instance< db_instance.sql;
o, in alternativa, è possibile creare un'istanza vuota del database dal prompt di mySQL
mysql>CREATE DATABASE db_instance;
e, successivamente, eseguire il dump via rete:
mysqldump –u ‘user’ –p’password’ db_instance | mysql –u ‘user’ –p’password’ -h'hostname' db_instance - Sulla shell di mysql eseguire il comando
SHOW MASTER STATUS;
che ritornerà lo stato del file di log del master, ed il punto nel file in cui il master si trova prima del blocco eseguito al punto 3. Prendiamo nota di queste informazioni che serviranno nel seguito;
Configurazione dello slave
- Nel file di configurazione di mysql aggiungere alla sezione [mysqld] la chiave
server-id=2
o qualunque valore intero diverso da quello utilizzato per la configurazione del master; - Riavviare il servizio mysqld;
- Da una shell di comando di mysql lanciata sullo slave, lanciare il comando:
CHANGE MASTER TO
MASTER_HOST=’X.X.X.X’,
MASTER_USER=’user’,
MASTER_PASSWORD=’password’,
MASTER_PORT=3306,
MASTER_LOG_FILE=’mysql-bin.000001’,
MASTER_LOG_POS=98,
MASTER_CONNECT_RETRY=10;
modificando il valore dei parametri in modo concorde alla configurazione del master. - Sempre dalla shell di mysql eseguire il comando
START SLAVE; - Sbloccare la scrittura sul master con il comando (ovviamente da un prompt di mySQL collegato al master)UNLOCK TABLES;
091104 8:42:02 [Note] Slave I/O thread: connected to master ‘root@X.X.X.X:3306?, replication started in log ‘mysql-bin.000001? at position 98
Enjoy.
martedì 6 dicembre 2011
Unbelievable…
Grazie (diciamo così…) al post di Alena Verameyeva, mi sono imbattuto in questo…
Avete capito chi ha pagato per questa canzoncina? ![]()
mercoledì 23 novembre 2011
Il mio primo post 'mobile'
Enjoy.
lunedì 26 settembre 2011
Sysinternals Suite: 20 Settembre 2011
Informazione di servizio. Come anticipato nel titolo il 20 Settembre è stata rilasciata l’ultima release di Sysinternals Suite ovvero tutti gli strumenti sviluppati da Mark Russinovic, per la risoluzione di eventuali problemi che si possono incontrare con i sistemi operativi di Microsoft. Personalmente uso molto, e da molto tempo, ProcessExplorer un’alternativa molto più completa del task manager fornito di default con Windows.
giovedì 15 settembre 2011
Visual SourceSafe addio
![]() | ![]() | ![]() | ![]() |
Ebbene si, il momento è giunto. Dopo anni di utilizzo, e dopo cercato e testato, a livello personale, diversi sistemi di controllo di versione (vedi post Microsoft Visual Source Safe...What's next? e Microsoft Visual Source Safe...What's next? (la scelta)), la transizione è avvenuta anche a livello professionale. Ovviamente la causa non è da ricercarsi in maggior efficienza sul lavoro, adeguamento ai trend attuali della comunità degli sviluppatori, e così via. Facis de necessitate virtutem, ovvero fai di necessità virtù. In altre parole, dovendo sviluppare un grosso software di controllo, dovendolo fare a sei mani, peraltro geograficamente lontane, non disponendo in azienda di un server accessibile dall’esterno, abbiamo cominciato alla vecchia maniera: quelli che sviluppano in azienda utilizzano SouceSafe, gli altri, manualmente, fanno periodicamente un merge dei loro contributi, e quindi archiviano ancora su SourceSafe. Risultato? PANICO. Ovviamente ad ogni merge, pezzi di codice persi, file di configurazione sbagliati, ecc..
La soluzione, configurata, implementata ed adottata in poco più di un giorno è la seguente:
- Mercurial: DVCS del quale abbiamo già parlato nei precedenti post;
- TortoiseHG: Frontend visuale per l’utilizzo di Mercurial;
- VisualHG: Plugin per l’integrazione di TortoiseHG in Visual Studio 2010;
- bitbucket: Servizio di hosting gratuito per Marcurial, gratuito per progetti che coinvolgono al più 5 sviluppatori.
Il risultato è stato a dir poco entusiasmante, tanto che la transizione da Visual SourceSafe può considerarsi definitiva (almeno per i progetti futuri).
Enjoy





