SSMS
 sql >> база данни >  >> Database Tools >> SSMS

Миграция на SQL база данни с SSMS

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

Има много обстоятелства, при които ще трябва да преместите база данни или да възстановите бази данни. Най-честите причини са:

  • Преместване към изцяло нов сървър.
  • Преминаване към друг екземпляр на SQL.
  • Създаване на сървър за разработка или стартиране на производствен сървър.
  • Възстановяване на бази данни от резервно копие.

Има два основни начина за преместване на SQL бази данни. Ръчно с Microsoft SQL Server Management Studio (SSMS) или с командния ред. Методът, който избирате, зависи от това, което трябва да постигнете. Ако премествате една база данни или само няколко, ръчното архивиране и възстановяване на базите данни с SSMS ще бъде най-лесният подход. Ако премествате много бази данни (помислете за повече от 10), тогава използването на метода на командния ред ще ускори процеса. Методът на командния ред изисква повече подготвителна работа предварително, но ако прехвърляте десетки бази данни, тогава си струва времето, прекарано в конфигуриране на скрипта, вместо да мигрирате всяка база данни поотделно. Ако не сте сигурни кой метод да използвате, опитайте първо с ръчния подход, докато се чувствате комфортно с процеса. Препоръчвам да прочетете докрай за по-задълбочено разбиране на методологията.

Полезни препратки за терминология

SSMS – Акроним за Microsoft S QLS erverM управлениеС също.

Изходен сървър – Сървърът или инстанцията, от която премествате бази данни от или изключено .

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

Ръчният метод

Преместването на SQL бази данни с ръчния метод може да бъде много лесно. Това е предпочитаният процес за прехвърляне на няколко или по-малки бази данни. За да следвате тази част от ръководството, трябва да имате инсталиран MSSQL и Microsoft SQL Server Management Studio (SSMS).

Архивиране на бази данни на изходния сървър

1. Започнете с влизане в изходния сървър (сървърът, от който премествате бази данни или от него). Ще искате да отворите Microsoft SQL Server Management Studio, като изберете Старт> Microsoft SQL Server>  Microsoft SQL Server Management Studio .

2. Влезте в SQL сървъра, като използвате удостоверяване на Windows или SQL удостоверяване.

3. Разширете сървъра (в нашия случай SQL01 ), разгънете Бази данни , изберете първата база данни, която искате да преместите (на снимката по-долу).

4. Щракнете с десния бутон върху вашата база данни и изберете Задачи след това щракнете върху Резервно копие .

5. От тук вече сте в База данни за архивиране екран. Можете да изберете тип архивиране, като Пълно или Диференциал , уверете се, че е избрана правилната база данни и задайте дестинацията за SQL архивирането. За нашия пример можем да оставим Резервно копие Тип като Пълен .

6. Под Резервно копие Тип , поставете отметка в квадратчето за „Резервно копие само за копиране ” Ако използвате DPM или друга форма на архивиране на сървъра, архивирайте без Само за копиране флагът ще причини прекъсване във веригата на архивния дневник.

7. Ще видите местоположение под Дестинация за пътя на новия архив. Обикновено ще Премахвате този запис след това Добавяне нов, за да изберете папка, до която SQL има достъп за четене/запис. Добавяне на ново Резервно местоназначение показва път, подобен на следния:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Този път C:\ е мястото, където се намира резервното копие на вашата съхранявана база данни. Забележете това местоположение за по-късна справка, тъй като това е пътят по подразбиране към съхранените резервни копия и ще трябва да имате правилен достъп за четене/запис за SQL услуги.

Забележка:На напредналите потребители може да е удобно да напуснат дестинацията такава, каквато е, при условие че разрешенията са правилни в изходната папка.

8. След това добавете име на файл в края на този път, като например AdventureWorks2012-081418 .bak – Не забравяйте да завършите името на файла с разширението .bak и изберете OK

10. След като натиснете OK в Изберете дестинация за архивиране подкана, готови сте да архивирате базата данни! Всичко, което трябва да направите сега, е да натиснете OK , и базата данни ще започне да архивира. Ще видите лента за напредъка в долния ляв ъгъл и когато архивирането приключи, ще се появи прозорец с надпис „Архивирането на базата данни „AdventureWorks2012“ е завършено успешно. '

