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

Преместване на системни бази данни в клъстера за отказване на SQL Server

Наскоро бях назначен за един проект – наш клиент закупи нов SAN и искаха да заменим стария с нов SAN. Потребителските и системните бази данни използваха SAN, междувременно операционната система и SQL бяха инсталирани на локалните дискове на сървъра. Късмет за нас..!! Идеята беше да се преместят съществуващите потребителски и системни бази данни към нов SAN и да се запази времето на престой възможно най-малко. Така че, за да сведем до минимум времето за престой, вместо да преинсталираме OS и SQL, решихме да използваме следния подход.

  1. Прикачете нов SAN към съществуващ сървър, създайте нови устройства на него и добавете тези устройства към съществуващ екземпляр на клъстер за отказване.
  2. Спрете SQL Server, копирайте главната, моделната и msdb бази данни на нови устройства и стартирайте SQL услугите.
  3. Преместете потребителските бази данни на нови устройства и премахнете стария SAN.

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

В тази статия ще демонстрирам процеса на преместване на системните бази данни към нови устройства, които използвах в моя проект. В предишната ми статия добавихме устройството към съществуващ отказен клъстер и в тази статия ще използваме същото устройство. Етикетът за сила на звука на устройството е „E:\ “, затова създадох директория с име „SystemDatabases ” в E:\ карам. Вижте следното изображение:

Понастоящем системните бази данни са на „F:\MSSQL14.MSSQLSERVER\MSSQL\DATA ” директория. Искаме да преместим тези бази данни в „E:\SystemDatabases ” директория. За разлика от потребителските бази данни, преместването на системни бази данни не е лесен процес. Трябва да следваме правилната последователност и стъпки, в противен случай SQL екземплярът няма да стартира.

Първо, нека прегледаме текущото местоположение на системните бази данни. Изпълнете следната заявка, за да получите текущото местоположение на системната база данни.

ИЗПОЛЗВАЙТЕ MASTERGOSELECT DB_NAME(DATABASE_ID) КАТО [ИМЕ НА БАЗА ДАННИ],        ИМЕ КАТО [ЛОГИЧЕСКО ИМЕ],        PHYSICAL_NAME КАТО [FILE PATH]  FROM SYS.MASTER_FILES  WHERE DATABASE 

Следното е изходът:

Име на база данни Логическо име Път до файла-------------- ------------------ --------- -----------------------------------главен главен F:\MSSQL14.MSSQLSERVER\MSSQL\DAT\master. mdfmaster mastlog F:\MSSQL14.MSSQLSERVER\MSSQL\DATA\mastlog.ldftempdb tempdev F:\MSSQL14.MSSQLSERVER\MSSQL\DATA\tempdb.mdf tempdb Templog F:\MSSQL14 F:\MSSQL14 F:\MSSQL14 temp.log F:\MSSQL14:\MSSQL14.model\MSSQL14. \MSSQL14.MSSQLSERVER\MSSQL\DATA\model.mdfmodel modellog F:\MSSQL14.MSSQLSERVER\MSSQL\DATA\modellog.ldfmsdb msdbdata F:\MSSQL14.MSSQLSERVER\MSSQL\DATA\msdbdata.mdfmsdb msdblog F:\MSSQL14.MSSQLSERVER\ MSSQL\DATA\msdblog.ldf

Сега ще обясня процеса на преместване на бази данни в друга директория по следния начин.

  1. Обяснете стъпките за преместване на msdb и модели бази данни.
  2. Обяснете стъпките за преместване на базата данни tempdb.
  3. Обяснете стъпките за преместване на основната база данни.

Тази демонстрация ще ви покаже как да преместите всички системни бази данни в E:\ диск, следователно за намаляване на престоя, така че ще рестартирам SQL услугите в края на процеса.

Стъпки за преместване на базата данни msdb и модел

За да преместим базите данни msdb и моделите, първо трябва да актуализираме местоположенията на файловете в системния каталог, като изпълним заявката за база данни ALTER. За да направите това, изпълнете следната заявка в PowerShell или SSMS.

