В предишната си статия обясних стъпка по стъпка процеса на инсталиране на възел в съществуващ екземпляр на клъстер за отказ на 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. В следващата статия ще обясня как да преместите системни бази данни на нов клъстериран диск.
Останете на линия!