Titre

Mise en place d'AlwaysOn sur un serveur SQL 2012

Comment mettre en place un cluster AlwaysOn sur un serveur SQL 2012

Vous êtes sur un 2012 R2 Enterprise ou Datacenter.
Une version standard ne suffira pas.
Notez également qu'au niveau de l'AD, à un moment donné un compte d'ordinateur va chercher à créer un autre compte d'ordinateur pour le listener. Il faudra donc qu'il ait les droits de lecture/écriture sur l'OU sinon le listener ne va pas se créer.

Lancez ServerManager

Sur vos 2 serveurs SQL ajoutez un rôle

Cliquez sur Next etc

Dans les Features, cochez Failover Clustering

Cliquez sur Add Features

Cliquez sur Next

Et Install

Pour appréhender la solution on va commencer par une solution simple, cad le Node and File Share Majority

Sur un troisième serveur on va créer un partage qui servira de témoin.
Aussi créez un répertoire sur ce 3ème serveur, faites un clic droit sur ce partage puis cliquez sur Properties

Cliquez sur Sharing puis Advanced Sharing

Cochez "Share this folder" puis cliquez sur "Caching"

Sélectionnez "No files or programs etc" puis cliquez sur Ok

Cliquez sur Permissions

Dans un premier temps, donnez le droit "Change" pour le groupe "Everyone"

Cliquez maintenant sur Add

Ajoutez le groupe des administrateurs locaux ou du domaine et donnez leur tous les droits.
Terminez en cliquant sur Ok

Cliquez sur Ok

Cliquez sur Security

Cliquez sur Edit

Cliquez sur Add

Donnez temporairement les droits de modification au groupe tout le monde

Maintenant revenez sur les serveurs à mettre en Cluster.
Dans les tools, lancez le Failover Cluster Manager

Faites un clic droit sur Failover Cluster>Create Cluster

Entrez le nom des serveurs qui doivent intégrer le cluster et cliquez sur Next

Ici dans le cadre d'un environnement de production, cliquez sur Yes pour effectuer des tests. Si vous êtes certain de vous cliquez sur No

Donnez un nom à votre pour Cluster.
C'est ce nom qui permettra d'accéder à vos machines intégrées dans le cluster.
Cliquez sur Next

Le cluster se configure

On a ici une erreur car nous n'avons pas fait de disque de Quorum

Comme indiqué sur le site http://blogs.technet.com/b/windowsinternals/archive/2009/03/30/le-quorum-et-le-cluster.aspx
un disque de Quorum peut servir d'arbitre ou de votant

Or actuellement nous ne mettons pas en place un disque de Quorum mais une première solution plus simple, cad un partage qui servira de témoin dans le cadre du mode Node and File Share Majority

Pour continuer la mise en place du partage et le déclarer en tant que témoin,
faites un clic droit sur votre Cluster puis cliquez sur
More Actions>Configure Cluster Quorum Settings

Indiqué le chemin du partage créé précédemment et qui servira de témoin.
Terminez en cliquant sur Next

Sélectionnez "Configure a file share witness" et cliquez sur Next

Indiquez le nom du serveur qui contient le partage à utiliser pour le Quorum,
sélectionnez le partage et cliquez sur Next

Sélectionnez "Select the quorum witness" et cliquez sur Next

Cliquez sur Next

Cliquez sur Finish

Limitez l'accès au partage qui sert de témoin en retirant le groupe tout le monde et en mettant à la place le compte de service utilisé par le moteur de SQL Server (à vérifier si il ne faut pas mettre les comptes des serveurs SQL aussi)

Si vous souhaitez allez plus loin, ne pas utiliser un partage qui sert de témoin mais un disque de Quorum qui servira d'arbitre ou de votant,

Il faut commencer par déclarer un disque le disque Quorum que l'on présentera ensuite aux 2 serveurs SQL

Aller sur un serveur avec un OS MS 2012. Ce dernier va héberger physiquement le disque de Quorum.
Installer la feature iSCSI Target server. Pour cela tapez la commande

Lien vers le fichier : cliquez ici

Pour le faire en interface graphique cliquez sur
Manage>Add Roles and Features

Dans les rôles ajoutez "iSCSI Target Server" comme montré ici

Cliquez sur Next puis Next

Cliquez sur Install

Cliquez sur Close

Maintenant dans Server Manager allez sur File ans Storage Services

Cliquez sur TASKS et créez un nouveau disque iSCSI virtuel

Cliquez sur le disque qui va héberger le disque iSCSI.
Notez que ce disque pourra encore par la suite héberger des données autres.

Donnez un nom à votre disque virtuel iSCSI.
Cliquez sur Next

Donnez lui une taille et cliquez sur Next

Un iSCSI target va être créé et associé à ce disque.
Cliquez sur Next

Donnez lui un nom et cliquez sur Next

On va indiquer quels serveurs peuvent voir le volume.
Cliquez sur Add

Cliquez sur Browse

Entrez le nom d'une première machine autorisée et cliquez sur Ok

Recommencez pour le second serveur du cluster

Terminez en cliquant sur Next

Vous pouvez protéger l'accès par mot de passe mais ce n'est pas obligatoire. Cliquez sur Next

