AAG on Azure : http://blogs.msdn.com/b/sqlalwayson/archive/2013/01/23/test-lab-create-an-alwayson-availability- group-in-windows-azure-end-to-end.aspx http://msdn.microsoft.com/en-us/library/dn249504.aspx http://msdn.microsoft.com/en-us/library/jj870959.aspx
AAG listener on Azure : http://blogs.msdn.com/b/igorpag/archive/2013/09/02/sql-server-2012-alwayson-availability-group- and-listener-in-azure-vms-notes-details-and-recommendations.aspx http://msdn.microsoft.com/en-us/library/windowsazure/dn376546.aspx
3
INDEX
SOURCES .............................................................................................................................................................. 2 INDEX ................................................................................................................................................................... 3 1. AlwaysOn Availability Groups (AAG) ......................................................................................................... 4 1.1 Prsentation ........................................................................................................................................ 4 1.2 Fonctionnement .................................................................................................................................. 4 1.3 Licence ................................................................................................................................................. 5 1.4 Synoptique ........................................................................................................................................... 5 2. Installation de SQL Server 2012.................................................................................................................. 7 2.1 Prrequis.............................................................................................................................................. 7 2.2 Installation et configuration ................................................................................................................ 7 2.3 Autorisations ....................................................................................................................................... 7 3. Installation du cluster WSFC ................................................................................................................. 7 4. Mise en place de SQL AlwaysOn Availability Groups (AAG) ..................................................................... 8 4.1 Activation dAAG ................................................................................................................................. 8 4.2 Prparation des bases de donnes ..................................................................................................... 8 4.3 Rgle de pare-feu AAG ........................................................................................................................ 9 4.4 Groupe de disponibilit ....................................................................................................................... 9 4.5 Cration dun listener .................................................................................................................. 13 5. Gestion et supervision .............................................................................................................................. 14 5.1 Tableau de bord ................................................................................................................................. 14 5.2 Connexion via Management Studio .................................................................................................. 14 5.3 Gestion via la console WSFC .............................................................................................................. 15 6. Erreurs ....................................................................................................................................................... 16 6.1 Conflict name..................................................................................................................................... 16 6.2 Creating availability group failed [] ................................................................................................. 16
4
1. AlwaysOn Availability Groups (AAG)
1.1 Prsentation
Apparue avec SQL Server 2012, la technologie AAG a pour objectifs de minimiser les temps dinterruption (RTO) et de rcupration des donnes (RPO). Pour cela, AAG offre la possibilit de mise en place dinfrastructures granulaires et hautement disponibles. Par ailleurs, il se veut comme le remplaant de la technologie mirroring apparue avec SQL Server 2005 et largement utilise durant ces dernires annes.
Dune faon plus gnrale, AAG supprime la complexit de mise en place des solutions de haute- disponibilit telles que le log shipping , la rplication ou le mirroring en offrant une solution de redondance purement logicielle. De la mme faon, elle vient corriger les diffrents SPOF prsents dans la fonctionnalit mirroring tout en tenant compte des diffrents retours utilisateurs. A savoir : Disposer de plus dun serveur miroir Possibilit de consulter en temps rel un miroir Excuter des sauvegardes depuis un serveur miroir Ajout de plusieurs bases de donnes au sein du processus de mirroring Jongler entre des rplications synchrones et asynchrones entre les diffrents serveurs Acclrer le temps de bascule Etendre les capacits de rplication des donnes Impossibilit dutiliser des subnets diffrents
Tous ces retours ont bien t pris en compte et voici donc les apports principaux dAAG : Disposer de quatre serveurs miroirs secondaires Deux des miroirs peuvent fonctionner en synchrone et les deux autres en asynchrone Il est possible de possible de consulter en temps rel un miroir Plusieurs bases de donnes peuvent tre incorpores au processus de rplication Support du multi-subnet Le point de basculement du cluster nest plus situ au niveau de linstance sinon au niveau de la base de donnes Excution de la sauvegarde depuis un miroir
1.2 Fonctionnement
Dun point de vue technique, AAG repose sur le systme de clustering WSFC . Aprs avoir joint lensemble des serveurs au cluster, vous serez en mesure de lancer le processus de rplication permettant de synchroniser automatiquement vos diffrentes bases de donnes sur lensemble des serveurs. Par ailleurs, vous disposerez dun point dentre unique ( listener ) permettant de vous y connecter sans avoir vous soucier de ltat de vos serveurs.
5
1.3 Licence
Vous devrez vous acquitter des licences suivantes selon le rle de chaque serveur : Serveur actif (primaire) : licence requise (12 licence core ) Serveur passif (secondaire) : pas besoin de licence si un seul serveur passif Autre serveurs secondaires : licence requise Guide de rfrence officiel
1.4 Synoptique
Le schma de la page suivante rsume une architecture type dans le cadre de la mise en place dAAG au sein dune infrastructure hautement redondante :
6
Storage SQL Servers Datacenters Primary SQL 1 Synchronous Asynchronous Secondary SQL 2 Asynchronous AAG Listener Reporting Paris London Berlin SAN 1 High speed SAN 3 Spare SAN 4 Backup SAN 2 High speed SAN replication Replica SQL 3 Read-only SQL 4 Witness AD
7
2. Installation de SQL Server 2012
2.1 Prrequis
En ce qui concerne les prrequis de SQL Server 2012, rfrez-vous au point 3 de mon tuto concernant linstallation de SQL Server. Pour les comptes de service, il est recommand den crer un par serveur/instance dans votre Active Directory (SVC-SQL01, ). Veillez ne surtout pas utiliser de comptes de type VSA ou MSA (dtails au point 4.2 de mon tuto concernant la scurit de SQL Server).
Note : il est galement envisageable dutiliser des comptes MSA (Managed Service Account) ou des gMSA pour lexcution des instances. Rfrez-vous mon tuto pour plus dinformations.
2.2 Installation et configuration
Pour les tapes dinstallation et de configuration de SQL Server sur chacun des nuds, suivez respectivement les points 4 et 6 (instance statique) de mon tuto. Pensez placer les dossiers de base de donnes sur des disques spars portant la mme lettre et ayant le mme chemin.
Une fois ces points effectus, pensez appliquer le Service Pack 1 ainsi que le dernier CU en date pour SQL Server 2012. Important : si vous utilisez des serveurs SQL sous Azure, ne changez surtout pas le port des instances, au risque de rencontrer lerreur du point 6.2.
2.3 Autorisations
Excuter cette requte PowerShell depuis votre serveur dadministration. Celle-ci permettra dajouter les droits adquats pour le compte NT AUTHORITY sur lensemble de vos serveurs SQL (point 11 de lapart Initialize SQL Server VM , source) : $Session=New-PsSession ComputerName 'SQL01','SQL02','SQL03' Invoke-Command Session $Session ScriptBlock {Invoke-SqlCmd -Query "CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS" -ServerInstance "."} Invoke-Command Session $Session ScriptBlock {Invoke-SqlCmd -Query "GRANT ALTER ANY AVAILABILITY GROUP TO [NT AUTHORITY\SYSTEM] AS SA" -ServerInstance "." } Invoke-Command Session $Session ScriptBlock {Invoke-SqlCmd -Query "GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM] AS SA" -ServerInstance "." } Invoke-Command Session $Session ScriptBlock {Invoke-SqlCmd -Query "GRANT VIEW SERVER STATE TO [NT AUTHORITY\SYSTEM] AS SA" -ServerInstance "." }
3. Installation du cluster WSFC
La technologie AAG requiert que lensemble de vos serveurs SQL soit mis en cluster au travers de la fonctionnalit WSFC . Pour cela, suivez la procdure dcrite au sein de mon tutoriel. Si vous mettez en place AAG sur Azure, utilisez le script fourni par Microsoft. 8
4. Mise en place de SQL AlwaysOn Availability Groups (AAG)
Maintenant que le cluster et SQL Server sont paramtrs, vous allez pouvoir passer aux tapes dactivation et de configuration de la fonctionnalit AAG. Assurez-vous toutefois que les points suivants ont bien t valids : Tous les serveurs SQL sont membres du mme cluster WSFC SQL Server 2012 est install et oprationnel sur chacun des nuds Chaque instance SQL sexcute avec un compte de service
4.1 Activation dAAG
4.1.1 Via GUI
Pour activer AAG, clic droit sur le service de votre instance et cochez la case indique :
Redmarrez ensuite le service de linstance et rptez ces tapes sur lensemble des serveurs SQL.
Pour commencer, crez ou importez vos bases de donnes sur votre serveur principal. Effectuez ensuite une sauvegarde de celles-ci (obligatoire) : clic droit sur votre base > Tasks > Backup
4.2.2 Partage du dossier (PowerShell)
Il vous faut ensuite partager le dossier o se trouvent les bases de donnes afin deffectuer la 1 re
rplication. Pour cela, attribuez les droits de chacun des comptes de service SQL sur le dossier :
Permissions de partage du dossier contenant les bases de donnes synchroniser : Compte de service de chaque instance SQL : Full control Compte/groupe administrateur : requis pour lassistant AAG
Droits NTFS du dossier contenant les bases de donnes synchroniser : Compte de service de chaque instance SQL : Full control
Note : un groupe contenant lensemble des comptes de service peut tre utilis afin de simplifier lattribution des droits sur le dossier
4.3 Rgle de pare-feu AAG
En plus de la rgle de pare-feu correspondant au port de linstance statique, il est ncessaire de crer deux rgles supplmentaires pour le service AAG sur chacun des serveurs SQL. Ces ports devront bien sr tre renseigns durant lassistant de cration du groupe de disponibilit : Endpoint : port TCP 5022 par dfaut (configuration au point 4.4.3) Listener : port TCP de votre choix (configuration au point 4.5)
Pour lancer lassistant de cration dun groupe de disponibilit, effectuez un clic droit sur AlwaysOn High Availability > New Availability group Wizard :
10
Indiquez un nom pour le groupe :
Indiquez les bases de donnes inclure dans le processus de rplication AAG :
4.4.2 Configuration des rplicas
Ajoutez les serveurs souhaits et dfinissez leur type (synchrone ou asynchrone):
4.4.3 Configuration des endpoints
Dans lapart Endpoints, indiquez le port souhait. Pour les rgles de pare-feu associes, rfrez- vous au point 4.3 :
11
4.4.4 Configuration des backups
Indiquez vos prfrences en termes de backup :
4.4.5 Configuration de la rplication initiale
Indiquez le mode de synchronisation initiale souhait. Dans notre cas nous opterons pour une rplication automatique des bases de donnes partir de lemplacement partag au point 4.2.2 :
4.4.6 Validation des paramtres
Pour terminer, et avant dactiver dfinitivement le mcanisme de rplication AAG, assurez- vous davoir : Plac les dossiers de base de donnes dans des disques diffrents du systme et davoir utilis les mmes chemins et noms de dossier Partag le dossier contenant vos bases de donnes avec les bons droits (point 4.2.2)
12
Une fois tous les prrequis valids, lancez la configuration du groupe de disponibilit :
13
4.5 Cration dun listener
Pour crer un listener, clic droit sur votre groupe > Add Listener :
Vous aurez alors le choix entre lui attribuer une IP statique ou dynamique. La dernire solution peut savrer intressante si jamais votre groupe devait changer de Datacenter et donc changer de sous- rseau. Attention, le port devra tre celui cr au point 4.3 et il ne peut exister quun seul listener par groupe :
Note : une entre DNS sera automatiquement cre la fin de lassistant
14
5. Gestion et supervision
5.1 Tableau de bord
Pour accder au tableau de bord AAG, connectez-vous une instance dun serveur > AlwaysOn High Availability > Show dashboard.
5.2 Connexion via Management Studio
Pour vous connecter au groupe de disponibilit via SQL Server Management Studio, utilisez le nom et le port du listener renseigns au point 4.5 sous la forme <listener>,<port> . Ces lments seront galement intgrer par vos dveloppeurs dans les connexion string de vos applicatifs mtiers.
Vous obtiendrez ainsi un accs direct pour vos applications :
15
5.3 Gestion via la console WSFC
Vous pouvez galement consulter les informations concernant ltat du groupe de disponibilits ainsi que ses ressources associes en consultant lapart Roles de la console WSFC :
16
6. Erreurs
6.1 Conflict name
Cette erreur apparait lors de la cration dun listener. Elle est due un conflit de noms avec le VCO (Virtual Computer Object). Des solutions sont disponibles ici et ici.
6.2 Creating availability group failed []
Cette erreur sest produit dans mon cas sur Azure lorsque je modifiais le groupe de disponibilit en ayant pralablement altr la configuration de linstance SQL par dfaut :
Nhsitez pas menvoyer vos commentaires ou retours ladresse suivante : m.decrevoisier A-R-0-B-A-5 outlook . com