Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wysoka dostępność programu SQL Server:Dodaj nowy dysk do istniejącego wystąpienia klastra pracy awaryjnej

W moim poprzednim artykule wyjaśniłem krok po kroku proces instalowania węzła w istniejącym wystąpieniu klastra trybu failover programu SQL Server. Oprócz tego zademonstrowałem również ręczne przełączanie awaryjne i automatyczne przełączanie awaryjne.

W tym artykule zademonstruję proces dodawania dysku w klastrze pracy awaryjnej, a następnie przenoszenie istniejącej bazy danych na nowy dysk.

Najpierw, aby dodać dysk w klastrze, musimy wykonać następujące kroki:
1. Utwórz nowy dysk wirtualny iSCSI.
2. Połącz się z nowym dyskiem wirtualnym iSCSI za pomocą inicjatora iSCSI z węzłów klastra pracy awaryjnej.
3. Dodaj nowy dysk do istniejącego magazynu klastra pracy awaryjnej.
4. Przenieś przykładowy plik bazy danych na nowy dysk.
Najpierw przedstawię krótkie wprowadzenie do konfiguracji demonstracyjnej. Na swoim komputerze stworzyłem cztery maszyny wirtualne. Oto szczegóły:

Maszyna wirtualna Nazwa hosta Adres IP Cel
Kontroler domeny DC.Lokalne 192.168.1.110 Ta maszyna wirtualna będzie używana jako kontroler domeny.
SAN SAN.DC.Lokalne 192.168.1.111 Ta maszyna wirtualna będzie używana jako wirtualna sieć SAN. Utworzyłem dwa wirtualne dyski iSCSI, które połączę z węzłów klastra pracy awaryjnej za pomocą inicjatora iSCSI.
Podstawowy węzeł SQL SQL01.DC.Local 192.168.1.112 Na tej maszynie wirtualnej zainstalujemy wystąpienie klastra pracy awaryjnej.
Drugi węzeł SQL SQL02.DC.Local 192.168.1.113 Na tej maszynie wirtualnej zainstalujemy dodatkowy węzeł instancji klastra pracy awaryjnej.

Na SAN.DC.Local , stworzyłem trzy dyski iSCSI. Szczegóły są następujące:

Nazwa dysku iSCSI Cel
Dane SQL Na tym dysku przechowujemy pliki bazy danych baz danych użytkowników i pliki TempDB.
Dziennik SQL Na tym dysku przechowujemy pliki dziennika baz danych użytkowników.
kworum Ten dysk jest używany jako kworum.

Poniżej znajduje się zrzut ekranu naszej konfiguracji:

Utwórz dysk iSCSI

Jak wspomniałem powyżej, powinniśmy najpierw stworzyć wirtualny dysk iSCSI. W tym przypadku zamierzam użyć programu PowerShell do utworzenia i skonfigurowania dysków wirtualnych iSCSI o stałym rozmiarze. Rozmiar dysku wirtualnego to 8 GB. Aby utworzyć nowy dysk iSCSI, wykonaj następujące polecenie.

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

Aby sprawdzić, czy dysk iSCSI został pomyślnie utworzony, otwórz S serwer M napastnik i kliknij wirtualne dyski iSCSI w lewym okienku. Zobacz następujący obraz:

Teraz musimy stworzyć cel iSCSI. Serwery zdalne mogą łączyć się z dyskiem wirtualnym przy użyciu nazwy docelowej. Tutaj utworzę cel o nazwie new-sql-data . Aby utworzyć cel iSCSI o nazwie „new-sql-data ” i przypisz go do SQL02.dc.Local i SQL02.dc.Local , wykonaj następujące polecenie.

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

Po utworzeniu celu iSCSI musimy przypisać nasz dysk wirtualny do celu iSCSI. Aby to zrobić, wykonaj następujące zapytanie:

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

Po pomyślnym zakończeniu mapowania celu odśwież panel dysku wirtualnego iSCSI w Menedżerze serwera. Zobacz następujący obraz:

Połącz się z nowym dyskiem wirtualnym iSCSI za pomocą inicjatora iSCSI z węzłów klastra pracy awaryjnej

Teraz połączmy się z tym dyskiem z SQL01.dc.local węzeł za pomocą protokołu RDP.

Aby połączyć się z dyskiem wirtualnym iSCSI za pomocą inicjatora iSCSI, otwórz inicjator iSCSI i kliknij przycisk Odśwież przycisk, aby odkryć cel. Teraz możesz wybrać odpowiednią nazwę celu z „Odkryte cele " pole tekstowe. Wybierz odpowiedni cel i kliknij C połącz . Zobacz następujący obraz:

