sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server Høj tilgængelighed:Tilføj ny disk til en eksisterende failover-klyngeforekomst

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.

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 modatabaseSQL01.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!


  1. Sådan opsætter du en PostgreSQL-database i Django

  2. Sådan fungerer LTRIM()-funktionen i MySQL

  3. Hvad er LENGTH() i MySQL?

  4. Forskellen mellem LIKE og ~ i Postgres