Придвижете се до пътя на местоназначението, отбелязан по-рано, (в този случай C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) ще видите новосъздадения си файл (в този случай AdventureWorks2012-081418.bak ) - Честито! Този файл е пълният експорт на вашата база данни и е готов за импортиране на новия сървър. Ако имате повече бази данни, повторете стъпките по-горе за всяка база данни, която премествате. След копиране на цялата база данни, процесът на следващата стъпка за възстановяване на бази данни на целевия сървър.

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

Сега трябва да имате .bak файл с всичките си бази данни на изходния сървър. Тези файлове на базата данни трябва да бъдат прехвърлени към целевия сървър. Има много начини да преместите вашите данни към сървъра местоназначение; можете да използвате USB, Robocopy или FTP. След като копирате база данни, можете да я съхраните на вашия целеви сървър,  например, ние сме я съхранили на C устройството в папка с име C:\dbbackups.

1. Отворете Microsoft SQL Server Management Studio.

2. Влезте в SQL сървъра, като използвате удостоверяване на Windows или SQL удостоверяване.

3. Разгънете сървъра и щракнете с десния бутон върху Бази данни и изберете Възстановяване на база данни.

4. Възстановяване на база данни екранът изглежда много подобен на Резервно копие на базата данни екран. Под Източник ще искате да изберете Устройство вместо База данни . Избиране на Устройство ви позволява да възстановите директно от файл. След като изберете Устройство , щракнете върху иконата за преглед […]

5. Изберете Добавяне , след което отидете до папката, в която се намират вашите .bak файлове. (В този случай C:\dbbackups ).

6. Изберете първата база данни .bak, която искате да възстановите, и щракнете върху OK.

7. Щракнете върху OK и сега сте готови да импортирате базата данни. Преди да импортираме, нека да разгледаме секцията Опции от лявата страна. Под Опции, ще видите други конфигурации за възстановяване на бази данни като Презаписване на съществуващата база данни , Запазване на настройките за репликация и Ограничаване на достъпа до възстановената база данни . В този случай ние не заменяме съществуваща база данни, така че ще оставя всички тези опции без отметка. Ако искате да замените съществуваща база данни (например, архивираната база данни има по-нови данни, отколкото на целевия сървър или заменяте база данни за разработка или производство), просто изберете Презаписване на съществуващата база данни .

Забележка:На напредналите потребители може да е удобно да напуснат дестинацията такава, каквато е, при условие че разрешенията са правилни в изходната папка.

8. Щракнете върху OK започва процеса на възстановяване, както е показано от изскачащия прозорец, който гласи „База данни „AdventureWorks2012“ е възстановена успешно.“ Мигрирахте вашата база данни от изходния към целевия сървър.

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

Мигриране на влизания в Microsoft SQL Server

След импортиране на вашите бази данни, ако не можете да се свържете с вашия SQL вход, може да получите грешката „Неуспешно влизане за потребител „пример“. (Microsoft SQL Server, грешка:18456). „ Тъй като базата данни е в Традиционния модел за влизане и потребител , данните за влизане се съхраняват отделно в изходния сървър и идентификационните данни не се съдържат в самата база данни. От този момент нататък целевият сървър може да бъде конфигуриран да използва Потребителски модел на съдържаща се база данни който запазва данните за вход във вашата база данни и извън изходния сървър. Дотогава ще трябва да се движим и да взаимодействаме с потребителите като част от традиционния модел. Продължете по-долу, за да продължите с миграцията на вашите SQL потребители.

Архивирането и възстановяването на базите данни премести вашите SQL данни за влизане във връзка с базите данни (вашите данни за влизане все още са свързани с правилните бази данни с правилните разрешения), но самите действителни влизания не се прехвърлиха към новия сървър. Можете да проверите това, като отворите SSMS (SQL Server Management Studio) на целевия сървър и отидете до Сървър> Защита> Вход с. Ще забележите, че всички персонализирани SQL данни за влизане, които сте създали на предишния сървър, не са прехвърлени тук, но ако отидете на Сървър> Бази данни> Вашата база данни (AdventureWorks2012 в този случай)> Защита> Потребители ще видите правилното влизане, свързано с базата данни.