Gdy połączymy się z dyskiem wirtualnym, możesz zobaczyć dysk w D Isk M napastnik sekcja pod C komputer M zarządzanie . Aby korzystać z dysku w klastrze, musimy wykonać następujące zadania:

  • Przenieś dysk do trybu online. Aby to zrobić, kliknij prawym przyciskiem myszy D Isk 4 i wybierz Online . Zobacz następujący obraz:

  • Gdy dysk będzie w trybie online, zainicjuj go. Aby to zrobić, kliknij prawym przyciskiem myszy Dysk 4 i wybierz Zainicjuj dysk . Zobacz następujący obraz:

  • Po zainicjowaniu dysku kliknij prawym przyciskiem myszy Dysk 4 i wybierz Nowy wolumin prosty aby utworzyć partycję. Zobacz następujący obraz:

Podobnie musimy podłączyć wirtualny dysk z SQL02.dc.local węzeł. Aby to zrobić, podłącz SQL02.dc.local za pomocą protokołu RDP, otwórz inicjator iSCSI i kliknij przycisk Odśwież przycisk, aby odkryć cel. Teraz możesz wybrać odpowiednią nazwę celu z Odkrytych celów pole tekstowe. Wybierz odpowiedni cel i kliknij C połącz . Zobacz następujący obraz:

Dodaj nowy dysk do istniejącego magazynu klastra pracy awaryjnej.

Aby dodać ten dysk do magazynu klastra, połącz się z SQL01.Dc.Local używając RDP, otwórz F ailover C połysk M napastnik , połącz się z SQLCluster.DC.Local , wybierz D isks z lewego okienka i kliknij A dd dysk . Otworzy się okno dialogowe „Dodaj dysk do klastra”. W tym oknie dialogowym zostanie wyświetlony nowy dysk klastrowany. Zobacz następujący obraz:

Po dodaniu nowego dysku można go zobaczyć w menu dysku Menedżera klastra pracy awaryjnej. Zobacz następujący obraz:

Przenieś przykładowy plik bazy danych na nowy dysk.

Po dodaniu dysku przenieśmy przykładowy plik bazy danych na nowy dysk. Utworzyłem bazę danych o nazwie de baza danych na SQL01.dc.local . Chcemy przenieść jego plik danych na nowy dysk. Aby to zrobić, połącz się z PowerShell, a następnie połącz się z instancją SQL Server za pomocą „SQLCmd polecenie.

Po nawiązaniu połączenia z instancją wykonaj następujące polecenie, aby odłączyć bazę danych.

exec sp_detach_db [demodatabase]
go

Po odłączeniu bazy danych skopiuj plik danych z dysku F (stary dysk) na dysk E (nowy dysk) i wykonaj następujące polecenie, aby dołączyć bazę danych.

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

Po wykonaniu powyższego polecenia pojawi się następujący błąd:

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.

Ten błąd występuje, ponieważ nie dodaliśmy nowego dysku do grupy zasobów klastra i do Zależności AND roli MSSQLSERVER. Zobacz następujący obraz:

Aby naprawić ten błąd, musimy dodać nowy dysk do roli MSSQLSERVER. Aby to zrobić, otwórz Menedżera klastra pracy awaryjnej, kliknij Wybierz role, kliknij prawym przyciskiem myszy SQL Server (MSSQLSERVER ) i wybierz Dodaj miejsce . Zobacz następujący obraz:

Dodaj miejsce otworzy się okno dialogowe. Z listy dostępnej pamięci wybierz dysk, który utworzyliśmy. Zobacz następujący obraz:

Po dodaniu magazynu możemy go zweryfikować z zakładki zasobów roli MSSQLSERVER. Zobacz następujący obraz:

Po dodaniu dysku musimy również dodać go do zależności ORAZ programu SQL Server . Aby to zrobić, kliknij prawym przyciskiem myszy SQL Server na liście zasobów pod MSSQLSERVER rolę i wybierz P właściwości . W P właściwości okno dialogowe, przejdź do Zależności i wybierz Dysk klastrowy 4 z listy rozwijanej w Zasobach kolumna.

Po dodaniu zasobu dyskowego spróbuj dołączyć bazę danych za pomocą następującego polecenia:

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

Polecenie zostanie wykonane pomyślnie. Aby sprawdzić, czy plik został skopiowany do odpowiedniej lokalizacji, wykonaj następujące zapytanie w PowerShell.

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

Poniżej znajduje się wynik:

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

Jak widać, plik bazy danych został przeniesiony na nowy dysk.

Podsumowanie

W tym artykule wyjaśniłem, że krok po kroku proces dodawania dysku do istniejącej instancji klastra pracy awaryjnej SQL Server. W następnym artykule wyjaśnię, jak przenieść systemowe bazy danych na nowy dysk klastrowy.

Bądź na bieżąco!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Praktyczny wybór procesorów dla obciążeń SQL Server 2014/2016 OLTP

  2. Przesunięcie wiersza w SQL Server

  3. Co to jest domyślne ograniczenie w programie SQL Server — samouczek dotyczący programu SQL Server / TSQL — część 90

  4. JSON_VALUE() Przykłady w SQL Server (T-SQL)

  5. Jak przekazać nazwę tabeli do przechowywanego proc?