Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Haute disponibilité SQL Server :ajouter un nouveau disque à une instance de cluster de basculement existante

Dans mon article précédent, j'ai expliqué le processus étape par étape d'installation d'un nœud dans une instance de cluster de basculement SQL Server existante. Parallèlement à cela, j'ai également démontré le basculement manuel et le basculement automatique.

Dans cet article, je vais démontrer le processus d'ajout d'un disque dans un cluster de basculement, puis déplacer la base de données existante vers un nouveau lecteur.

Tout d'abord, pour ajouter un disque dans le cluster, nous devons effectuer les étapes suivantes :
1. Créez un nouveau disque virtuel iSCSI.
2. Connectez-vous au nouveau disque virtuel iSCSI à l'aide de l'initiateur iSCSI à partir des nœuds du cluster de basculement.
3. Ajoutez un nouveau disque à un stockage de cluster de basculement existant.
4. Déplacez l'exemple de fichier de base de données sur le nouveau disque.
Tout d'abord, permettez-moi de vous donner une brève introduction à la configuration de la démonstration. J'ai créé quatre machines virtuelles sur mon ordinateur. Voici les détails :

Machine virtuelle Nom d'hôte Adresse IP Objectif
Contrôleur de domaine DC.Local 192.168.1.110 Cette machine virtuelle sera utilisée comme contrôleur de domaine.
SAN SAN.DC.Local 192.168.1.111 Cette machine virtuelle sera utilisée comme un SAN virtuel. J'ai créé deux disques virtuels iSCSI que je connecterai à partir de nœuds de cluster de basculement à l'aide de l'initiateur iSCSI.
Noeud SQL principal SQL01.DC.Local 192.168.1.112 Sur cette machine virtuelle, nous allons installer l'instance clusterisée de basculement.
Noeud SQL secondaire SQL02.DC.Local 192.168.1.113 Sur cette machine virtuelle, nous allons installer le nœud secondaire de l'instance du cluster de basculement.

Sur SAN.DC.Local , j'ai créé trois disques iSCSI. Les détails sont les suivants :

nom du lecteur iSCSI Objectif
Données SQL Sur ce lecteur, nous stockons les fichiers de base de données des utilisateurs et les fichiers TempDB.
Sql-log Sur ce lecteur, nous stockons les fichiers journaux des bases de données utilisateur.
quorum Ce lecteur est utilisé comme quorum.

Voici la capture d'écran de notre configuration :

Créer un disque iSCSI

Comme je l'ai mentionné ci-dessus, nous devons d'abord créer un lecteur virtuel iSCSI. Dans ce cas, je vais utiliser PowerShell pour créer et configurer des disques virtuels iSCSI de taille fixe. La taille du disque virtuel est de 8 Go. Pour créer un nouveau lecteur iSCSI, exécutez la commande suivante.

New-IscsiVirtualDisk –Path F:\new-sql-data\new-sql-data.vhdx –SizeBytes (8GB) –UseFixed

Pour vérifier que le disque iSCSI est créé avec succès, ouvrez le S toujours M manager et cliquez sur Disques virtuels iSCSI dans le volet de gauche. Voir l'image suivante :

Nous devons maintenant créer une cible iSCSI. Les serveurs distants peuvent se connecter à un disque virtuel en utilisant le nom de la cible. Ici, je vais créer une cible nommée new-sql-data . Pour créer une cible iSCSI nommée "new-sql-data ” et attribuez-le à SQL02.dc.Local et SQL02.dc.Local , exécutez la commande suivante.

New-IscsiServerTarget -TargetName "new-sql-data" -InitiatorIds @("IQN:iqn.1991-05.com.microsoft:sql01.dc.local", "IQN:iqn.1991-05.com.microsoft:sql02.dc.local")

Une fois la cible iSCSI créée, nous devons attribuer notre disque virtuel à la cible iSCSI. Pour cela, exécutez la requête suivante :

Add-IscsiVirtualDiskTargetMapping -TargetName new-sql-data –Path "F:\new-sql-data\new-sql-data.vhdx"

Une fois le mappage cible terminé, actualisez le volet du disque virtuel iSCSI dans le gestionnaire de serveur. Voir l'image suivante :

Se connecter au nouveau disque virtuel iSCSI à l'aide de l'initiateur iSCSI à partir des nœuds du cluster de basculement

Maintenant, connectons-nous à ce lecteur depuis le SQL01.dc.local nœud en utilisant RDP.

Pour vous connecter au disque virtuel iSCSI à l'aide de l'initiateur iSCSI, ouvrez l'initiateur iSCSI et cliquez sur Actualiser bouton pour découvrir la cible. Vous pouvez maintenant choisir le nom de cible approprié dans la section "Cibles découvertes " zone de texte. Sélectionnez la cible appropriée et cliquez sur C connecter . Voir l'image suivante :

Une fois que nous sommes connectés au disque virtuel, vous pouvez voir le disque dans le D is M manager section sous C ordinateur M gestion . Pour utiliser le disque dans le cluster, nous devons effectuer les tâches suivantes :

  • Mettez le disque en ligne. Pour ce faire, cliquez avec le bouton droit sur D isk 4 et sélectionnez En ligne . Voir l'image suivante :

  • Une fois le disque en ligne, initialisez-le. Pour ce faire, faites un clic droit sur Disque 4 et sélectionnez Initialiser le disque . Voir l'image suivante :

  • Une fois le disque initialisé, cliquez avec le bouton droit sur Disque 4 et sélectionnez Nouveau volume simple pour créer une partition. Voir l'image suivante :

