Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server Висока наличност:Добавете нов диск към съществуващ екземпляр на клъстер за отказване

В предишната си статия обясних стъпка по стъпка процеса на инсталиране на възел в съществуващ екземпляр на клъстер за отказ на SQL Server. Заедно с това демонстрирах също ръчно преминаване при отказ и автоматично превключване при отказ.

В тази статия ще демонстрирам процеса на добавяне на диск в клъстер при отказ и след това премествам съществуващата база данни на ново устройство.

Първо, за да добавим диск в клъстера, трябва да изпълним следните стъпки:
1. Създайте нов iSCSI виртуален диск.
2. Свържете се с новия iSCSI виртуален диск, като използвате iSCSI инициатора от възли на клъстер за отказване.
3. Добавете нов диск към съществуващо клъстерно хранилище за отказване.
4. Преместете примерния файл на базата данни на новия диск.
Първо, позволете ми да ви дам кратко въведение в демонстрационната настройка. Създадох четири виртуални машини на моя компютър. Ето подробностите:

Виртуална машина Име на хост IP адрес Цел
Контролер на домейн DC.Local 192.168.1.110 Тази виртуална машина ще се използва като контролер на домейн.
SAN SAN.DC.Local 192.168.1.111 Тази виртуална машина ще се използва като виртуална SAN. Създадох два iSCSI виртуални диска, които ще свържа от възли на клъстер за отказване, използвайки iSCSI инициатора.
Основен SQL възел SQL01.DC.Local 192.168.1.112 На тази виртуална машина ще инсталираме клъстерния екземпляр за преодоляване на отказ.
Вторичен SQL възел SQL02.DC.Local 192.168.1.113 На тази виртуална машина ще инсталираме вторичния възел на екземпляра на клъстера за отказване.

На SAN.DC.Local , създадох три iSCSI устройства. Подробностите са както следва:

име на iSCSI устройство Цел
Sql-данни На това устройство съхраняваме файлове с база данни с потребителски бази данни и TempDB файлове.
Sql-log На това устройство съхраняваме регистрационните файлове на потребителските бази данни.
кворум Това устройство се използва като кворум.

Следва екранната снимка на нашата конфигурация:

Създайте iSCSI диск

Както споменах по-горе, първо трябва да създадем iSCSI виртуално устройство. В този случай ще използвам PowerShell за създаване и конфигуриране на iSCSI виртуални дискове с фиксиран размер. Размерът на виртуалния диск е 8 GB. За да създадете ново iSCSI устройство, изпълнете следната команда.

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

За да проверите дали iSCSI дискът е създаден успешно, отворете S сървър М анагер и щракнете върху iSCSI виртуални дискове на левия панел. Вижте следното изображение:

Сега трябва да създадем iSCSI цел. Отдалечените сървъри могат да се свързват с виртуален диск, като използват целевото име. Тук ще създам цел с име new-sql-data . За да създадете iSCSI цел с име „new-sql-data ” и го присвоете на SQL02.dc.Local и SQL02.dc.Local , изпълнете следната команда.

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

След като iSCSI целта е създадена, трябва да присвоим нашия виртуален диск към iSCSI целта. За да направите това, изпълнете следната заявка:

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

След като картографирането на целта приключи успешно, опреснете панела на iSCSI виртуален диск в Server Manager. Вижте следното изображение:

Свържете се с новия iSCSI виртуален диск, като използвате iSCSI инициатора от възли на клъстер при отказ

Сега нека се свържем с това устройство от SQL01.dc.local възел с помощта на RDP.

За да се свържете с iSCSI виртуалния диск с помощта на iSCSI инициатора, отворете iSCSI инициатора и щракнете върху Опресняване бутон, за да откриете целта. Сега можете да изберете подходящото име на целта от „Открити цели " текстово поле. Изберете подходящата цел и щракнете върху C свързване . Вижте следното изображение:

След като се свържем с виртуалния диск, можете да видите диска в D иск М анагер раздел под C компютър М управление . За да използваме диска в клъстера, трябва да изпълним следните задачи:

  • Внесете диска онлайн. За да направите това, щракнете с десния бутон върху D isk 4 и изберете Онлайн . Вижте следното изображение:

  • След като дискът е онлайн, инициализирайте го. За да направите това, щракнете с десния бутон върху Диск 4 и изберете Инициализиране на диска . Вижте следното изображение:

  • След като дискът бъде инициализиран, щракнете с десния бутон върху Диск 4 и изберете Нов прост том за създаване на дял. Вижте следното изображение:

По същия начин трябва да свържем виртуалното устройство от SQL02.dc.local възел. За да направите това, свържете SQL02.dc.local възел, използващ RDP, отворете iSCSI инициатора и щракнете върху Опресняване бутон, за да откриете целта. Сега можете да изберете подходящото име на целта от Откритите цели текстово поле. Изберете подходящата цел и щракнете върху C свързване . Вижте следното изображение:

Добавете новия диск към съществуващо хранилище на клъстер за отказване.

За да добавите този диск към хранилището на клъстера, свържете се към SQL01.Dc.Local като използвате RDP, отворете F поръчител C блясък М анагер , свържете се към SQLCluster.DC.Local , изберете D искове от левия панел и щракнете върху A dd диск . Ще се отвори диалоговият прозорец „Добавяне на диск към клъстер“. В този диалогов прозорец ще се покаже новият клъстериран диск. Вижте следното изображение:

След като новият диск бъде добавен, можете да го видите в дисковото меню на Failover Cluster Manager. Вижте следното изображение:

Преместете примерния файл на базата данни на новия диск.

След като дискът бъде добавен, нека преместим примерен файл с база данни на новото устройство. Създадох база данни с име de база от данни на SQL01.dc.local . Искаме да преместим неговия файл с данни на новия диск. За да направите това, свържете се с PowerShell и след това се свържете с екземпляра на SQL Server, като използвате „SQLCmd ’ команда.

След като се свържете с екземпляра, изпълнете следната команда, за да отделите базата данни.

exec sp_detach_db [demodatabase]
go

След като базата данни бъде отделена, копирайте файла с данни от устройство F (старо устройство) на устройство E (ново устройство) и изпълнете следната команда, за да прикачите базата данни.

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

Когато изпълните командата по-горе, ще получите следната грешка:

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.

Тази грешка възниква, защото не сме добавили новия диск към групата ресурси на клъстера и към И зависимост на ролята на MSSQLSERVER. Вижте следното изображение:

За да коригираме тази грешка, трябва да добавим новия диск към ролята на MSSQLSERVER. За да направите това, отворете Failover Cluster Manager, щракнете върху Избор на роли, щракнете с десния бутон върху SQL Server (MSSQLSERVER ) роля и изберете Добавяне на хранилище . Вижте следното изображение:

Добавяне на хранилище ще се отвори диалогов прозорец. От списъка с налични хранилища изберете диска, който създадохме. Вижте следното изображение:

След като добавим хранилището, можем да го проверим от раздела за ресурси на ролята на MSSQLSERVER. Вижте следното изображение:

След като дискът бъде добавен, трябва да го добавим и към зависимостта И на SQL Server . За да направите това, щракнете с десния бутон на мишката върху SQL Server в списъка с ресурси под MSSQLSERVER роля и изберете P свойства . В P свойства диалогов прозорец, отидете на Зависимости раздел и изберете Клъстерен диск 4 от падащото меню в Ресурси колона.

След като се добави дисковият ресурс, опитайте да прикачите базата данни, като използвате следната команда:

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

Командата ще бъде изпълнена успешно. За да проверите дали файлът е копиран на подходящото място, изпълнете следната заявка в PowerShell.

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

Следва изходът:

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

Както можете да видите, файлът на базата данни е преместен на новото устройство.

Резюме

В тази статия обясних, че стъпка по стъпка процесът на добавяне на диск към съществуващ клъстерен екземпляр за преодоляване на отказ на SQL Server. В следващата статия ще обясня как да преместите системни бази данни на нов клъстериран диск.

Останете на линия!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на списък с имейли, изпратени от SQL Server Database Mail (T-SQL)

  2. можем ли да имаме външен ключ, който не е първичен ключ в никоя друга таблица?

  3. Защо CTE е по-добър от курсор/извлечена таблица/подзаявки/временна таблица и т.н.?

  4. SQL SERVER:Вземете общия брой дни между две дати

  5. Преглеждайте историята на заданията на агент на SQL Server с Azure Data Studio