I min tidligere artikel har jeg forklaret trin-for-trin processen med at installere en node i eksisterende SQL Server Failover Cluster Instance. Ud over det har jeg også demonstreret manuel failover og automatisk failover.
I denne artikel vil jeg demonstrere processen med at tilføje en disk i en failover-klynge og derefter flytte den eksisterende database til et nyt drev.
Først, for at tilføje en disk i klyngen, skal vi udføre følgende trin:
1. Opret en ny virtuel iSCSI-disk.
2. Opret forbindelse til den nye virtuelle iSCSI-disk ved hjælp af iSCSI-initiatoren fra failover-klyndeknuder.
3. Tilføj en ny disk til et eksisterende failover-klyngelager.
4. Flyt prøvedatabasefilen til den nye disk.
Lad mig først give dig en kort introduktion til demo-opsætningen. Jeg har lavet fire virtuelle maskiner på min computer. Her er detaljerne:
Virtuel maskine | Værtsnavn | IP-adresse | Formål |
Domænecontroller | DC.Local | 192.168.1.110 | Denne virtuelle maskine vil blive brugt som en domænecontroller. |
SAN | SAN.DC.Local | 192.168.1.111 | Denne virtuelle maskine vil blive brugt som et virtuelt SAN. Jeg har oprettet to virtuelle iSCSI-diske, som jeg vil forbinde fra failover-klyndeknuder ved hjælp af iSCSI-initiatoren. |
Primær SQL-node | SQL01.DC.Local | 192.168.1.112 | På denne virtuelle maskine installerer vi den failover-klyngede instans. |
Sekundær SQL-node | SQL02.DC.Local | 192.168.1.113 | På denne virtuelle maskine installerer vi den sekundære node for failover-klyngeforekomsten. |
På SAN.DC.Local , Jeg har oprettet tre iSCSI-drev. Detaljerne er som følger:
iSCSI-drevnavn | Formål |
Sql-data | På dette drev gemmer vi databasefiler med brugerdatabaser og TempDB-filer. |
Sql-log | På dette drev gemmer vi logfilerne for brugerdatabaser. |
quorum | Dette drev bruges som et kvorum. |
Følgende er skærmbilledet af vores konfiguration:
Opret en iSCSI-disk
Som jeg nævnte ovenfor, bør vi først oprette et iSCSI virtuelt drev. I dette tilfælde vil jeg bruge PowerShell til at oprette og konfigurere virtuelle iSCSI-diske i fast størrelse. Størrelsen på den virtuelle disk er 8 GB. For at oprette et nyt iSCSI-drev skal du udføre følgende kommando.
New-IscsiVirtualDisk –Path F:\new-sql-data\new-sql-data.vhdx –SizeBytes (8GB) –UseFixed
For at bekræfte, at iSCSI-disken er oprettet korrekt, skal du åbne S erver M anager og klik på iSCSI virtuelle diske i venstre rude. Se følgende billede:
Nu skal vi oprette et iSCSI-mål. Fjernservere kan oprette forbindelse til en virtuel disk ved at bruge målnavnet. Her vil jeg oprette et mål ved navn new-sql-data . For at oprette et iSCSI-mål med navnet "new-sql-data ” og tildel den til SQL02.dc.Local og SQL02.dc.Local , udfør følgende kommando.
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")
Når først iSCSI-målet er oprettet, skal vi tildele vores virtuelle disk til iSCSI-målet. For at gøre det skal du udføre følgende forespørgsel:
Add-IscsiVirtualDiskTargetMapping -TargetName new-sql-data –Path "F:\new-sql-data\new-sql-data.vhdx"
Når måltilknytningen er fuldført, skal du opdatere ruden iSCSI-virtuel disk i Server Manager. Se følgende billede:
Opret forbindelse til den nye virtuelle iSCSI-disk ved hjælp af iSCSI-initiatoren fra failover-klyndeknuder
Lad os nu oprette forbindelse til dette drev fra SQL01.dc.local node ved at bruge RDP.
For at oprette forbindelse til den virtuelle iSCSI-disk ved hjælp af iSCSI-initiatoren skal du åbne iSCSI-initiatoren og klikke på Opdater knappen for at finde målet. Nu kan du vælge det passende målnavn fra "Opdagede mål " tekstboks. Vælg det relevante mål, og klik på C tilslut . Se følgende billede:
Når vi er forbundet til den virtuelle disk, kan du se disken i D isk M anager afsnit under C computer M styring . For at bruge disken i klyngen skal vi udføre følgende opgaver:
- Bring disken online. For at gøre det skal du højreklikke på D isk 4 og vælg Online . Se følgende billede:
- Når disken er online, initialiser disken. For at gøre det skal du højreklikke på Disk 4 og vælg Initialiser disk . Se følgende billede:
- Når disken er initialiseret, skal du højreklikke på Disk 4 og vælg New Simple Volume for at oprette en partition. Se følgende billede:
På samme måde skal vi forbinde det virtuelle drev fra SQL02.dc.local node. For at gøre det skal du tilslutte SQL02.dc.local node ved hjælp af RDP, åbn iSCSI-initiatoren, og klik på Opdater knappen for at finde målet. Nu kan du vælge det passende målnavn fra Opdagede mål tekstboks. Vælg det relevante mål, og klik på C tilslut . Se følgende billede:
Tilføj den nye disk til et eksisterende failover-klyngelager.
For at tilføje denne disk til klyngelageret skal du oprette forbindelse til SQL01.Dc.Local ved at bruge RDP, skal du åbne F ailover C glans M anager , opret forbindelse til SQLCluster.DC.Local , vælg D isks fra venstre panorering, og klik på A dd disk . Dialogboksen "Tilføj disk til klynge" åbnes. I denne dialogboks vil den nye klyngede disk blive vist. Se følgende billede:
Når den nye disk er tilføjet, kan du se den i diskmenuen i Failover Cluster Manager. Se følgende billede:
Flyt prøvedatabasefilen til den nye disk.
Når disken er tilføjet, lad os flytte en prøvedatabasefil til det nye drev. Jeg har oprettet en database ved navn de modatabase på SQL01.dc.local . Vi ønsker at flytte dens datafil til den nye disk. For at gøre det skal du oprette forbindelse til PowerShell og derefter oprette forbindelse til SQL Server-instansen ved hjælp af 'SQLCmd ' kommando.
Når du har oprettet forbindelse til instansen, skal du udføre følgende kommando for at frakoble databasen.
exec sp_detach_db [demodatabase] go
Når databasen er frakoblet, skal du kopiere datafilen fra drev F (gammelt drev) til drev E (nyt drev) og udføre følgende kommando for at vedhæfte databasen.
CREATE DATABASE demodatabase ON (FILENAME = 'E:\SQLData\demodatabase.mdf'), (FILENAME = 'F:\SQLLog\demodatabase_log.ldf') FOR ATTACH; GO
Når du udfører kommandoen ovenfor, vil du modtage følgende fejlmeddelelse:
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.
Denne fejl opstår, fordi vi ikke føjede den nye disk til klyngressourcegruppen og til AND Dependency af MSSQLSERVER-rollen. Se følgende billede:
For at rette denne fejl skal vi tilføje den nye disk til MSSQLSERVER-rollen. For at gøre det skal du åbne Failover Cluster Manager, klikke på Vælg roller, højreklikke på SQL Server (MSSQLSERVER ) rolle, og vælg Tilføj lager . Se følgende billede:
Tilføj lagerplads dialogboksen vil blive åbnet. Fra listen over tilgængelig lager skal du vælge den disk, vi har oprettet. Se følgende billede:
Når vi har tilføjet lageret, kan vi bekræfte det fra ressourcefanen i MSSQLSERVER-rollen. Se følgende billede:
Når disken er tilføjet, skal vi også tilføje den til SQL Server AND afhængighed . For at gøre det skal du højreklikke på SQL Server på listen over ressourcer under MSSQLSERVER rolle og vælg P egenskaber . I P egenskaber dialogboksen, gå til Afhængigheder fanen og vælg Cluster Disk 4 fra rullemenuen i Ressourcer kolonne.
Når diskressourcen er tilføjet, prøv at vedhæfte databasen ved hjælp af følgende kommando:
CREATE DATABASE demodatabase ON (FILENAME = 'E:\SQLData\demodatabase.mdf'), (FILENAME = 'F:\SQLLog\demodatabase_log.ldf') FOR ATTACH; GO
Kommandoen vil blive udført med succes. For at bekræfte, at filen er blevet kopieret til den korrekte placering, skal du udføre følgende forespørgsel i PowerShell.
select db_name(database_id) as [database name], physical_name from sys.master_files where db_name(database_id) ='demodatabase'
Følgende er output:
Database Name physical_name ------------ --------------------------------- demodatabase E:\SQLData\demodatabase.mdf demodatabase F:\SQLLog\demodatabase_log.ldf
Som du kan se, er databasefilen blevet flyttet til det nye drev.
Oversigt
I denne artikel har jeg forklaret, at trin-for-trin-processen med at tilføje en disk til en eksisterende SQL Server-failover-klyngeforekomst. I den næste artikel vil jeg forklare, hvordan man flytter systemdatabaser til en ny klyngedisk.
Hold dig opdateret!