Ако имате един или двама потребители на SQL, можете просто да изтриете връзката на потребителя с базата данни в Сървъри> Бази данни> AdventureWorks2012> Защита> Потребители , създайте отново потребителя в Server> Security> Logins и го съпоставете с правилната база данни.

Ако имате много входове, ще трябва да следвате допълнителен процес, описан по-долу. За да мигрирате всички потребители на SQL, отворете Нова заявка прозорец на изходния сървър и изпълнете следния скрипт:

SQL скрипт за влизане

+

Този скрипт създава две съхранени процедури в изходната база данни, което помага при мигрирането на тези данни за влизане. Отворете прозорец за нова заявка и изпълнете следното:
EXEC sp_help_revlogin

Тази заявка извежда скрипт, който създава нови данни за влизане за целевия сървър. Копирайте резултата от тази заявка и го запазете за по-късно. Ще трябва да изпълните това на целевия сървър.

След като копирате изхода от тази заявка, влезте в SSMS на целевия сървър и отворете прозорец за нова заявка. Поставете съдържанието от предишния скрипт (трябва да има поредица от редове, които приличат на -- Login:BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] ОТ WINDOWS WITH DEFAULT_DATABASE =[master]) и натиснете Execute.

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

Мигриране на изгледи и съхранени процедури

Изгледите и съхранените процедури ще мигрират с базата данни, ако използвате типичните резервни копия на SQL лента. Следвайте инструкциите по-долу, ако трябва да мигрирате изгледи и съхранени процедури независимо.

  1. Отворете Microsoft SQL Management Studio на изходния сървър.
  2. Влезте в своя SQL сървър.
  3. Разширете сървъра, както и Бази данни .
  4. Щракнете с десния бутон върху името на вашата база данни и отидете на Задачи> Генериране на скриптове .
  5. Щракнете върху Напред .
  6. Ще променим Скрипт на цялата база данни и всички обекти на базата данни за Изберете конкретни обекти на базата данни и отметнете само Прегледи и Съхранени процедури.
  7. Щракнете върху Напред, забележете опцията Запазване във файл. Обърнете внимание на посочения път към файла. В моя случай това е C:\Users\Administrator\Documents\script.sql - Пътят на запазените изгледи и съхранени процедури.
  8. Щракнете върху Напред>> Напред>>Край, и изберете C:\Users\Administrator\Documents\script.sql и го копирайте на целевия сървър.
  9. Отидете до целевия сървър, отворете SSMS и влезте в SQL сървъра.
  10. Отидете на Файл> Отвори> Файл или използвайте клавишната комбинация CTRL+O, за да отворите SQL скрипта. Изберете файла C:\Users\Administrator\Documents\script.sql за да го отворите.
  11. Ще видите скрипта, генериран от изходния сървър, съдържащ всички изгледи и съхранени процедури. Щракнете върху Изпълнение или използвайте клавишната комбинация F5 и стартирайте скрипта.
Забележка:За съжаление няма вграден начин да направите това с командния ред. Има инструменти на трети страни и дори инструмент от Microsoft, наречен mssql-scripter за по-усъвършенствани скриптове.

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

Търсите SQL услуга с висока достъпност, независима от платформата, която е лесно мащабируема и може да се разраства с вашия бизнес? Вижте нашия продукт SQL като услуга, предлаган в Liquid Web. Говорете с един от нашите невероятни хостинг съветници, за да намерите идеалното решение за вас!


No
  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Променете пътя за инсталиране по подразбиране на SQL Server Management Studio

  2. BCP заявка от Azure VM:SQLState =37000, NativeError =40515 Препратка към база данни и/или име на сървър в „DBName.dbo.TableName“ не се поддържа

  3. Не може да се създаде главен ключ за главната база данни в azure sql

  4. Извършете присъединяване към обединени заявки

  5. Как мога да изпълня набор от .SQL файлове от SSMS?