sql >> Databáze >  >> RDS >> Sqlserver

SQL Server Vysoká dostupnost:Přidejte nový disk do existující instance clusteru s podporou převzetí služeb při selhání

V mém předchozím článku jsem vysvětlil krok za krokem proces instalace uzlu do existující instance SQL Server Failover Cluster. Spolu s tím jsem také předvedl manuální převzetí služeb při selhání a automatické převzetí služeb při selhání.

V tomto článku předvedu proces přidání disku do clusteru s podporou převzetí služeb při selhání a poté přesunutí stávající databáze na nový disk.

Nejprve, abychom přidali disk do clusteru, musíme provést následující kroky:
1. Vytvořte nový virtuální disk iSCSI.
2. Připojte se k novému virtuálnímu disku iSCSI pomocí iniciátoru iSCSI z uzlů clusteru s podporou převzetí služeb při selhání.
3. Přidejte nový disk do existujícího úložiště clusteru s podporou převzetí služeb při selhání.
4. Přesuňte ukázkový databázový soubor na nový disk.
Nejprve mi dovolte, abych vám krátce představil nastavení ukázky. Na svém počítači jsem vytvořil čtyři virtuální stroje. Zde jsou podrobnosti:

Virtuální počítač Název hostitele IP adresa Účel
Řadič domény DC.Local 192.168.1.110 Tento virtuální počítač bude použit jako řadič domény.
SAN SAN.DC.Local 192.168.1.111 Tento virtuální počítač bude použit jako virtuální síť SAN. Vytvořil jsem dva virtuální disky iSCSI, které připojím z uzlů clusteru s podporou převzetí služeb při selhání pomocí iniciátoru iSCSI.
Primární uzel SQL SQL01.DC.Local 192.168.1.112 Na tento virtuální počítač nainstalujeme instanci clusteru s podporou převzetí služeb při selhání.
Sekundární uzel SQL SQL02.DC.Local 192.168.1.113 Na tento virtuální počítač nainstalujeme sekundární uzel instance clusteru s podporou převzetí služeb při selhání.

Na SAN.DC.Local , vytvořil jsem tři jednotky iSCSI. Podrobnosti jsou následující:

Název jednotky iSCSI Účel
Sql-data Na tomto disku ukládáme databázové soubory uživatelských databází a soubory TempDB.
Sql-log Na tomto disku ukládáme soubory protokolu uživatelských databází.
kvorum Tento disk se používá jako kvorum.

Níže je snímek obrazovky naší konfigurace:

Vytvořte disk iSCSI

Jak jsem uvedl výše, měli bychom nejprve vytvořit virtuální jednotku iSCSI. V tomto případě použiji PowerShell k vytvoření a konfiguraci virtuálních disků iSCSI s pevnou velikostí. Velikost virtuálního disku je 8 GB. Chcete-li vytvořit novou jednotku iSCSI, proveďte následující příkaz.

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

Chcete-li ověřit, zda byl disk iSCSI vytvořen úspěšně, otevřete S erver M anager a klikněte na Virtuální disky iSCSI na levém panelu. Viz následující obrázek:

Nyní musíme vytvořit cíl iSCSI. Vzdálené servery se mohou připojit k virtuálnímu disku pomocí cílového názvu. Zde vytvořím cíl s názvem new-sql-data . Chcete-li vytvořit cíl iSCSI s názvem „new-sql-data ” a přiřaďte jej k SQL02.dc.Local a SQL02.dc.Local , proveďte následující příkaz.

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

Jakmile je cíl iSCSI vytvořen, musíme k cíli iSCSI přiřadit náš virtuální disk. Chcete-li to provést, proveďte následující dotaz:

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

Po úspěšném dokončení mapování cíle obnovte podokno virtuálního disku iSCSI ve Správci serveru. Viz následující obrázek:

Připojte se k novému virtuálnímu disku iSCSI pomocí iniciátoru iSCSI z uzlů clusteru s podporou převzetí služeb při selhání

Nyní se k této jednotce připojíme z SQL01.dc.local uzel pomocí RDP.

Chcete-li se připojit k virtuálnímu disku iSCSI pomocí iniciátoru iSCSI, otevřete iniciátor iSCSI a klikněte na tlačítko Obnovit tlačítko k nalezení cíle. Nyní si můžete vybrat vhodný název cíle z „Objevených cílů " Textové pole. Vyberte příslušný cíl a klikněte na C připojit . Viz následující obrázek:

Jakmile jsme připojeni k virtuálnímu disku, můžete jej vidět v D otázka M anager sekce pod C počítač M správa . Chcete-li použít disk v rámci clusteru, musíme provést následující úkoly:

  • Převeďte disk online. Chcete-li to provést, klikněte pravým tlačítkem na D otázka 4 a vyberte Online . Viz následující obrázek:

  • Jakmile je disk online, inicializujte jej. Chcete-li to provést, klepněte pravým tlačítkem myši na Disk 4 a vyberte Inicializovat disk . Viz následující obrázek:

  • Jakmile je disk inicializován, klikněte pravým tlačítkem na Disk 4 a vyberte Nový jednoduchý svazek k vytvoření oddílu. Viz následující obrázek:

Podobně musíme připojit virtuální disk z SQL02.dc.local uzel. Chcete-li to provést, připojte SQL02.dc.local uzel pomocí RDP, otevřete iniciátor iSCSI a klikněte na Obnovit tlačítko k nalezení cíle. Nyní si můžete vybrat vhodný název cíle z Objevené cíle Textové pole. Vyberte příslušný cíl a klikněte na C připojit . Viz následující obrázek:

Přidejte nový disk do existujícího úložiště clusteru s podporou převzetí služeb při selhání.

Chcete-li přidat tento disk do úložiště clusteru, připojte se k SQL01.Dc.Local pomocí RDP otevřete F nadcházející C lesk M anager , připojte se k SQLCluster.DC.Local , vyberte D otázky z levé pánve a klikněte na A dd disk . Otevře se dialogové okno „Přidat disk do clusteru“. V tomto dialogovém okně se zobrazí nový seskupený disk. Viz následující obrázek:

Jakmile je nový disk přidán, můžete jej vidět v nabídce disku Správce klastrů s podporou převzetí služeb při selhání. Viz následující obrázek:

Přesuňte soubor ukázkové databáze na nový disk.

Jakmile je disk přidán, přesuňte ukázkový databázový soubor na nový disk. Vytvořil jsem databázi s názvem de moddatabáze na SQL01.dc.local . Chceme přesunout jeho datový soubor na nový disk. Chcete-li to provést, připojte se k PowerShellu a poté se připojte k instanci SQL Server pomocí ‘SQLCmd ' příkaz.

Jakmile se připojíte k instanci, spusťte následující příkaz k odpojení databáze.

exec sp_detach_db [demodatabase]
go

Jakmile je databáze odpojena, zkopírujte datový soubor z jednotky F (stará jednotka) na jednotku E (nová jednotka) a proveďte následující příkaz pro připojení databáze.

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

Po provedení výše uvedeného příkazu se zobrazí následující chyba:

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.

K této chybě dochází, protože jsme nepřidali nový disk do skupiny prostředků clusteru a do AND Dependency role MSSQLSERVER. Viz následující obrázek:

Abychom tuto chybu opravili, musíme přidat nový disk do role MSSQLSERVER. Chcete-li to provést, otevřete Správce klastrů s podporou převzetí služeb při selhání, klikněte na Vybrat role, klikněte pravým tlačítkem na SQL Server (MSSQLSERVER ) a zvolte Přidat úložiště . Viz následující obrázek:

Přidat úložiště otevře se dialogové okno. Ze seznamu dostupného úložiště vyberte disk, který jsme vytvořili. Viz následující obrázek:

Jakmile úložiště přidáme, můžeme jej ověřit na kartě prostředku role MSSQLSERVER. Viz následující obrázek:

Jakmile je disk přidán, musíme jej také přidat do závislosti AND na SQL Serveru . Chcete-li to provést, klepněte pravým tlačítkem myši na SQL Server v seznamu prostředků pod MSSQLSERVER role a vyberte P vlastnosti . V P vlastnosti v dialogovém okně přejděte na Závislosti a vyberte Clusterový disk 4 z rozevíracího pole v Zdroje sloupec.

Po přidání prostředku disku se pokuste připojit databázi pomocí následujícího příkazu:

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

Příkaz bude úspěšně proveden. Chcete-li ověřit, zda byl soubor zkopírován do příslušného umístění, proveďte následující dotaz v prostředí PowerShell.

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

Následuje výstup:

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

Jak můžete vidět, databázový soubor byl přesunut na nový disk.

Shrnutí

V tomto článku jsem vysvětlil, že postupný proces přidávání disku do existující clusterované instance SQL Server s podporou převzetí služeb při selhání. V příštím článku vysvětlím, jak přesunout systémové databáze na nový clusterovaný disk.

Zůstaňte naladěni!


  1. Jak převést řetězec na hexadecimální v MySQL – HEX()

  2. SQL Server – chybí NATURAL JOIN / x JOIN y USING (pole)

  3. Jak používat Správce propojených tabulek v Accessu 2016

  4. Modelování základní datové struktury pro správu uživatelů, vláken a příspěvků