Instance virtuelle SQL Server Express

Oui oui, vous avez bien lu ! Le sujet du jour : mettre SQL Server Express en cluster ! Depuis quelques temps l’idée me trottait dans la tête. Lors de discussions avec Djeepy (Blog/Twitter), je m’étais lancé ce défi que je pensais facilement réalisable. Mais par manque de temps, j’avoue ne pas avoir travaillé le sujet.

Heureusement, l’été est une période (un peu) plus calme, et j’ai un peu de temps pour m’adonner à des projets plus personnels comme celui ci. Et puis, par 36°C à l’ombre, entre deux plongeons dans la piscine, difficile d’écrire un billet sérieux relatif à SQL Server.

Alors place au fun, à l’expérimentation qui n’a d’autre but que de s’amuser avec la techno.

Attention : la méthode proposée dans ce billet pour mettre SQL Server Express en cluster ne doit pas être utilisé à des fins de production. La solution est bien évidement non supportée et aucune aide en cas de problème ne sera fournie par un quelconque éditeur !!!

Et je ne parle même pas du licensing !

Reprenons les bases : que faut t’il pour construire un cluster (de basculement, l’objet du billet porte uniquement sur le FCI et pas sur les cluster NLB, ni sur les groupes de disponibilité).

Un cluster c’est tout d’abord un stockage partagé, de type SAN. Le transport peut se faire au travers d’un réseau fibre ou iSCSI.

Ensuite, il faut une édition Standard de Windows, depuis Windows 2012. Précédemment, il fallait une édition Entreprise ou Datacenter.

Pour terminer, une édition standard ou entreprise de SQL Server. L’édition standard n’autorisant que 2 nœuds dans le cluster. Le nœud est l’appellation donnée à un serveur lorsque celui-ci fait partie d’un cluster  (ou grappe de serveurs).

Ensuite, ce n’est qu’une histoire de démarrage et d’arrêt d’un service présent sur chacun des nœuds, orchestré par un service “superviseur”, le service cluster.

Afin de mettre SQL Server Express en Cluster, il faut tout d’abord former le cluster. Pour ma part, je vais réutiliser le cluster que j’avait utilisé pour le billet relatif au quorum dynamique. Vous pouvez bien entendu partir sur de nouvelles machines.

Voici une copie des écrans permettant la formation du cluster pour ceux qui aurait la flemme de lire le billet précédent.

image_thumbimage_thumb1image_thumb2image_thumb3image_thumb4image_thumb5image_thumb6image_thumb7image_thumb8image_thumb10image_thumb11image_thumb12image_thumb14

Un cluster, nous l’avons vu c’est aussi un stockage partagé. Sauf qu’il est à présent possible, et supporté, de stocker les fichiers de bases de donnes sur un partage réseau, de type SMB3, tel que je l’avais utilisé dans le billet sur Installation de SQL Server 2012 sur un Scale-Out file Server.

Je vais donc m’appuyer sur cette technique afin d’installer SQL Server Express sur le premier nœud. Je créé tout d’abord le partage sur mon Scale-Out file server et je donne les droits au compte de service que je vais utiliser.

imageimageimageimageimageimageimageimageimageimageimageimageimageimageimage

Il ne reste a présent plus qu’à installer SQL Server Express, ce dont on a déjà parlé dans un précédent post. Par rapport à une installation “classique” de SQL Server Express, je vais simplement utiliser un compte du domaine en tant que compte de service, chose obligatoire pour un service en cluster. J’ai également préféré mettre le service en démarrage manuel dès l’installation pour ne pas avoir à le modifier ensuite.

Je travaille ici avec une béta de SQL Server 2014, mais vous pouvez tout a fait utiliser un SQL Server Express 2012. Je réutilise les nœuds sur lesquels j’ai déjà 2 instance en cluster, ce qui explique que l’on aperçoive sur les screenshots  les instance I1 et I2.

imageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimage

Une fois l’installation terminée, pensez à activer TCP-IP dans les bibliothèques réseau. Vous pouvez démarrer le service pour tester le fonctionnement.

image

Ensuite, il faut stopper le service et renommer le répertoire créé sur le FileShare afin que l’installation sur le second nœud puisse se faire. Car, il est bien évident que nous ne pouvons pas utiliser le AddNode “classique”.

imageimage

L’installation sur le second nœud est strictement identique à la première installation. Je vous fais grâce des copies d’écran. On active TCPIP, on démarre le service et on teste la connectivité.

image

On stoppe le service et il ne reste plus qu’à clusteriser ce service…

imageimageimageimageimageimageimageimageimageimage

Il ne reste qu’à renommer l’instance, car elle porte, bien sur le nom du serveur :

image

sp_dropserver 'BLUE2\SQLEXPRESS'
GO

sp_addserver 'FCI2014EXPRESS\SQLEXPRESS',local
GO

image

Notre instance SQL Server Express est à présent en cluster et peut supporter un failover !

Happy clustering  Sourire

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM SQL Server 2008
Cet article, publié dans Divertissements, SQL Server, est tagué , . Ajoutez ce permalien à vos favoris.

10 commentaires pour Instance virtuelle SQL Server Express

  1. Rhoooo toi tu vas prendre cher !😉

  2. Laurent GRENIER dit :

    « Attention : la méthode proposée dans ce billet pour mettre SQL Server Express en cluster ne doit pas être utilisé à des fins de production »
    Après avoir vu les pratiques de certaines société, c’est avertissement est useless.

    GG ton article ! Cependant j’attends avec impatience l’article suivante : « Comment simuler une instance SQL Server sur un fichier Excel et clusturiser le tout »🙂

  3. thesqlgrrrl dit :

    Dis tu n’aides pas je viens de rediger un mémo en interne pour ne pas utiliser express a tout va meme avec des packages :-p
    Mais sans blague très très jolie figure de style!!!!! J’ai encore recommandé ton blog a un client hier😉

    • Christophe dit :

      Désolé Isabelle … Donne moi un thème pour un autre billet qui aille dans ton sens … Ca rattrapera le coup.🙂

      • Laurent GRENIER dit :

        Perso, outre le fait que ce soit « deprecated », je trouve que cela représente une bonne solution lowcost qui répond au besoin d’une majorité de sociétés. Les limites d’SQL Server Express sont tout à fait honorables.
        En revanche, tu parles de problème de licensing, SQL Server Express Edition n’est t’il plus libre de droits et d’usage (commercial ou non) ?

      • Christophe dit :

        SQL Server Express est toujours redistribuable et utilisable librement. Par contre, il n’est pas censé être monté en cluster. C’est ce point-là qui peut poser problème. Et avant tout, il s’agit aussi de ME protéger, car j’imagine bien que certains utilisant cette méthode et rencontrant des problèmes se retourneraient vers Microsoft ou moi-même.
        Ceci dit, pour rester en totale légalité, pourquoi ne pas utiliser un cluster Hyper-V server (gratuit), hébergeant une VM hautement disponible dans laquelle se trouve un SQL Express. Encore une fois, cette solution à très faible cout satisfait un bon nombre de SLA, tant au niveau PCA grâce à la VM en cluster, mais aussi en PRA au travers des Hyper-V réplicas. Une solution vraiment sympa … et totalement dans les clous côté licensing !

  4. Ping : Instance virtuelle SQL Server Express | DEVOPS ...

  5. Ping : Checklist n°1-Petit guide de shopping… | The SqlGrrrl

  6. Ping : SQL Server – Les solutions pour créer un Guest Cluster | Christophe LAPORTE – Consultant SQL Server

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s