Cliquez sur Create

Cliquez sur Close

On se retrouve avec cette vue dans l'outil

Allez sur le premier serveur qui doit être mis en cluster.
Il va avoir besoin d'accéder au volume en tant que client.
Pour ce faire cliquez sur iSCSI Initiator

Cliquez sur Yes

Cliquez sur Discover Portal

Entrez le nom du serveur qui héberge votre volume iSCSI

Maintenant dans l'onglet Targets cliquez sur Connect

Cliquez sur Ok

Le statut doit maintenant être en Connected

Lancez diskmgmt pour gérer vos disques

Un nouveau disque doit être détecté.
Cliquez sur Ok

Créez un volume, formatez le etc

Allez maintenant sur le second serveur à mettre en cluster et faites la même opération pour déclarer le disque de quorum.

Puis lancez diskmgmt

Vous devez être capable d'accéder au même disque présenté par le serveur qui héberge physiquement le disque de Quorum

On va maintenant déclarer ce disque dans le cluster.
Pour cela allez dans
Storage>Disks>Add Disk

Allez chercher votre disque et cliquez sur Ok

Le disque apparait dans l'interface.
La déclaration n'a besoin d'être faite que sur un des serveurs du cluster.

Au niveau du cluster faites un clic droit puis cliquez sur
More Actions>Configure Cluster Quorum Settings

Cliquez sur "Advanced quorum configuration" puis Next

Sélectionnez tous vos nœuds et cliquez sur Next

Configurez un "disk witness" et cliquez sur Next

Sélectionnez votre disque de quorum et cliquez sur Next

Cliquez sur Next

Cliquez sur Next

Une ip a été attribuée au cluster dans le DNS

Un compte d'ordinateur a également été créé pour le cluster dans l'AD

Ceci fait, on va passer à la partie SQL Server.
Installez SQL Server Enterprise ou Datacenter de façon identique sur les serveurs du cluster

SQL doit tourner avec un compte de service créé au niveau du domaine avec les droits d'admin sous peine d'avoir cette erreur par la suite

Une fois SQL Server installé, lancez SQL Server Configuration Manager

Allez dans SQL Server Services et allez dans les propriétés de SQL Server

Dans l'onglet AlwaysOn High Availability, cochez
Enable AlwaysOn Availability Groups

Cliquez sur Ok

Il est indiqué qu'il faudra redémarrer le service de SQL Server

Chose que l'on peut faire d'un simple clic droit

Allez dans les propriétés de votre instance SQL

Vérifiez que "Is HADR Enabled" est à True

Créez une nouvelle base de données

Son "recovery model" doit être sur Full

Sauvegardez la base une première fois

Les options par défaut suffisent

Créez ensuite un partage auquel chaque compte de service SQL pourra accéder ..

.. en modification

Cliquez sur Next

Sous AlwaysOn High Availability>Availability Groups
faites un "New Availability Group Wizard"

Nommez le et cliquez sur Next

Sélectionnez la base à ajouter dans le Availability Group et cliquez sur Next

Cochez
Automatic Failover
Synchronous Commit
mettez Readable Secondary à Yes

Cliquez sur Add Replica

Entrez le nom du second serveur SQL puis cliquez sur Connect

Si vous n'arrivez pas à ajouter le second serveur, vérifiez que le serveur cile n'a pas son firewall d'actif

Cochez également
Automatic Failover
Synchronous Commit
passez Readable Secondary à Yes

Cliquez sur Listener,
Cochez Create an availability group listener,
donnez un nom, assignez un port comme le 5025

Cliquez sur Add

Assignez une Ip et cliquez sur Ok

Cliquez sur Next

Cliquez sur Next

Cochez Full,
indiquez le chemin du partage créé précédemment puis cliquez sur Next

Cliquez sur Next

Cliquez sur Finish

Cela se configure

Les créations se font etc...

Si vous cliquez sur More details pour visualiser l'avancement des différentes étapes

Dans le partage fait pour l'occasion on voit un backup et un fichier de transaction

Quand terminé, vérifiez sur le serveur primaire que tout est Ok

Même chose sur le second

Un compte d'ordinateur pour le listener doit avoir été créé

Une entrée DNS doit également apparaitre

Un Dashboard est disponible au niveau de votre Availability Group.
Vos bases doivent y être en Synchronized

Pour forcer une bascule, aller sur votre groupe de disponibilité puis cliquez sur Failover

Cliquez sur Next

Sélectionnez le serveur cible puis cliquez sur Next

Cliquez sur Connect

Cliquez sur Finish

Cliquez sur Connect puis Next

Cliquez sur Close

Le Primary server doit être passé Secondary et inversement

Au niveau du journal d'application du serveur SQL cible, on trouve un event 9406 en début de bascule ainsi qu'un 41074

Dans le journal applicatif source c'est un event id 41075 que l'on trouve

Pages Web

Site WebDescription
Sharepointengineer.comCreate the alwayson availability group on sql server 2012 step by step
Blogs.technet.comLe quorum et le cluster
Blogs.technet.comIntroduction of iSCSI Target in Windows Server 2012