Les groupes de disponibilité Always On de Microsoft SQL Server vous permettent de répliquer des bases de données sur plusieurs instances SQL Server Enterprise.
À l'instar des instances de cluster de basculement SQL Server, les groupes de disponibilité Always On utilisent le clustering de basculement Windows Server (WSFC) pour mettre en œuvre la haute disponibilité. Cependant, les deux fonctionnalités diffèrent comme suit:
Groupes de disponibilité Always On | Instances de cluster de basculement | |
---|---|---|
Champ d'application du basculement | Groupe de bases de données | Instance |
Stockage | Non partagé | Partagé |
Pour une comparaison plus détaillée, consultez la section Comparaison des instances de cluster de basculement et des groupes de disponibilité.
Les groupes de disponibilité Always On acceptent plusieurs modes de disponibilité. Ce tutoriel explique comment déployer des groupes de disponibilité Always On en mode de commit synchrone afin de mettre en œuvre la haute disponibilité pour une ou plusieurs bases de données.
Dans la configuration, vous allez créer trois instances de VM. Deux instances de VM, node-1
et node-2
, servent de nœuds de cluster et exécutent SQL Server.
Une troisième instance de VM, witness
, permet d'atteindre un quorum dans un scénario de basculement.
Les trois instances de VM sont réparties dans trois zones et partagent un sous-réseau commun.
Un groupe de disponibilité Always On SQL Server est utilisé pour répliquer de manière synchrone un exemple de base de données, bookshelf
, sur les deux instances SQL Server.
Dans un environnement de cluster Windows sur site, les annonces du protocole ARP (Address Resolution Protocol) déclenchent le basculement d'adresse IP. Google Cloud, en revanche, ignore les annonces ARP. Vous devez donc mettre en œuvre l'une des deux options suivantes: utiliser un équilibreur de charge interne et un nom de réseau distribué (DNN).
Dans cet article, nous partons du principe que vous avez déjà déployé Active Directory sur Google Cloudet que vous possédez des connaissances de base sur SQL Server, Active Directory et Compute Engine. Pour en savoir plus sur Active Directory sur Google Cloud, consultez la section Avant de commencer.
Un groupe de disponibilité Always On SQL Server est utilisé pour répliquer de manière synchrone un exemple de base de données, bookshelf
, sur les deux instances SQL Server. Un écouteur de nom de réseau distribué (DNN) devant le cluster fournit un point de terminaison unique pour les clients SQL Server.
Pour en savoir plus sur le DNN, consultez la section Configurer un écouteur DNN pour un groupe de disponibilité.
Ce schéma comprend les éléments suivants :
- Deux instances de VM dans la même région et dans des zones différentes pour le cluster de basculement appelé
node-1
etnode-2
. L'un héberge l'instance dupliquée principale de la base de données SQL Server, tandis que l'autre nœud héberge l'instance dupliquée secondaire. - Une troisième VM appelée
witness
sert de témoin de partage de fichiers pour fournir un vote décisif et atteindre un quorum pour le basculement. - Un écouteur DNN devant le cluster fournit un point de terminaison unique pour les clients SQL Server.
Objectifs
- Déployer un serveur WSFC comprenant deux instances de VM SQL Server et une troisième instance de VM faisant office de témoin de partage de fichiers.
- Créer un groupe de disponibilité avec commit synchrone.
- Configurer un nom de réseau distribué (DNN) pour acheminer le trafic vers votre groupe de disponibilité avec SQL Server
- Vérifier que l'installation fonctionne en simulant un basculement.
Coûts
Ce tutoriel utilise des composants facturables de Google Cloud, y compris:
Utilisez le Simulateur de coût pour générer une estimation des coûts en fonction de votre utilisation prévue.
Avant de commencer
Pour effectuer les tâches de ce tutoriel, vérifiez les points suivants:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Vous disposez d'un domaine Active Directory comportant au moins un contrôleur de domaine. Vous pouvez créer un domaine Active Directory à l'aide du service Microsoft AD géré. Vous pouvez également déployer un environnement Active Directory personnalisé sur Compute Engine et configurer une zone de transfert DNS privée qui transmet les requêtes DNS à vos contrôleurs de domaine.
-
Vous disposez d'un utilisateur Active Directory autorisé à joindre des ordinateurs au domaine et à se connecter à l'aide du protocole RDP. Si vous utilisez le service Microsoft AD géré, vous pouvez utiliser l'utilisateur
setupadmin
. Pour en savoir plus sur le provisionnement des comptes utilisateur Active Directory, consultez la section Provisionnement des comptes utilisateur Active Directory. - Un projet Google Cloud et un cloud privé virtuel (VPC) avec une connectivité à vos contrôleurs de domaine Active Directory.
- Un sous-réseau à utiliser avec les instances de machine virtuelle de cluster de basculement Windows Server.
Préparer votre projet et votre réseau
Pour déployer vos groupes de disponibilité AlwaysOn SQL Server, vous devez préparer votre projet et votre VPCGoogle Cloud . Les sections suivantes vous expliquent comment procéder.
Configurer votre projet et votre région
Pour préparer votre projet Google Cloud au déploiement de groupes de disponibilité Always On SQL Server, procédez comme suit:
Dans la console Google Cloud , ouvrez Cloud Shell en cliquant sur le bouton Activer Cloud Shell .
Initialisez les variables suivantes.
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Remplacez les éléments suivants :
VPC_NAME
: nom de votre VPCSUBNET_NAME
: nom de votre sous-réseau
Définissez votre ID de projet par défaut.
gcloud config set project
PROJECT_ID
Remplacez
PROJECT_ID
par l'ID de votre projet Google Cloud .Définissez votre région par défaut.
gcloud config set compute/region
REGION
Remplacez
REGION
par l'ID de la région dans laquelle vous souhaitez effectuer le déploiement.
Créer des règles de pare-feu
Pour autoriser les clients à se connecter à SQL Server et à communiquer entre les nœuds du cluster, vous devez créer plusieurs règles de pare-feu. Vous pouvez utiliser des tags réseau pour simplifier la création de ces règles de pare-feu, comme suit:
- Les deux nœuds de cluster sont annotés avec le tag
wsfc-node
. - Tous les serveurs (y compris le
witness
) sont annotés avec le tagwsfc
.
Pour créer des règles de pare-feu qui utilisent ces tags réseau, procédez comme suit:
- Revenez à la session Cloud Shell que vous avez précédemment ouverte.
Créez des règles de pare-feu pour autoriser le trafic entre les nœuds du cluster.
SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\)) gcloud compute firewall-rules create allow-all-between-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp,udp,icmp \ --enable-logging \ --source-tags=wsfc \ --target-tags=wsfc \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp:1433 \ --enable-logging \ --source-ranges=$SUBNET_CIDR \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Créer des instances de VM
Créez et déployez deux instances de VM pour le cluster de basculement. À tout moment, l'une de ces VM héberge l'instance dupliquée principale de la base de données SQL Server, tandis que l'autre nœud héberge l'instance dupliquée secondaire. Les deux instances de VM doivent :
- avoir installé un clustering de basculement et SQL Server ;
- avoir activé la compatibilité WSFC de Compute Engine.
Vous utilisez une image payante SQL Server sur laquelle SQL Server 2022 est préinstallé.
Pour obtenir un nombre de votes majoritaire et atteindre un quorum pour le scénario de basculement, déployez une troisième VM faisant office de témoin de partage de fichiers en procédant comme suit:
- Revenez à la session Cloud Shell que vous avez précédemment ouverte.
Créez un script spécialisé pour les nœuds WSFC. Ce script installe les fonctionnalités Windows nécessaires et crée des règles de pare-feu pour WSFC et SQL Server.
cat << "EOF" > specialize-node.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature Failover-Clustering -IncludeManagementTools Install-WindowsFeature RSAT-AD-PowerShell # Open firewall for WSFC netsh advfirewall firewall add rule name="Allow WSFC health check" dir=in action=allow protocol=TCP localport=59998 # Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 # Open firewall for SQL Server replication netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022 # Format data disk Get-Disk | Where partitionstyle -eq 'RAW' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel 'Data' -Confirm:$false # Create data and log folders for SQL Server md d:\Data md d:\Logs EOF
Créez les instances de VM. Sur les deux VM qui servent de nœuds de cluster, associez un disque de données supplémentaire et activez le clustering de basculement Windows Server en définissant la clé de métadonnées
enable-wsfc
surtrue
:REGION=$(gcloud config get-value compute/region) ZONE1=
ZONE1
ZONE2=ZONE2
ZONE3=ZONE3
PD_SIZE=200 MACHINE_TYPE=n2-standard-8 gcloud compute instances create node-1 \ --zone $ZONE1 \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --boot-disk-device-name "node-1" \ --create-disk=name=node-1-datadisk,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create node-2 \ --zone $ZONE2 \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --boot-disk-device-name "node-2" \ --create-disk=name=node-2-datadisk,size=$PD_SIZE,type=pd-ssd,auto-delete=no \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create "witness" \ --zone $ZONE3 \ --machine-type e2-medium \ --subnet $SUBNET_NAME \ --image-family=windows-2022 \ --image-project=windows-cloud \ --tags wsfc \ --boot-disk-size 50 \ --boot-disk-type pd-ssd \ --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"Remplacez ZONE1, ZONE2 et ZONE3 en fonction des zones que vous utilisez.
Pour joindre les trois instances de VM à Active Directory, procédez comme suit pour chacune d'entre elles:
Surveillez le processus d'initialisation de la VM en consultant la sortie de son port série.
gcloud compute instances tail-serial-port-output
NAME
Remplacez
NAME
par le nom de l'instance de VM.Attendez quelques minutes jusqu'à ce que la sortie
Instance setup finished
s'affiche, puis appuyez sur Ctrl+C. À ce stade, l'instance de VM est prête à être utilisée.Créez un nom d'utilisateur et un mot de passe pour l'instance de VM.
Connectez-vous à la VM à l'aide du Bureau à distance en vous servant du nom d'utilisateur et du mot de passe créés à l'étape précédente.
Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
Rattachez l'ordinateur à votre domaine Active Directory, puis redémarrez-le.
Add-Computer -Domain
DOMAIN -Restart
Remplacez
DOMAIN
par le nom DNS du domaine Active Directory.Saisissez les identifiants d'un compte disposant des autorisations nécessaires pour associer une VM au domaine.
Attendez que la VM redémarre. Vous avez maintenant associé l'instance de VM à Active Directory.
Déployer le cluster de basculement
Vous pouvez désormais utiliser les instances de VM pour déployer un cluster de basculement Windows Server et SQL Server. Les sections suivantes vous expliquent comment procéder.
Préparer SQL Server
Créez un compte utilisateur dans Active Directory pour SQL Server en procédant comme suit.
- Connectez-vous à
node-1
à l'aide du Bureau à distance. Connectez-vous avec le compte utilisateur de votre domaine. - Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
- Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
Créez un compte utilisateur de domaine pour SQL Server et l'agent SQL, puis attribuez un mot de passe :
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
Pour configurer SQL Server, procédez comme suit sur node-1
et node-2
:
- Accédez à l'outil Gestionnaire de configuration SQL Server.
- Dans le volet de navigation, sélectionnez Services SQL Server.
- Dans la liste des services, faites un clic droit sur SQL Server (MSSQLSERVER), puis sélectionnez Propriétés.
Sous Se connecter en tant que, modifiez le compte comme suit:
- Nom du compte:
DOMAIN\sql_server
, oùDOMAIN
est le nom NetBIOS de votre domaine Active Directory. - Mot de passe:saisissez le mot de passe que vous avez choisi précédemment.
- Nom du compte:
Cliquez sur OK.
Lorsque vous êtes invité à redémarrer SQL Server, sélectionnez Oui.
SQL Server s'exécute désormais sous un compte utilisateur de domaine.
Créer des partages de fichiers
Créez deux partages de fichiers sur l'instance de VM witness
afin qu'elle puisse stocker les sauvegardes SQL Server et agir en tant que témoin de partage de fichiers:
- Connectez-vous à
witness
à l'aide du Bureau à distance. Connectez-vous avec le compte utilisateur de votre domaine. - Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
- Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
Créez un partage de fichiers témoin, puis accordez-vous, ainsi qu'aux deux nœuds de cluster, l'accès au partage de fichiers.
New-Item "C:\QWitness" –type directory icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)' icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)' New-SmbShare ` -Name QWitness ` -Path "C:\QWitness" ` -Description "SQL File Share Witness" ` -FullAccess $env:username,node-1$,node-2$
Créez un autre partage de fichiers pour stocker les sauvegardes et accordez un accès complet à SQL Server :
New-Item "C:\Backup" –type directory New-SmbShare ` -Name Backup ` -Path "C:\Backup" ` -Description "SQL Backup" ` -FullAccess $env:USERDOMAIN\sql_server
Créer le cluster de basculement
Pour créer le cluster de basculement, procédez comme suit:
- Revenez à la session de bureau à distance sur
node-1
. - Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
- Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
Créez un nouveau cluster.
New-Cluster ` -Name sql-cluster ` -Node node-1,node-2 ` -NoStorage ` -ManagementPointNetworkType Distributed
Revenez à la session PowerShell sur
witness
et accordez à l'objet ordinateur virtuel du cluster l'autorisation d'accéder au partage de fichiers.icacls C:\QWitness\ /grant 'sql-cluster$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'sql-cluster$' ` -AccessRight Full ` -Force
Revenez à la session PowerShell sur
node-1
et configurez le cluster pour utiliser le partage de fichiers surwitness
en tant que quorum de cluster.Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Vérifiez que le cluster a bien été créé.
Test-Cluster
Vous pouvez voir des avertissements pouvant être ignorés en toute sécurité :
WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings.. WARNING: Network - Validate Network Communication: The test reported some warnings.. WARNING: Test Result: HadUnselectedTests, ClusterConditionallyApproved Testing has completed for the tests you selected. You should review the warnings in the Report. A cluster solution is supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
Vous pouvez également lancer le composant logiciel enfichable MMC du gestionnaire de cluster de basculement pour vérifier l'état du cluster en exécutant
cluadmin.msc
.Si vous utilisez le service AD géré, ajoutez le compte d'ordinateur utilisé par le cluster Windows au groupe Cloud Service Domain Join Accounts pour pouvoir joindre des ordinateurs au domaine.
Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members sql-cluster$
Activez les groupes de disponibilité Always On sur les deux nœuds.
Enable-SqlAlwaysOn -ServerInstance node-1 -Force Enable-SqlAlwaysOn -ServerInstance node-2 -Force
Créer un groupe de disponibilité
Vous allez maintenant créer un exemple de base de données bookshelf
, l'inclure dans un nouveau groupe de disponibilité nommé bookshelf-ag
et configurer la haute disponibilité.
Créer une base de données
Créez une base de données. Pour les besoins de ce tutoriel, cette base de données n'a pas besoin de contenir de données.
- Revenez à la session de bureau à distance sur
node-1
. - Ouvrez SQL Server Management Studio.
- Dans la boîte de dialogue Se connecter au serveur, vérifiez que le nom du serveur est défini sur
node-1
et sélectionnez Se connecter. - Dans le menu, sélectionnez Fichier > Nouveau > Requête avec la connexion actuelle.
Collez le script SQL suivant dans l'éditeur :
-- Create a sample database CREATE DATABASE bookshelf ON PRIMARY ( NAME = 'bookshelf', FILENAME='d:\Data\bookshelf.mdf', SIZE = 256MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256MB) LOG ON ( NAME = 'bookshelf_log', FILENAME='d:\Logs\bookshelf.ldf', SIZE = 256MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256MB) GO USE [bookshelf] SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO -- Create sample table CREATE TABLE [dbo].[Books] ( [Id] [bigint] IDENTITY(1,1) NOT NULL, [Title] [nvarchar](max) NOT NULL, [Author] [nvarchar](max) NULL, [PublishedDate] [datetime] NULL, [ImageUrl] [nvarchar](max) NULL, [Description] [nvarchar](max) NULL, [CreatedById] [nvarchar](max) NULL, CONSTRAINT [PK_dbo.Books] PRIMARY KEY CLUSTERED ([Id] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO -- Create a backup EXEC dbo.sp_changedbowner @loginame = 'sa', @map = false; ALTER DATABASE [bookshelf] SET RECOVERY FULL; GO BACKUP DATABASE bookshelf to disk = '\\witness\Backup\bookshelf.bak' WITH INIT GO
Le script crée une base de données comportant une seule table et effectue une sauvegarde initiale sur
witness
.Sélectionnez Exécuter pour exécuter le script SQL.
Configurer la haute disponibilité
Vous pouvez désormais configurer la haute disponibilité pour le groupe de disponibilité à l'aide de T-SQL ou de Server Management Studio.
Utiliser T-SQL
Pour configurer la haute disponibilité pour le groupe de disponibilité à l'aide de T-SQL, procédez comme suit:
Connectez-vous à
node-1
, puis exécutez le script suivant pour créer le groupe de disponibilitébookshelf-ag
.CREATE LOGIN [
NET_DOMAIN
\sql_server] FROM WINDOWS; GO USE [bookshelf]; CREATE USER [NET_DOMAIN
\sql_server] FOR LOGIN [NET_DOMAIN
\sql_server]; GO USE [master]; CREATE ENDPOINT bookshelf_endpoint STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=ALL); GO GRANT CONNECT ON ENDPOINT::[bookshelf_endpoint] TO [NET_DOMAIN
\sql_server] GOConnectez-vous à
node-2
et exécutez le script suivant.CREATE LOGIN [
NET_DOMAIN
\sql_server] FROM WINDOWS; GO CREATE ENDPOINT bookshelf_endpoint STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=ALL); GO GRANT CONNECT ON ENDPOINT::[bookshelf_endpoint] TO [NET_DOMAIN
\sql_server] GOSur
node-1
, puis exécutez le script suivant pour créer le groupe de disponibilitébookshelf-ag
.USE master; GO CREATE AVAILABILITY GROUP [bookshelf-ag] WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY, CLUSTER_TYPE = WSFC, DB_FAILOVER = ON ) FOR DATABASE [bookshelf] REPLICA ON N'node-1' WITH ( ENDPOINT_URL = 'TCP://node-1:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ), N'node-2' WITH ( ENDPOINT_URL = 'TCP://node-2:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ); GO
Connectez-vous à
node-2
, puis exécutez le script suivant pour joindre le réplica secondaire au groupe de disponibilité et activer le forçage de semis automatique.USE master; GO ALTER AVAILABILITY GROUP [bookshelf-ag] JOIN; ALTER AVAILABILITY GROUP [bookshelf-ag] GRANT CREATE ANY DATABASE;
Vérifiez l'état du groupe de disponibilité.
SELECT * FROM sys.dm_hadr_availability_group_states; GO
synchronization_health_desc
doit s'afficher en tant queHEALTHY
.
À l'aide de SQL Server Management Studio
Pour configurer la haute disponibilité pour le groupe de disponibilité à l'aide de SQL Server Management Studio, procédez comme suit:
- Dans la fenêtre Explorateur d'objets, faites un clic droit sur Haute disponibilité Always On, puis sélectionnez Assistant du nouveau groupe de disponibilité.
- Sur la page Spécifier les options, définissez le nom du groupe de disponibilité sur
bookshelf-ag
, puis sélectionnez Suivant. - Sur la page Sélectionner des bases de données, sélectionnez la base de données
bookshelf
, puis cliquez sur Suivant. Sur la page Spécifier les instances dupliquées, sélectionnez l'onglet Instances dupliquées.
- Sélectionnez Ajouter une instance dupliquée.
Dans la boîte de dialogue Se connecter au serveur, saisissez le nom du serveur
node-2
, puis sélectionnez Se connecter.La liste des instances dupliquées de disponibilité contient désormais les instances SQL Server,
node-1
etnode-2
.Définissez le Mode de disponibilité sur Commit synchrone pour les deux instances.
Définissez le Basculement automatique sur Activé pour les deux instances.
Sélectionnez Suivant.
Sur la page Sélectionner la synchronisation des données, choisissez Amorçage automatique.
Sur la page Validation, vérifiez que toutes les vérifications ont réussi. Vous pouvez ignorer la vérification de l'écouteur de groupe de disponibilité.
Sur la page Résumé, sélectionnez Terminer.
Sur la page Résultats, sélectionnez Fermer.
Configurer un écouteur DNN pour le groupe de disponibilité
Un écouteur DNN sert de point de terminaison unique pour les clients SQL Server. Pour configurer un écouteur DNN, procédez comme suit:
- Revenez à la session PowerShell sur
node-1
. Exécutez le script suivant pour créer un écouteur DNN.
$Ag='bookshelf-ag' $Port='
DNN_PORT
' $Dns='DNN_NAME
' # create the DNN resource with the port as the resource name Add-ClusterResource -Name $Port -ResourceType "Distributed Network Name" -Group $Ag # set the DNS name of the DNN resource Get-ClusterResource -Name $Port | Set-ClusterParameter -Name DnsName -Value $Dns # start the DNN resource Start-ClusterResource -Name $Port # add the Dependency from availability group resource to the DNN resource Set-ClusterResourceDependency -Resource $Ag -Dependency "[$Port]" # restart the availability group resource Stop-ClusterResource -Name $Ag Start-ClusterResource -Name $AgRemplacez
DNN_PORT
par le port de l'écouteur DNN. Le port de l'écouteur DNN doit être configuré avec un port unique. Pour en savoir plus, consultez la section Considérations concernant les ports.Remplacez
DNN_NAME
par le nom de l'écouteur DNN.Créez des règles de pare-feu pour le port de l'écouteur DNN sur
node-1
etnode-2
.netsh advfirewall firewall add rule name="Allow DNN listener" dir=in action=allow protocol=TCP localport=
DNN_PORT
Tester le basculement
Vous êtes maintenant prêt à tester si le basculement fonctionne comme prévu :
- Revenez à la session PowerShell sur
witness
. Exécutez le script ci-après.
while ($True){ $Conn = New-Object System.Data.SqlClient.SqlConnection $Conn.ConnectionString = "Server=
DNN_NAME
,DNN_PORT
;Integrated Security=true;Initial Catalog=master" $Conn.Open() $Cmd = New-Object System.Data.SqlClient.SqlCommand $Cmd.Connection = $Conn $Cmd.CommandText = "SELECT SERVERPROPERTY('ServerName')" $Adapter = New-Object System.Data.SqlClient.SqlDataAdapter $Cmd $Data = New-Object System.Data.DataSet $Adapter.Fill($Data) | Out-Null $Data.Tables[0] + (Get-Date -Format "MM/dd/yyyy HH:mm:ss") Start-Sleep -Seconds 2 }Remplacez
DNN_NAME
par le nom de l'écouteur DNN etDNN_PORT
par le port de l'écouteur DNN.Toutes les 2 secondes, le script se connecte à SQL Server à l'aide de l'écouteur du groupe de disponibilité et interroge le nom du serveur.
Laissez le script s'exécuter.
Revenez à la session de bureau à distance sur
node-1
pour déclencher un basculement.- Dans SQL Server Management Studio, accédez à Haute disponibilité Always On > Groupes de disponibilité > bookshelf-ag (Principal), puis effectuez un clic droit sur le nœud.
- Sélectionnez Basculement.
- Sur la page Sélectionner une nouvelle instance dupliquée principale, vérifiez que
node-2
est sélectionné en tant que nouvelle instance dupliquée principale, et que la colonne Aptitude au basculement indiqueNo data loss
. Sélectionnez ensuite Suivant. - Sur la page Se connecter à une instance dupliquée, sélectionnez Se connecter.
- Dans la boîte de dialogue Se connecter au serveur, vérifiez que le nom du serveur est
node-2
, puis cliquez sur Se connecter. - Sélectionnez Suivant, puis Terminer.
- Sur la page Résultats, vérifiez que le basculement a réussi.
Revenez à la session PowerShell sur
witness
.Observez la sortie du script en cours d'exécution et notez que le nom du serveur passe de
node-1
ànode-2
suite au basculement.Arrêtez le script en appuyant sur
Ctrl+C
.
Effectuer un nettoyage
Une fois le tutoriel terminé, vous pouvez procéder au nettoyage des ressources que vous avez créées afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.