Lo so, già dal titolo sembra chissà cosa sta facendo questo?! Ma in realtà è molto semplice, tuttavia ho deciso di scrivere quest'articolo perché molte persone mi hanno chiesto lumi sulla configurazione ...
Partendo dalle guide reperite dal sito ufficiale ho deciso di fare questa breve guida che spiega in parole semplici come fare a configurare mysql affinché sia utilizzabile come servizio all'interno di un cluster in failover di windows 2008 R2.
Dando per scontato che tutti sappiate come si realizza un cluster tra due macchine windows 2008 R2 parto direttamente con la procedura per installare e configurare mysql.
Innanzittutto avremo bisogno del file reperibile dal sito ufficiale, nel mio caso ho utilizzato la versione community essential installer a 64 bit (piccola nota: assumo come "scontato" che sappiate il perché utilizzo la versione a 64bit su 2008 R2 ...).
Una volta completata la procedura di installazione (del tipo avanti avanti avanti fino alla fine successivamente approfondiremo la cosa) si può passare a vedere come configurare il nostro mysql!
Iniziamo avviando il servizio di configurazione guidata sul nodo del cluster che attualmente ospita il disco che sarà condiviso.
Scegliamo la configurazione dettagliata:
Adesso selezioniamo il tipo di server:
Adesso selezioniamo il tipo di database:
Ora configuriamo le impostazioni per l'innodb, ma attenzione scegliete una cartella di destinazione che sia collocata sul disco condiviso dal cluster:
Decidiamo quindi il tipo di istanza:
Selezionate ora la porta attraverso la quale sarà raggiungibile il database, e abilitate se necessario le eccezioni sul firewall:
Andiamo avanti fino alla scelta del servizio, qui fate molta attenzione al nome che darete al servizio in quanto ci servirà anche dopo:
Procediamo ora fino alla fine facendo attenzione anche alla password del database che imposteremo, ci servirà dopo.
Una volta completata la procedura andremo ad editare il file my.ini che si trova nella directory di installazione. Dopo averne effettuata una copia di backup andiamo ad aggiungere questa riga nella sezione [mysqld] dopo il parametro di porta:
bind-address=indirizzo_ip_della_risorsa_cluster
ad esempio bind-address=150.100.10.32
E salviamo il nostro bel file my.ini. Ora tutto quello che dobbiamo fare è collegarci sull'altro nodo e installare MySql, una volta completato avvieremo il configuratore e inseriremo i dati richiesti facendo bene attenzione a due cose:
-
Tutti i parametri devono essere gli stessi scelti prima, tipo di database, tipo di server etc.
-
Quando viene richiesta la cartella di installazione di innodb scegliamo una cartella residente su un disco non del cluster (visto che non ho mai detto di switchare il cluster!)
-
Il nome del servizio deve essere IDENTICO a quello scritto prima sul primo nodo!
Una volta completata la procedura guidata andremo a stoppare il servizio appena creato e a porlo in manuale, quindi copiamo il file my.ini dalla macchina dove abbiamo eseguito la prima configurazione e lo sostituiamo al file my.ini presente sulla seconda macchina (è sempre meglio rinominare il file my.ini originale).
Ora ritorniamo sul nostro primo nodo e andiamo a impostare il servizio di mysql su manuale nel caso non lo fosse. A questo punto possiamo procedere con la creazione (nel caso non l'aveste ancora creata) di un nuovo gruppo applicativo cluster a cui associeremo il disco condiviso, un indirizzo ip (che dovrà essere quello specificato nel file my.ini) e il servizio di mysql (attenzione, suggerisco di mettere come dipendenza del servizio almeno il disco condiviso per non incorrere in errori del tipo "non trovo il database", inoltre suggerirei di porvi anche il servizio ip per evitare noiosi errori a livello di servizio nel registro del sistema di windows).
Se avete seguito le istruzioni alla lettera tutto dovrebbe funzionare correttamente e (almeno sul primo nodo) l'istanza dovrebbe avviarsi molto rapidamente. Una volta avviata correttamente proviamo a switchare la risorsa sull'altro nodo, se abbiamo seguito le istruzioni correttamente tutto si avvierà in maniera corretta.
Piccola riflessione, ho letto di gente che dice di portare anche la cartella degli eseguibili sul disco condiviso e di installare il servizio sull'altro nodo manualmente, come consiglio personale vi dico NON FATELO ASSOLUTAMENTE ANCHE SE NON AVETE SCELTA! Perché mettiamo che per un qualsiasi motivo vi si corrompa un file ".exe" vitale per mysql... se voi avete installato il programma su un disco condiviso anche questo file exe sarà sul disco condiviso e quindi il programma risulterà corrotto (e magari perché no... il servizio non si avvierà) su entrambi i nodo del cluster, mentre se lo installate due volte in directory non accedibili direttamente dal servizio cluster (C:\Program Files\ va benissimo) avrete sempre la possibilità che, ammesso che vi si corrompa un exe da una parte, potete semplicemente disinstallare mysql e reinstallarlo copiandovi il file my.ini... chiaro?
Errori tipici:
D) Quando avvio il servizio sul primo nodo funziona correttamente, al momento in cui eseguo lo switch invece non si avvia il servizio, cosa può essere?
R) Per prima cosa hai verificato che il servizio si avviasse sul secondo nodo quando hai fatto l'installazione o il problema era a monte? Hai verificato il registro del sistema per evidenziare eventuali anomalie? Sei sicuro di aver copiato il file my.ini? Sei certo che i parametri con cui hai configurato il secondo nodo siano identici a quelli del primo nodo?
D) Non riesce ad avviare il servizio sul primo/secondo nodo, cosa può essere?
R) Verificato il registro di sistema? Nel caso ci siamo qualche errore a livello di InnoDB vedete dopo come fare. Verificato che i parametri specificati nel file my.ini (indirizzo ip, cartella di ubicazione dei file del database) siano corretti?
D) Dal registro di sistema si evidenzia un errore legato al plugin InnoDB, come posso risolvere?
R) Sicuro che sia un'installazione pulita? Almeno la prima volta sei riuscito a avviare il servizio o in fase di prima configurazione del servizio si è evidenziato l'errore? Provato a disinstallare mysql rimuovendo prima il servizio, rimuovendo poi mediante l'installatore l'applicativo e rimuovendo infine dalla cartella di %AppData% di All User i file relativi a mysql prima di effettuare una nuova installazione