ИЗПОЛЗВАЙТЕ MASTER; GO  ПРОМЕНЯТЕ ФАЙЛ ЗА МОДЕЛ НА БАЗА ДАННИ (ИМЕ =MODELDEV, ИМЕ НА ФАЙЛА =  'E:\SYSTEMDATABASES\MODEL.MDF'); GO  ПРОМЕНЯТЕ ФАЙЛ ЗА МОДЕЛ НА БАЗА ДАННИ (ИМЕ =MODELLOG, FILENAME =  'E:\SYSTEMDATABASES\MODELLOG.LDF'); GO  ПРОМЕНЯТЕ ФАЙЛ ЗА МОДИФИКАЦИЯ НА БАЗА ДАННИ MSDB (ИМЕ =MSDBDATA, FILENAME = 'E:\SYSTEMDATABASES\MSDBDATA.MDF'); GO   ПРОМЕНЯТЕ ФАЙЛ ЗА ПРОМЕНЯНЕ НА БАЗА ДАННИ MSDB (ИМЕ =MSDBLOG, FILENAME =  'E:\SYSTEMDATABASES\MSDBLOG.LDF'); ОТПРАВИ

Резултатът е както следва:

Файлът "MODELDEV" е променен в системния каталог. Новият път ще се използва при следващото стартиране на базата данни. Файлът "MODELLOG" е променен в системния каталог. Новият път ще се използва при следващото стартиране на базата данни. Файлът "MSDBDATA" е променен в системния каталог. Новият път ще се използва при следващото стартиране на базата данни. Файлът "MSDBLOG" е променен в системния каталог. Новият път ще се използва при следващото стартиране на базата данни.

Сега изпълнете следната заявка, за да проверите дали пътищата са актуализирани в системния каталог. За да направите това, изпълнете следната заявка:

