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

Как да копирате бази данни на SQL Server от един екземпляр в друг

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

Нативни решения в SQL Server

Ето няколко начина, по които можем да изпълним тази задача естествено в SQL Server:

  • В рамките на SQL Server ние обикновено извършваме пълно архивиране на база данни на изходната база данни, копираме я на целевия сървър и след това възстановяваме. Това може да се окаже предизвикателна задача за начинаещи или за професионалисти, които не са в ролята на DBA. Освен ако нямате подходящо решение за скриптове, може да срещнете проблеми и да се борите да постигнете това, докато работите с огромни бази данни.
  • Друга опция е методът detach\attach. Този метод е широко използван, но отново трябва да бъдете внимателни, докато работите с големи бази данни или с бази данни, които включват редица данни или регистрационни файлове. Също така изходната база данни ще излезе офлайн, докато използва този подход. Освен ако не сте опитен администратор на бази данни, все пак може да имате проблеми, докато работите с големи бази данни.

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

Използване на dbForge Studio за SQL Server за копиране или преместване на бази данни от един екземпляр на друг или от един сървър на друг

Стигайки до софтуер на трети страни, dbForge Studio за SQL Server на Devart има страхотна функция, вградена в продукта, за извършване на копиране или преместване на бази данни в няколко прости стъпки. Ще прегледаме процеса с демонстрация в тази статия.

Пробната версия продължава един месец и ви дава достатъчно време, за да тествате другите функции, вградени в продукта. За тази демонстрация се използва пробната версия на Enterprise 5.5.

След като стартирате dbForge Studio, ще получите този екран, за да актуализирате данните за връзката с базата данни. С това ще можете да се свържете с вашия екземпляр на SQL Server.

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

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

След като се свържете с вашите екземпляри на SQL Server, можете да прегледате базите данни, които планирате да копирате или премествате между екземплярите. В тази демонстрация ще копираме теста на базата данни от SQL екземпляра:Boulcott към Boulcott\INST2.

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

Отваря се прозорецът Копиране на база данни. Там можете да въведете подробности за изходния и целевия сървър. В тази демонстрация копираме базата данни между екземпляри, които са на една и съща машина. Можете да използвате инструмента dbForge за копиране на бази данни и на различни сървъри. Въведете данните за сървъра, както е показано, уверете се, че връзката е успешна и след това щракнете върху Напред .

След като приключите, се появява списъкът с наличните бази данни на изходния сървър. Изберете базата данни, в която планирате да копирате. В нашия пример това е тест база данни. Изберете Копиране отметка в квадратчето за опция и щракнете върху Напред . Тук съм избрал само една база данни за копиране. Но инструментът не е ограничен до една база данни в даден момент, тъй като можем да изберем няколко бази данни за копиране или преместване едновременно.

Изберете опции за местоположението на целевата база данни

Както можете да видите, местоположенията на данните и регистрационните файлове за целевата база данни могат да бъдат променени на тези, които сте планирали да използвате. Стойностите се генерират автоматично, но могат лесно да се променят. Името на целевата база данни също може да бъде променено.

Кликнете върху Напред . Появява се прозорецът с настройки за трансфер. Трябва да се уверите, че акаунтът на SQL Server Agent има достатъчни привилегии за извършване на операцията за копиране. Прегледайте внимателно този раздел, тъй като може да доведе до проблеми, ако акаунтът на SQL Server Agent няма необходимите разрешения. В моя случай, тъй като екземплярите са в рамките на един и същ сървър, няма изискване за директория на споделена папка. Въпреки това, директория на споделена папка с достатъчни разрешения за акаунта на SQL агент е необходима, ако трябва да копирате базата данни между SQL екземпляри на различни сървъри. След като приключите с прегледа, щракнете върху Напред .

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

Изпълнете процеса на копиране с dbForge Studio

Екранната снимка по-долу показва откъде можете да започнете процеса на изпълнение на задачата за копиране. Имаме възможност да избираме възможните видове обработка на грешки по време на процеса на изпълнение. По подразбиране поканете потребител за действие е избран. В тази демонстрация също активирах опцията за написване на отчет в регистрационен файл което би било удобно за справяне с всякакъв вид грешки. Дневникът на грешките е доста подробен и ви дава подробно причината за всеки неуспех на процеса. След като сте готови, кликнете върху Изпълнение опция, която ще стартира процеса на изпълнение.

Можете да видите напредъка на задачата за изпълнение.

Завършване на процеса на копиране

След като процесът завърши, ще видите това известие, което потвърждава, че процесът на копиране е завършен.

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

Проверете целевия SQL екземпляр

Следващата стъпка би била да се свържете с вашия целеви SQL екземпляр и да потвърдите, че базата данни е копирана. На целевия SQL екземпляр има тест база данни, която е копирана успешно с помощта на dbForge Studio за SQL Server.

Преместване на бази данни от източник към целеви SQL екземпляр

По-рано успяхме да копираме успешно база данни от изходния сървър към целевия сървър. Можем също да използваме този инструмент и предишната демонстрация, ако вместо това трябва да преместите бази данни.

В прозореца Избор на бази данни изберете Преместване опция.

Това основно би мигрирало базите данни от изходния сървър към целевия. Просто преминете през стъпките, описани по-горе. Умишлено бях спрял SQL Server Agent на целевия сървър и се сблъсках с този екран за грешка.

Когато щракнете върху Не , ще ви отведе до опцията за преглед на регистрационните файлове.

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

Тук можете да видите точно причината за неуспешната операция. Ще видите също, че задание на SQL Agent се създава на целевия сървър по време на изпълнението и може да бъде видяно.

Това задание съществува само по време на процеса на изпълнение и се изтрива, след като процесът завърши. Свържете се както към целевия, така и към изходния SQL екземпляр, за да потвърдите, че базите данни наистина са се преместили. Екранната снимка по-долу потвърждава, че базите данни 1 и 2 са успешно преместени от изходния сървър към целевия.

Копирайте бази данни от изходния SQL екземпляр към целевия и ги отменете

Досега копирахме и преместихме бази данни от изходния сървър към целевия. След това изпълнете допълнителна стъпка, за да копирате и замените базите данни WideWorldImporters.

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

Просто следвайте останалите стъпки, подобни на това, което беше направено по-рано и процесът ще успее, след като завърши. За да обобщим, използвайте Копиране на база данни опция в инструмента dbForge Studio, можете да изпълнявате следните функции:

  • Копирайте бази данни от изходния сървър към целевия
  • Преместете бази данни от изходния сървър към целевия
  • Копирайте и заменете бази данни от изходния сървър към целевия
  • Преместете и отменете бази данни от изходния сървър към целевия

Заключение

  • С тази демонстрация видяхте лекотата, с която база данни може да бъде копирана от един SQL екземпляр в друг с много малко въвеждане на потребителя с помощта на dbForge Studio
  • Друго предимство на този инструмент е, че множество бази данни могат да бъдат копирани или преместени в различни екземпляри наведнъж
  • Необходими са много малко технически познания за изпълнение на тези задачи, тъй като инструментът е лесен за използване и базиран на GUI
  • Този инструмент може да бъде доста удобен, особено ако внедрявате бързо внедрявания в различни сървърни среди и ако времето е ограничение

Полезен инструмент:

dbForge Studio за SQL Server – мощна IDE за управление на 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 инжектиране в ASP.Net

  2. Правилен метод за изтриване на над 2100 реда (по ID) с Dapper

  3. Съпоставяне в SQL Server

  4. Адаптивният сървър не е наличен или не съществува грешка при свързване към SQL Server от PHP

  5. Ограничение на клаузата IN в Sql Server