De même, nous devons connecter le lecteur virtuel à partir du SQL02.dc.local nœud. Pour ce faire, connectez le SQL02.dc.local nœud à l'aide de RDP, ouvrez l'initiateur iSCSI et cliquez sur Actualiser bouton pour découvrir la cible. Vous pouvez maintenant choisir le nom de cible approprié dans les Cibles découvertes zone de texte. Sélectionnez la cible appropriée et cliquez sur C connecter . Voir l'image suivante :

Ajoutez le nouveau disque à un stockage de cluster de basculement existant.

Pour ajouter ce disque au stockage du cluster, connectez-vous à SQL01.Dc.Local en utilisant RDP, ouvrez le F partout C éclat M manager , connectez-vous à SQLCluster.DC.Local , sélectionnez D risques dans le volet de gauche et cliquez sur A jj disque . La boîte de dialogue "Ajouter un disque au cluster" s'ouvrira. Dans cette boîte de dialogue, le nouveau disque en cluster sera affiché. Voir l'image suivante :

Une fois le nouveau disque ajouté, vous pouvez le voir dans le menu du disque du gestionnaire de cluster de basculement. Voir l'image suivante :

Déplacez l'exemple de fichier de base de données vers le nouveau disque.

Une fois le disque ajouté, déplaçons un exemple de fichier de base de données vers le nouveau lecteur. J'ai créé une base de données nommée de base de données sur SQL01.dc.local . Nous voulons déplacer son fichier de données vers le nouveau disque. Pour ce faire, connectez-vous à PowerShell, puis connectez-vous à l'instance SQL Server à l'aide de 'SQLCmd ’ commande.

Une fois connecté à l'instance, exécutez la commande suivante pour détacher la base de données.

exec sp_detach_db [demodatabase]
go

Une fois la base de données détachée, copiez le fichier de données du lecteur F (ancien lecteur) vers le lecteur E (nouveau lecteur) et exécutez la commande suivante pour attacher la base de données.

CREATE DATABASE demodatabase
    ON (FILENAME = 'E:\SQLData\demodatabase.mdf'),   
    (FILENAME = 'F:\SQLLog\demodatabase_log.ldf')   
    FOR ATTACH; 
GO

Lorsque vous exécutez la commande ci-dessus, vous recevez l'erreur suivante :

Msg 5184, Level 16, State 2, Server SQLCLUST, Line 1
Cannot use file 'E:\SQLData\demodatabase.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used. Either the disk resource containing the file is not present in the cluster group or the cluster resource of the Sql Server does not have a dependency on it.

Cette erreur se produit car nous n'avons pas ajouté le nouveau disque au groupe de ressources du cluster et à la dépendance AND du rôle MSSQLSERVER. Voir l'image suivante :

Pour corriger cette erreur, nous devons ajouter le nouveau disque au rôle MSSQLSERVER. Pour ce faire, ouvrez le gestionnaire de cluster de basculement, cliquez sur Sélectionner des rôles, cliquez avec le bouton droit sur le serveur SQL (MSSQLSERVER ) et choisissez Ajouter un espace de stockage . Voir l'image suivante :

Le bouton Ajouter de l'espace de stockage boîte de dialogue s'ouvrira. Dans la liste des stockages disponibles, choisissez le disque que nous avons créé. Voir l'image suivante :

Une fois que nous avons ajouté le stockage, nous pouvons le vérifier à partir de l'onglet des ressources du rôle MSSQLSERVER. Voir l'image suivante :

Une fois le disque ajouté, nous devons également l'ajouter à la dépendance SQL Server AND . Pour ce faire, cliquez avec le bouton droit sur SQL Server dans la liste des ressources sous MSSQLSERVER rôle et sélectionnez P propriétés . Dans le P propriétés boîte de dialogue, accédez aux Dépendances et sélectionnez Cluster Disk 4 dans la liste déroulante des Ressources colonne.

Une fois la ressource disque ajoutée, essayez d'attacher la base de données à l'aide de la commande suivante :

CREATE DATABASE demodatabase
    ON (FILENAME = 'E:\SQLData\demodatabase.mdf'),   
    (FILENAME = 'F:\SQLLog\demodatabase_log.ldf')   
    FOR ATTACH; 
GO

La commande sera exécutée avec succès. Pour vérifier que le fichier a été copié à l'emplacement approprié, exécutez la requête suivante dans PowerShell.

select db_name(database_id) as [database name], physical_name from sys.master_files where db_name(database_id) ='demodatabase'

Voici le résultat :

Database Name		physical_name
------------ 		---------------------------------
demodatabase		E:\SQLData\demodatabase.mdf
demodatabase		F:\SQLLog\demodatabase_log.ldf

Comme vous pouvez le voir, le fichier de base de données a été déplacé vers le nouveau lecteur.

Résumé

Dans cet article, j'ai expliqué le processus étape par étape d'ajout d'un disque à une instance en cluster de basculement SQL Server existante. Dans le prochain article, j'expliquerai comment déplacer les bases de données système vers un nouveau disque en cluster.

Restez à l'écoute !