ИЗБЕРЕТЕ DB_NAME(DATABASE_ID)КАТО [ИМЕ НА БАЗА ДАННИ],        ФИЗИЧЕСКО_ИМЕ КАТО [МЕСТОПОЛОЖЕНИЕ НА ФАЙЛА]  ОТ SYS.MASTER_FILES  КЪДЕ  DB_NAME(DATABASE_ID) В ('MSDB', 'GO
 Следва изходът:

Име на база данни Логическо име Път до файла-------------- ------------------ --------- -----------------------------------model modeldev E:\SystemDatabases\model.mdfmodel modellog E:\SystemDatabases \modellog.ldfmsdb msdbdata E:\SystemDatabases\msdbdata.mdfmsdb msdblog E:\SystemDatabases\msdblog.ldf

Стъпки за преместване на базата данни tempDB

Когато рестартираме SQL Server – той автоматично ще пресъздаде tempdb и регистрационните файлове, следователно не е необходимо да местим tempdb файловете ръчно – всичко, което трябва да направим, е да променим пътя на файловете на базата данни. За да промените пътя на файловете на базата данни tempdb, изпълнете следната заявка в PowerShell / SSMS.

ИЗПОЛЗВАЙТЕ MASTER; ОТКРЕТЕ ДА ПРОМЕНЯТЕ ФАЙЛ ЗА МОДИФИКАЦИЯ НА TEMPDB (ИМЕ =TEMPDEV, ИМЕ НА ФАЙЛА = 'E:\SYSTEMDATABASES\TEMPDB.MDF'); ОТИВАЙТЕ ПРОМЕНЯТЕ ФАЙЛА ЗА МОДИФИКАЦИЯ НА TEMPDB (ИМЕ =TEMPLOG, FILENAME = 'E:\SYSTEMDATABASES\TEMPLOG.LDF'); ОТПРАВИ

Резултатът е както следва:

Файлът "tempdev" е променен в системния каталог. Новият път ще се използва при следващото стартиране на базата данни. Файлът "templog" е променен в системния каталог. Новият път ще се използва при следващото стартиране на базата данни.

Сега изпълнете следната заявка, за да проверите дали пътищата са актуализирани в системния каталог:

ИЗБЕРЕТЕ DB_NAME(DATABASE_ID)КАТО [ИМЕ НА БАЗА ДАННИ],        ФИЗИЧЕСКО_ИМЕ КАТО [МЕСТОПОЛОЖЕНИЕ НА ФАЙЛА]  ОТ SYS.MASTER_FILES  КЪДЕ  DB_NAME(DATABASE_ID) ='TEMPDB'  GO

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

Име на база данни Логическо име Път до файла-------------- ------------------ --------- -----------------------------------tempdb tempdev E:\SystemDatabases\tempdb.mdf tempdb templog E:\ SystemDatabases\templog.ldf

Стъпки за преместване на основната база данни

Процесът на преместване на главната база данни на друго устройство е различен от преместването на други системни бази данни. За да преместим системната база данни, ще изпълним следните стъпки:

  1. Отворете Мениджър на конфигурацията на SQL Server 2017 и разгънете, кликнете върху SQL Server Services . Вижте следното изображение:
  2. Щракнете с десния бутон върху SQL сървър (MSSQLSERVER) и щракнете върху свойства. В диалоговия прозорец със свойства изберете „Параметри при стартиране " раздел. Вижте следното изображение:
  3. Както можете да видите на изображението по-горе, в съществуващите параметри текстовото поле съдържа местоположението по подразбиране на файла с данни, регистрационния файл и регистъра за грешки. Тук -d  указва пътя по подразбиране на файла с данни на главната база данни  по подобен начин -l  посочва пътя по подразбиране на регистрационния файл на основната база данни. Трябва да заменим тези параметри с ново местоположение. Затова кликнете върху параметъра на файла с данни и го заменете с „–  dE:\Systemdatabases\master.mdf ” стойност и щракнете върху Актуализиране. По същия начин щракнете върху параметъра на регистрационния файл и го заменете с “-lE:\Systemdatabases\mastlog.ldf” стойност и щракнете върху актуализиране. Вижте следното изображение:

4. Щракнете върху OK, за да затворите диалоговия прозорец.

Забележка:

Тъй като изпълняваме тази задача на екземпляр за преодоляване на отказ на SQL Server, трябва да извършим всички горепосочени промени на вторичните възли (SQL02.Dc.Local)

Рестартирайте услугите на SQL Server.

След като новият път на msdb, model и tempdb бъдат актуализирани в каталога на SQL Server, трябва да спрем услугите, за да копираме файловете на базата данни на нови устройства. За да направите това, отворете SQL Server конфигурационен мениджър 2017>> Щракнете върху Услуги>> Щракнете с десния бутон върху SQL Server (MSSQLSERVER) и щракнете върху „Стоп“. Вижте следното изображение:

Сега копирайте всички файлове на системната база данни на новото устройство. Вижте следното изображение:

Сега стартирайте услугата от мениджъра за конфигурация на SQL Server. Ако услугите стартират успешно, тогава пътят на системата и базите данни са актуализирани успешно. Изпълнете следната заявка, за да прегледате пътя на главната база данни:

ИЗБЕРЕТЕ DB_NAME(DATABASE_ID)КАТО [ИМЕ НА БАЗА ДАННИ],        ФИЗИЧЕСКО_ИМЕ КАТО [МЕСТОПОЛОЖЕНИЕ НА ФАЙЛА]  ОТ SYS.MASTER_FILES  КЪДЕ  DB_NAME(DATABASE_ID) ='MASTER'  GO

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

Име на база данни Логическо име Път до файла-------------- ------------------ --------- -----------------------------------главен главен E:\SystemDatabases\master.mdf главен мастлог E:\ SystemDatabases\mastlog.ldf

Резюме

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


  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, Помощна таблица с числа

  2. Свързване към MS SQL Server с удостоверяване на Windows с помощта на Python?

  3. SQL Server 2008:как да дам привилегии на потребителско име?

  4. Как мога да извлека списък с параметри от съхранена процедура в SQL Server

  5. Получаване и инсталиране на Microsoft SQL Server Management Studio