Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-Hochverfügbarkeit:Fügen Sie einer vorhandenen Failoverclusterinstanz einen neuen Datenträger hinzu

In meinem vorherigen Artikel habe ich den schrittweisen Prozess zum Installieren eines Knotens in einer vorhandenen SQL Server-Failoverclusterinstanz erläutert. Außerdem habe ich manuelles Failover und automatisches Failover demonstriert.

In diesem Artikel werde ich den Prozess demonstrieren, wie man einen Datenträger in einem Failover-Cluster hinzufügt und dann die vorhandene Datenbank auf ein neues Laufwerk verschiebt.

Um eine Festplatte im Cluster hinzuzufügen, müssen wir zunächst die folgenden Schritte ausführen:
1. Erstellen Sie ein neues virtuelles iSCSI-Laufwerk.
2. Stellen Sie mithilfe des iSCSI-Initiators von Failover-Cluster-Knoten aus eine Verbindung mit dem neuen virtuellen iSCSI-Laufwerk her.
3. Fügen Sie einem vorhandenen Failover-Cluster-Speicher eine neue Festplatte hinzu.
4. Verschieben Sie die Beispieldatenbankdatei auf die neue Festplatte.
Lassen Sie mich Ihnen zunächst eine kurze Einführung in das Demo-Setup geben. Ich habe vier virtuelle Maschinen auf meinem Computer erstellt. Hier sind die Details:

Virtuelle Maschine Hostname IP-Adresse Zweck
Domain-Controller DC.Lokal 192.168.1.110 Diese virtuelle Maschine wird als Domänencontroller verwendet.
SAN SAN.DC.Lokal 192.168.1.111 Diese virtuelle Maschine wird als virtuelles SAN verwendet. Ich habe zwei virtuelle iSCSI-Festplatten erstellt, die ich mit dem iSCSI-Initiator von Failover-Cluster-Knoten verbinden werde.
Primärer SQL-Knoten SQL01.DC.Lokal 192.168.1.112 Auf dieser virtuellen Maschine installieren wir die Failover-Cluster-Instanz.
Sekundärer SQL-Knoten SQL02.DC.Lokal 192.168.1.113 Auf dieser virtuellen Maschine installieren wir den sekundären Knoten der Failover-Cluster-Instanz.

Auf SAN.DC.Local , ich habe drei iSCSI-Laufwerke erstellt. Die Details lauten wie folgt:

Name des iSCSI-Laufwerks Zweck
Sql-Daten Auf diesem Laufwerk speichern wir Datenbankdateien von Benutzerdatenbanken und TempDB-Dateien.
SQL-Protokoll Auf diesem Laufwerk speichern wir die Protokolldateien der Benutzerdatenbanken.
Quorum Dieses Laufwerk wird als Quorum verwendet.

Nachfolgend sehen Sie den Screenshot unserer Konfiguration:

Erstellen Sie eine iSCSI-Festplatte

Wie ich oben erwähnt habe, sollten wir zuerst ein virtuelles iSCSI-Laufwerk erstellen. In diesem Fall werde ich PowerShell verwenden, um virtuelle iSCSI-Festplatten mit fester Größe zu erstellen und zu konfigurieren. Die Größe der virtuellen Festplatte beträgt 8 GB. Um ein neues iSCSI-Laufwerk zu erstellen, führen Sie den folgenden Befehl aus.

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

Um zu überprüfen, ob die iSCSI-Festplatte erfolgreich erstellt wurde, öffnen Sie das S immer M verärgert und klicken Sie auf virtuelle iSCSI-Laufwerke auf der linken Seite. Siehe folgendes Bild:

Jetzt müssen wir ein iSCSI-Target erstellen. Remoteserver können mithilfe des Zielnamens eine Verbindung zu einer virtuellen Festplatte herstellen. Hier erstelle ich ein Ziel namens new-sql-data . Um ein iSCSI-Ziel mit dem Namen „new-sql-data “ und weisen Sie es SQL02.dc.Local zu und SQL02.dc.Local , führen Sie den folgenden Befehl aus.

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")

Nachdem das iSCSI-Ziel erstellt wurde, müssen wir unsere virtuelle Festplatte dem iSCSI-Ziel zuweisen. Führen Sie dazu die folgende Abfrage aus:

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

Sobald die Zielzuordnung erfolgreich abgeschlossen ist, aktualisieren Sie den Bereich der virtuellen iSCSI-Festplatte im Server-Manager. Siehe folgendes Bild:

Stellen Sie mithilfe des iSCSI-Initiators von Failover-Cluster-Knoten eine Verbindung zum neuen virtuellen iSCSI-Laufwerk her

Stellen wir nun von SQL01.dc.local aus eine Verbindung zu diesem Laufwerk her Knoten mithilfe von RDP.

Um mit dem iSCSI-Initiator eine Verbindung zum virtuellen iSCSI-Laufwerk herzustellen, öffnen Sie den iSCSI-Initiator und klicken Sie auf Aktualisieren Taste, um das Ziel zu entdecken. Jetzt können Sie den passenden Zielnamen aus den „Erkannten Zielen“ auswählen " Textfeld. Wählen Sie das entsprechende Ziel aus und klicken Sie auf C Verbindung . Siehe folgendes Bild:

Sobald wir mit der virtuellen Festplatte verbunden sind, können Sie die Festplatte in D sehen Risiko M verärgert Abschnitt unter C Computer M Verwaltung . Um die Festplatte innerhalb des Clusters zu verwenden, müssen wir die folgenden Aufgaben ausführen:

  • Bringen Sie die Festplatte online. Klicken Sie dazu mit der rechten Maustaste auf D isk 4 und wählen Sie Online aus . Siehe folgendes Bild:

  • Sobald die Festplatte online ist, initialisieren Sie die Festplatte. Klicken Sie dazu mit der rechten Maustaste auf Datenträger 4 und wählen Sie Festplatte initialisieren . Siehe folgendes Bild:

  • Sobald die Festplatte initialisiert ist, klicken Sie mit der rechten Maustaste auf Festplatte 4 und wählen Sie Neues einfaches Volume um eine Partition zu erstellen. Siehe folgendes Bild:

Ebenso müssen wir das virtuelle Laufwerk von SQL02.dc.local verbinden Knoten. Verbinden Sie dazu die SQL02.dc.local Knoten mit RDP, öffnen Sie den iSCSI-Initiator und klicken Sie auf Aktualisieren Taste, um das Ziel zu entdecken. Jetzt können Sie den passenden Zielnamen aus den Erkannten Zielen auswählen Textfeld. Wählen Sie das entsprechende Ziel aus und klicken Sie auf C Verbindung . Siehe folgendes Bild:

Fügen Sie die neue Festplatte zu einem vorhandenen Failover-Cluster-Speicher hinzu.

Um diese Festplatte zum Clusterspeicher hinzuzufügen, stellen Sie eine Verbindung zu SQL01.Dc.Local her Öffnen Sie mit RDP das F Überflug C Glanz M verärgert , verbinden Sie sich mit SQLCluster.DC.Local , wählen Sie D Risiken aus dem linken Bereich und klicken Sie auf A DD-Festplatte . Das Dialogfeld „Datenträger zum Cluster hinzufügen“ wird geöffnet. In diesem Dialogfeld wird die neue gruppierte Festplatte angezeigt. Siehe folgendes Bild:

Sobald der neue Datenträger hinzugefügt wurde, können Sie ihn im Datenträgermenü des Failovercluster-Managers sehen. Siehe folgendes Bild:

Verschieben Sie die Beispieldatenbankdatei auf die neue Festplatte.

Nachdem die Festplatte hinzugefügt wurde, verschieben wir eine Beispieldatenbankdatei auf das neue Laufwerk. Ich habe eine Datenbank namens de erstellt Modatabase auf SQL01.dc.local . Wir möchten seine Datendatei auf die neue Festplatte verschieben. Stellen Sie dazu eine Verbindung zu PowerShell her und verbinden Sie sich dann mit der SQL-Server-Instanz mit dem 'SQLCmd ’ Befehl.

Sobald Sie mit der Instanz verbunden sind, führen Sie den folgenden Befehl aus, um die Datenbank zu trennen.

exec sp_detach_db [demodatabase]
go

Sobald die Datenbank getrennt ist, kopieren Sie die Datendatei von Laufwerk F (altes Laufwerk) auf Laufwerk E (neues Laufwerk) und führen Sie den folgenden Befehl aus, um die Datenbank anzuhängen.

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

Wenn Sie den obigen Befehl ausführen, erhalten Sie die folgende Fehlermeldung:

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.

Dieser Fehler tritt auf, weil wir den neuen Datenträger nicht zur Cluster-Ressourcengruppe und zur UND-Abhängigkeit hinzugefügt haben der MSSQLSERVER-Rolle. Siehe folgendes Bild:

Um diesen Fehler zu beheben, müssen wir den neuen Datenträger zur MSSQLSERVER-Rolle hinzufügen. Öffnen Sie dazu den Failovercluster-Manager, klicken Sie auf Rollen auswählen, klicken Sie mit der rechten Maustaste auf den SQL Server (MSSQLSERVER )-Rolle und wählen Sie Speicher hinzufügen . Siehe folgendes Bild:

Der Speicher hinzufügen Dialogfeld wird geöffnet. Wählen Sie aus der Liste des verfügbaren Speichers die von uns erstellte Festplatte aus. Siehe folgendes Bild:

Nachdem wir den Speicher hinzugefügt haben, können wir ihn auf der Registerkarte „Ressourcen“ der MSSQLSERVER-Rolle überprüfen. Siehe folgendes Bild:

Nachdem die Festplatte hinzugefügt wurde, müssen wir sie auch zur AND-Abhängigkeit von SQL Server hinzufügen . Klicken Sie dazu in der Ressourcenliste unter MSSQLSERVER mit der rechten Maustaste auf SQL Server Rolle und wählen Sie P aus Eigenschaften . Im P Eigenschaften Wechseln Sie im Dialogfeld zu den Abhängigkeiten und wählen Sie Cluster Disk 4 aus aus dem Dropdown-Feld in den Ressourcen Spalte.

Sobald die Datenträgerressource hinzugefügt wurde, versuchen Sie, die Datenbank mit dem folgenden Befehl anzuhängen:

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

Der Befehl wird erfolgreich ausgeführt. Um zu überprüfen, ob die Datei an den richtigen Speicherort kopiert wurde, führen Sie die folgende Abfrage in PowerShell aus.

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

Es folgt die Ausgabe:

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

Wie Sie sehen, wurde die Datenbankdatei auf das neue Laufwerk verschoben.

Zusammenfassung

In diesem Artikel habe ich den schrittweisen Prozess zum Hinzufügen eines Datenträgers zu einer vorhandenen SQL Server-Failover-Clusterinstanz erläutert. Im nächsten Artikel werde ich erklären, wie Systemdatenbanken auf eine neue geclusterte Festplatte verschoben werden.

Bleiben Sie dran!